Skip to end of metadata
Go to start of metadata

Печатное представление формы состоит из набора шаблонов (отчетов), при подстановке данных в которые происходит формирование документа в графическом формате (с пиксельным позиционированием) или псевдографическом (с позиционированием по ячейкам). Этот документ отображается пользователю при помощи специального графического компонента, внутри которого пользователь может осуществлять навигацию по страницам, приближение/отдаление внутри страниц, а также выводить содержимое компонента на печать или экспортировать в различные форматы (например PDF или Excel). При необходимости отображение компонента пользователю можно пропустить, и сразу отправить документ на печать или сохранить в выбранный файл в заданном формате.

Для каждого отчета определяется набор групп объектов формы, которые он будет отображать.

Иерархия отчетов

Также как и у группы объектов, у каждого отчета есть родительский отчет, таким образом все отчеты образуют иерархию. При этом иерархия отчетов должна :

  • включать в себя иерархию групп объектов, то есть если группа объектов одного отчета является потомком группы объектов второго отчета,  то первый отчет должен совпадать со вторым отчетом или также являться его потомком
  • внутри одного отчета у каждой группы объектов должен быть ровно один потомок.

Построение иерархии отчетов

Как следует из ограничений на иерархию отчетов, в один отчет можно включать только "цепочки" групп объектов (то есть, G1, G2, G3, ... Gn,  где G2 - единственный прямой потомок G1, G3 - единственный прямой потомок G2 и т.д.). Соответственно решение о том, как разбивать группы объектов на отчеты сводится к тому, надо ли сливать группу объектов с ее единственным прямым потомком (при наличии такого) или нет. По умолчанию, такое слияние выполняется, однако, при необходимости, разработчик может запретить его задав соответствующую опцию (SUBREPORT) для группы объектов-потомка.

Использование этой опции сводится к тому, нужно ли отображать данные для группы объектов-родителя при отсутствии данных в группе объектов-потомке.

Пример построения иерархии отчетов

Форма такая же как и в примере построения иерархии групп объектов:

1
2
3
4
5
6
  
FORM myForm 'myForm'
    OBJECTS A, B SUBREPORT, C, D, E
    PROPERTIES f(B, C), g(A, C)
    FILTERS c(E) = C, h(B, D) 
;

Иерархия отчетов для этой формы будет построена следующим образом:


Язык

Использование всех вышеперечисленных возможностей, как и задание структуры формы, осуществляется при помощи инструкции FORM.

Открытие формы

Для отображения формы в печатном представлении используется соответствующий оператор открытия формы в печатном представлении.

Примеры

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 FORM printOrder
    OBJECTS o = Order
    PROPERTIES(o) currency, customer
    
    OBJECTS d = OrderDetail
    PROPERTIES(d) idSku, price
    FILTERS order(d) == o
;

print (Order o)  { 
    PRINT printOrder OBJECTS o = o; // выводим на печать
    
    LOCAL file = FILE (); 
    PRINT printOrder OBJECTS o = o DOCX TO file;
    open(file()); 
    
    //v 2.0-2.1 syntax
    LOCAL sheetName = STRING[255]();
    sheetName() <- 'enctypted';
    PRINT printOrder OBJECTS o = o XLS SHEET sheetName PASSWORD 'pass';
    
    //v 2.2 syntax
    //PRINT printOrder OBJECTS o = o XLS SHEET 'enctypted' PASSWORD 'pass';
}

  • No labels