Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Кошмары при создании отчета (Crystal и C#)
|
|||
|---|---|---|---|
|
#18+
Добрый день...или ночь. Расскажу как сделал отчет в Crystal'e из C#...Может кто из знающих посоветует как сделать сие более правильно. Перерыв кучу доков не нашел как простым способом прицепить нетипизированный dataSet к CrystalReport (stimulsoft report такое позволяет без всяких головных болей...но дэнег нет). Из тех самых доков нашел как сию фигню прицепить к базе Access (можно и к XML файлу - главное чтобы все поля были прописаны в нем, на момент создания и дизайна отчета). Получилось: 1) "нарисовал" пустую базу в access. 2) Создал в проекте новый элемент (Отчет CrystalReport) и присоеденил эту базу. ...сделал дизайн отчета, сохранил(пусть CrystalReport1.rpt). 3) Теперь в проге...сделал форму, дабив crystalReportViewer, прицепил созданный отчет CrystalReport1 и получил еще один объект CrystalReport11 (ну т.е. документ). Добавил к форме dataSet1...пока он пустой. 4) При выполнении основной формы, по нажатию кнопки "отчет" собираю данные в нетипизированном dataSet (названия таблицы и полей полностью совпадает с базой в Access). Затем dataSet(пусть "reportDataSet") с основной формы сохраняю в файле XML (пока еще не догнал как его просто передать в другую форму...ну с этим разберусь). 5) Запускается форма отчета. В ней по событию Form_Load поставил следующий код: //Под таким именем его сохранили в основной форме dataSet1.ReadXml("ReportSet.XML"); //Подменяю источник данных CrystalReport11.SetDataSource(dataSet1); 6) Вот так причудливо все работает... Зачем все это делалось? Скинуть данные в базу Access было не обломно, но по какой-то иронии судьбы к базе прописан полный путь (C:\folder\folder1\folder2\base.mdb) - т.е. перенос папки с приложением в другое место и отчеты теряли базу. Не найдя как этот путь укоротить и не имея возможности на прямую приципиться к dataSet - сообразил такой гимор. Еще не пробовал выкинуть базу Access из проекта...болтается как шаблон для создания отчета. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2008, 17:46 |
|
||
|
Кошмары при создании отчета (Crystal и C#)
|
|||
|---|---|---|---|
|
#18+
Извращенство в чистом виде. В visual studio 2008 под С#.Все что душе угодно есть.Нестоит пугать народ таким геморроем.И вообщем то структура проекта вовсе не такая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2008, 21:17 |
|
||
|
Кошмары при создании отчета (Crystal и C#)
|
|||
|---|---|---|---|
|
#18+
crystalreportsИзвращенство в чистом виде. И вообщем то структура проекта вовсе не такая. Согласен. Я не хвастаюсь, а написал как сделал, чтобы не задавать голословных вопросов: "А как?". Структура приложения две формы - главная и для отчетов, + три отчета. Все выбирается и меняется уже без предварительного сохранения(данные в форму отчетов уходят по всем канонам ООП).:) У меня нет возможности создать отчет на основе рабочей базы(10-ок причин на это наберется) просто нужно собранные данные в сеансе текущей работы пользователя выкинуть в отчет и все. Данные собираются в dataSet, который расположен на форме. Может правильней будет создать XSD dataSet, описать его и работать с ним? Изучаю...:) нехватка денег, времени и печатных изданий под рукой заставляет спрашивать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2008, 20:05 |
|
||
|
|

start [/forum/topic.php?fid=31&msg=35488278&tid=1536788]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 15ms |
| total: | 138ms |

| 0 / 0 |
