- •Введение
- •Синтаксис формул
- •Лексические элементы формул
- •Переменные
- •Предопределенные поля
- •Временные переменные
- •Константы
- •Операторы выполнения операций
- •Порядок выполнения вычислений
- •Ключевые слова
- •Функции
- •Побочные эффекты
- •Ограничения применимости @-функций и команд, налагаемые списком управления выполнением (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
-
Формулы работы с видами
-
Формула отбора документов
-
Демонстрация на примере видов Main+Resp, Cal1, Cal2, Cal3. Формула отбора документов в вид является одной самых важнейших формул вида. Формула строится с использованием ключевого слова SELECT (см. стр. 16). Наиболее часто эта формула строится на основании значений полей и свойств документов. Например,
SELECT Form="Hotel"
или
SELECT @Created > [01.01.2004]
или
SELECT @Attachments > 0
В формулах отбора (как впрочем и в формулах столбцов вида) настоятельно не рекомендуется использовать функции, оперирующие с компонентами текущей дата/времени. Если это все-таки необходимо, то желательно предварительно ограничить число документов (это условие должно быть первым в операторе SELECT), а затем применить условие, имеющее отношение к текущей дате/времени. Например, SELECT Form = "Main" & @Created > @Adjust(@Now; 0; 0; -3; 0; 0; 0), а не наоборот SELECT @Created > @Adjust(@Now; 0; 0; -3; 0; 0; 0) & Form = "Main". В 6-й версии Domino для этих целей можно еще использовать «раскраску» строк вида через профайл (см. вид Cal3). Такие виды не помечаются сервером, как требующие частого обновления, однако индекс этих видов автоматически не изменяется в зависимости от таймера.
Самостоятельно реализовать аналог примера с видом Cal3.
Для отбора документов «родителей» вместе со своими потомками можно использовать функции @AllChildren (см. стр. 170) и @AllDescendants (см. стр. 171). Продемонстрировать пример организации галереи (см. БД TestJPG.nsf). Рассмотреть функции @DocumentUniqueID (см. стр. 146) и @WebDBName (см. стр. 228).
Самостоятельно реализовать аналог галереи.
-
Формулы столбцов вида
Для задания формулы столбца необходимо сначала перейти в объектно-событийной панели на конкретный объект Column Value (значение столбца). При этом в панели программного кода можно определить характеристики выводимого значения. В верхней части программной панели расположено поле Display (отображение), которое с помощью трех радиокнопок определяет способ задания значения колонки вида. Интерфейс радиокнопок предлагает для выбора следующие значения:
-
Simple Function (простые функции). Определение значения столбца идет на основании предопределенного набора функции. Все они имеют аналоги в языке @-формул. Ниже в таблице приведен список этих функций с расшифровкой выполняемых ими действий:
Название |
Перевод |
Расшифровка действия |
Аналог на языке @-формул |
# in View (eg 2.1.2) |
Номер в виде (например, 2.1.2) |
Отображает иерархический уровень текущего документа. Номер 2.1.2 говорит, что документ на верхнем уровне иерархии лежит во второй категории, на втором уровне иерархии в первой категории, а сам принадлежит к третьему уровню иерархии и в рамках его лежит вторым, считая сверху вниз. |
@DocNumber |
# of Responses (1 Level) |
Число ответных документов на первом уровне иерархии |
Определяет число документов или подкатегорий, лежащих на один уровень ниже от текущей категории. Колонка с этой формулой должна находится левее колонки с категорией, для которой определяется число ответных документов. |
@DocChildren |
# of Responses (All Level) |
Число ответных документов на всех уровнях иерархии |
Определяет число документов или подкатегорий, лежащих на всех уровнях ниже текущей категории. Колонка с этой формулой должна находиться левее колонки с категорией, для которой определяется число ответных документов. |
@DocDescendants |
Attachment Lengths |
Размер в байтах присоединенных файлов |
Возвращаемое значение есть число, или числовой список, если присоединенных файлов несколько. |
@AttachmentLengths |
Attachment Names |
Имена присоединенных файлов |
Возвращаемое значение есть текст, или текстовый список, если присоединенных файлов несколько. |
@AttachmentNames |
Attachments |
Количество присоединенных файлов |
Возвращаемое значение есть число, соответствующее числу присоединенных файлов. |
@Attachments |
Author(s) (Distinguished Name) |
Автор (ы) (полное иерархическое имя) |
Возвращает имя автора документа в иерархическом формате |
@Author |
Author(s) (Simple Name) |
Автор(ы) (сокращенное имя) |
Возвращает имя автора документа в сокращенном формате |
@Name([CN]; @Author) |
Collapse/Expand (+/-) |
Уровень «свернут/развернут» |
Возвращает строку "+", если уровень в виде разворачиваемый, и "-" - если нет. Столбец должен иметь категоризацию (свойство Categorized), либо лежать левее категоризующей колонки. |
@IsExpandable |
Creation Date |
Дата создания |
Возвращает дату и время создания документа |
@Created |
Last Modified |
Дата последней модификации |
Возвращает дату и время последнего сохранения документа |
@Modified |
Last Read or Edited |
Дата последнего чтения или редактирования документа |
Возвращает дату и время последнего чтения или редактирования документа |
@Accessed |
Size (bytes) |
Размер в байтах |
Возвращает размер документа в байтах |
@DocLength |
-
Field (поля). Определение значения столбца идет на основании полей, присутствующих в текущей БД. В панели программного кода перечислен список этих полей. Следует помнить, что в колонках видов нельзя отображать значение Rich Text полей. Имена таких полей обычно отсутствуют в панели программного кода. Это происходит в случае, когда у всех документов текущей БД поле с таким именем имеет тип Rich Text. Далее, если текущая колонка категоризованная (Categorized), и в значении поля присутствует символ обратного слеша («\»), то в колонке возникают дополнительные уровни иерархии, число которых зависит от количества обратных слешей в значении поля. Например, значение поля «Европа\Россия\Москва» в категоризованной колонке вида будет отображено тремя уровнями иерархии, соответственно «Европа», «Россия» и «Москва». При этом, следует не забывать, что Domino поддерживает до 32 уровней иерархии;
-
Formula (@-формула). Определение значения столбца идет на основании языка @-формул. Это наиболее гибкий способ определения значения колонки вида. В контексте формулы колонки видов допускается использовать ссылки на значения полей, а также ряд @-функции, которые поддерживаются в этом контексте (подробнее см. документацию). Аналогично предыдущему пункту в категоризованных колонках допускается использовать символ обратного слеша («\»). В этом случае стоит не забывать, что согласно синтаксису @-формул, символ слеша должен быть удвоен. Например, формула столбца может выглядеть так: Country + "\\" + Region + "\\" + Town.
Продемонстрировать формулу столбца со слешем (см. вид Hotel with slash).
Продемонстрировать и объяснить работу примера галереи в рамках вида (см. вид Table photo БД TestJPG.nsf). Самостоятельно реализовать аналог табличной галереи.
Рассмотреть механизм использования циклов в формулах видов на примере видов Numb и NumbSelFormula. Рассмотреть синтаксис циклов (см. стр. 44).