Skip to end of metadata
Go to start of metadata

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

Синтаксис

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

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

IMAGE path 
AUTOREFRESH period 

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

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

Описание

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

Параметры

name

Имя формы. Простой идентификатор. Имя должно быть уникально в пределах текущего пространства имен.

caption

Заголовок формы. Строковый литерал. Если заголовок не задан, то заголовком формы будет являться ее имя.

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

IMAGE path

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

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

AUTOREFRESH period

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

period - период времени в секундах. Целочисленный литерал

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

OBJECTS ...

Добавляет объекты на форму. Синтаксис блока объектов.

TREE ...

Добавляет дерево объектов на форму. Синтаксис блока дерева объектов.

PROPERTIES ...

Добавляет свойства и действия на форму. Синтаксис блока свойств и действий.

FILTERS ...

Добавляет фиксированные фильтры на форму. Синтаксис блока фиксированных фильтров.

[EXTEND] FILTERGROUP ...

Добавляет группу фильтров на форму либо расширяет существующую. Синтаксис блока группы фильтров.

ORDER ...

Добавляет сортировки на форму. Синтаксис блока сортировок.

EVENTS ...

Устанавливает действия, выполняемые при определенных событиях. Синтаксис блока событий.

FORMEXTID extID

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

extId

Строковый литерал.

REPORT propertyExpression

        Указание свойства, значение которого будет использовано в качестве имени файла отчета для пустой группы. В качестве параметров можно использовать имена уже объявленных объектов на форме. Предполагается, что значения этих объектов будут переданы при открытии формы в печатном представлении (если этого не будет сделано, они будут считаться равными NULL).


propertyExpression


Выражение.

EDIT сlassName OBJECT objectName

Устанавливает текущую форму в качестве формы редактирования объектов указанного класса.

className - имя пользовательского класса, при редактировании объектов которого будет вызываться описываемая форма. Задается составным идентификатором.

objectName - имя объекта формы, который будет использоваться для редактирования. Задается простым идентификатором.

LIST сlassName OBJECT objectName

Устанавливает текущую форму в качестве формы выбора объекта указанного класса. 

className - имя пользовательского класса, для выбора объекта которого будет вызываться описываемая форма. Задается составным идентификатором.

objectName - имя объекта формы, текущее значение которого будет использоваться в качестве выбираемого объекта. Задается простым идентификатором.

Примеры

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
 CLASS Document;

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

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

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

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

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

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

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

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

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

CLASS Invoice;
CLASS InvoiceDetail;

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

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

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

  • No labels