Параметры: различия между версиями
Внешний вид
Sidminik (обсуждение | вклад) |
Sidminik (обсуждение | вклад) |
||
| (не показано 5 промежуточных версий этого же участника) | |||
| Строка 9: | Строка 9: | ||
*добавить параметр в дереве отчета (рис. 5.1); | *добавить параметр в дереве отчета (рис. 5.1); | ||
*в открывшемся окне на вкладке «General» (рис. 5.2) | *в открывшемся окне на вкладке «General» (рис. 5.2) | ||
**в поле «Name» ввести название | **в поле «Name» ввести название параметра, например, «ReportParameterLaboratory» (по умолчанию – «ReportParameter1»); | ||
**в поле «Text for prompting users for a value:» ввести текст-приглашение для выбора значения пользователем, например, «Выберите лабораторию:» (по умолчанию – «ReportParameter1»); | **в поле «Text for prompting users for a value:» ввести текст-приглашение для выбора значения пользователем, например, «Выберите лабораторию:» (по умолчанию – «ReportParameter1»); | ||
*в открывшемся окне на вкладке «General» (рис. 5.3) | *в открывшемся окне на вкладке «General» (рис. 5.3) | ||
| Строка 23: | Строка 23: | ||
*нажать на кнопку диалогового окна свойств «Property dialog…» (рис. 4.17); | *нажать на кнопку диалогового окна свойств «Property dialog…» (рис. 4.17); | ||
*в открывшемся окне в левом столбце перейти на вкладку «Table - Filters» и нажать на кнопку «+» (рис. 5.4); | *в открывшемся окне в левом столбце перейти на вкладку «Table - Filters» и нажать на кнопку «+» (рис. 5.4); | ||
*в результате появится «пустой» | *в результате появится «пустой» параметр, не имеющий свойств; | ||
*для добавления | *для добавления свойств нажать на стрелку поля «Expression» и в раскрывшемся списке выбрать поле из DataSet (например, «=Fields!lab_name.Value»), по которому будет проводиться группировка (рис. 5.5); | ||
*в поле «Operator:» выбрать оператор «Equal» (рис. 5.6); | *в поле «Operator:» выбрать оператор «Equal» (рис. 5.6); | ||
*в разделе «Values» в поле «Expression» нажать стрелку меню и выбрать из списка значение <Expression…> (рис. 5.6); | *в разделе «Values» в поле «Expression» нажать стрелку меню и выбрать из списка значение <Expression…> (рис. 5.6); | ||
| Строка 30: | Строка 30: | ||
*двойным кликом или кнопкой «Append» добавить пункт «ReportParameterLaboratory » в область «Expression:»; | *двойным кликом или кнопкой «Append» добавить пункт «ReportParameterLaboratory » в область «Expression:»; | ||
*нажать кнопку «ОК» в окне «Expression Editor» и кнопку «ОК» в окне «Table - Filters»; | *нажать кнопку «ОК» в окне «Expression Editor» и кнопку «ОК» в окне «Table - Filters»; | ||
*при формировании отчета перед выводом документа на экран появится колонка с параметром в качестве | *при формировании отчета перед выводом документа на экран появится колонка с параметром в качестве параметра (рис. 5.8). | ||
==Создание | ==Создание каскадного параметра== | ||
*для создания | Если список значений параметра зависит от значения другого параметра, отчёт собирает необходимое значение параметра и использует его для создания списка значений для второго параметра. | ||
Такой каскад значений параметров иногда называют зависимыми, связанными или иерархическими параметрами. | |||
Чтобы создать каскадные параметры на странице или в отчёте RDLX, выполните следующие действия. | |||
*для создания каскадного параметра на первом этапе создается простой параметр, при этом все этапы полностью повторяют пп. 5.2-5.3 | |||
**создаем новый набор данных «FilterFio» с таким же или более коротким SQL-запросом; | **создаем новый набор данных «FilterFio» с таким же или более коротким SQL-запросом; | ||
**создаем параметр «ReportParameterFio» (с принимаемым из набора данных значением «fio»); | **создаем параметр «ReportParameterFio» (с принимаемым из набора данных значением «fio»); | ||
**при необходимости фильтрации таблицы по данному критерию подключаем созданный | **при необходимости фильтрации таблицы по данному критерию подключаем созданный параметр к таблице с общим значением параметра «=[fio] In (=Parameters!ReportParameterFio.Value)»; | ||
**если значение ФИО нужно только для однократного вывода на экран (например, для подписи документа), то шаг подключения | **если значение ФИО нужно только для однократного вывода на экран (например, для подписи документа), то шаг подключения параметра к таблице пропускается; | ||
*в результате создается второй | *в результате создается второй параметр со значениями, не зависящими от первого; | ||
*для добавления зависимости необходимо в дереве отчета выбрать набор данных «FilterFio» правой кнопкой выбрать пункт меню «Edit» (рис. 5.9); | *для добавления зависимости необходимо в дереве отчета выбрать набор данных «FilterFio» правой кнопкой выбрать пункт меню «Edit» (рис. 5.9); | ||
*в отрывшемся окне в левой части выбрать раздел «DataSet - Parameters» и нажать на кнопку «+» (рис. 5.10); | *в отрывшемся окне в левой части выбрать раздел «DataSet - Parameters» и нажать на кнопку «+» (рис. 5.10); | ||
*в отрывшемся окне в поле «Name» (рис. 5.11) ввести имя параметра (например, «SelectedLaboratory»); | *в отрывшемся окне в поле «Name» (рис. 5.11) ввести имя параметра (например, «SelectedLaboratory»); | ||
*в поле «Value» нажать стрелку меню и выбрать пункт «Expression…» (рис. 5.11); | *в поле «Value» нажать стрелку меню и выбрать пункт «Expression…» (рис. 5.11); | ||
*в левой части окна в области «Fields:» раскрыть группу «Parameters» и выбрать пункт | *в левой части окна в области «Fields:» раскрыть группу «Parameters» и выбрать пункт «ReportParameterLaboratory» (рис. 5.12); | ||
*двойным кликом или кнопкой «Append» добавить пункт | *двойным кликом или кнопкой «Append» добавить пункт «ReportParameterLaboratory» в область «Expression:» (рис. 5.12); | ||
*нажать кнопку «OK»; | *нажать кнопку «OK»; | ||
*в оставшемся открытым окне свойств набора данных в левой части окна выбрать раздел «DataSet - Query» (рис. 5.13); | *в оставшемся открытым окне свойств набора данных в левой части окна выбрать раздел «DataSet - Query» (рис. 5.13); | ||
*в поле «Query:» в конце запроса добавить условие «WHERE fio In (@SelectedLaboratory)» (рис. 5.13); | *в поле «Query:» в конце запроса добавить условие «WHERE fio In (@SelectedLaboratory)» (рис. 5.13); | ||
*таким образом, итоговые записи данного запроса будут браться не напрямую из набора данных БД, а после предварительной фильтрации на основе лаборатории, выбранной в первом | *таким образом, итоговые записи данного запроса будут браться не напрямую из набора данных БД, а после предварительной фильтрации на основе лаборатории, выбранной в первом параметре; | ||
*в результате (рис. 5.14) связанный | *в результате (рис. 5.14) связанный параметр функции не активен, пока не будет определено значение основного параметра лаборатории. | ||
Текущая версия от 07:31, 24 декабря 2025
Общие сведения
[править]- в отчетах можно использовать параметры для фильтрации или добавления данных, отображаемых в отчётах;
- возможно запрашивать у пользователей параметры, чтобы они могли управлять выводом;
- возможно задавать параметры автоматически.
Создание простого параметра
[править]- добавить еще один DataSet (п. 1.4, рис. 1.5-1.10), например, FilterLaboratory;
- в качестве SQL-запроса в поле «Query» набора данных FilterLaboratory можно использовать SQL-запрос из набора данных MainDataSet или, по возможности, его упрощенный вариант (исключение неиспользуемых полей и соединений таблиц);
- добавить параметр в дереве отчета (рис. 5.1);
- в открывшемся окне на вкладке «General» (рис. 5.2)
- в поле «Name» ввести название параметра, например, «ReportParameterLaboratory» (по умолчанию – «ReportParameter1»);
- в поле «Text for prompting users for a value:» ввести текст-приглашение для выбора значения пользователем, например, «Выберите лабораторию:» (по умолчанию – «ReportParameter1»);
- в открывшемся окне на вкладке «General» (рис. 5.3)
- установить переключатель в значение «From query» (по умолчанию – «Non-queried»);
- в поле «Dataset:» выбрать используемый набор данных «FilterLaboratory »;
- в полях «Value field:» и «Label field:» установить необходимое поле из набора данных (например, «lab_name»);
- в поле «Condition:» установить значение «Value» или «Label» (если в полях «Value field:» и «Label field:» указано одно и то же значение, то любой вариант);
- в поле «Direction:» указать желаемый вариант сортировки («Ascending» – по возрастанию, «Descending» – по убыванию);
- нажать «OK».
Подключение параметра к таблице
[править]- выделить таблицу на основном поле конструктора или в дереве;
- нажать на кнопку диалогового окна свойств «Property dialog…» (рис. 4.17);
- в открывшемся окне в левом столбце перейти на вкладку «Table - Filters» и нажать на кнопку «+» (рис. 5.4);
- в результате появится «пустой» параметр, не имеющий свойств;
- для добавления свойств нажать на стрелку поля «Expression» и в раскрывшемся списке выбрать поле из DataSet (например, «=Fields!lab_name.Value»), по которому будет проводиться группировка (рис. 5.5);
- в поле «Operator:» выбрать оператор «Equal» (рис. 5.6);
- в разделе «Values» в поле «Expression» нажать стрелку меню и выбрать из списка значение <Expression…> (рис. 5.6);
- в открывшемся окне «Expression Editor» в левой части окна в области «Fields:» раскрыть группу «Parameters» и выбрать пункт «ReportParameterLaboratory» (рис. 5.7);
- двойным кликом или кнопкой «Append» добавить пункт «ReportParameterLaboratory » в область «Expression:»;
- нажать кнопку «ОК» в окне «Expression Editor» и кнопку «ОК» в окне «Table - Filters»;
- при формировании отчета перед выводом документа на экран появится колонка с параметром в качестве параметра (рис. 5.8).
Создание каскадного параметра
[править]Если список значений параметра зависит от значения другого параметра, отчёт собирает необходимое значение параметра и использует его для создания списка значений для второго параметра. Такой каскад значений параметров иногда называют зависимыми, связанными или иерархическими параметрами. Чтобы создать каскадные параметры на странице или в отчёте RDLX, выполните следующие действия.
- для создания каскадного параметра на первом этапе создается простой параметр, при этом все этапы полностью повторяют пп. 5.2-5.3
- создаем новый набор данных «FilterFio» с таким же или более коротким SQL-запросом;
- создаем параметр «ReportParameterFio» (с принимаемым из набора данных значением «fio»);
- при необходимости фильтрации таблицы по данному критерию подключаем созданный параметр к таблице с общим значением параметра «=[fio] In (=Parameters!ReportParameterFio.Value)»;
- если значение ФИО нужно только для однократного вывода на экран (например, для подписи документа), то шаг подключения параметра к таблице пропускается;
- в результате создается второй параметр со значениями, не зависящими от первого;
- для добавления зависимости необходимо в дереве отчета выбрать набор данных «FilterFio» правой кнопкой выбрать пункт меню «Edit» (рис. 5.9);
- в отрывшемся окне в левой части выбрать раздел «DataSet - Parameters» и нажать на кнопку «+» (рис. 5.10);
- в отрывшемся окне в поле «Name» (рис. 5.11) ввести имя параметра (например, «SelectedLaboratory»);
- в поле «Value» нажать стрелку меню и выбрать пункт «Expression…» (рис. 5.11);
- в левой части окна в области «Fields:» раскрыть группу «Parameters» и выбрать пункт «ReportParameterLaboratory» (рис. 5.12);
- двойным кликом или кнопкой «Append» добавить пункт «ReportParameterLaboratory» в область «Expression:» (рис. 5.12);
- нажать кнопку «OK»;
- в оставшемся открытым окне свойств набора данных в левой части окна выбрать раздел «DataSet - Query» (рис. 5.13);
- в поле «Query:» в конце запроса добавить условие «WHERE fio In (@SelectedLaboratory)» (рис. 5.13);
- таким образом, итоговые записи данного запроса будут браться не напрямую из набора данных БД, а после предварительной фильтрации на основе лаборатории, выбранной в первом параметре;
- в результате (рис. 5.14) связанный параметр функции не активен, пока не будет определено значение основного параметра лаборатории.