- •Введение
- •Синтаксис формул
- •Лексические элементы формул
- •Переменные
- •Предопределенные поля
- •Временные переменные
- •Константы
- •Операторы выполнения операций
- •Порядок выполнения вычислений
- •Ключевые слова
- •Функции
- •Побочные эффекты
- •Ограничения применимости @-функций и команд, налагаемые списком управления выполнением (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( [ToolsRunMacro]; "имя_агента" )
Область применения: БД должна быть открыта или ее иконка должна быть выделена в рабочем пространстве. Всегда выполняется последней в формуле, за исключением Web-приложений, где все @-команды выполняются последовательно.
Выполняет в текущей базе указанного агента.
Если параметр "имя_агента" не указано, то выдается диалоговое окно для выбора имени запускаемого агента. Для скрытых агентов его имя надо указывать в скобках.
Пример 1. Формула запускает в текущей базе агента по имени "Proba".
@Command( [ToolsRunMacro]; "Proba" )
Пример 2. Формула запускает в текущей базе данных скрытого агента "MyHidden".
@Command( [ToolsRunMacro]; "(MyHidden)" )
@Command( [RunAgent]; "имя_агента" )
Область применения: БД должна быть открыта или ее иконка должна быть выделена в рабочем пространстве.
Выполняет в текущей базе указанного агента. Аналогична @Command( [ToolsRunMacro] ) за тем лишь исключением, что выполняется немедленно в формуле, а не после всех остальных команд.
@Command( [Execute]; "имя_файла_приложения";
"аргументы_командной_строки" )
Область применения: нельзя применять в формулах диалогового окна. Параметры должны соответствовать формату операционной системы.
Запускает внешнее приложение операционной системы.
Параметр "аргументы_командной_строки" может быть как строкой, так и текстовым списком.
Пример 1. Команда, используемая в формуле акции формы, загружает стандартную программу калькулятора операционной системы Windows 95.
@Command( [Execute]; "C:\\Windows\\Calc.exe" )
Пример 2. Команда загружает текстовый процессор MS Word и подгружает в него два файла документов. Следует заметить, что когда третий аргумент в данной команде был текстовым списком, то загружался только первый файл.
@Command( [Execute];
"C:\\MSOffice\\Winword\\Winword.exe";
"D:\\Book\\Glava_06.doc D:\\Book\\Glava_07.doc" )
-
Команды для работы с почтой
@Command( [MailAddress] )
Область применения: документ должен находиться в режиме редактирования. Указатель курсора должен находиться в пределах редактируемого поля. В документе должно быть хотя бы одно поле, используемое для адресации (SendTo, CopyTo, BlindCopyTo).
Выдает диалоговое окно определения почтового адреса (Mail Address).
Пользователь может выбрать в окне адресата и при нажатии Ok выбранная информация занесется в соответствующие адресные поля документа.
Пример. Документ находится в режиме редактирования и у него имеется поле SendTo. Команда, используемая в формуле акции формы, выдает диалоговое окно определения адреса. Выбрав адресата, нажатием Ok заносим информацию в поле SendTo.
@Command( [MailAddress] )
@Command( [MailComposeMemo] )
Область применения: нельзя применять в формулах диалогового окна.
Создает в почтовом ящике пользователя пустое почтовое сообщение по форме, используемой по умолчанию для почтовой базы (обычно Memo), и устанавливает фокус на него. После отправки почтового сообщения фокус возвращается в базу, из которой выполнялась команда.
@Command( [EditQuoteSelection] )
Область применения: документ должен быть открыт в режиме редактирования, и текст должен быть выделен.
Преобразует выделенный текст к формату, принятому в письмах-ответах с использованием цитирования. Другими словами, вставляет в начало каждой строки символ больше (“>”), форматирует текст в строках по 70 символов, и удаляет из текста присоединенные файлы и другие объекты. Следует обратить внимание, что перенос осуществляется только по словам, т.е. если слово состоит более чем из 70 символов, то оно переноситься не будет.
С помощью переменных из Notes.ini можно изменить как символ, вставляемый в начало строки, (переменная QuotePrefix), так и длину строки цитирования (переменная QuoteLineLength). Обратите внимание, что во-первых, данные переменные задаются в Notes.ini без префикса «$» (например, QuoteLineLength=60), а во-вторых, значение этих переменных влияет на результат применения команды [ComposeWithReference] с ключом 8 (см. Стр. 240).
Пример. Формула, примененная в акции вида почтового ящика, позволяет создать ответ на письмо с цитирование в интернет стиле. Данный пример приведен исключительно для демонстрации команды [EditQuoteSelection]. В почтовом ящике, созданном по почтовому шаблону R 6, присутствует встроенные возможности для создания таких писем (например, кнопка Reply -> Reply with Internet-Style History).
@Command([EditDocument]; "1");
REM {открываем текущий документ на редактирование};
@Command([EditGotoField]; "Body");
REM {переключаем фокус на поле Body};
@Command([EditSelectAll]);
REM {выделяем все содержимое поля Body};
@Command([EditCopy]);
REM {копируем выделенное содержимое поля Body в
буфер обмена};
@Command([CloseWindow]);
REM {закрываем письмо с цитатами};
@Command([Compose]; ""; "Memo");
REM {создаем новое письмо};
@UpdateFormulaContext;
REM {переключаем контекст на новый документ};
@Command([EditGotoField]; "Body");
REM {переключаем фокус на поле Body};
@Command([EditPaste]);
REM {вставляем в поле Body содержимое буфера обмена};
@Command([EditSelectAll]);
REM {выделяем все содержимое поля Body};
@Command( [EditQuoteSelection] );
REM {применяем к выделенному фрагменту функцию
цитирования};