In this example, we will use a Multi-Selection Combo Box to enable a dynamic set of fields to use in a SQL query, and to pass a list of possible values to use in a SQL “Where…” expression. This example uses the sample “Process” database (process.mdb) installed with Dream Report
...
В этом примере будет рассмотрена динамическая замена набора тэгов в поле со списком с использованием SQL запросов и передача списка возможных значений с использованием оператора SQL “Where…”. Этот пример использует базу данных process.mdb, которая входит в дистрибутив Dream Report.
Info |
---|
Примечание: Эти строки должны быть добавлены в файл DreamReport.ini file, который расположен в \ODS\Dream Report\System [AutoAddQuotes] Use=no |
...
В студии Dream Report
...
, в меню «Инструменты» необходимо выбрать Менеджер DSN, и создать ODBC DSN, назвав его “Process”, которое описывает “Process” DSN:
...
Set the “Display Mode” to “Display as Selection Box”, and ensure that the “Multi-Selection” option is checked
...
Configure the “Display Data from:” option. In this example, we will execute a SQL Query to get a list of users from the Batch_Data table in the Process database. This list could also be populated with a manually-entered list of items, Batch ID’s, etc.
...
In this example, we will execute a SQL Query to get a list of users from the Batch_Data table in the Process database:
...
Set the “Display Mode” to “Display as List Box”, and ensure that the “Multi-Selection” option is checked
...
Configure the “Display Data from:” option to be “Manual Values”, and enter Tank1, Tank2 and Tank3 as available options:
...
- Добавить элемент Поле со списком (меню Веб-элементы) в Веб отчёт и назвать его “cb_User”
2. Установить “Режим отображения” в “Показать в виде списка” и разрешить “Множественный выбор”.
3. Настроить опцию “Показывать данные из:”. В этом примере используется SQL запросы для получения списка пользователей из таблицы Batch_Data, которая находится в базе данных Process. Этот список может быть также заполняться данными, которые введены вручную, номерами батчей и т.д.
4. Добавить второй список в отчёт, назвав его “cb_Tag”
5. Установить “Режим отображения” в “Показать в виде списка” и разрешить “Множественный выбор”.
6. Настроить опцию «Показывать данные из:» в “Значения, занесённые вручную”, и ввести Tank1, Tank2 и Tank3:
7. На панели объектов отчёта справа выбрать объект «Выражение» и добавить его в отчёт, назвав его “Expr1”
8. В поле ввода выражения необходимо написать следующую функцию, которая описывает первое поле со списком (“cb_User”): OdsObjComboGetSelectedListQuoted('[
...
on#cb_User]')
...
Under the “Result Representation” tab, you may choose to un-check the “Visible” option, but during development, it is a good idea to keep this visible, to verify what is being passed into the subsequent SQL query
...
9.На вкладке “Внешний вид”, пользователь может снять выбор опции “Видимый”, но во время разработки хорошей идеей будет оставить его видимым, чтобы проверить правильность передачи параметров SQL запросов.
10. Далее, создаём другой объект «Выражение» и называем его “Expr2”.
11. В этом выражении вводится текст обработки для второго поля со списком (“cb_Tag”): OdsObjComboGetSelectedList('[
...
on#cb_Tag]')
...
From the right-side toolbar, select and add a SQL Query Table object to the report
...
Select “dsnProcess” from the “ODBC Database Source”
...
12. На этой же панели выбираем и добавляем в отчёт SQL таблицу
13. Выбираем “Process” из списка “База данных”
14. Для этого запроса, запросим список тэгов уровня переменных Tank (который будет передан в таблицу из поля со списком “cb_Tag”) и значение счётчика из таблицы Batch_Data, где Счётчик =500 – то есть, этот запрос имеет динамический вариант запроса “Select…”, и фиксированное выражение “Where…”. Введём следующее SQL выражение:
Select [f#Expr2], Counter from Batch_Data where Counter=
...
50
...
From the right-side toolbar, select and add another SQL Query Table object to the report
...
Select “dsnProcess” from the “ODBC Database Source”
...
...
15. Выбрать ещё один объект SQL таблица
16. Выбираем “Process” из списка “База данных”
17. Для второй таблицы, получим список тэгов с названием Motor (которые будут переданы через поле со списком “cb_Tag”) из таблицы Batch_Data, где Счётчик = 500 и пользователь один из выбранных пользователей в поле со списком “cb_Users” – то есть, этот запрос будет иметь динамический оператор “Select…”, и динамическое выражение “Where…”. Введём следующее выражение:
Select [f#Expr1], User from Batch_Data Where Counter=500 And User IN ([f#Expr2])
...
Add an Action Button (from the Web Elements tab) to the report, with the Button Caption “Refresh”, and the action being “Refresh Report”
The resulting report should look similar to this in Studio:
...
Running the report in a web browser, with user-selections in the Combo boxes, results in the following:
Связанные статьи
Filter by label (Content by label)
18. Далее, добавим в отчёт Кнопку действия (меню Веб-элементы), с названием “Обновить”, и функцией “Обновить отчёт”
19. Отчёт должен выглядеть в студии так:
20. Запустим отчёт в Веб браузере и получим следующие результаты:
Связанные статьи
Page Properties | ||
---|---|---|
| ||
|
...