|
|
| Строка 1: |
Строка 1: |
| ==Общие сведения==
| |
| В отчетах возможно:
| |
| *использовать параметры для фильтрации или добавления данных, отображаемых в отчётах;
| |
| *запрашивать у пользователей параметры, чтобы они могли управлять выводом;
| |
| *задавать параметры автоматически.
| |
|
| |
|
| ==Создание простого параметра==
| |
| *добавить еще один [[Набор_данных|<code>DataSet</code>]] (п. 1.4, рис. 1.5-1.10), например, <code>FilterLaboratory</code>;
| |
| *в качестве SQL-запроса в поле <code>Query</code> набора данных <code>FilterLaboratory</code> можно использовать SQL-запрос из набора данных <code>MainDataSet</code> или, по возможности, его упрощенный вариант (исключение неиспользуемых полей и соединений таблиц);
| |
| *добавить параметр в дереве отчета (рис. 5.1);
| |
| [[Файл:Parameter.png|center]]
| |
| *в открывшемся окне на вкладке <code>General</code> (рис. 5.2)
| |
| **в поле <code>Name</code> ввести название параметра, например, <code>ReportParameterLaboratory</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>From query</code> (по умолчанию – <code>Non-queried</code>);
| |
| **в поле <code>Dataset:</code> выбрать используемый набор данных <code>FilterLaboratory</code>;
| |
| **в полях <code>Value field:</code> и <code>Label field:</code> установить необходимое поле из набора данных (например, <code>lab_name</code>);
| |
| **в поле <code>Condition:</code> установить значение <code>Value</code> или <code>Label</code> (если в полях <code>Value field:</code> и <code>Label field:</code> указано одно и то же значение, то любой вариант);
| |
| **в поле <code>Direction:</code> указать желаемый вариант сортировки (<code>Ascending</code> – по возрастанию, <code>Descending</code> – по убыванию);
| |
| **нажать <code>OK</code>.
| |
| [[Файл:Parameter3.png|center|thumb]]
| |
|
| |
| ==Подключение параметра к таблице==
| |
| *выделить таблицу на основном поле конструктора или в дереве;
| |
| *нажать на кнопку диалогового окна свойств <code>Property dialog…</code>;
| |
| *в открывшемся окне в левом столбце перейти на вкладку <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);
| |
| [[Файл:Parameter5.png|center|thumb]]
| |
| *в поле <code>Operator:</code> выбрать оператор <code>Equal</code> (рис. 5.6);
| |
| [[Файл:Parameter6.png|center|thumb]]
| |
| *в разделе <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);
| |
| [[Файл:Parameter7.png|center|thumb]]
| |
| *двойным кликом или кнопкой <code>Append</code> добавить пункт <code>ReportParameterLaboratory</code> в область <code>Expression:</code>;
| |
| *нажать кнопку <code>ОК</code> в окне <code>Expression Editor</code>;
| |
| *нажать кнопку <code>ОК</code> в окне <code>Table - Filters</code>;
| |
| *при формировании отчета перед выводом документа на экран появится колонка с параметром в качестве параметра (рис. 5.8).
| |
| [[Файл:Parameter8.png|center]]
| |
|
| |
| ==Создание каскадного параметра==
| |
| Если список значений параметра зависит от значения другого параметра, отчёт собирает необходимое значение параметра и использует его для создания списка значений для второго параметра.
| |
| Такой каскад значений параметров иногда называют зависимыми, связанными или иерархическими параметрами.
| |
| Чтобы создать каскадные параметры на странице или в отчёте, выполните следующие действия:
| |
| *для создания каскадного параметра на первом этапе создается [[простой параметр]]
| |
| **создаем новый набор данных <code>FilterFio</code> с таким же или более коротким SQL-запросом;
| |
| **создаем параметр <code>ReportParameterFio</code> (с принимаемым из набора данных значением <code>fio</code>);
| |
| **при необходимости фильтрации таблицы по данному критерию подключаем созданный параметр к таблице с общим значением параметра <code>=[fio] In (=Parameters!ReportParameterFio.Value)</code>;
| |
| **если значение ФИО нужно только для однократного вывода на экран (например, для подписи документа), то шаг подключения параметра к таблице пропускается;
| |
| *в результате создается второй параметр со значениями, не зависящими от первого;
| |
| *для добавления зависимости необходимо в дереве отчета выбрать набор данных <code>FilterFio</code> правой кнопкой выбрать пункт меню <code>Edit</code>;
| |
| [[Файл:Parameter9.png|center]]
| |
| *в отрывшемся окне в левой части выбрать раздел <code>DataSet - Parameters</code> и нажать на кнопку <code>+</code>;
| |
| [[Файл:Parameter10.png|center|thumb]]
| |
| *в отрывшемся окне в поле <code>Name</code> ввести имя параметра (например, <code>SelectedLaboratory</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>DataSet - Query</code>;
| |
| [[Файл:Parameter13.png|center|thumb]]
| |
| *в поле <code>Query:</code> в конце запроса добавить условие <code>WHERE fio In (@SelectedLaboratory)</code>;
| |
|
| |
| Таким образом, итоговые записи данного запроса будут браться не напрямую из набора данных БД, а после предварительной фильтрации на основе лаборатории, выбранной в первом параметре.
| |
|
| |
| В результате связанный параметр функции не активен, пока не будет определено значение основного параметра лаборатории.
| |
| [[Файл:Parameter14.png|center]]
| |
|
| |
|
| |
| [[Category:Внутренняя документация]]
| |
| [[Category:Тритея]]
| |
| [[Category:Дизайнер_документов]]
| |