|
Отдел технической поддержки дата обновления 07.08.2024 |
|
"Параметры отчетов"НазначениеПараметры введены в генератор отчетов для выполнения арифметических операция вычислений. Самым простым примером являются вывод порядкового номера строки в таблице спецификации изделий и вычисления сумм отдельных столбцов. В каждом отчете можно определить до 256 динамических параметров. Параметр имеет ограничение по длине в 32 символа. Параметр должен начинаться с буквы, но может содержать цифры и символ '_'. Типы параметровПараметры бывают четырех типов:AsInteger - целое значение AsFloat - вещественное значение AsDate - значение типа дата.время AsString - строковое значение С числовыми параметрами возможно проведение арифметических операций с использованием арифметических, тригонометрических функций, а также всех числовых параметров. Для вывода и подстановки целочисленных значений параметров AsInteger можно использовать упрощенный синтаксис: AsInt, для подстановки строк без кавычек используется тип вывода AsText, а для подстановки даты/времени без кавычек: AsDateX. Стоит отметить, что подстановка значения параметра даты/времени происходит в соответствие с установленным форматом командой ~Формат_Даты:dd.mm.yy время hh:nn~. Значение по умолчанию: ~Формат_Даты:dd.mm.yy~. Формат команд работы с параметрами<!-- определение строкового параметра и присвоение значения -->~AsString:параметр=текст~ <!-- определение числового параметра и вычисление значения --> ~AsInteger:параметр=арифметическое_выражение~ ~AsFloat:параметр=арифметическое_выражение~ <!-- вывод значения параметра в отчет --> ~AsInteger:Параметр~ ~AsFloat:Параметр~ ~AsDate:Параметр~ ~AsString:Параметр~ <!-- определение параметра и присвоение ему значения поля из цикла --> ~Цикл:ПодставляемоеПоле:Тип:Параметр~ ~Цикл:Поле:Тип:Параметр~ Подстановка параметров строк и даты/времениДля понимания того, как вывод значения параметров строк и даты/времени зависит от синтаксиса генератора отчётов, приведём основные назначения этих подстановок:1. Подстановка в SQL-запрос с условиями проверки строки и даты с кавычками: ~SQL1:Установить:SELECT * FROM ListPrj WHERE (kName=:Заказчик.AsString:)AND(pDate=:Дата.AsDate:)~ транслируется в строку, например: ~SQL1:Установить:SELECT * FROM ListPrj WHERE (kName='ИВАНОВ')AND(pDate='28.08.15')~ 2. Подстановка в текст без кавычек, например, договора: Настоящий договор составлен с покупателем ~AsString:Заказчик~ о поставке... Дата договора ~AsDate:Дата~. транслируется в строку, например: Настоящий договор составлен с покупателем ИВАНОВ о поставке... Дата договора 27.02.15. 3. Подстановка значений строковых параметров без кавычек в различные команды, например, управление отчётом: ~Отчет:Сохранить_в_файл:ИмяФайла.AsText~ ~Установить.Статус.Проекта:pUnic.AsInt:Статус.AsText~ 4. Подстановка строк и даты/времени без кавычек в команды вывода данных модуля генератора PDF-отчётов: ~PDF:TEXT:0:0:50:5:Статус.AsText~ ~PDF:TEXT:0:0:50:5:Дата.AsDateX~ ВНИМАНИЕ ! Более свежую и подробную информацию о синтаксисе параметров, арифметических функций и выражений, а также оптимизации их применения можно получить непосредственно от службы технической поддержки. Примеры<!-- Вывод расхода чистого материала по проекту. Под погонажем в этом отчете понимается суммарное количество материала по всему проекту на каждый комплектующий. --><TABLE style="border-collapse: collapse" border=1 bordercolor=#0> <TR><!-- заголовок таблицы --> <TD align=center>№</TD> <TD align=center>Артикул</TD> <TD align=center>Название</TD> <TD align=center>Текстура</TD> <TD align=center>Погонаж</TD> <TD align=center>Ед.Изм.</TD> </TR> ~AsInteger:Номер=0~ <!-- цикл спецификации --> ~Спецификация:Запрос:Погонаж~ ~Спецификация:НАЧАЛО~ ~AsInteger:Номер=Номер+1~ <TR> <TD align=center>~AsInteger:Номер~</TD> <TD align=left>~Спецификация:Артикул~</TD> <TD align=left>~Спецификация:Название~</TD> <TD align=left>~Спецификация:Текстура~</TD> <TD align=center>~Спецификация:Общий_погонаж~</TD> <TD align=center>~Спецификация:Ед.изм.~</TD> </TR> ~Спецификация:КОНЕЦ~ </TABLE> Выходной отчет будет иметь примерный вид:
<!-- Просмотр получившихся остатков при раскрое профилей по заказу с выводом нормы делового остатка, указанной в материальных ценностях --> <TABLE style="border-collapse: collapse" border=1 bordercolor=#0> <TR><!-- заголовок таблицы --> <TD align=center>Артикул</TD> <TD align=center>Название</TD> <TD align=center>Текстура</TD> <TD align=center>Остаток, мм</TD> <TD align=center>Норма, мм</TD> </TR> ~Оптимизация.Профили:НАЧАЛО~ <!-- вводим параметр 'Арт№' и присваиваем ему значение артикула --> ~Оптимизация.Профили:Артикул:AsString:Арт№~ <!-- из материальных ценностей получаем норму делового остатка в параметр 'норма'; в запрос подставляем строковый параметр 'Арт№' --> ~SQL1:УСТАНОВИТЬ:SELECT aOstD FROM Artikls~ ~SQL1:ДОБАВИТЬ:WHERE aNumb=:Арт№.AsString~ ~SQL1:НАЧАЛО~ ~SQL1:aOstD:AsFloat:норма~ ~SQL1:КОНЕЦ~ <TR> <TD align=left>~Оптимизация.Профили:Артикул~</TD> <TD align=left>~Оптимизация.Профили:Название~</TD> <TD align=left>~Оптимизация.Профили:Текстура~</TD> <TD align=center>~Оптимизация.Профили:Длина_остатка,_мм~</TD> <TD align=center>~AsFloat:норма~</TD> </TR> ~Оптимизация.Профили:КОНЕЦ~ </TABLE> Выходной отчет будет иметь примерный вид:
|