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

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

Материал из Химсофт Вики
Нет описания правки
 
(не показаны 4 промежуточные версии 1 участника)
Строка 9: Строка 9:
*в качестве SQL-запроса в поле <code>Query</code> набора данных <code>FilterLaboratory</code> можно использовать SQL-запрос из набора данных <code>MainDataSet</code> или, по возможности, его упрощенный вариант (исключение неиспользуемых полей и соединений таблиц);
*в качестве SQL-запроса в поле <code>Query</code> набора данных <code>FilterLaboratory</code> можно использовать SQL-запрос из набора данных <code>MainDataSet</code> или, по возможности, его упрощенный вариант (исключение неиспользуемых полей и соединений таблиц);
*добавить параметр в дереве отчета (рис. 5.1);
*добавить параметр в дереве отчета (рис. 5.1);
[[Файл:Parameter.png|center]]
*в открывшемся окне на вкладке <code>General</code> (рис. 5.2)  
*в открывшемся окне на вкладке <code>General</code> (рис. 5.2)  
**в поле <code>Name</code> ввести название параметра, например, <code>ReportParameterLaboratory</code> (по умолчанию –  <code>ReportParameter1</code>);
**в поле <code>Name</code> ввести название параметра, например, <code>ReportParameterLaboratory</code> (по умолчанию –  <code>ReportParameter1</code>);
**в поле <code>Text for prompting users for a value:</code> ввести текст-приглашение для выбора значения пользователем, например, «Выберите лабораторию:» (по умолчанию – <code>ReportParameter1</code>);
**в поле <code>Text for prompting users for a value:</code> ввести текст-приглашение для выбора значения пользователем, например, «Выберите лабораторию:» (по умолчанию – <code>ReportParameter1</code>);
[[Файл:Parameter2.png|center|thumb]]
*в открывшемся окне на вкладке <code>General</code> (рис. 5.3)  
*в открывшемся окне на вкладке <code>General</code> (рис. 5.3)  
**установить переключатель в значение <code>From query</code> (по умолчанию – <code>Non-queried</code>);
**установить переключатель в значение <code>From query</code> (по умолчанию – <code>Non-queried</code>);
Строка 19: Строка 21:
**в поле <code>Direction:</code> указать желаемый вариант сортировки (<code>Ascending</code> – по возрастанию, <code>Descending</code> – по убыванию);  
**в поле <code>Direction:</code> указать желаемый вариант сортировки (<code>Ascending</code> – по возрастанию, <code>Descending</code> – по убыванию);  
**нажать <code>OK</code>.
**нажать <code>OK</code>.
[[Файл:Parameter3.png|center|thumb]]


==Подключение параметра к таблице==
==Подключение параметра к таблице==
*выделить таблицу на основном поле конструктора или в дереве;
*выделить таблицу на основном поле конструктора или в дереве;
*нажать на кнопку диалогового окна свойств <code>Property dialog…</code> (рис. 4.17);
*нажать на кнопку диалогового окна свойств <code>Property dialog…</code>;
*в открывшемся окне в левом столбце перейти на вкладку <code>Table - Filters</code> и нажать на кнопку <code>+</code> (рис. 5.4);
*в открывшемся окне в левом столбце перейти на вкладку <code>Table - Filters</code> и нажать на кнопку <code>+</code> (рис. 5.4);
[[Файл:Parameter4.png|center|thumb]]
*в результате появится «пустой» параметр, не имеющий свойств;
*в результате появится «пустой» параметр, не имеющий свойств;
*для добавления свойств нажать на стрелку поля <code>Expression</code> и в раскрывшемся списке выбрать поле из <code>DataSet</code> (например, <code>=Fields!lab_name.Value</code>), по которому будет проводиться группировка (рис. 5.5);
*для добавления свойств нажать на стрелку поля <code>Expression</code> и в раскрывшемся списке выбрать поле из <code>DataSet</code> (например, <code>=Fields!lab_name.Value</code>), по которому будет проводиться группировка (рис. 5.5);
[[Файл:Parameter5.png|center|thumb]]
*в поле <code>Operator:</code> выбрать оператор <code>Equal</code> (рис. 5.6);
*в поле <code>Operator:</code> выбрать оператор <code>Equal</code> (рис. 5.6);
[[Файл:Parameter6.png|center|thumb]]
*в разделе <code>Values</code> в поле <code>Expression</code> нажать стрелку меню и выбрать из списка значение <code>Expression…</code> (рис. 5.6);
*в разделе <code>Values</code> в поле <code>Expression</code> нажать стрелку меню и выбрать из списка значение <code>Expression…</code> (рис. 5.6);
*в открывшемся окне <code>Expression Editor</code> в левой части окна в области <code>Fields:</code> раскрыть группу <code>Parameters</code> и выбрать пункт <code>ReportParameterLaboratory</code> (рис. 5.7);
*в открывшемся окне <code>Expression Editor</code> в левой части окна в области <code>Fields:</code> раскрыть группу <code>Parameters</code> и выбрать пункт <code>ReportParameterLaboratory</code> (рис. 5.7);
[[Файл:Parameter7.png|center|thumb]]
*двойным кликом или кнопкой <code>Append</code> добавить пункт <code>ReportParameterLaboratory</code> в область <code>Expression:</code>;
*двойным кликом или кнопкой <code>Append</code> добавить пункт <code>ReportParameterLaboratory</code> в область <code>Expression:</code>;
*нажать кнопку <code>ОК</code> в окне <code>Expression Editor</code>;  
*нажать кнопку <code>ОК</code> в окне <code>Expression Editor</code>;  
*нажать кнопку <code>ОК</code> в окне <code>Table - Filters</code>;
*нажать кнопку <code>ОК</code> в окне <code>Table - Filters</code>;
*при формировании отчета перед выводом документа на экран появится колонка с параметром в качестве параметра (рис. 5.8).
*при формировании отчета перед выводом документа на экран появится колонка с параметром в качестве параметра (рис. 5.8).
[[Файл:Parameter8.png|center]]


==Создание каскадного параметра==
==Создание каскадного параметра==
Если список значений параметра зависит от значения другого параметра, отчёт собирает необходимое значение параметра и использует его для создания списка значений для второго параметра.
Если список значений параметра зависит от значения другого параметра, отчёт собирает необходимое значение параметра и использует его для создания списка значений для второго параметра.
Такой каскад значений параметров иногда называют зависимыми, связанными или иерархическими параметрами.
Такой каскад значений параметров иногда называют зависимыми, связанными или иерархическими параметрами.
Чтобы создать каскадные параметры на странице или в отчёте, выполните следующие действия.
Чтобы создать каскадные параметры на странице или в отчёте, выполните следующие действия:
*для создания каскадного параметра на первом этапе создается простой параметр, при этом все этапы полностью повторяют пп. 5.2-5.3
*для создания каскадного параметра на первом этапе создается [[простой параметр]]
**создаем новый набор данных <code>FilterFio</code> с таким же или более коротким SQL-запросом;
**создаем новый набор данных <code>FilterFio</code> с таким же или более коротким SQL-запросом;
**создаем параметр <code>ReportParameterFio</code> (с принимаемым из набора данных значением <code>fio</code>);
**создаем параметр <code>ReportParameterFio</code> (с принимаемым из набора данных значением <code>fio</code>);
Строка 44: Строка 52:
**если значение ФИО нужно только для однократного вывода на экран (например, для подписи документа), то шаг подключения параметра к таблице пропускается;
**если значение ФИО нужно только для однократного вывода на экран (например, для подписи документа), то шаг подключения параметра к таблице пропускается;
*в результате создается второй параметр со значениями, не зависящими от первого;
*в результате создается второй параметр со значениями, не зависящими от первого;
*для добавления зависимости необходимо в дереве отчета выбрать набор данных <code>FilterFio</code> правой кнопкой выбрать пункт меню <code>Edit</code> (рис. 5.9);
*для добавления зависимости необходимо в дереве отчета выбрать набор данных <code>FilterFio</code> правой кнопкой выбрать пункт меню <code>Edit</code>;
*в отрывшемся окне в левой части выбрать раздел <code>DataSet - Parameters</code> и нажать на кнопку <code>+</code> (рис. 5.10);
[[Файл:Parameter9.png|center]]
*в отрывшемся окне в поле <code>Name</code> (рис. 5.11) ввести имя параметра (например, <code>SelectedLaboratory</code>);
*в отрывшемся окне в левой части выбрать раздел <code>DataSet - Parameters</code> и нажать на кнопку <code>+</code>;
*в поле <code>Value</code> нажать стрелку меню и выбрать пункт <code>Expression…</code> (рис. 5.11);
[[Файл:Parameter10.png|center|thumb]]
*в левой части окна в области <code>Fields:</code> раскрыть группу <code>Parameters</code> и выбрать пункт <code>ReportParameterLaboratory</code> (рис. 5.12);
*в отрывшемся окне в поле <code>Name</code> ввести имя параметра (например, <code>SelectedLaboratory</code>);
*двойным кликом или кнопкой <code>Append</code> добавить пункт <code>ReportParameterLaboratory</code> в область <code>Expression:</code> (рис. 5.12);
[[Файл:Parameter11.png|center|thumb]]
*в поле <code>Value</code> нажать стрелку меню и выбрать пункт <code>Expression…</code>;
*в левой части окна в области <code>Fields:</code> раскрыть группу <code>Parameters</code> и выбрать пункт <code>ReportParameterLaboratory</code>;
[[Файл:Parameter12.png|center|thumb]]
*двойным кликом или кнопкой <code>Append</code> добавить пункт <code>ReportParameterLaboratory</code> в область <code>Expression:</code>;
*нажать кнопку <code>OK</code>;
*нажать кнопку <code>OK</code>;
*в оставшемся открытым окне свойств набора данных в левой части окна выбрать раздел <code>DataSet - Query</code> (рис. 5.13);
*в оставшемся открытым окне свойств набора данных в левой части окна выбрать раздел <code>DataSet - Query</code>;
*в поле <code>Query:</code> в конце запроса добавить условие <code>WHERE fio In (@SelectedLaboratory)</code> (рис. 5.13);
[[Файл:Parameter13.png|center|thumb]]
*в поле <code>Query:</code> в конце запроса добавить условие <code>WHERE fio In (@SelectedLaboratory)</code>;


Таким образом, итоговые записи данного запроса будут браться не напрямую из набора данных БД, а после предварительной фильтрации на основе лаборатории, выбранной в первом параметре.
Таким образом, итоговые записи данного запроса будут браться не напрямую из набора данных БД, а после предварительной фильтрации на основе лаборатории, выбранной в первом параметре.


В результате (рис. 5.14) связанный параметр функции не активен, пока не будет определено значение основного параметра лаборатории.
В результате связанный параметр функции не активен, пока не будет определено значение основного параметра лаборатории.
[[Файл:Parameter14.png|center]]
 
 
[[Category:Внутренняя документация]]
[[Category:Тритея]]
[[Category:Дизайнер_документов]]

Текущая версия от 04:51, 26 декабря 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…;
  • в открывшемся окне в левом столбце перейти на вкладку 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).

Создание каскадного параметра

Если список значений параметра зависит от значения другого параметра, отчёт собирает необходимое значение параметра и использует его для создания списка значений для второго параметра. Такой каскад значений параметров иногда называют зависимыми, связанными или иерархическими параметрами. Чтобы создать каскадные параметры на странице или в отчёте, выполните следующие действия:

  • для создания каскадного параметра на первом этапе создается простой параметр
    • создаем новый набор данных FilterFio с таким же или более коротким SQL-запросом;
    • создаем параметр ReportParameterFio (с принимаемым из набора данных значением fio);
    • при необходимости фильтрации таблицы по данному критерию подключаем созданный параметр к таблице с общим значением параметра =[fio] In (=Parameters!ReportParameterFio.Value);
    • если значение ФИО нужно только для однократного вывода на экран (например, для подписи документа), то шаг подключения параметра к таблице пропускается;
  • в результате создается второй параметр со значениями, не зависящими от первого;
  • для добавления зависимости необходимо в дереве отчета выбрать набор данных FilterFio правой кнопкой выбрать пункт меню Edit;
  • в отрывшемся окне в левой части выбрать раздел DataSet - Parameters и нажать на кнопку +;
  • в отрывшемся окне в поле Name ввести имя параметра (например, SelectedLaboratory);
  • в поле Value нажать стрелку меню и выбрать пункт Expression…;
  • в левой части окна в области Fields: раскрыть группу Parameters и выбрать пункт ReportParameterLaboratory;
  • двойным кликом или кнопкой Append добавить пункт ReportParameterLaboratory в область Expression:;
  • нажать кнопку OK;
  • в оставшемся открытым окне свойств набора данных в левой части окна выбрать раздел DataSet - Query;
  • в поле Query: в конце запроса добавить условие WHERE fio In (@SelectedLaboratory);

Таким образом, итоговые записи данного запроса будут браться не напрямую из набора данных БД, а после предварительной фильтрации на основе лаборатории, выбранной в первом параметре.

В результате связанный параметр функции не активен, пока не будет определено значение основного параметра лаборатории.