Оператор SCREENSHOT
Оператор SCREENSHOT создаёт действие, которое делает снимок текущего отрисованного пользовательского интерфейса и записывает результат в свойство либо, если целевое свойство не задано, отправляет файл на клиент.
Синтаксис
SCREENSHOT [HTML] [captureTarget] [TO propertyId]
Где captureTarget — одна из следующих конструкций:
FORM
containerId
Описание
Оператор SCREENSHOT создаёт действие, которое захватывает текущее отрисованное состояние пользовательского интерфейса в веб-клиенте. Область захвата определяется выбранной целью снимка; выходной формат выбирается ключевым словом HTML; адресат задаётся выражением TO.
Параметры
-
HTMLКлючевое слово. Если указано, захватывается внутренняя HTML-разметка цели. Целевое свойство должно принимать
HTMLFILEили один из обобщённых файловых типовFILE,NAMEDFILE. Если не указано, цель захватывается как PNG-изображение; целевое свойство должно тогда приниматьIMAGEFILEили один из обобщённых файловых типовFILE,NAMEDFILE. -
captureTargetЦель снимка. Задаётся одним из следующих способов:
-
FORMКлючевое слово. Если указано, захватывается главный контейнер формы, в контексте которой выполняется действие. Действие должно выполняться в контексте формы.
-
containerIdПростой идентификатор контейнера в дизайне формы, в контексте которой выполняется действие. Действие должно выполняться в контексте формы, и форма должна содержать контейнер с указанным SID.
Если не указаны ни
FORM, ниcontainerId, захватывается всё тело страницы веб-клиента. -
-
propertyIdИдентификатор свойства, в которое записывается захваченное содержимое. Свойство должно быть без параметров и должно принимать либо файловый тип, соответствующий выбранному формату (
IMAGEFILEдля изображения,HTMLFILEдля HTML), либо один из обобщённых файловых типовFILE,NAMEDFILE. Если не указан, сгенерированный файл отправляется на клиент и открывается средствами операционной системы.
Примеры
CLASS Report;
name = DATA ISTRING[100] (Report);
image = DATA IMAGEFILE (Report);
html = DATA HTMLFILE (Report);
FORM dashboard
OBJECTS r = Report
PROPERTIES(r) name, image, html
;
DESIGN dashboard {
NEW chartBox {
caption = 'Chart';
MOVE PROPERTY(image(r));
}
}
captureToClient () {
SCREENSHOT; // отправляется на клиент и открывается средствами ОС
}
captureViewport (Report r) {
LOCAL img = IMAGEFILE ();
SCREENSHOT TO img;
image(r) <- img();
}
captureForm (Report r) {
LOCAL img = IMAGEFILE ();
SCREENSHOT FORM TO img;
image(r) <- img();
}
captureChart (Report r) {
LOCAL img = IMAGEFILE ();
SCREENSHOT chartBox TO img;
image(r) <- img();
}
captureFormHtml (Report r) {
LOCAL page = HTMLFILE ();
SCREENSHOT HTML FORM TO page;
html(r) <- page();
}