Вылетают сохраненные отчеты
Здравствуйте. Решил потестить на своей проге фастрепорт дотнет . заметил что при изменении структуры БД и соответственно это коснется датасета приложения фастрепорт теряет отчет и если в ручную не сохранился файл отчета то все что сделал коту под хвост. И иногда приходится переносить прогу с одного компа на другой .. та же беда в один прекрасный момент отчет оказывается пустым. Что эт такое ... стоит ли фаст репорт чего то или это как говорят что то налепили и когда хочет так и работать будет?
использую VS2010
использую VS2010
Комментарии
использую Visual Studio 2010 , установил в тулбоксах появились компоненты фастрепорта, беру кладу на форму report1, в свойствах ничего не меняю, там же в дизайнере выбираю источник данных и таблицы которые нужны, база данных у меня на sqlite все выбирается все показывается. после в дизайнере жму Редактировать отчет. и настраиваю какие поля фильтры бла бла. Заодно ..(после нескольких таких теряний отчета приноровился сохранять *.frx файлы) сохраняю отчет. ну соответственно какое то название например 111.frx после в студии пишу обработчик
report1.Load("111.frx");
report1.SetParameterValue("param", param);
report1.Show();
все прекрасно пашет ... до какого то момента ... либо в базе 1 поле изменилось либо с компа на комп скопировал проект либо в какой то момент выскакивает ошибка object reference not set и отчеты не грузятся .. я никак не могу понять эт что глючит студия или ФР .. вот хотелось бы коммерческие проекты поднять на фастрепорте а когда элементарно после каких то не сильно важных изменений весь отчет ложится .. если клиент попросить сделать 20-30 отчетов я ж не могу каждый раз переназначать слава богу хотя бы сохраненный отчет остается но если я последний вариант не сохраню файл опять дела будут плохи..
вот как то так .. не могу понять открытых зависимостей.. я ж не могу весь проект сделать идеальным а после только 1 раз настроить отчет..
У тебя просто сбивается текущий путь по умолчанию. Никогда нельзя писать просто имя файла: report1.Load("111.frx");
Например, если у тебя есть диалоговые окна выбора папок или открытия файлов, то путь по умолчанию будет устанавливаться тот, который был последний раз выбран в таком диалоге.
Пиши всегда полный путь до файла. Если файл отчёта лежит рядом с exe файлом приложения, то report1.Load(Application.StartupPath + "\\111.frx");
Спасибо я учту что надо полный путь писать, но я приложение копирую когда ношу между компами в определенную папку (также использую бд тож которая лежит в определенной папке) например на диске e:\appFiles\ и не меняю пути ... вот вопрос: в вин приложении есть appDataSet.xsd, если в какой то таблице поменялись поля что то добавилось итп я соответственно обновляю appDataSet.xsd то в report1 в "Выбрать источник данных" тож все таблицы сбросились ... я понимаю что в моем вопросе уже содержится ответ мол не меняй таблицы-поля ... но как быть я изначально не могу учесть некоторые тонкости задачи... чтобы хотя бы минимизировать повторные работы с манипуляцией с датасетом итп как надо поступить правильнее?
спасибо за уделенное время, я именно таким методом не делал но на будущее взял на заметку как это все реализовать в проектах своих, честно скажу очень понравилась такая вот реализация.
теперь как я это делал, ну ради инфы скажу что использую VS2010 , бд - sqlite. Далее: я прикрепил картинку и пронумеровал.
Ну на форму кладу report1 с тулбокса студии. Выбираю источник данных (стрелка 1) (у меня есть некая БД с таблицами).
Эту некую)) бд с таблицами я вижу в (списке стрелка 2) Доступные источники. Ну как бы не все таблицы мне нужны для отчета выбираю и добавляю в Выбранные источники (стрелка 3).
Все на этом закрываем окно выбора источника. и жмем на Редактировать отчет (стрелка 4). тут уже открывается дизайнер и я вижу Без добавления как у Вас на видео уже готовые таблицы которые я выбирал ранее. это вот как на стрелка 5.
я в ручную дата сет не создаю. обычно беру с источников данных VS точнее с сервер эксплорера. ну и соответсвенно если добавится поле обновляю DataSetMyData.xsd при этом у меня пропадает с Выбранные источники (стрелка 3) выбранные таблицы .. ну и соответственно отчет мой теряет подключение к базе данных и выводится чистый лист отчета, так скажем проблема то и была в этом.. если теряется подключение соответственно фильтры отчета таблицы вообщем вид заново над корректировать. Если учесть что вопрос к разработчику то не плохо было бы еслиб с (стрелка 3) не пропадали выбранные таблицы и информировалось что мол что то не так поле отсутствует либо их больше обновить или мол что то удали добавь.
Премного Благодарен за пример!
https://yadi.sk/i/6guM3kdNrFvmq
интересная конечно ситуация получается с пропаданием источников данных. Может стоит написать в поддержку? там разработчики быстро отвечают, а тут на форуме их почти не бывает.
Я давно для себя решил что удобнее и надёжнее такие вещи создавать в коде и в коде же привязывать и передавать. Оно так более гибко получается. Конечно не так наглядно как делать это же в дизайнере. Да и сложнее - надо хорошо знать что и в какой последовательности делать. Но оно себя оправдывает в результате.