5.5.1.1. Excel-шаблоны (.xls, .xlsx, .xlsm)¶
В ApplicationServer используется прямое заполнение шаблона через Aspose.Cells. OLE Automation (заполнение через MS Excel) не используется.
Если в данном разделе встречается пометка “не подтверждено”, это означает:
Функциональность отчетов, работавшая в Global 1, может не работать при построении отчета на сервере приложений Global.
Работу функциональности необходимо проверить на реальном решении для сервера приложений Global.
5.5.1.1.1. Базовая разметка¶
Теги в Excel-шаблонах:
Подстановка значения:
[#AttributeName#]Открытие секции:
[#&SectionName#]Закрытие секции (после имени может быть макрокод):
[#/SectionName <macro code>#]
Если атрибут не найден, значение заменяется на пустую строку.
Для обращения к мастер-выборке используйте super$:
[#super$AttributeName#]
5.5.1.1.2. Секции и SQL¶
Открывающий тег может ссылаться на выборку или содержать SQL:
Выборка:
[#&EntityName.Representation#]SQL:
[#&SectionName = select ...#]
Тело секции повторяется для каждой строки выборки.
5.5.1.1.3. Многострочный открывающий тег¶
Added in version v1.27.0-ms17.
Для длинных SQL-разметок открывающий тег секции можно разнести по нескольким строкам в одном столбце:
A1: [#&SectionName = select ...
A2: ... продолжение ...
A3: ... продолжение ... #]
Правила:
[#&должен начинаться в ячейке (допускаются пробелы перед ним).Продолжение размещается в ячейках ниже того же столбца.
Закрывающий
#]находится в одной из строк продолжения.Эти строки не попадают в результат (они являются частью открывающего тега).
5.5.1.1.4. Подстановка значений в ячейках¶
Если ячейка содержит только один тег, значение записывается с типом (число, дата, boolean и т.д.).
Если в ячейке есть текст и теги вместе, теги заменяются строковыми значениями, результат записывается как строка.
5.5.1.1.5. Размножаемые колонки¶
Поддерживается синтаксис param[*] для размножения колонок. Колонка
копируется по количеству ключей param[<key>] в выборке.
Note
Поддержка нескольких тегов в одной ячейке при использовании param[*]
не подтверждена в AS и требует проверки.
5.5.1.1.6. Встроенные функции (макроязык)¶
Функции применяются внутри тегов, например [#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.1.7. Макросы Excel¶
AS сохраняет содержимое шаблона, но выполнение макросов на стороне сервера
не производится. Поддержка VBA-макросов в .xlsm и перенос макросов
в итоговый файл не подтверждены и должны быть проверены в целевом решении.
5.5.1.1.8. Пример (текстовое представление)¶
A1: [#&Orders = select ...#]
A2: [#OrderId#] [#OrderDate#] [#Total#]
A3: [#/Orders#]