Перейти к основному содержимому
Версия: 7.0

Оператор 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 строк с высокой ценой как сообщение-предупреждение
}