Параметры: различия между версиями
Внешний вид
Sonikku (обсуждение | вклад) Нет описания правки |
|||
| (не показаны 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> | *нажать на кнопку диалогового окна свойств <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]] | |||
==Создание каскадного параметра== | ==Создание каскадного параметра== | ||
Если список значений параметра зависит от значения другого параметра, отчёт собирает необходимое значение параметра и использует его для создания списка значений для второго параметра. | Если список значений параметра зависит от значения другого параметра, отчёт собирает необходимое значение параметра и использует его для создания списка значений для второго параметра. | ||
Такой каскад значений параметров иногда называют зависимыми, связанными или иерархическими параметрами. | Такой каскад значений параметров иногда называют зависимыми, связанными или иерархическими параметрами. | ||
Чтобы создать каскадные параметры на странице или в отчёте, выполните следующие действия | Чтобы создать каскадные параметры на странице или в отчёте, выполните следующие действия: | ||
*для создания каскадного параметра на первом этапе создается простой параметр | *для создания каскадного параметра на первом этапе создается [[простой параметр]] | ||
**создаем новый набор данных <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> | *для добавления зависимости необходимо в дереве отчета выбрать набор данных <code>FilterFio</code> правой кнопкой выбрать пункт меню <code>Edit</code>; | ||
*в отрывшемся окне в левой части выбрать раздел <code>DataSet - Parameters</code> и нажать на кнопку <code>+</code> | [[Файл:Parameter9.png|center]] | ||
*в отрывшемся окне в поле <code>Name</code> | *в отрывшемся окне в левой части выбрать раздел <code>DataSet - Parameters</code> и нажать на кнопку <code>+</code>; | ||
*в поле <code>Value</code> нажать стрелку меню и выбрать пункт <code>Expression…</code> | [[Файл:Parameter10.png|center|thumb]] | ||
*в левой части окна в области <code>Fields:</code> раскрыть группу <code>Parameters</code> и выбрать пункт <code>ReportParameterLaboratory</code> | *в отрывшемся окне в поле <code>Name</code> ввести имя параметра (например, <code>SelectedLaboratory</code>); | ||
*двойным кликом или кнопкой <code>Append</code> добавить пункт <code>ReportParameterLaboratory</code> в область <code>Expression:</code> | [[Файл: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> | *в оставшемся открытым окне свойств набора данных в левой части окна выбрать раздел <code>DataSet - Query</code>; | ||
*в поле <code>Query:</code> в конце запроса добавить условие <code>WHERE fio In (@SelectedLaboratory)</code> | [[Файл:Parameter13.png|center|thumb]] | ||
*в поле <code>Query:</code> в конце запроса добавить условие <code>WHERE fio In (@SelectedLaboratory)</code>; | |||
Таким образом, итоговые записи данного запроса будут браться не напрямую из набора данных БД, а после предварительной фильтрации на основе лаборатории, выбранной в первом параметре. | Таким образом, итоговые записи данного запроса будут браться не напрямую из набора данных БД, а после предварительной фильтрации на основе лаборатории, выбранной в первом параметре. | ||
В результате | В результате связанный параметр функции не активен, пока не будет определено значение основного параметра лаборатории. | ||
[[Файл: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);
Таким образом, итоговые записи данного запроса будут браться не напрямую из набора данных БД, а после предварительной фильтрации на основе лаборатории, выбранной в первом параметре.
В результате связанный параметр функции не активен, пока не будет определено значение основного параметра лаборатории.
