5.5.1.2. TXT-шаблоны (.txt)¶
TXT-шаблон — текстовый файл, который заполняется подстановками и макроязыком. Формат удобен для быстрой печати и простого контроля результата.
Если в данном разделе встречается пометка “не подтверждено”, это означает:
Функциональность отчетов, работавшая в Global 1, может не работать при построении отчета на сервере приложений Global.
Работу функциональности необходимо проверить на реальном решении для сервера приложений Global.
5.5.1.2.1. Базовая разметка¶
Теги в TXT-шаблонах:
Подстановка значения:
[#AttributeName#]Открытие секции:
[#&SectionName#]Закрытие секции (после имени может быть макрокод):
[#/SectionName <macro code>#]
Если атрибут не найден, значение заменяется на пустую строку.
Для обращения к мастер-выборке используйте super$:
[#super$AttributeName#]
5.5.1.2.2. Секции и SQL¶
Открывающий тег может ссылаться на выборку или содержать SQL:
Выборка:
[#&EntityName.Representation#]SQL:
[#&SectionName = select ...#]
Тело секции повторяется для каждой строки выборки.
5.5.1.2.3. Многострочный открывающий тег¶
Added in version v1.27.0-ms17.
Открывающий тег можно разнести на несколько строк подряд:
[#&SectionName = select ...
... продолжение ...
... продолжение ... #]
Правила:
[#&должен быть в начале строки (допускаются пробелы слева).Закрывающий
#]должен встретиться в одной из следующих строк.Эти строки являются частью открывающего тега и не попадают в результат.
5.5.1.2.4. Встроенные функции (макроязык)¶
Функции применяются внутри тегов, например [#FNum(nPrice,2)#].
Поддерживается вложение функций.
Доступные функции:
NVL(attr, text)FNUM(attr, digits)LPAD(attr, width)RPAD(attr, width)NumberToStrRUS(attr)ParamValueByName(param)RowNum()RowCount()Date()Time()DateTime()SUM(attr, param)Set(value, param)Multiply(a, b)Divide(a, b)Minus(a, b)Plus(a, b)Percent(a, b)
Ограничения макроязыка в AS:
Changed in version v1.27.0-ms17: Литералы в параметрах функций поддерживаются. Пример: Plus(10, 10).
SUMиSetдопустимы только в закрывающем теге секции, допускается несколько команд, разделенных;.
5.5.1.2.5. Пример¶
[#&MainSelect = select t.ID, t.dDocDate, t.fSumm, t.nDocNum from DemoReport t#]
[#nDocNum#] от [#dDocDate#]
Позиции документа:
[#&ChildSelect = select t.ID, t.IDDemoReport, t.fSumma, t.nCount
from DemoReportCollection t
where t.IDDemoReport = :super$id#]
| [#RPad(sName,25)#] | [#LPad(FNum(nCount,2),14)#] | [#LPad(fSumma,14)#] |
[#/ChildSelect Sum(nCount, ResultCount); Sum(fSumma, ResultSumma)#]
ИТОГО: [#FNum(ResultSumma, 2)#] ([#NumberToStrRUS(ResultSumma)#])
[#/MainSelect#]
5.5.1.2.6. Параметры отчета¶
Некоторые параметры из Global 1 (CurrentSession, PassByDataSet, FileName)
в AS не подтверждены. Требуется проверка в целевом решении.