Skip to end of metadata
Go to start of metadata

Блоки фильтров и сортировок инструкции FORM - добавление фильтров и сортировок в структуру формы, а также групп фильтров в интерактивное представление формы.

Блок фиксированных фильтров

Синтаксис

FILTERS expression1, ..., expressionN

Описание

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

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

Параметры

expression1, ..., expressionN

Список выражений - фильтров.

Примеры

 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
 CLASS Stock;
name = DATA ISTRING[100] (Stock);
region = DATA Region (Stock);

CLASS Group;
name = DATA ISTRING[100] (Group);

group = DATA Group(Sku);
nameGroup (Sku s) = name(group(s));

active = DATA BOOLEAN (Sku); 

onStock = DATA NUMERIC[10,2] (Stock, Sku);

FORM onStock 'Остатки' // создаем форму, в которой можно смотреть остатки по товарам
    OBJECTS r = Region PANEL // добавляем объект регион
    PROPERTIES name(r) SELECTOR // добавляем свойство имя региона, при нажатии на который пользователь сможет его выбирать
  
    OBJECTS st = Stock // добавляем объект склады
    PROPERTIES name(st) READONLY // добавляем имя склада
    FILTERS region(st) == r // добавляем фильтр, чтобы показывались только склады выбранного региона
  
    OBJECTS s = Sku // добавляем товары
    PROPERTIES READONLY groupName = nameGroup(s), name(s), onStock(st, s) // добавляем наименование группы товаров, присваивая ему groupName в качестве имени свойства на форме, а также наименование и остаток по товару
    FILTERS active(s) // включаем, чтобы показывались только активные товары
;

Блок группы фильтров

Синтаксис

[EXTEND] FILTERGROUP groupName
	FILTER caption1 expression1 [keystroke1] [DEFAULT]
	...
	FILTER captionN expressionN [keystrokeN] [DEFAULT]

Описание

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

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

Параметры

groupName

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

caption1, ..., captionN

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

experssion1, ..., expressionN

Выражения, описывающие фильтры.

keystroke1, ..., keystrokeN

Сочетания клавиш, при нажатии которого пользователем будет происходить выбор соответствующего фильтра в группе. Каждое сочетание клавиш задается строковым литералом, принцип задания аналогичен способу задания параметра в методе Java-класса Keystroke.getKeystroke(String).

DEFAULT

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

 

Примеры

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
 active = DATA BOOLEAN (Stock);

EXTEND FORM onStock // расширяем ранее созданную форму с остатками
    FILTERGROUP stockActive // создаем группу фильтров с одним фильтрам, которая будет показываться в виде флажка, по которому пользователь сможет включать/отключать фильтр
        FILTER 'Активные' active(st) 'F11' // добавляем отбор по только активным складам, который будет применяться по нажатию клавиши F11
    FILTERGROUP skuAvailability // создаем новую группу фильтров, в которой пользователь сможет выбирать один из фильтров при помощи выпадающего списка
        FILTER 'Есть на остатках' onStock(st, s) 'F10' DEFAULT // добавляем отбор, который будет показывать только товары на остатках, выбираться по клавише F10 и будет автоматически выбран при открытии формы
;

// ...  
  
EXTEND FORM onStock
    EXTEND FILTERGROUP skuAvailability
        FILTER 'Отрицательные остатки' onStock(st, s) < 0 'F9' // добавляем отбор по выражению
;

Блок сортировок

Синтаксис

ORDER formPropertyName1 [DESC] 
	  ...
	  formPropertyNameN [DESC]

Описание

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

Параметры

formPropertyName1, ..., formPropertyNameN

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

DESC

Ключевое слово. Указывает на обратный порядок сортировки. По умолчанию используется сортировка по возрастанию.

Примеры

1
2
3
4
5
 EXTEND FORM onStock // расширяем ранее созданную форму с остатками
    ORDERS name(s) // включаем сортировку по наименования склада в списке складов
    ORDERS groupName, onStock(st, s) DESC // включаем сортировку по возрастанию имени группы, а внутри по убыванию остатка на складе
                                            // следует отметить, что в качестве свойства указывается имя свойства на форме groupName, а не просто имя свойства nameGroupSku
;

  • No labels