Создание шаблона отчёта


В модуле реализована возможность формировать документы(файлы) двух типов: Документы формата DPF и электронных таблиц(XLSX).


Подготовка шаблона для отчёта формата PDF происходит в FastReport Designer Community Edition(существует только для MS Windows). Актуальную версию можно загрузить по ссылке.


  1. Открыть приложение для работы с электронными таблицами.
  2. Создайте новый лист с именем Source (регистр значения не имеет).

  3. В созданном листе, в ячейке A1 задайте произвольное имя(без пробела). Это имя будет использоваться в табличном теге, в ячейке B1 напишите SQL запрос. При использовании нескольких запросов их можно задать в следующей строке, важно что бы имя не повторялось.

# A B
1 Users select user_id, name from sequrityusers
2 Now select to_char(now(), 'dd.mm.yyyy hh24:mm')
3 ... ...
  1. Создайте ещё одной лист с произвольным именем и разместите на нём теги.

  2. Сохраните документ в формат XLSX.

Для подготовки шаблона для отчёта формата XLSX, можно воспользоваться MS Excel(входящим в пакет MS Office) Calc из LibreOffce, или одним из многих аналогов:


Для вставки полученных данных в шаблон используются теги. Теги бывают двух типов: строчные и табличные. Табличные теги начинаются с символа @, строчные с символа $. Табличные теги, подменяются на таблицу, полученную в результате выполнения SQL запроса и могут быть использованы только на странице. Строчное теги, содержать одно, скалярное значение(строка\число\дата) и могу быть использованы на странице и в имени листа. Строчные теги передаются в шаблон через параметры. Пример табличного тега выводящего данные в горизонтальную таблицу:

# A B
1 <@Users Part=Head Direction=Horizontal>
2 <@Users Part=Body Direction=Horizontal>
3

Пример табличного тега выводящего данные в вертикальную таблицу:

# A B
1 <@Users Part=Head Direction=Vertical> <@Users Part=Body Direction=Vertical>
2

Для вывода значения одной ячейки, используются в паре параметры Row и Column. Нумерация начинается с единицы

# A
1 <@Users Row=4 Column=2>

Пример применения строчного тега:

# A
1 <$DtBegin> — <$DtEnd>

Для использования параметров в запросах, которые объявлены на листе Source, используются конструкция: @имя_параметра. Регистр имеет значение.

Пример:

1SELECT pn FROM store WHERE stored_date BETWEEN @DtBegin AND @DtEnd;