- •Введение
- •Синтаксис формул
- •Лексические элементы формул
- •Переменные
- •Предопределенные поля
- •Временные переменные
- •Константы
- •Операторы выполнения операций
- •Порядок выполнения вычислений
- •Ключевые слова
- •Функции
- •Побочные эффекты
- •Ограничения применимости @-функций и команд, налагаемые списком управления выполнением (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
-
Команды для работы с профильными документами
@Command( [EditProfile];
"имя_профильного_документа";
"уникальный_ключ" )
Область применения: в R 6 всегда выполняется последней в формуле. Нельзя применять в формулах диалогового окна. Для создания профильного документа нужен доступ к базе данных не ниже автора.
Создает новый или открывает существующий профильный документ на редактирование.
Параметр "имя_профильного_документа" задает имя профильного документа. Третий параметр не обязателен, если он опущен, то ищется или создается профильный документ общий для данной базы данных, иначе ищется профильный документ, связанный с указанным ключом.
Пример. Предположим, что для обмена информацией между приложениями внутри определенной базы данных необходимо для каждого пользователя иметь профильный документ, ассоциированный с именем пользователя. Для автоматизации процедуры создания профильных документов для каждого пользователя можно использовать приведенную ниже формулу, которую можно использовать, например, в кнопке навигатора.
В формуле сначала выбирается имя пользователя из адресной книги, затем создается для него профильный документ с именем "User". Затем документ сохраняется и закрывается.
Ch := @PickList( [Name]:[Single] );
@Command( [EditProfile]; "User"; Ch );
@Command( [FileSave] );
@Command( [FileCloseWindow] );
@Command( [EditProfileDocument];
"имя_профильного_документа";
"уникальный_ключ" )
Область применения: нельзя применять в формулах диалогового окна. Для создания профильного документа нужен доступ к базе данных не ниже автора.
Создает новый или открывает существующий профильный документ на редактирование. Аналогична @Command( [EditProfile] ) за тем лишь исключением, что выполняется немедленно в формуле, а не после всех остальных команд.
-
Команды обновления отображаемой информации
@Command( [ReloadWindow] )
Область применения: в R 6 всегда выполняется последней в формуле. Работает в формулах акций форм и кнопок. В акциях видов для клиента Notes команда работает только в случае, если вид входит в набор фреймов. Может использоваться в Web-приложениях.
"Перезагружает" или обновляет содержимое текущего окна LN. Для набора фреймов обновляет содержимое всех входящих в него фреймов.
@Command( [RefreshWindow] )
Область применения: работает в формулах акций форм и кнопок. В акциях видов для клиента Notes команда работает только в случае, если вид входит в набор фреймов. Может использоваться в Web-приложениях.
"Перезагружает" или обновляет содержимое текущего окна LN. Для набора фреймов обновляет содержимое всех входящих в него фреймов. Аналогична @Command( [ReloadWindow] ) за тем лишь исключением, что выполняется немедленно в формуле, а не после всех остальных команд.
@Command( [RefreshFrame]; "фрейм" )
Область применения: работает в формулах акций форм и видов и гиперобъектах. Может использоваться в Web-приложениях.
"Перезагружает" или обновляет содержимое указанного "фрейма". Если перед командой [RefreshFrame] следует функция @SetTargetFrame, то значение параметра "фрейм" игнорируется, и осуществляется обновление фрейма, заданного функцией @SetTargetFrame. В рамках клиента Notes, если параметр "фрейм" опущен и функция @SetTargetFrame в формуле отсутствует, то [RefreshFrame] не выполняет никаких действий. Если команда выполняется во вложенном наборе фреймов с одноименными фреймами, на один из которых указывает параметр "фрейм", то обновление осуществляется только для одноименного фрейма самого верхнего уровня.
В Web-приложениях команда обновляет только текущий фрейм, при этом игнорируется параметр "фрейм". Функция @SetTargetFrame не оказывает влияния на команду [RefreshFrame] в Web-приложениях.
Пример. Команда, примененная в кнопке страницы, обновляет фрейм с именем «Right» для набора фреймов, отображаемых в клиенте Notes.
@Command([RefreshFrame]; "Right")
@Command( [ViewRefreshFields] )
Область применения: документ должен быть открыт в режиме редактирования, или вид/папка должны быть открыты в текущем окне. Можно использовать в Web-приложениях.
Осуществляет пересчет всех формул полей для текущего документа, или обновляет содержимое вида/папки.
С версии 5 с помощью этой команды можно также программно воздействовать на апплеты видов.
Пример. Команда при использовании в акции вида/папки обновляет содержимое экрана.
@Command( [ViewRefreshFields] )
@Command( [RefreshHideFormulas] )
Область применения: вид/папка должны быть открыты, или документ должен находиться в режиме чтения/редактирования.
Пересчитывает только формулы видимости объектов в документе или виде. Формулы вычисляемых полей, проверки введенных данных и т.д. при этом не пересчитываются.
На уровне вида команда не оказывает влияние на формулы скрытия столбцов, только на формулы скрытия акций вида.
Пример. Предположим у нас есть форма, в которой формулы вычисляемых полей должны выполняться только по выходу из документа (например, из-за громоздкости расчетов). Но в зависимости от содержимого поля "Type" должны скрываться/отображаться определенные объекты формы. Для того чтобы не заставлять пересчитываться все формулы, а выполнить только формулы видимости объектов, применим следующую конструкцию в формуле кнопки для определения значения поля "Type" (поле вычисляемое).
ch := @Prompt( [OkCancelCombo]; "Выбор типа статьи";
"Выберите тип статьи."; "Текст"; "Текст" : "Видео" :
"Графика" : "Подводка");
@SetField( "Type"; ch );
@Command( [RefreshHideFormulas] )
@Command( [RefreshParentNote] )
Область применения: работает только в формулах диалогового окна.
Передает изменения из одноименных полей диалогового окна (имеется ввиду @DialogBox или его аналог на LotusScript) в основной документ.
Пример. Формула, отрабатывающая по событию QueryClose диалогового окна, всегда передает изменения в одноименных полях в основной документ в независимости от того, какую кнопку нажал пользователь Ok или Cancel.
@Command( [RefreshParentNote] )
@Command( [ToolsRefreshAllDocs] )
Область применения: в текущем окне должен быть открыт вид/папка.
Перевычисляет все формулы во всех документах текущего вида/папки и сохраняет изменения.
Следует обратить внимание на область применения команды, исходя из определения, она напрямую не работает в формулах, входящих в форму (в частности, в акциях формы).
Пример. Формула, используемая в акции формы, сначала сохраняет текущий документ. Затем открывает вид "View1" и обновляет все документы в нем.
@Command( [FileSave] );
@Command( [OpenView]; "View1" );
@Command( [ToolsRefreshAllDocs] );
@Command( [ToolsRefreshSelectedDocs] )
Область применения: в текущем окне должен быть открыт вид/папка, хотя бы один документ должен быть выделен или на документе должен стоять световой маркер.
Перевычисляет все формулы в текущем или выделенных документах текущего вида/папки и сохраняет изменения.