База данных Vista относится к типу встраиваемых баз. Эти базы отличаются от клиент серверных СУБД тем, что предназначены для встраивания в клиентское приложение в виде файла. Круг задач такой базы также отличается от СУБД. Как правило, это базы которые используются только в одном приложении и не предназначены для совместного использования. Таким образом VistaDB встает в один ряд с SQLite и SQL Ce.
Рассмотрим, как создать подключение к такой базе данных внутри отчета. Для этого нам потребуется подключить к дизайнеру отчета плагин-коннектор, расположенный в папке:
C:\Program Files (x86)\FastReports\FastReport.Net\Extras\Connections\FastReport.VistaDB
Итогом сборки этого проекта будет библиотека FastReport.VistaDB.dll.
Открываем дизайнер отчета, меню File->Options:
На вкладке Plugins добавляем ссылку на созданную нами ранее библиотеку FastReport.VistaDB.dll. После этого перезапускаем дизайнер отчетов.
Добавляем новый источник данных в отчет. При создании подключения, выбираем доступную теперь VistaDB connection:
Настройка подключения сводится к выбору файла базы данных и вводу пароля к ней, если задан.
Далее переходим к выбору таблиц:
Тут мы можем выбрать таблицу и завершить создание источника данных. Однако, есть возможность отфильтровать данные с помощью SQL запроса. Для этого нажимаем кнопку “Add SQL query…”.
Задаем имя представления данных, которое появится в списке таблиц после создания запроса:
Пишем сам SQL запрос:
Тут мы использовали параметризированный запрос. Сам параметр мы объявим на следующем шаге мастера создания запроса:
Имя параметра соответствует параметру в запросе. Значение параметра может быть любым выражением: функцией, текстом, переменной отчета, системной переменной. Не забудьте, также определить тип данных параметра. Он должен соответствовать полю данных, с которым мы сравниваем параметр в запросе. В итоге мы получим новую «кастомную» таблицу:
Мы использовали в качестве значения параметра запроса параметр отчета:
В итоге мы получим следующие данные:
Использование плагина для подключения к VistaDB облегчает и ускоряет процесс создания источника данных, а использование параметризированного запроса для фильтрации данных позволяет передать в фильтр значение параметра извне отчета (используя код приложения или через URL).