Оператор PRINT
Оператор PRINT - создание действия, открывающего форму в печатном представлении.
Синтаксис
PRINT [executionType]
formSpec
[FILTERS fexpr1, ..., fexprM]
[printOptions]
formSpec принимает один из двух следующих вариантов.
name [OBJECTS objName1 = expr1 [NULL], ..., objNameN = exprN [NULL]]
или:
classFormType className = expr [NULL]
printOptions принимает один из двух следующих вариантов.
Режим сообщения:
MESSAGE [syncType] [messageType]
[TOP topLimit] [OFFSET offsetLimit]
Интерактивный режим:
[format [SHEET sheetExpr] [PASSWORD passwordExpr] [TO filePropertyId]]
[previewMode]
[syncType]
[TO printerExpr]
Где topLimit и offsetLimit задаются одним из следующих способов:
limitExpr
или:
groupName1 = limitExpr1, ..., groupNameK = limitExprK
Описание
Оператор PRINT создает действие, открывающее указанную форму в печатном представлении. В блоке OBJECTS объектам формы добавляются фильтры на равенство, а блок FILTERS добавляет дополнительные фильтры-выражения.
У оператора два варианта верхнего уровня - интерактивный режим (окно предварительного просмотра, прямая печать или выгрузка в файл) и режим сообщения (всплывающее сообщение).
Параметры
-
nameИмя формы. Составной идентификатор.
-
classFormTypeОпределяет, какая форма класса печатается:
LIST- форма списка класса.EDIT- форма редактирования класса.
-
classNameИмя пользовательского класса, форма списка или редактирования которого печатается. Составной идентификатор.
-
executionTypeОпределяет, где формируется и печатается отчет:
CLIENT- на клиенте. Используется по умолчанию.SERVER- на сервере. Имеет смысл только для интерактивного режима и только тогда, когда отчет должен быть отправлен на принтер, подключенный к серверу.
-
objName1, ..., objNameNИмена объектов формы, для которых задаются значения фильтров на равенство. Простые идентификаторы.
-
expr, expr1, ..., exprNВыражения, значения которых определяют значения фильтров на равенство для соответствующих объектов формы.
-
NULLУказывает, что передаваемое значение может быть
NULL. -
fexpr1, ..., fexprMВыражения, добавляемые к форме в качестве фильтров.
Опции режима сообщения
-
MESSAGEКлючевое слово, выбирающее режим сообщения.
-
messageTypeОпределяет, как панель сообщения отображается у клиента:
LOG- сообщение в окне сообщенийSystem.log.INFO- информационное сообщение.SUCCESS- сообщение об успешном выполнении.WARN- сообщение-предупреждение.ERROR- сообщение об ошибке.DEFAULT- простое сообщение. Используется по умолчанию.
-
topLimit,offsetLimitКоличество первых строк, показываемых/пропускаемых соответственно при формировании сообщения. Каждое из них - либо одно значение, применяемое ко всем группам объектов формы, либо отображение по группам объектов, задающее отдельное значение для названных групп.
-
limitExpr,limitExpr1, ..., limitExprKВыражения, значения которых - целочисленные ограничения количества строк или смещения.
-
groupName1, ..., groupNameKИмена групп объектов формы, для которых ограничение или смещение задается индивидуально. Простые идентификаторы.
Опции интерактивного режима
-
formatЗадает формат выгрузки формируемого файла:
PDF- выгрузка в файл формата PDF.XLS,XLSX- выгрузка в файл формата Excel.DOC,DOCX- выгрузка в файл формата Word.RTF- выгрузка в файл формата RTF.HTML- выгрузка в файл формата HTML.
Если не указан, файл не формируется; отчет отображается в рамках интерактивного режима (поведение определяется параметрами
previewModeиexecutionType). -
sheetExprВыражение, значение которого - имя листа в формируемом файле. Используется только с форматами
XLSиXLSX. -
passwordExprВыражение, значение которого - пароль, устанавливающий для формируемого файла режим только для чтения. Используется только с форматами
XLSиXLSX. -
filePropertyIdИдентификатор свойства, в которое будет записан сформированный файл. У свойства не должно быть параметров, а его значение должно иметь файловый класс. Если указан, отчет формируется на сервере и файл записывается в свойство без какого-либо взаимодействия с клиентом; иначе файл передается клиенту и открывается у него средствами операционной системы. Не имеет эффекта в сочетании с
SERVER(в этом случае отчет напрямую отправляется на принтер, подключенный к серверу). Может указываться только при заданномformat. -
previewModeОпределяет, как сформированный отчет передается клиенту:
PREVIEW- отчет показывается пользователю (в окне предварительного просмотра либо открывается в программе, ассоциированной с указаннымformat). Используется по умолчанию.NOPREVIEW- отчет напрямую отправляется на принтер.
Не имеет эффекта в сочетании с
SERVER. -
printerExprВыражение, значение которого - имя принтера, на который отправляется печать. Если не указано, используется принтер по умолчанию или предлагается диалог выбора принтера - в зависимости от настройки платформы.
Общие опции
-
syncTypeОпределяет, когда продолжается выполнение окружающего действия:
WAIT- после того, как пользователь закроет окно предпросмотра или сообщение у клиента.NOWAIT- сразу после подготовки данных формы на сервере. Используется по умолчанию.
Не имеет эффекта в сочетании с
SERVERили сTO filePropertyId.
Примеры
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());
PRINT printOrder OBJECTS o = o XLS SHEET 'encrypted' PASSWORD 'pass'; // XLS с именем листа и паролем
PRINT LIST Order = o; // печать формы списка класса
PRINT printOrder OBJECTS o = o FILTERS price(d) > 100 MESSAGE WARN TOP 10; // первые 10 строк с высокой ценой как сообщение-предупреждение
}