Если вы создаете отчеты в комплексе с клиентским приложением, логичнее создать один источник данных в программе и использовать его во многих отчетах, чем создавать подключение к базе данных внутри каждого отчета.
Именно о подключении отчета FastReport .NET к источнику данных приложения пойдет речь в этой статье.
Лучше всего продемонстрировать процесс на примере. Создаем приложение Windows Forms. Добавляем источник данных в программу. В моем случае – база данных xml.
Теперь добавим компонент DataSet из панели инструментов. Выбираем типизированный набор данных.
Осталось создать отчет и зарегистрировать в нем источник данных.
Добавляем на форму кнопку и компонент Report из панели инструментов.
Двойным кликом по компоненту report1 открываем дизайнер отчетов. Но предварительно выбираем источник данных приложения:
В дизайнере создаем простой отчет со списком:
Список доступных источников данных можно увидеть, нажав на пиктограмму (выделена красным):
Появляется окно:
Сохраняем отчет и возвращаемся к приложению. Добавляем обработчик события нажатия кнопки:
1 2 3 4 5 6 7 8 9 10 11 |
private void button1_Click(object sender, EventArgs e) { report1.Load(Environment.CurrentDirectory + "/Report.frx"); report1.RegisterData(demoDataSet1); report1.Show(); } |
Не забываем добавить библиотеку FastReport в using.
Здесь мы загружаем отчет из файла. Затем регистрируем источник данных в отчете. И запускаем отчет в режиме предварительного просмотра.
Функция RegisterData позволяет регистрировать: DataSet, DataTable, DataView, DataRelation, IEnumerable. Последний может представлять собой список объектов (со всеми вложенными объектами) или, например, результат выполнения LINQ запроса. Важно зарегистрировать данные в отчете после загрузки отчета и перед его запуском на просмотр или экспортом.
Создав источник данных в приложении, мы избавляемся от необходимости создавать подключение к базе в каждом отчете. Да и редактировать придется только одно подключение при необходимости изменить настройки.