Этот оператор создает действие, которое открывает форму в печатном представлении.
Формат
В этом операторе можно задать формат, в который будут преобразованы данные формы перед отображении информации пользователю : DOC, DOCX, XLS, XLSX, PDF, HTML, RTF.
По умолчанию, если в печатном представлении задан формат, клиент после получения файла в заданном формате пытается открыть этот файл средствами ОС (то есть при помощи программы, ассоциированной с указанным форматом). Впрочем, при необходимости, можно вместе с форматом дополнительно задать свойство, в которое будет записан файл с сформированным отчетом, и тогда данные вообще не будут пересылаться клиенту, а вся обработка будет происходить исключительно на сервере.
Интерактивное печатное представление
В печатном представлении, кроме выгрузки в заданном формате, также существует возможность отобразить информацию пользователю в следующих интерактивных режимах:
- Предпросмотр (PREVIEW) - форма на клиенте будет показана в новом окне в режиме предварительного просмотра, и пользователь сможет самостоятельно выбрать, в какой формат экспортировать эту форму и / или отправить ее на печать. Этот режим используется по умолчанию, если другие режимы / форматы не заданы.
- Печать на принтере (NOPREVIEW) - форма автоматически будет распечатана на принтере. В этом и предыдущем режиме, можно задать свойство, значение которого будет использовано для определения принтера, на котором необходимо распечатать открываемую форму (если этого не сделать будет использован принтер по умолчанию).
- Сообщение (MESSAGE) - форма будет показана в виде сообщения. В этом случае предполагается, что форма состоит из одной группы объектов. Соответственно, показываемое сообщение состоит из заголовка, где отображаются все свойства с пустой группой отображения, и таблицы, у которой рядами являются наборы объектов этой единственной группы объектов, а колонками - свойства, которые не попали в заголовок (то есть у которых группа отображения существует и совпадает с единственной группой объектов открываемой формы). Оператор работающий в этом режиме, по сути, является обобщением оператора показа сообщения. Стоит отметить, что именно этот режим работы оператора используется в ограничениях (при показе пользователю объектов, для которых было нарушено ограничение).
Также как и в интерактивном представлении, в интерактивных режимах печатного представления разработчик может задавать опции управления потоком и расположения форм (их поведение аналогично соответствующим опциям в операторе открытия формы в интерактивном представлении).
В текущей реализации: в режиме MESSAGE форма всегда показывается как окно (при этом опция "асинхронное окно" поддерживается), в режиме асинхронный PREVIEW форма всегда показывается как закладка, в режиме синхронный PREVIEW - как окно. Режим NOPREVIEW всегда асинхронный, расположение форм в нем не имеет смысла (так как никакая форма непосредственно пользователю не показывается)
Язык
Синтаксис оператора открытия формы в печатном представлении описывается оператором PRINT.
Примеры
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';
}