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 не подтверждены. Требуется проверка в целевом решении.