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

Инструкция FORM

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

Синтаксис

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

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

imageSetting
LOCALASYNC

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

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

Описание

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

Параметры

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

  • imageSetting

    Настройка отображения иконки формы. По умолчанию наличие иконки или ее отсутствие регулируется параметрами settings.defaultImagePathRankingThreshold и settings.defaultAutoImageRankingThreshold. Эта опция, позволяет настроить отображение иконки вручную. Может иметь один из двух видов:

    • IMAGE [fileExpr]

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

      • fileExpr

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

    • NOIMAGE

      Ключевое слово, указывающее на то, что иконка формы должна отсутствовать.

  • LOCALASYNC

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

Блоки формы (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; }