Параметры шаблона
Общие сведения
Параметры документа предназначены для пользователей и помогают установить каких-либо исходные данные при построении документа из шаблона.
Например, периода создания (дата от\до), места отбора пробы, шифр пробы, ФИО исполнителя и т.д.
Все параметры шаблона имеют заранее определённое имя пользователем, тип данных и значение по умолчанию.
Шаблон документа может содержать произвольное количество параметров, которые выбираются из выпадающего списка или вводятся с клавиатуры человеком самостоятельно.
Параметры позволяют создавать однотипные документы на основе одного шаблона.
Параметры документа связаны между собой логическими ограничениями, которые были определены настройщиком. Т.е. установка одного параметра может автоматическим каскадом вызывать установку множества зависимых параметров.
Для выполнения автоматической генерации этого же самого шаблона (через скрипты), так же указываются необходимые входные параметры и запускается генерация. Процесс генерации отчетов для ручного и автоматического режима одинаков.
В отчетах возможно:
- использовать параметры для фильтрации или добавления данных, отображаемых в отчётах;
- запрашивать у пользователей параметры, чтобы они могли управлять выводом;
- задавать параметры автоматически.
Создание простого параметра
- добавить еще один
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);
Таким образом, итоговые записи данного запроса будут браться не напрямую из набора данных БД, а после предварительной фильтрации на основе лаборатории, выбранной в первом параметре.
В результате связанный параметр функции не активен, пока не будет определено значение основного параметра лаборатории.
