- •Введение
- •Синтаксис формул
- •Лексические элементы формул
- •Переменные
- •Предопределенные поля
- •Временные переменные
- •Константы
- •Операторы выполнения операций
- •Порядок выполнения вычислений
- •Ключевые слова
- •Функции
- •Побочные эффекты
- •Ограничения применимости @-функций и команд, налагаемые списком управления выполнением (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
-
Функции для работы с видами
@SetViewInfo( [SETVIEWFILTER]; "фильтр";
"программное_имя_столбца"; флаг )
Область применения: В DOMINO R 6.0.1 НЕ ДОКУМЕНТИРОВАНА.
Накладывает фильтр на отображаемую информацию в видах и папках. По своему действию очень похожа на результат применение Show single category (показ единственной категории) в рамках встроенных видов/папок. Функция может быть применена как к стандартным, так и к календарным видам. Результат применения и характер воздействия аргументов функции зависит от типа вида (стандартный/календарный).
Рассмотрим подробнее аргументы функции согласно документации (она не всегда соответствует действительности):
-
"фильтр" – текстовая строка, определяющая какие документы будут отображаться в виде. Если такая строка присутствует в столбце с программным именем, определенным во втором параметре функции, то такие документы отображаются в виде после применения функции;
-
"программное_имя_столбца" - текстовая строка, определяющая программное имя столбца (задается в поле Name на закладке Advanced окна свойств столбца). Указанный столбец должен содержать строку "фильтр" для отображения соответствующих документов в виде;
-
флаг – булевское значение. Для стандартных (некалендарных) видов при значении 1 (True) указывает, что колонка с программным именем из предыдущего параметра является категорией, 0 (False) – в противном случае. Для календарных видов флаг является необязательным параметром, указывающим на точное/неточное соответствие "фильтра" значению из столбца "программное_имя_столбца". 1 (True) определяет точное соответствие, 0 (False) – в противном случае.
Из личного опыта можно сказать, что функция может использоваться в рамках формул акций видов и форм, кнопок панели инструментов и гиперобъектов. Функция не работает в Web-приложениях.
Функция с параметром флаг при значении 1 оказывает воздействие на все стандартные (т.е. некалендарные) виды, а при значении 0 (или с опущенным параметром флаг) соответственно на все календарные виды. Другими словами, если в рамках некалендарного вида применить формулу типа @SetViewInfo([SetViewFilter]; "Россия"; "Country"; 1) в рамках акции определенного некалендарного вида, а затем переключиться в другой некалендарный вид/паку – то в ней тоже будет действовать этот фильтр (иногда надо обновить индекс вида – F9). Такой фильтр будет действовать либо до нового применения функции @SetViewInfo, либо до закрытия БД. Соответственно @SetViewInfo с параметром флаг равным 1 не оказывает влияние на календарные виды, а с параметром флаг равным 0 (или опущенным) не оказывает влияние на некалендарные виды.
Фильтр можно снять применением функции @SetViewInfo, у которой в качестве параметра "фильтр" указана пустая строка. При этом в качестве значения параметра "программное_имя_столбца" можно указать любое значение (даже имя несуществующего столбца) за исключением пустой строки, и последний параметр флаг должен соответствовать типу вида (календарный/некалендарный).
Функция нечувствительна к регистру параметра "фильтр".
Для некалендарных видов справедливы следующие правила:
-
функция оказывает влияние только на самую первую категорию вида. Если в виде две категории (например, первая страна и далее город), то @SetViewInfo([SetViewFilter];"Москва";"Town";1) – скрывает все документы в виде. Функция работает некорректно, даже если перед первой отображаемой категорией слева присутствуют скрытые колонки;
-
параметр флаг при значении 0 – не оказывает никакого влияния на виды (фильтр не накладывается даже для первой колонки сортированной, но не категоризованной);
-
в случае не строгого соответствия строки-фильтра значению из первого столбца-категории, отбираются документы только из первой категории, соответствующей частичному совпадению со строкой-фильтром. Другими словами, если в первой категоризованной колонке отображаются записи со значениями «Руанда» и «Румыния», то применение формулы @SetViewInfo([SetViewFilter]; "ру"; "Coutry"; 1) отобразит только документы имеющие отношение к «Руанда»;
-
строка-фильтр должна не присутствовать в колонке вида, а являться началом отображаемой в колонке информации. Т.е. если в первой категоризованной колонке вида с программным именем Country отображается «Россия», то @SetViewInfo([SetViewFilter]; "оссия"; "Country"; 1) не будет отображать такие документы;
-
функция не работает, если в первом столбце-категории отображается нетекстовая информация (дата/время, числа).
Для календарных видов справедливы следующие правила:
-
параметр флаг при значении 1 – не оказывает никакого влияния на календарные виды. Для воздействия на календарные виды параметр флаг должен быть равен 0, либо опущен;
-
функция корректно работает со значениями типа дата/время и числа. Параметр "фильтр" в этом случае задается как текстовая строка, соответствующая отображаемой информации из "программное_имя_столбца", преобразованной к тексту;
-
для отбора документов строка-фильтр должна присутствовать (а не обязательно начинаться с нее) в столбце "программное_имя_столбца";
-
функция может быть применена к любому (т.е. не обязательно первому) столбцу, включая скрытые и несортированные.
Пример 1. В первой категоризованной колонке стандартного вида с программным именем Country отображается информация из одноименного поля документов. Формула, размещенная в акции вида, может использоваться для установки/снятия фильтра, накладываемого на все стандартные виды:
cond := @Prompt([OkCancelCombo];
"Выбор действия"; "Выберите требуемое действие";
"Снять фильтр"; "Снять фильтр" : "Установить фильтр");
@If(cond = "Снять фильтр";
@SetViewInfo([SetViewFilter]; ""; "Country"; 1);
cond = "Установить фильтр";
@Do(
filter := @Prompt([OkCancelEdit]; "Установка фильтра"; "Введите значение фильтра"; "");
@If(filter <> ""; @SetViewInfo([SetViewFilter]; filter; "Country"; 1); "")
); ""
)
Пример 2. В БД, созданной по стандартному почтовому шаблону (mail6.ntf), в виде с алиасом Calendar добавляем новую акцию формы, которая будет отбирать только те документы, у которых в заголовке присутствует строка «место встречи». Обратите внимание, как задан параметр "программное_имя_столбца". Его можно было бы изменить в поле Name на закладке Advanced окна свойств столбца. Собственно формула акции вида выглядит так:
@SetViewInfo([SetViewFilter]; "место встречи"; "$147"; 0)