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