Перейти к содержанию

Параметры: различия между версиями

Материал из wiki.chemsoft.ru
Нет описания правки
Строка 18: Строка 18:
**в поле «Direction:» указать желаемый вариант сортировки («Ascending» – по возрастанию, «Descending» – по убыванию);  
**в поле «Direction:» указать желаемый вариант сортировки («Ascending» – по возрастанию, «Descending» – по убыванию);  
**нажать «OK».
**нажать «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);
==Создание связанного фильтра==
 для создания связанного фильтра на первом этапе создается простой фильтр, при этом все этапы полностью повторяют пп. 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) связанный фильтр функции не активен, пока не будет определено значение основного фильтра лаборатории.

Версия от 07:13, 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);

Создание связанного фильтра

 для создания связанного фильтра на первом этапе создается простой фильтр, при этом все этапы полностью повторяют пп. 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) связанный фильтр функции не активен, пока не будет определено значение основного фильтра лаборатории.