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

Инструкция FORM

Инструкция FORM - создание формы.

Синтаксис

FORM name [caption] formOptions
formBlock1
...
formBlockN
;

После указания имени и заголовка формы в произвольном порядке указываются опции формы formOptions:

IMAGE path 
AUTOREFRESH period

После опций формы описываются в произвольном порядке блоки формы formBlock1 ... formBlockN:

OBJECTS ... 
TREE ...
PROPERTIES ...
FILTERS ...
[EXTEND] FILTERGROUP ...
ORDERS ...
EVENTS ...
REPORT propertyExpression
FORMEXTID extID
EDIT className OBJECT objectName
LIST className OBJECT objectName

Описание

Инструкция FORM объявляет новую форму и добавляет ее в текущий модуль. Кроме того эта инструкция позволяет описать структуру формы, а также ее статичное и частично интерактивное (за исключением дизайна формы) представление. В начале инструкции задаются имя и заголовки, затем указываются опции формы, а затем объявление содержит произвольное количество блоков, описывающих структуру формы. Их можно использовать в любом порядке, при условии что каждый блок объявляется позже блоков, элементы которых он использует. Каждый блок может использоваться произвольное количество раз.

Параметры

Опции формы (formOptions)

  • IMAGE path

    Указание относительного пути к файлу с картинкой, которая будет отображаться в качестве иконки формы.

    • path

      Путь к файлу. Строковый литерал. Путь указывается относительно каталога images.

  • AUTOREFRESH period

    Указание периода автоматического обновления формы через интервал времени. Если опция не задана, то форма автоматически обновляться не будет.

Блоки формы (formBlock1 ... formBlockN)

Примеры

CLASS Document;

// объявляем форму Документы
FORM documents 'Документы'
// Добавляем один объект класса Document, по этому имени объект будет доступен в операторах
// DESIGN, SHOW, EXPORT, DIALOG и др.
OBJECTS d = Document

// ... добавляем свойства и фильтры на форму

// помечаем что данная форма должна использоваться, когда необходимо выбрать документ,
// при этом объект d должен использоваться как возвращаемое значение
LIST Document OBJECT d
;

CLASS Item;

// объявляем форму Товар
FORM item 'Товар'
// добавляем объект класса Item и помечаем, что он должен отображаться в панель
// (то есть видимо только одно значение)
OBJECTS i = Item PANEL

// ... добавляем свойства и фильтры на форму

// помечаем что данная форма должна использоваться, когда необходимо добавлять или редактировать товар
EDIT Item OBJECT i
;

// объявляем форму со списком Товаров
FORM items 'Товары'
OBJECTS i = Item

// ... добавляем свойства и фильтры на форму

// добавляем кнопки, которые будут создавать и редактировать товар, используя форму item
PROPERTIES(i) NEWSESSION NEW, EDIT
;

CLASS Invoice;
CLASS InvoiceDetail;

// объявляем форму печати инвойса
FORM printInvoice
OBJECTS i = Invoice // добавляем объект класса инвойс, для которого будет идти печать

// ... добавляем свойства и фильтры на форму
;

// разбиваем определение формы на две инструкции (вторую инструкцию можно перенести в другой модуль)
EXTEND FORM printInvoice
// добавляем строки инвойса, каждая из которых будет использоваться в отчете в качестве детализации
OBJECTS d = InvoiceDetail

// ... добавляем свойства и фильтры на форму
;
// объявляем действие , при выполнении которого будет открываться форма печати инвойса
print (Invoice invoice) { PRINT printInvoice OBJECTS i = invoice; }