|
|
|||||||||||||||||||||||||||||
|
Подключение к базе данных внутри отчетаИсточник: fastreportru Dmitriy Fedyashov
Один из первых вопросов, возникающий перед разработчиком при освоении FastReport .Net - как подключить данные к отчету? К счастью, этот генератор отчетов обладает интуитивно понятным интерфейсом дизайнера. Однако, я все же сберегу ваше время, если немного расскажу о процедуре подключения источника данных внутри отчета. Забегая вперед, скажу, что собираюсь показать вам, как передать в отчет строку подключения из пользовательского приложения. Поэтому условно разделю статью на две части: подключение к базе данных внутри отчета и передача строки подключения в отчет.
Рассмотрим на примере. Создаем источник данных. В открывшемся окне выбираем New connection. Можно выбрать различные типы подключения, вплоть до подключения к базе данных XML. Я воспользуюсь старым добрым MS Access connection. Далее предлагается выбрать таблицы, с которыми мы будем работать. Однако можно выбрать данные и с помощью SQL-запроса (для xml недоступно). Для этого предусмотрен визуальный конструктор запросов. Впрочем, ничто не мешает написать запрос вручную. На следующем шаге можно задать параметры запроса. Далее - переопределить типы данных колонок. Итак, я выбрал две таблицы: employee и orders. Их можно связать по полю EmpNo. Чтобы связать их, открываем выпадающее меню Action в окне "Данные", и выбираем New relation. Родительская таблица - employee, а дочерняя - orders. Связываем по полю - EmpNo. Для чего мы это сделали? Теперь мы можем выводить список заказов для каждого сотрудника. Создаем такой нехитрый шаблон отчета: Здесь бэнд "Данные" содержит детализирующий бэнд "Данные". Как видно - в первом выводится имя и фамилия сотрудника, а во втором - некоторые данные о заказе. Добавить детализирующий бэнд "Данные" можно либо из контекстного меню самого бэнда, либо в окне конфигурирования бэндов (Configure bands): Если сделать двойной клик по первому бэнду "Данные", мы увидим, что в качестве источника данных выбрана таблица employee. Для второго бэнда "Данные" - orders. Источник данных выбирается автоматически, при добавлении поля в пустой бэнд. Но его можно изменить вручную. Если источник данных не будет задан - данные не отобразятся. Точнее, отобразится только первая строчка данных для добавленных полей. Сохраняем отчет. 2. Рассмотрим еще одну интересную возможность - возможность передать строку подключения к БД из пользовательского приложения. Создаем приложение Windows Forms. Добавляем на форму компонент Report из вкладки FastReport .Net и кнопку: Передача строки подключения в отчет из приложения. Для начала нужно немного модифицировать созданный ранее отчет. Откроем его в дизайнере. Создадим параметр отчета. В него мы передадим строку подключения. В окне "Данные" находим элемент Parameters. Правый клик по нему - Новый параметр (New parameter). В окне свойств задаем имя параметра - conn. Теперь выбираем подключение в окне "Данные". Ниже, в окне свойств, находим ConnectionStringExpression. И добавляем в него созданный нами параметр. Все. Модификация отчета завершена. Сохраняем его и возвращаемся к программе. Сделаем двойной клик по кнопке Run. В обработчик события нажатия кнопки добавим основной код приложения:
Перед основным действом мы объявили переменные для хранения пути к отчету и базе данных. По нажатии на кнопку создается экземпляр класса Report. Далее загружаем отчет. Присваиваем значение переменной строки подключения. Присваиваем параметру отчета значение строки подключения. И запускаем отчет. Вуаля! Итак, из рассмотренного в статье понятно, что подключить отчет к данным - минутное дело. Причем подключить отчет можно практически к любой базе данных. При необходимости, можно передавать в отчет строку подключения. Это удобно, например, когда пользователь сам выбирает место расположения базы данных на локальном диске. Интернет-магазин
|
|