- •Введение
- •Синтаксис формул
- •Лексические элементы формул
- •Переменные
- •Предопределенные поля
- •Временные переменные
- •Константы
- •Операторы выполнения операций
- •Порядок выполнения вычислений
- •Ключевые слова
- •Функции
- •Побочные эффекты
- •Ограничения применимости @-функций и команд, налагаемые списком управления выполнением (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
-
Функция выбора требуемого фрейма
@SetTargetFrame( "имя_фрейма" )
Область применения: предназначена для работы в формулах акций, гиперобъектов, кнопок панели инструментов и агентов, запускаемых вручную. За функцией должна следовать одна из команд: @Command( [OpenFrameset] ), @Command( [OpenPage] ), @Command( [OpenView] ), @Command( [Compose] ), @Command( [EditDocument] ), @Command([RefreshFrame]). Функция не выполняется, если за ней следует команда @Command( [OpenView] ), у которой не опущен параметр "окно". В случае если за функцией следует команда @Command( [OpenView] ), у которой опущен параметр "вид", то открывается вид, который перед вызовом функции последний раз открывался во фрейме с именем "имя_фрейма". Функция не выполняется, если за ней следует команда @Command([RefreshFrame]) , у которой не опущен параметр "целевой_фрейм".
Функция определяет фрейм, в пределах которого должен быть открыт объект, указанный в следующей за функцией команде. Может быть использована для открытия в рамках фрейма видов, страниц, набора фреймов, или документов в режиме создания или редактирования.
Параметр "имя_фрейма" определяет требуемый фрейм.
Из личного опыта функция также работает совместно с @URLOpen, как в браузере, так и в клиенте Notes.
Пример 1. Открывает во фрейме с именем "Second" вид с именем "View1".
@SetTargetFrame( "Second" );
@Command( [OpenView]; "View1" )
Пример 2. Открывает в новом окне главную страницу сайта lotus.com.
@SetTargetFrame( "_blank" );
@URLOpen( "http://www.lotus.com" )
-
Диалог с пользователем
@Prompt( [стиль]: [NoSort]; "заголовок"; "текст";
"по_умолчанию"; "выбор"; "тип_файла")
Область применения: нельзя использовать в формулах отбора, колонок, почтовых агентов и агентов, выполняющихся по расписанию, видимости объекта и всплывающих окон. Ограниченно применима в формулах заголовка окна и формы. Не работает при установке переменной окружения NoExternalApps равной 1. В Web-приложениях не работает.
@Prompt используется для запроса информации у пользователя. Функция показывает диалоговое окно заданного стиля, с заданным заголовком и текстом, и содержащее информацию из остальных параметров. Большинство стилей предполагают однозначный ответ и возвращают его как текстовую строку. Другие стили позволяют пользователю ввести или выбрать более одного значения.
Параметр [стиль] определяет внешний вид диалогового окна. Он задается одним из приведенных в таблице ключевых слов. Ключевые слова вводятся в квадратных скобках. Параметр [стиль] является обязательным.
Стиль |
Отображает в окне |
Возвращает |
[Ok] |
Сообщение и кнопку OK. Используется для информационных сообщений. Использует только параметры [стиль], "заголовок" и "текст". |
1 (TRUE). |
[YesNo] |
Сообщение и кнопки Yes и No. Позволяет принимать решение Да/Нет. Использует только параметры [стиль], "заголовок" и "текст". |
1 (TRUE), если нажата кнопка Yes, или 0 (FALSE), если нажата кнопка No. |
[YesNoCancel] |
Сообщение и кнопки Yes, No и Cancel. Позволяет принимать решение Да/Нет или отказаться от принятия решения. Использует только параметры [стиль], "заголовок" и "текст". |
1 (TRUE), если нажата кнопка Yes; 0 (FALSE), если нажата кнопка No; -1, если нажата кнопка Cancel. |
[OkCancelEdit] |
Сообщение, подокно для ввода текста (с содержимым по умолчанию) и кнопки OK и Cancel. Использует только параметры [стиль], "заголовок" и "текст" и "по умолчанию". |
Если нажата кнопка Ok, возвращается первые 254 байта введенного пользователем текста. Если нажата кнопка Cancel, ничего не возвращается, поскольку выполнение всей формулы завершается. |
[OkCancelList] |
Сообщение, список значений для выбора (с отмеченным значением по умолчанию) и кнопки OK и Cancel. Пользователь выбирает только одно значение из списка. Использует пять первых параметров. |
Eсли нажата кнопка Ok, возвращается выбранное пользователем значение. Eсли нажата кнопка Cancel, ничего не возвращается, поскольку выполнение всей формулы завершается. Если выбор по умолчанию в функции не был сделан, а пользователь нажал кнопку OK , не выбрав никакого элемента, возвращается число 1. |
[OkCancelCombo] |
Сообщение, выпадающий список значений для выбора (с показанным в верхнем текстовом подокне значением по умолчанию) и кнопки OK и Cancel. Пользователь выбирает только одно значение из списка. Заметьте, что значение по умолчанию показывается только, если оно содержится в списке возможных выборов; в противном случае текстовое подокно остается пустым. Использует пять первых параметров. |
Eсли нажата кнопка Ok, возвращается выбранное пользователем значение. Eсли нажата кнопка Cancel, ничего не возвращается, поскольку выполнение всей формулы завершается. Если выбор по умолчанию в функции не был сделан, а пользователь нажал кнопку OK , не выбрав никакого элемента, возвращается пустая строка. |
[OkCancelEditCombo] |
Сообщение, выпадающий список значений для выбора (с показанным в верхнем текстовом окне значением по умолчанию) и кнопки OK и Cancel. Пользователь вводит значение или выбирает его из списка. Подобно [OkCancelEdit], но позволяет пользователю вводить значения, не указанные в списке. Использует пять первых параметров. |
Eсли нажата кнопка Ok, возвращается выбранное, введенное или измененное пользователем значение. Eсли нажата кнопка Cancel, ничего не возвращается, поскольку выполнение всей формулы завершается. |
[OkCancelListMult] |
Сообщение, список значений для выбора и кнопки OK и Cancel; пользователь выбирает одно или несколько значений из списка. Подобно [OkCancelList]. Этот стиль использует все пять параметров. |
Eсли нажата кнопка Ok, возвращается список выбранных пользователем значений. Eсли нажата кнопка Cancel, ничего не возвращается, поскольку выполнение всей формулы завершается. Если выбор по умолчанию в функции не был сделан, а пользователь нажал кнопку OK , не выбрав никакого элемента, возвращается число 1. |
[LocalBrowse] |
Окно со списком имен файлов для выбора относительно директории \NOTES\DATA и кнопки Select, Cancel и Help; пользователь выбирает одно значение из списка. Использует только параметры [стиль], "заголовок" и "тип_файла". |
Eсли нажата кнопка Select, возвращается выбранное пользователем имя файла с полным путем и расширением. Eсли нажата кнопка Cancel, ничего не возвращается, поскольку выполнение всей формулы завершается. Если пользователь нажал кнопку Select , не выбрав никакого элемента, окно остается модальным. При нажатии Help выдается соответствующий раздел из базы справки по клиентской программе. |
[Password] |
Сообщение, подокно для ввода пароля (введенная информация в нем не отображается) и кнопки OK и Cancel. Использует только параметры [стиль], "заголовок" и "текст". |
Eсли нажата кнопка Ok, возвращается введенный пользователем пароль. Eсли нажата кнопка Cancel, ничего не возвращается, поскольку выполнение всей формулы завершается. |
[ChooseDatabase] |
Окно со списком файлов баз данных для выбора и открытия, и кнопки Open, Cancel, Select, About и Browse. Согласно документации функция с данным ключевым словом должна использовать только параметры [стиль], "заголовок" и "выбор". Из личного опыта (подтвержденного bug report) в версии R 6.0.1 параметры "заголовок" и "выбор" работают некорректно. |
Возвращает трехэлементный список (имя сервера, имя файла и заголовок базы данных. Для локальных БД в качестве имя сервера возвращается пустая строка. |
Ключевое слово [NoSort] необязательно. Если оно присутствует, то это предотвращает сортировку в алфавитном порядке значений из списка "по_умолчанию" при выводе в подокно списка или выпадающего списка диалогового окна.
Для параметра "заголовок" задается текст, который должен быть показан в заголовке диалогового окна. Заголовок окна должен быть указан всегда, если его нет - задается пустая строку "". Максимальное число символов в строке "заголовока" 65.
Для параметра "текст" задается текст сообщения, который должен быть показан внутри окна. Параметр должен быть указан всегда, за исключением [LocalBrowse] (и скорее всего [ChooseDatabase]). Если в качестве "текста" используется формула, возвращающая текстовый список, в окне будет показан только первый элемент этого списка. Чтобы показать весь список, используйте @Implode. @NewLine нельзя использовать в параметре "текст", вместо нее рекомендуется использовать @Char(13) для перевода текста на новую строку. Максимальное число символов в строке "текст" 255.
В параметре "по_умолчанию" определяется для вводимой пользователем строки значение по умолчанию. Это значение будет появляться в строке ввода при открытии окна; пользователь может принять его, выбирая OK, или заменить его другим значением. Значение "по_умолчанию" предназначено для использования со всеми стилями за исключением: [Ok], [YesNo], [YesNoCancel], [LocalBrowse], [Password] (и скорее всего [ChooseDatabase]).
В качестве параметра "выбор" задается список значений, которые нужно поместить в подокне списка диалогового окна. Список "выбор" должен указываться в следующих стилях: [OkCancelList], [OkCancelCombo], [OkCancelEditCombo] и [OkCancelListMult] (и скорее всего [ChooseDatabase]).
Параметр "тип_файла" применим только к стилю [LocalBrowse]. В этом контексте определяет текст файла для показа:
-
"1" - для файлов *.nsf;
-
"2" - для файлов *.ntf;
-
"3" - для всех остальных файлов.
Пример 1. Стиль [Ok].
@Prompt( [Ok]; "Напоминание";
"Не забудьте сегодня вечером выполнить резервное копирование." )
Рис. 6.16 @Prompt([Ok];…)
Пример 2. Стиль [YesNo].
@Prompt( [YesNo]; "Отправить сообщение?";
"Это сообщение будет отправлено указанным в поле " +
@Char( 13 ) + @Char( 10 ) +
"Кому, Копия и Секретная копия лицам." )
Рис. 6.17 @Prompt([YesNo];…)
Пример 3. Стиль [YesNoCancel].
@Prompt( [YesNoCancel]; "Заголовок"; "Текст в окно" )
Рис. 6.18 @Prompt([YesNoCancel];…)
Пример 4. Стиль [OkCancelEdit].
@Prompt( [OkCancelEdit]; "Введите ваше имя";
"Введите ваше имя в редактирующий элемент внизу.";
@UserName )
Рис. 6.19 @Prompt([OkCancelEdit];…)
Пример 5. Стиль [OkCancelList].
@Prompt( [OkCancelList]; "Выбрать базу данных";
"Выберите базу данных для открытия.";
"Расписание"; "Расписание" : "Телефонная книга" :
@Subset( @MailDbName; -1 ))
Рис. 6.20 @Prompt([OkCancelList];…)
Пример 6. Стиль [OkCancelCombo].
@Prompt( [OkCancelCombo]; "Выбрать базу данных";
"Выберите базу данных для открытия.";
"Расписание"; "Расписание" : "Телефонная книга" :
@Subset( @MailDbName; -1 ))
Рис. 6.21 @Prompt([OkCancelCombo];…)
Пример 7. Стиль [OkCancelEditCombo].
@Prompt( [OkCancelEditCombo]; "Выбрать базу данных";
"Выберите базу данных для открытия или введите
ее название."; "Расписание"; "Расписание" :
"Телефонная книга" : @Subset ( @MailDbName; -1 ))
Рис. 6.22 @Prompt([OkCancelEditCombo];…)
Пример 8. Стиль[OkCancelListMult].
@Prompt( [OkCancelListMult]; "Выбрать имя";
"Выберите одно или более имен получателей этого
запроса."; "Елена Наумова"; "Елена Наумова" :
"Андрей Ефремов" : "Борис Иванов" : "Леонид Решко" )
Рис. 6.23 @Prompt([OkCancelListMult]; …)
Пример 9. Стиль[Password].
@Prompt( [Password]; "Пароль"; "Скажи пароль" ;
"пароль"; "пароль" )
Рис. 6.24 @Prompt([Password];…)
Пример 10. Стиль [LocalBrowse]
@Prompt( [LocalBrowse]; "Выбор файла"; "1" )
Рис. 6.25 @Prompt([LocalBrowse]; …)
Пример 11. Стиль [ChooseDatabase]
@Prompt( [ChooseDatabase]; ""; "" )
Рис. 6.26 @Prompt([ChooseDatabase]; ...)
@PickList( [Custom] : [Single]; "сервер":
"база_данных"; "вид"; "заголовок"; "текст";
номер_столбца; "ключ" )
@PickList( [Name] : [Single] )
@PickList( [Room] )
@PickList( [Resource] )
@PickList( [Folders] : [тип_папки] : [Single]; "сервер"
: "база_данных" )
Область применения: нельзя использовать в формулах отбора, колонок, почтовых агентов и агентов, выполняющихся по расписанию, видимости объекта, заголовка окна, всплывающих окон и формы. Не работает при установке переменной окружения NoExternalApps равной 1. В Web-приложениях не работает.
Вариант @PickList( [Custom];…) выдает модальное диалоговое окно, в котором выводится содержимое базы данных "сервер" : "база_данных" по указанному "виду". В этом модальном окне пользователь может выбрать (отметить) один или более документов при первом параметре - [Custom], или только один документ при первом параметре - [Custom] : [Single]. Функция @PickList возвратит значение из указанного столбца "номер_столбца" этого "вида" для выбранных документов.
Двухэлементный текстовый список "сервер" : "база_данных" определяет сервер и файл базы, из которой выбирается вид. Если задать элемент "сервер" равным "", будет предполагаться, что база расположена локально. Если вместо двухэлементного списка задать "", вид будет выбран из текущей базы. В случае если первый параметр [Custom] можно в качестве аргумента "сервер" : "база_данных" задавать значение идентификатора реплики, например "85255CEB:0032AC04" (как одну текстовую строку, а не список из двух элементов), подобно тому, как это допускается в функциях @DbColumn и @DbLookup. Параметр "вид" - текстовая строка, содержащая имя открываемого в диалоговом окне вида.
Параметр "заголовок" задает текст, выводимый в заголовок диалогового окна, а "текст" - текст, выводимый в само диалоговое окно.
Числовой параметр номер_столбца задает номер столбца в виде, из которого функция будет выбирать значения. Обратите внимание, что в отличие от функций @DbColumn и @DbLookup номер столбца для @PickList не зависит от формулы для этого столбца, все столбцы пронумерованы слева направо начиная с единицы.
Параметр "ключ" необязателен, при его задании в виде показываются только те документы, которые содержат значение ключ в первой отсортированной и обязательно категоризованной колонке данного вида. По поводу данного параметра следует сделать замечание. По синтаксису данный параметр должен иметь текстовой тип (синтаксический анализатор не дает сохранить формулу с другим типом данных). Однако если значение в колонке имеет другой тип данных (например, числовой или дата-время), а параметр имеет аналогичное значение преобразованное к тексту, то функция работает некорректно.
При использовании параметра "ключ" функция @PickList не кеширует информацию в отличие от @DbColumn и @DbLookup, поиск осуществляется каждый раз при новом вызове функции.
Размер возвращаемых функцией данных имеет точно такие же ограничения что и у функций @DbColumn и @DbLookup. Обратите внимание, что это ограничения только на размер возвращаемых значений по кнопке Ok (обычно актуально при множественном выборе), сама же функция @PickList имеет доступ ко всем данным вида.
При отображении календарного вида в рамках @PickList, последний выводится без слота времени и в формате отображающем два дня календаря, включая текущий. Пользователь в дальнейшем может изменить формат отображения, а также осуществлять навигацию по календарю.
Вариант @PickList( [Name] : [Single] ) выводит диалоговое окно, содержащее информацию из доступных адресных книг. Пользователь может выбрать одно или более лиц, групп или серверов, а функция @PickList вернет выбранные им имена. Ключевое слово [Single] не обязательно. Оно указывает, что разрешен выбор только одного имени.
Варианты @PickList( [Room] ) и @PickList( [Resource] ) выдают диалоговые окна с информацией о ресурсах и комнатах из доступных адресных книг.
Вариант @PickList( [Folders] : [тип_папки] : [Single]; "сервер" : "база_данных" ) выводит диалоговое окно, содержащее информацию об имеющихся папках в "базе_данных". Пользователь может выбрать одну или более папок, а функция @PickList вернет выбранные им имена. Ключевое слово [Single] не обязательно.
Параметр [тип_папки] необязателен, и может принимать одно следующих значений:
-
[Shared] для отбора только общих папок;
-
[Private] для отбора только личных папок, как сохраняемых в базе данных, так и в файле desktop;
-
[Shared]:[Private] для отбора только общих до первого использования папок;
-
[NoDesktop] для отбора всех папок, за исключением сохраняемых в файле desktop.
Если параметр [тип_папки] опущен, выводятся все папки.
Пример 1. Формула кнопки позволяет пользователю выбрать папку, в которую надо поместить текущий документ.
choice := @PickList( [Folders]; "" );
@AddToFolder( choice; "" )
Рис. 6.27 Пример окна @PickList([Folder])
Пример 2. Формула кнопки позволяет пользователю выбрать список пользователей, групп и серверов в качестве значения поля person.
FIELD person := person;
@SetField( "person"; @PickList( [Name] ) )
Рис. 6.28 Пример окна @PickList([Name])
Пример 3. Формула открывает вид Otdel из базы с идентификатором реплики "C32566DC:00520B5F" в диалоговом окне. Предположим, пользователь отметил в окне документ, для которого во второй колонке вида отображается "Тома Р.О.". Временная переменная choice получит значение: "Тома Р.О.".
сhoice :=@PickList( [Custom] : [Single]; "C32566DC:00520B5F"; "Otdel"; "Выбор сотрудника"; "Выберите сотрудника"; 2 );
Рис. 6.29 Пример окна @PickList([Custom]:[Single];...)
Пример 4. Выводит диалоговое окно с информацией о имеющихся комнатах из адресных книг.
@PickList( [Room] );
Рис. 6.30 Пример окна @PickList( [Room] )
Пример 5. Выводит диалоговое окно с информацией об имеющихся ресурсах из адресных книг.
@PickList( [Resource] );
Рис. 6.31 Пример окна @PickList( [Resource] )
@DialogBox( "форма"; [AutoHorzFit] : [AutoVertFit] :
[NoCancel] : [NoNewFields] : [NoFieldUpdate] :
[ReadOnly] : [SizeToTable] : [NoOkCancel] :
[OkCancelAtBottom]; "заголовок" )
Область применения: нельзя использовать в формулах отбора, колонок, агентов выполняющихся на сервере (почтовые и по расписанию), заголовка окна и формы. Не возвращает данные из RTF-полей. Не работает при установке переменной окружения NoExternalApps равной 1. В Web-приложениях не работает.
Открывает в модальном диалоговом окне текущий документ по указанной форме "форма". Пользователь получает возможность работы с документом в диалоговом окне, причем он не может переключиться в другое окно Notes, пока не закроет этот диалог кнопкой OK или Cancel.
Ключевые слова [AutoHorzFit] и [AutoVertFit] не обязательны, указываются в случае, если форма представляет собой область размещения (layout region), и диалоговое окно следует "подгонять" под размеры области размещения по горизонтали и (или) по вертикали. Такая возможность может использоваться с любой формой, но она особенно полезна с формами, которые содержат одну область размещения, потому что пользователь может работать с этой областью, как с диалоговым окном. Однако если в форме присутствует более одной области размещения, в диалоговом окне будет выведена только первая область.
Рис. 6.32 Пример формы c областью размещения в диалоговом окне
Параметр [NoCancel] не обязателен, указывается в случае необходимости, подавления в диалоговом окне кнопки Cancel.
Параметр [NoNewFields] не обязателен, указывается, когда нужно не добавлять в текущий документ поля, которые есть в "форме", но нет в исходной форме.
Параметр [NoFieldUpdate] не обязателен, указывается, когда нужно не переносить изменения из полей "формы" в текущий документ. Используется обычно в случае, если значения из этих полей переносятся в другое место (например, по событию QueryClose "формы")
Параметр [ReadOnly] не обязателен, указывается в случае необходимости запрета ввода информации в поля диалогового окна (например, при выводе справки). Используется вместе с ключевым словом [NoCancel].
Параметр [SizeToTable] не обязателен, указывается в случае необходимости “подгонки“ диалогового окна под размеры первой таблицы в "форме". Используется только совместно с флагами [AutoHorzFit] и [AutoVertFit]. Из опыта следует заметить, что правильно подгоняются только таблицы в стандартном интерфейсе (т.е. не таблицы с закладками и т.д.).
Параметр [NoOkCancel] не обязателен, указывается в случае необходимости подавления вывода кнопки Ok. Рекомендуется использовать совместно с флагом [NoCancel]. В этом случае для передачи данных из модальной формы в основную можно использовать гиперобъект (например, кнопка) модальной формы с @-командой [RefreshParentNote].
В R 6 появился еще один необязательный параметр [OkCancelAtBottom], позволяющий осуществить вывод кнопок Ok и Cancel (если они присутствуют) в строчку в правом нижнем углу диалогового окна.
Параметр "заголовок" не обязателен, указывается для изменения заголовка окна со стандартного "Lotus Notes" на "заголовок".
Явное возвращаемое значение у функции отсутствует.
При работе с одним и тем же документом по разным формам действуют следующие соглашения:
-
если "форма" имеет общие (одноименные) поля с текущим документом, значения полей из текущего документа выводятся в диалоговом окне. Rich Text поля (несмотря на указание противного в документации) также отображаются в диалоговом окне;
-
при изменении значение какого-то поля в диалоговом окне и нажатии на кнопку Ok, эти изменения будут отражены в соответствующих полях текущего документа (если, разумеется, не указан флаг [NoFieldUpdate]). Так же не передаются изменения из Rich Text полей;
-
если пользователь вводит значение для поля в диалоговом окне, но текущий документ не содержит поля с таким именем, поле и значение добавляются в документ, даже если в основной форме для показа этого документа такого поля нет (если, разумеется, не указаны флаги [NoNewFields] и/или [NoFieldUpdate]).
Пример 1. Форма с именем Profile содержит кнопку с формулой
@DialogBox( "Profile Options"; [AutoHorzFit] : [AutoVertFit] ; "Модальное окно" )
Предположим, что в обеих формах Profile и Profile Options присутствует поле Comments, но вторая форма представляет собой область размещения и специально создана для удобства редактирования поля Comments. Пользователь, находясь в режиме редактирования документа (по форме Profile), нажимает рассматриваемую кнопку. Документ открывается в диалоговом окне по форме Profile Options. После редактирования новое значение поля Comments "поступает" в документ.
Пример 2. Формула, демонстрирует “подгонку“ диалогового окна под первую таблицу в форме “Form1“, а также действие флага [OkCancelAtBottom].
@DialogBox("Form1";[AutoHorzFit] : [AutoVertFit] :
[SizeToTable] : [OkCancelAtBottom] ;"Пример
\"подгонки\" @DialogBox под таблицу" )
Рис. 6.33 «Подгонка» диалогового окна под размеры таблицы
@StatusBar( строка )
@StatusBar( список_строк )
Область применения: предназначена для использования только в формулах кнопок панели инструментов, заголовка окна, гиперобъектов, полей, акций видов и формы, а также навигатора. В Web-приложениях не работает.
Выводит в строку состояния клиента Notes сообщение, состоящее из строки, или если параметр представляет собой список строк, то выводится несколько сообщений, каждое из которых состоит из одного элемента списка_строк.
Пример. Выводит сообщение в строку состояния.
@StatusBar("Обрати внимание – на мои страдания");
Рис. 6.34 Пример работы @StatusBar
@DbCommand( "Domino"; "ViewPreviousPage")
@DbCommand( "Domino"; "ViewNextPage")
@DbCommand( "Domino"; "FolderList"
[;"заголовок"[;"список_исключений" ]] )
Область применения: в DOMINO R 6.0.1 ДОКУМЕНТИРОВАНА НЕ ПОЛНОСТЬЮ. Разрешается использовать только в Web-приложениях.
В первом варианте синтаксиса организует ссылку на предыдущий документ в виде, во втором на последующий. Третий вариант новый в R 6, при использовании в формулах полей типа список выводит имена доступных из-под Web-папок. Необязательный параметр заголовок определяет первый элемент получаемого списка. Если список доступных папок пуст, то заголовок не выводится. Список_исключений может задавать имена папок (то же в виде списка), которые не будут отображаться в результирующем списке. Данная команда может использоваться совместно с функцией @AddToFolder для помещения текущего документа в выбранную папку.
Пример. Под Web доступны папки с именами Folder1, Folder2 и Folder3. Нижеприведенная формула, используемая в формуле поля, выдаст список доступных папок за исключением Folder2 (см. Рис. 6 .35).
@DbCommand("Domino" ; "FolderList" ; "Выберите папку";"Folder2")
Рис. 6.35 Вариант выбора папок через @DbCommand("Domino" ; "FolderList")
В вышеприведенном примере можно было добавить на форму акцию (либо кнопку), которая помещает текущий документ в выбранные в поле My_folders папки. Формула этой кнопки может быть следующая:
@If(
@IsNewDoc; "";
My_folders = ""; "";
@Count(My_folders)=1; @AddToFolder(My_folders;"");
@Transform(My_folders; "x"; @AddToFolder( x; ""))
)
Существует еще один способ помещения документов в папку с использованием @DbCommand("Domino" ; "FolderList"; …). Это достигается следующим образом:
-
присвоим полю с формулой @DbCommand("Domino" ; "FolderList"; …) зарезервированное имя $$SelectDestFolder;
-
разместим на этой же форме встроенный вид, у которого поднят флаг Allow selection of documents в его окне свойств на закладке Advanced;
-
в окне свойств встроенного вида как элемента дизайна установить значение Using HTML для поля Display с закладки Info, и поднять флаг Show selection margin с закладки Display;
-
создать акцию формы с формулой @Command([FolderDocuments]; ""; "0"). Клик по кнопке акции будет вызывать помещение выделенного во встроенном виде документа в папку, выбранную в поле $$SelectDestFolder. Если на форму встроена папка (а не вид), то для акции формы можно использовать команду @Command([FolderDocuments]; ""; "1") для перемещения, а не копирования выделенного документа.
Про описанный выше метод следует уточнить, что работает он только для первого выбранного во встроенном виде документа, а также только для первой выбранной папки в поле $$SelectDestFolder (при поднятом флаге Allow multiple values).