Документация на documentation.lsfusion.org скоро станет недоступной, используйте, пожалуйста, https://docs.lsfusion.org/ru.

Перейти к концу метаданных
Переход к началу метаданных

Оператор INPUT - создание действия, осуществляющего ввод примитива.

Синтаксис

INPUT inputOptions 
[CHANGE [= changeExpr]]
[DO actionOperator [ELSE elseActionOperator]]

inputOptions - опции ввода. Задаются одним из следующих синтаксисов:

[alias =] builtInClassName
[alias] = expr

Описание

Оператор INPUT создает действие, которое позволяет запрашивать у пользователя значение одного из встроенных классов.

Параметры

builtInClassName

Имя одного из встроенных классов

expr

        Выражение, значение которого определяет начальное значение ввода.

alias

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

CHANGE

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

changeExpr

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

actionOperator

Контекстно-зависимый оператор-действие, выполняется, если ввод был успешно завершен.

elseActionOperator

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

Примеры

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
 changeCustomer (Order o)  { 
    INPUT s = STRING[100] DO {
        customer(o) <- s;
        IF s THEN
            MESSAGE 'Customer changed to ' + s;
        ELSE
            MESSAGE 'Customer dropped';
    }
}

FORM order
    OBJECTS o = Order
    PROPERTIES(o) customer ON CHANGE changeCustomer(o) 
;

testFile  { 
    INPUT f = FILE DO { // запрашиваем диалог по выбору файла
        open(f); // открываем выбранный файл
    }
}

  • Нет меток