- •Введение
- •Синтаксис формул
- •Лексические элементы формул
- •Переменные
- •Предопределенные поля
- •Временные переменные
- •Константы
- •Операторы выполнения операций
- •Порядок выполнения вычислений
- •Ключевые слова
- •Функции
- •Побочные эффекты
- •Ограничения применимости @-функций и команд, налагаемые списком управления выполнением (ecl)
- •Ограничения применимости @-функций и команд для Web-приложений
- •Как выполняются формулы
- •Порядок выполнения
- •Формулы, возвращающие значения
- •Формулы, выполняющие последовательность действий
- •Выполнение формул, содержащих вызовы @-команд
- •Обработка ошибок в формулах
- •Описание @-функций Domino
- •Функции - базовые конструкции языка формул
- •Функции выполнения циклов
- •Функции определения и преобразования типов данных
- •Функции для работы со строками
- •Определение вхождения подстроки в строку
- •Выделение и замена части строки
- •Функции для работы со значениями типа "дата-время"
- •Функции, работающие с компонентами значения типа "дата-время"
- •Функции для работы с численными значениями
- •Функции для работы со списками
- •Работа с переменными окружения
- •Установка значения временной переменной
- •Функции для работы с текущим документом
- •Определения свойств, характеристик и состояния текущего документа
- •Операции с полями
- •Операции с документом
- •Функции для работы с паролями
- •Функции для работы с почтой
- •Функции, определяющие почтовые настройки
- •Работа с идентификаторами документов
- •Получение информации из баз данных Domino
- •@DbColumn - выбор значений из колонки
- •@DbLookup - выбор из колонки или поля значений по ключу
- •Получение информации из баз данных, поддерживающих odbc-драйверы
- •Функции для работы с видами
- •Функции, используемые в формулах отбора документов
- •Функции, используемые в формулах колонок
- •Функции, работающие с именами пользователей
- •Функции, работающие с правами доступа
- •Функции, работающие с профильными документами
- •Функция выбора требуемого фрейма
- •Диалог с пользователем
- •Функции, определяющие тип и характеристики используемого программного обеспечения
- •Функции, используемые в Web-приложениях
- •Информационные функции
- •Функции для обработки ошибок
- •Описание @-команд Domino
- •Команды для работы с текущим и выделенными документами
- •Команды открытия объектов
- •Команды для работы с профильными документами
- •Команды обновления отображаемой информации
- •Команды для работы с видами и папками
- •Команды запуска приложений
- •Команды для работы с почтой
- •Алфавитный список @-функций
- •Алфавитный список @-команд
- •Разработка тестовых приложений
- •Простые операции с документами
- •Создание нового документа по форме
- •Редактирование текущего документа
- •Удаление документа
- •Печать документа и вида
- •Упражнение
- •Формулы полей
- •Упражнение
- •Получения доступа к данным, находящимся вне текущего документа
- •Доступ к данным вида
- •Наследование
- •Функция @DialogBox
- •Функция @PickList
- •Формулы скрытия информации
- •Формулы скрытия абзаца формы
- •Формулы скрытия акций формы и вида
- •Формулы скрытия столбцов вида и строк аутлайна
- •Упражнение
- •Формулы работы с видами
- •Формула отбора документов
- •Формулы столбцов вида
- •Наложения фильтра на вид
- •Работа с почтой
- •Работа с именами пользователей
- •Работа с уровнями доступа
- •Блокировка документов на редактирование
- •Операции с папками
- •Функции, используемые в Web-приложениях
- •Формулы по месту применения
- •Формулы панели инструментов - Toolbar button
- •Формулы агентов
- •Формула секции с управляемым доступом
- •Остальные функции
- •Литература
- •1 Введение 3
- •2 Синтаксис формул 5
- •3 Лексические элементы формул 6
- •4 Как выполняются формулы 30
- •5 Обработка ошибок в формулах 36
- •6 Описание @-функций Domino 39
- •11 Литература 412
-
Как выполняются формулы
-
Порядок выполнения
-
Domino выполняет действия в формулах слева направо, сверху вниз, завершая каждый оператор, перед тем как перейти к следующему, за исключением любого использования функции @PostedCommand и функции @Command с определенными значениями аргументов. Эти функции всегда выполняются после выполнения всех остальных операторов (более подробно рассмотрено в пункте "4.4").
(1) Statement1;
(2) Statement2;
(3) Statement3;
(4) Statement4;
(5) Statement5;
Вы можете прервать процесс выполнения, используя функцию @Return. В R 6 язык формул стал поддерживать операторы циклов (@For, @While, @DoWhile и @Transform), которые позволяют выполнить несколько раз определенную последовательность операторов. Так же можно "пропустить" во время выполнения какие-либо операторы с помощью функции @If.
Пишите формулы в том порядке, в котором они должны выполняться. Если оператор должен работать только при выполнении некоторого условия, используйте функцию @If для проверки этого условия:
@If( Condition_1; TRUE_Statement_1;
...; ...;
Condition_N; TRUE_Statement_N;
FALSE_Statement );
Чтобы заставить Domino выполнить несколько операторов при заданном условии, вставьте функцию @Do внутрь @If:
@If( Condition;
@Do( Statement_1; ...; Statement_N );
FALSE_Statement );
-
Формулы, возвращающие значения
Большинство типов @-формул, если классифицировать их по месту применения (типу объекта, в котором они определяются), в результате выполнения должны возвращать значение. Значение может быть возвращено либо последним оператором формулы, либо функцией @Return, которая возвращает свой аргумент. В любом случае последним оператором в такой формуле должен быть оператор, возвращающий значение. Это может быть переменная, константа, @-функция или выражение, составленное с помощью операторов из перечисленных элементов. Операторы с ключевыми словами (кроме некоторых случаев с SELECT и FIELD) не возвращают значений, поэтому не могут стоять последними в таких формулах. Следующие типы формул должны возвращать результат:
-
Replication formula (формула селективной репликации). Результат - истина или ложь в критерии SELECT для каждого документа базы;
-
Form formula (формула формы). Результат - имя формы для открытия документа;
-
Selection formula (формула отбора документов в виде). Результат - истина или ложь в критерии SELECT для каждого документа базы;
-
Column formula (формула колонки). Результат должен быть пригоден для преобразования в текст;
-
Hide action formula (формула скрытия акции). Результат - истина или ложь;
-
Formula pop-up (формула "всплывающего" окна). Результат - текст;
-
Window title formula (формула заголовка окна). Результат должен быть пригоден для преобразования в текст или число, за исключением случая, когда формула состоит из одного поля, любого типа;
-
Section access formula (формула доступа к секции). Результат - имя или список имен;
-
Insert subform formula (формула вычисляемой субформы). Результат - имя субформы (текст);
-
Section title formula (формула заголовка секции). Результат - текст или число, за исключением формул, состоящих из одного поля любого типа;
-
Hidden paragraph formula (формула видимости объекта). Результат - истина или ложь;
-
Default value formula (значение поля по умолчанию). Результат должен быть пригоден для сохранения в данном поле;
-
Input translation formula (формула преобразования значения поля). Результат должен быть пригоден для сохранения в данном поле;
-
Input validation formula (формула проверки значения поля). Результат - истина или ложь;
-
Input enabled formula (формула разрешения ввода значения в поле). Результат - истина или ложь;
-
Computed field formula (формула вычисляемого поля). Результат должен быть пригоден для сохранения в данном поле;
-
Keyword field formula (формула ключевых слов). Результат – значение или список значений, пригодный для сохранения в данном поле;
-
Image resource formula (формула загружаемого изображения). Результат - имя изображения из ресурсов дизайна;
-
Computed text formula (формула вычисляемой надписи). Результат - текст.
Приведенный выше список не полностью описывает все типы формул, которые должны возвращать результат. В качестве примера можно привести формулу скрытия столбца в виде или формулу строки аутлайна. К сожалению, в документации отсутствует структурированное описание данных контекстов применения формул.