Загрузка...

Лекция 5 по Lotus Notes 2014-2015 год.


Лекция 5. Разработка форм

Формы

Создание форм.

Свойства формы, добавление полей в формы.

Скрытие и отображение элементов формы.

Использование формул в формах.

Программирование в формах, события формы.

Создание заголовков окон.

Функция @IsNewDoc.

Работа с вычисляемыми значениями.

Работа со значениями полей.

Функции ввода, форматирования и проверки значений.

Работа со списками.

Оглавление

1Когда формы используются вместо страниц2

2Форма – это не документ2

3Создание формы3

4Свойства формы4

4.1Закладка Info4

4.2Закладка Defaults6

4.3Закладка запуска (Launch tab)9

4.4Закладка для настройки фона формы (Form Background Tab)10

4.5Непрокручивающийся заголовок формы10

4.6Закладка «Безопасность» — Security12

5Свойства, которые не поддерживаются браузерами12

6Поля13

6.1Добавление поля13

6.2Свойства текста13

6.3Свойства полей13

6.3.1Закладка Field Info13

6.3.2Закладка «Управление» (Control)20

6.3.3Закладка «Дополнительно»22

6.4Стандартные поля24

6.5Внутренние имена полей24

6.6Поля со встроенной функциональностью24

6.7Общие поля25

6.7.1Добавление общего поля25

6.8Списки26

6.8.1Статический текстовый список26

6.8.2Синонимы ключевых слов27

6.8.3Списки, основанные на формулах27

6.8.4Name lookups28

6.8.5Окно диалога, построенное на основе определенного представления — View lookup28

6.8.6Checkbox и Radio button29

6.9Rich Text29

6.9.1Свойства30

6.9.2Rich Text Lite30

6.9.3Добавление вложений из браузера31

Когда формы используются вместо страниц

В отличие от страниц форма добавляет динамику и позволяет создавать документы. Можно сказать, что форма — это та же самая страница, но с возможностью создавать новые документы.

Форма может содержать все те же элементы, что и страницы, кроме того, она дает возможность изменять данные в документах. Для этого в форме используются поля.

Формы по сравнению со страницами имеют ряд дополнительных возможностей:

Они отделяют дизайн от данных, изменения в дизайне формы могут влиять на отображение многих документов.

Они могут содержать поля, которые могут принимать, проверять и хранить данные.

Они могут содержать подформы и общие поля, так что одни и те же элементы дизайна могут использоваться в нескольких формах.

Документы, созданные по формам, могут быть видны в представлениях.

Документы, созданные с помощью форм, включаются в полнотекстовый индекс и можно осуществлять поиск по БД или даже по нескольким базам, используя механизм доменного поиска (Domain Search).

Форма – это не документ

Когда пользователь заполняет форму и сохраняет ее – это сохраняется в виде документа.

Можно сравнить форму с трафаретом, с помощью которого можно прочитать зашифрованный текст.

Форма – элемент дизайна, с помощью которого можно создавать, редактировать и просматривать документы

Итак, форма – это не документ, а средство для визуального представления документа пользователю, средство просмотра и редактирования документа.

Форма – основной элемент в структуре БД, базы без форм встречаются, но носят служебный характер.

Форма является основным элементов взаимодействия с пользователем в приложениях Lotus Notes.

Как правило, пользователи применяют формы Notes для создания, открытия и изменения документов. Однако документы могут существовать и без отображающих их форм.

Форма — это физический шаблон, обеспечивающий структуру и форматирование документа, выводимого для пользователя. Например, форма может содержать разметку документа, расположение полей, текст, рисунки, фоновый цвет и т. п. Независимо от того, применяет ли пользователь Web-клиент или клиент Notes, система Domino определяет права пользователя для создания, чтения, изменения или удаления документов при помощи списка контроля доступа (Access Control List, ACL). В документах хранятся данные четырех типов.

Текст

Числа

Дата/время

Сложный текст (Rich text) с изображениями, таблицами, разделами, объектами и т. п.

Форма, как правило, хранится отдельно от самого документа. Но есть возможность сохранять форму внутри документа. Это нужно, чтобы документ всегда отображался одинаково в независимости от того в какую базу он попадет. Например, при пересылке документа иногда важно гарантировать, что документ сможет быть прочитан. Сохранение формы в составе документа гарантирует отображение документа в независимости от того в какую базу он попадет.

Форма, которая используется для просмотра документа, хранится в поле с именем Form, которое автоматически сохраняется в документе.

Пример показывает разницу между формой и документом.

Создание формы

Презентация — описание процесса создания простой формы

Замечание по поводу уникальности имени формы в рамках БД.

Соглашение о наименовании элементов дизайна

Внешний вид документа для просмотра и редактирования может отличаться.

Различные техники могут использоваться для улучшения внешнего вида документа при просмотре, может учитываться тип клиента, настройки безопасности, требования документооборота.

Иногда проще использовать разные формы для разных типов клиентов, а также для печати документа.

Свойства формы

Закладка Info

Каскадные имена форм. Вы можете использовать для форм каскадные имена. Пример – на рисунке. Для форм были заданы имена, начинающиеся со слова Special:

Special Link Message, Special Phone Message и т.д.

Имя формы, длина 32 символа, включая псевдоним

Имя может быть изменено в любой момент

Также может быть задан один или несколько псевдонимов через вертикальную черту

Псевдоним – используется для уникальной идентификации формы, желательно не менять, так как он обычно используется для обращения к форме из программного кода

Если заключить имя формы в круглые скобки, то форма будет скрыта от пользователя, например, она не появится в списке форм меню Create, или в списке альтернативных форм при печати документов

Тем не менее, разработчик сможет ее использовать, обращаясь к ней в действиях, ссылках, URL

Внимание! Даже если форма является скрытой, при открытии документов, созданных по этой форме, будет использоваться именно эта форма.

-:

Закладка Defaults

С. 139 учебника

Свойство

Описание

Тип формы

Презентация – DDBA6DEMO, представление Discussion в клиенте открыть

Указание типа документа. Возможны три варианта:

Обычные документы

Ответ

Ответ на ответ

Это позволяет создавать иерархии документов, которые можно просматривать с помощью иерархических представлений.

Отображение

Можно настроить, в каком пункте меню будет возможность создать документ по этой форме:

Нет в меню

в меню Create

в меню CreateOther

Можно настроить, будет ли видна форма в диалоге поиска (search by form) и в списке альтернативных форм при печати

Versioning (Управление версиями)

Определяет правила сохранения документа

Это один из способов уменьшить количество конфликтов репликации, которые происходят, если два пользователя редактировали один и тот же документ на разных серверах.

В частности, мы можем сохранять документ как новую версию – для систем документооборота это нормальная практика, даже незначительные изменения повлекут создание новой версии.

Default Database Form (Форма, используемая в БД по умолчанию)

Вы должны определить одну из форм в БД как форму, используемую по умолчанию.

Если документ был создан без формы или с помощью формы, название которой найти не удается, то документ будет открыт по этой форме.

Хранить форму в документе

Храните форму в документе, если вы планируете отправлять документ по почте или в другую БД

Обычно не используется, так как это сильно увеличивает размер БД.

Внимание! Хранимые формы могут использоваться, только если в свойствах БД установлено свойство Allow use of stored forms

Disable Field exchange (запретить обмен полями)

Запрещает передавать значения полей в OLE-объекты, хранимые в форме или документе с использованием Notes/FX. Notes/FX поддерживает MS Office и Lotus SmartSuite. Относится только к клиенту Notes.

Automatically Refresh fields (Автоматически обновлять значения полей)

При смене значения в поле и переходе в другое поле, производить пересчет всех вычисляемых полей в форме.

Пример – список стран, список городов. При смене страны, обновить список значений городов.

Это реально замедляет работу формы, если она содержит много вычисляемых полей. Лучше использовать кнопку «Обновить», которую пользователь будет нажимать по мере необходимости.

Анонимная форма

Если установлено, то в документах, созданных по этой форме, не заполняется поле $UpdatedBy.

No Initial Focus (Не устанавливать фокус на форму)

Если установлено, то форма не получат фокус во фреймсете.

Также вы можете контролировать, какое поле получает фокус в форме в окне свойств поля.

No focus on F6 (не устанавливать фокус по F6)

F6 может использоваться для переключения между фреймами в приложении. Если свойство установлено, то фокус к форме не переходит при нажатии F6.

Подписывать документы, которые используют данную форму

Установка этого свойства позволяет пользователю использовать в документе подписанные поля.

Подписанные поля позволяют быть уверенным в том, что с момента подписания содержимое поля не было изменено.

При сохранении документа появляется новое поле $Signature с именем пользователя, который подписал документ

В свойствах поля также нужно указать – подписывать это поле или нет. В параметрах поля Security options установить галочку в Sign if mailed or saved in section

Render pass through HTML in Notes

Позволяет правильно форматировать текст, помеченный как pass through HTML в клиенте Notes

Не добавлять названия полей в список полей базы данных

Предотвращает добавление имен полей данной формы в т.н. UNK Table или Field Index. Вы должны установить это свойство до того, как добавите хотя бы одно поле в БД, также помните об этом свойстве во всех других формах, использующих те же самые поля, если хотите получить хоть какой-то эффект уменьшения размера UNK Table.

Например, поле AmountDue является частью формы, но его нет в списке полей.

Обычно этим не пользуются, на практике удобно включать имена полей в список. Это свойство актуально для баз с тысячами полей.

Автосохранение документа

Новое свойство, появилось только в 8 версии. Позволяет автоматически сохранять документы, созданные по данной форме. В документации описания нет. Надо протестировать

Conflict Handling (Параметры обработки конфликтов)

Является альтернативой свойству «Управление версиями». Позволяет уменьшить число конфликтов, когда два или более пользователя редактируют один и тот же документах в разных репликах БД.

Возможны варианты:

создавать конфликтный документ (по умолчанию) как ответный,

соединять конфликтные документы (объединяет документы, только если редактировались разные поля разными пользователями – например, один пользователь имя, другой — фамилию),

соединять конфликтные документы, выбирая один документ в качестве главного, основываясь на информации, хранящейся в поле,

вообще не создавать конфликтные документы (всегда остается только один документ, который победил в конфликте).

Закладка запуска (Launch tab)

Используется для автоматического открытия вложения, ссылки на документ, или встроенного OLE-объекта при открытии формы (только для клиента Notes).

Также здесь можно указать для формы фреймсет и фрейм, в котором открывать форму.

Закладка для настройки фона формы (Form Background Tab)

Позволяет установить цвет фона или изображение в качестве фона формы.

Желательно разрешить пользователю изменять данное свойство, так как исходные настройки могут мешать работе пользователя.

Непрокручивающийся заголовок формы

Вверху каждой формы может быть область, которая зафиксирована и не прокручивается (только для клиента Notes). Это свойство определяется на следующей закладке окна свойств формы.

Хорошим примером использования данного свойства является форма сообщения в почтовой базе. Адрес и тема сообщения расположены в непрокручивающемся заголовке. Даже если тело сообщения будет состоять из нескольких станиц, пользователь всегда будет видеть адрес и тему сообщения.

Закладка «Безопасность» — Security

On create (При создании)

Пример – ответ на письмо в почтовом ящике

Пример – пересылка письма – документ целиком перейдет в поле Rich text

On open (При открытии)

On close — при закрытии по почте предлагать отправку документа, это требует поля Sendto в составе формы, только для клиента Notes

Другой вариант – если надо обязательно отправлять — добавить скрытое поле $MailOptions=1

On Web Access

Display XPage instead – отображать XML вместо формы

Content TypeNotes, HTML, Other

Generate HTML for all fields — если стоит, то код генерируется даже для скрытых полей. Используется, если значения скрытых полей влияют на значения отображаемых полей, например, если значения отображаемых полей вычисляются.

Data Source Options

Это часть Domino Enterprise Connection Services, которая используется для реализации в режиме реального времени доступа к внешним данным в рамках приложения.

Т.е. значения полей формы м.б. получены из полей другой реляционной базы данных.

Это свойство ассоциирует форму с Data Connection и объектом метаданных, который устанавливает связь поля на форме с полем внешнего источника данных).

Свойства, которые не поддерживаются браузерами

Многие свойства формы не поддерживаются браузерами. Последний вариант списка таких свойств можно всегда посмотреть в справке.

Некоторые из свойств просто игнорируются браузерами без генерации сообщений об ошибке, когда сервер Domino конвертирует форму в HTML.

Поля

Пользователь вводит данные в документ с помощью полей.

Поля используются в формах для различных целей:

для ввода значений пользователями,

преобразования и проверки значений, введенных пользователем,

хранения данных после сохранения документа,

отображения вычисляемой информации, которая не сохраняется,

для выполнения немедленных вычислений и отображения их пользователю,

контроля за поведением формы – например, для управления возможностью сохранить документ, отправить по почте, отредактировать документ после сохранения.

Поля могут быть видимыми и скрытыми.

Добавление поля

Презентация – показать в дизайнере.

Для поля можно настроить свойства в окне свойств, также можно ввести код в панели программирования.

Свойства текста

Чтобы настроить внешний вид поля используйте окно свойств поля – вы можете указать настройки шрифта и абзаца.

Если поле расположено внутри абзаца, то эти свойства могут быть установлены в окне свойств текста.

Для всех типов полей, кроме расширенного текста (Rich Text), вы можете контролировать настройки текста. При этом пользователи не смогут менять шрифт, размер или цвет.

В полях Rich Text вы можете установить только настройки по умолчанию, пользователь может переопределить их. Для браузеров в большинстве случаев установленные текстовые настройки игнорируются.

Свойства полей

Закладка Field Info

Если выбрано свойство All readers and above, то документ виден только тем, кто вошел в список читателей.

Можно задать список тех, кто имеет право создавать документы по этой форме

Можно указать ключ для шифрования, сначала его нужно создать.

Сделать документ конфиденциальным — Запретить печать копирование, пересылку или копирование в клипборд

Available to Public Access Users – доступность для пользователей, не прошедших аутентификацию (открывающих документ в браузере)

Типы данных

Свойство

Описание

Имя поля

Должно начинаться с символа, длина 32 байта

Имя поля должно быть уникально в рамках формы. В разных формах могут использоваться поля с одинаковыми именами.

Имена полей не могут превышать 32 символов.

Имена полей не могут содержать пробелов. Вместо них можно использовать символ подчеркивания (_).

Имена полей не должны начинаться со знака доллара ($), поскольку этот символ обычно резервируется для специальных системных полей Notes.

Имена полей не могут начинаться с цифр (1-9).

Имена полей не могут содержать символа & (амперсанд).

Тип данных

Текстовые, числовые, специальные (расширенный текст)

Поле может содержать набор значений!

Редактируемое/Вычисляемое

Определяет способ использования поля – для ввода пользователем данных или для вычисления значений

Если поле вычисляемое (computed), то значение вычисляется при создании документа, при каждом обновлении документа или сохранении, значение поля хранится в документе.

Если поле вычисляемое для отображения (computed for display), то значение поле вычисляется и может ссылаться на другие формулы в форме, но значение не хранится в документе. Например, имя текущего пользователя, текущая дата.

Если поле вычисляемое при создании (computed when composed), то значение вычисляется только один раз, когда документ создается, значение поля хранится в документе.

Разрешить хранение множества значений

Хранение и отображение множества значений в одном поле, значения разделяются символом, указанным разработчиком на закладке Advanced (Дополнительно) в Multi-value options.

Используется для хранения нескольких категорий, адресов, владельцев и читателей документа.

Доступно для всех типов полей, кроме Rich Text.

Когда выбран тип данных Time, значение хранится в формате

mm/dd/yy — mm/dd/yy

Внимание! При использовании множественных значений всегда помните о типе данных, вводимых пользователем. Не используйте в качестве разделителя символ, который может ввести пользователь при вводе данных в поле.

Вычислить после проверки

Препятствует появлению ошибки в вычисляемом поле, если исходные поля не прошли проверку перед вычислением.

Используется, когда данное поле зависит от значений других полей.

Доступно для вычисляемых и вычисляемых для отображения полей.

Внешний источник данных

При установке этого свойства внизу окна свойств становятся доступны настройки свойств, позволяющих установить связь между полем документа и полем внешнего источника данных

External Field Name

Data Connection resource

Metadata object name

Для формы должны быть определены свойства Data Connection и metadata object name

Enable instant spell check

Проверка орфографии, в т.ч. для русского, если есть словарь.

Стиль

Возможны варианты:

Notes Style – будут использоваться стандартные для Notes ограничители и стандартные текстовые поля ввода для полей типа «Дата» и «Время»

Native OS Style – Разрешены для полей типа «Текст», «Число», «Дата/Время». Отображает поля для ввода и календарь для ввода Даты и времени.

Провести эксперимент.

Alignment Property позволяет настроить положение поля по отношению к параграфу, в котором оно находится.

Презентация — в базе Demo, форма Field Test — в клиенте и в браузере — http://localhost/DDBA6/DDBA6DEMO.NSF/FieldTest?OpenForm

Размер

Если выбран стиль Native OS Style, вам также нужно указать ширину и высоту окна ввода значения поля.

Web Access (Доступ из веба)

Настраивается только для полей типа Rich Text. Определяет, что будет использоваться для поля – HTML или Java-апплет.

Tab key

Определяет последовательность, в которой фокус будет переходить от поля к полю при нажатии клавиши Tab и будет ли поле стартовым (Give Initial Focus).

После задания порядка табуляции, вы увидите номер в окне ввода значения поля:

Однако помните, что для работы с этим свойств в настройках формы не должно быть указано – No Initial Focus selected.

В HTML атрибут TABINDEX будет установлен на основе этого поля.

Презентация — в базе Demo, форма Field Test — в клиенте и в браузере — http://localhost/DDBA6/DDBA6DEMO.NSF/FieldTest?OpenForm

Типы полей

Закладка «Управление» (Control)

Здесь вы можете детализировать настройки внешнего вида полей. Свойства, которые вы увидите на этой закладке, зависят от выбранного типа поля.

Тип данных

Описание

Text

Текстовые поля хранят до 15 Кб текстовых данных, могут отображаться в представлениях и не имеют фиксированной длины поля.

Date/Time

В полях Дата/Время хранится и отображается информация о дате и времени в любых форматах. Формат по умолчанию — ММ/ДД/ГГ ЧЧ:ММ:СС (для своих внутренних целей система Domino хранит время в секундах). Допустимый диапазон дат — с 1/1/0001 до 12/31/9999. При вводе для года двух цифр от 00 до 49, предполагается век, начинающийся в 2000 году. При вводе для года двух цифр от 50 до 99, предполагается век, начинающийся в 1900 году.

Вы можете заставить пользователей вводить четыре цифры года, указав значение Require User to Enter Four Digit Years (Требовать от пользователя четыре цифры года) в поле On Input (При вводе) окна свойств поля. Если вы хотите отображать элемент управления «календарь», установите опцию Calendar/Time Control. Этот элемент управления работает только в клиентах Notes. В Web-клиентах не работает

Number

Поля Number используются для хранения числовых данных, использующих цифры 0-9, знаки плюс (+) и минус (-), десятичную точку и экспоненциальную нотацию. Числовые поля могут иметь один из четырех форматов: Decimal (Десятичный), Percent (Процентный), Scientific (Экспоненциальный) или Currency (Денежный).

Decimal (Десятичный) — хранит и отображает числа с фиксированным количеством десятичных знаков, которое указывает разработчик. Числовое поле может хранить до восьми ненулевых десятичных знаков без потери точности.

Percent (Процентный) — хранит и отображает числовые значения в форме процентных долей.

Scientific (Экспоненциальный) — хранит и отображает числовые данные с использованием экспоненциальной нотации.

Currency (Денежный) — хранит и отображает числовые значения с симво­лом денежной единицы, указанным разработчиком. По умолчанию это знак американского доллара ($).

Пустые числовые поля хранятся в виде пустых строк («»). Чтобы числовое поле всегда содержало число, используйте для значения по умолчанию формулу, возвращающую 0.

Dialog list (Диалоговый список)

Диалоговый список позволяет выбирать нужные значения из списка допустимых вариантов. Разработчик может определить, должны ли значения быть взаимоисключающими. Пользователь может нажать Enter или нажать кнопку справки по элементу (маленькая стрелка), чтобы увидеть все варианты сразу, нажать пробел, чтобы варианты появлялись по одному, или ввести букву, чтобы отобразить первый вариант, начинающийся с этой буквы. Помните, что диало­говый список нельзя использовать в форматируемой области (layout region)

Check box (Поле для отметки)

Поля для отметки позволяют пользователям выбрать нужные значения из списка доступных вариантов, которые не являются взаимоисключающими. Рядом с каждым вариантом отображается окошко, щелкнув по которому, поль­зователь может поставить в нем галочку и выбрать этот вариант

Radio button (Переключатель)

Переключатели позволяют пользователям выбирать нужное значение из списка допустимых вариантов, которые являются взаимоисключающими. Рядом с каждым вариантом выводится окошко, щелкнув по которому, пользователь может выбрать этот вариант

List box (Списковый блок)

Поле типа List box позволяет пользователям выбрать нужное значение из про­кручиваемого списка вариантов. Список имеет фиксированную длину. Разра­ботчик может определить, должны ли значения быть взаимоисключающими

Combo box (Выпадающий список)

Поля типа Combo box позволяют пользователям выбрать нужное значение из списка доступных взаимоисключающих вариантов

Rich Text (Сложный текст)

Поля типа Rich Text могут использоваться для хранения большого объема текста (в том числе, форматированного), а также для встроенных или прикреп­ляемых объектов. Ограничений по размеру для данных в этом поле практически нет (1 Гб), если только база данных и диск могут хранить данные нужного объе­ма. Поля типа Rich Text можно использовать везде, за исключением форма­тированных областей (layout region). Их содержимое нельзя отображать в пред­ставлении

Rich Text lite (Сложный текст, облегченный)

Поля типа Rich Text lite не так неограниченны, как обычные поля типа Rich Text, для них вы можете выбрать из раскрывающегося списка те типы данных, которые пользователь может поместить в поле. Любая попытка вставить или ско­пировать в это поле элемент, не указанный в списке, приведет к появлению со­общения об ошибке. Этот тип данных появился в Domino 6.

Authors

Поля Author позволяют пользователям, имеющим права Author, редактировать документы, если имена этих пользователей указаны в поле Authors. Важно за­помнить, что значения полей Authors не заменяют записей ACL, они лишь уточняют их

Readers

Поля Readers можно использовать для ограничения доступа к конкретным документам, явно указав тех пользователей или группы, которые могут читать эти документы. Как и поле Authors, поле Readers уточняет права ACL, а не отменяет их. Если в документе нет поля Readers, то любой, имеющий доступ к базе дан­ных, может просмотреть документ

Names

Поля Names можно использовать для отображения имен пользователей и/или серверов в сокращенном формате, без компонентов, присущих полным иерархическим именам

Look up names as each character is entered — упреждающий поиск, подсказка при вводе имен или адресов

Password (Пароль)

Поля Password — это специальные типы текстовых полей, которые помогают обеспечить секретность. Каждый введенный в них символ отображается на экране в виде звездочки. Помните, что содержимое полей Password не являет­ся безопасным и оно видимо в окне свойств документа в клиенте Notes

Formula (Формула)

Поля Formula имеют особое назначение: они используются для заполнения списка подписки (subscription list), функционирующего вместе со свойством Subscription базы данных Headlines.nsf.

Color (Цвет)

Поле Color отображает инструмент для выбора цвета (color picker), который по­зволяет пользователю выбрать цвет и возвращает RGB-значение

Закладка «Дополнительно»

Свойство

Описание

Показывать ограничения поля

Применимо к текстовым полям. Пользователь видит ограничители , внутри которых можно вводить текст

Опции для Даты и Времени

Много параметров, в частности – вводить год как 4 цифры, требовать вводить месяц в текстовом виде

Можно использовать настройки пользователя или выбрать Специальные.

Вне зависимости от способа отображения значения всегда хранятся в одном формате, включающем и дату, и время.

Настройки для типа Number

Включает настройки для ввода числовых значений, в т.ч. десятичных и валюты.

Можно использовать настройки пользователя или переопределить их на Специальные.

Choices — Варианты выбора

Показать на примере в базе Demo, форма Field Test

Разрешить значения не из списка

Look up names as each character is entered — Поиск имен при вводе символов

Упреждающий поиск, подсказка при вводе имен или адресов

Look up addresses on document refresh — Поиск адресов электронной почты

Display entry helper Button — Отображать для поля кнопку «Помощь»

Для клиента Notes только. Отображать кнопку рядом с полем ввода.

Без кнопки пользователь может:

Нажать кнопку «Enter»

Нажать кнопку «Пробел» для прокрутки по циклу значений для выбора

Нажать первую букву — соответствующее значение выбора появится в поле

Refresh Fields on keyword change

При смене значения в данном поле будут обновлены все поля в форме (включая Hide when — формулы) без запуска формул проверки значений полей.

Полезно, когда список выбора для поля зависит от значения другого поля.

Например, поле с выбором модели авто (зависимое) зависит от поля с маркой авто (основное поле).

Полезно при использовании раскрывающихся секций, абзацев, если их Hide when – формула имеет значение false

Refresh choices on document refresh

Если выбран, то он сработает только при нажатии пользователем f9 или команда обновления будет выполнена каким-либо другим способом.

Обновляются списки выбора для полей с выбором (keyword fields).

Установите это свойство для зависимого поля.

Презентация – база DDBA6DEMO, форма RefreshKeywords

Связь между выбранными списками работает и в браузере, но автоматически перезагружает страницу. Если вы хотите устранить перезагрузку страниц, вам придется написать код самостоятельно с использованием массивов JavaScript.

Allow keyword synonyms

Использовать синонимы, которые указаны через прямую палочку в списке выбора

В документе будет храниться синоним, а отображается полное значение.

Хранится 0 или 1, а отображается Red, Green или Blue

Стандартные поля

Внутренние имена полей

Не следует использовать имена полей, начинающиеся с символа $, так как Notes использует набор внутренних полей, начинающихся с этого символа. Если вы будете использовать такие имена, то есть риск получить неожиданное влияние на значение поля или всю форму.

Поля со встроенной функциональностью

Notes имеет очень много полей с зарезервированными именами, например, SendTo, Categories, Form, SaveOptions, MailOptions, Sign. Следует избегать использования полей с такими именами, если вы еще не изучили функции, которые они выполняют.

Для браузеров также есть специальные имена полей, которые начинаются с $$. Например, $$Return, который контролирует, что сервер возвращает браузеру после того, как документ был отправлен (определяет ту ссылку, по которой нужно перейти при закрытии формы в вебе).

Зарезервированное поле SaveOptions

Зарезервированное текстовое поле SaveOptions позволяет программно контролировать поведение документа при закрытии.

Если SaveOptions=”1”, то документ может быть сохранен и пользователю будет выведено диалоговое окно подтверждения сохранения.

Если SaveOptions=”0”, то документ не может быть сохранен и диалоговое окно для подтверждения сохранения не появится.

Внимание! Само поле может быть редактируемым и вычисляемым, но обратите внимание на то, что оно является текстовым и значения, которые ему присваиваются, должны быть текстовыми.

Зарезервированное поле Form

Это поле автоматически добавляется в каждый документ. Значению поля присваивается имя псевдонима формы.

Тем не менее, вы можете добавить вычисляемое поле Form на форму и пересчитать значение этого поля, используя другое корректное имя формы в БД. Таким образом, когда документ будет открыт заново, будет использована альтернативная форма вместо той, что использовалась для создания документа.

Эта возможность часто используется в приложениях документооборота, где контекст формы изменяется по мере того как документ перенаправляется разным пользователям с разными задачами.

Общие поля

Свойство

Описание

Help Description

Подсказка по полю, высвечивается внизу страницы, при установке курсора внутрь поля ввода, если в клиенте Lotus Notes выбрано View – Show – Field Help

Field Hint

Выглядит следующим образом.

Когда пользователь встает внутрь поля ввода, подсказка исчезает. Эта подсказка не хранится в документ, это только элемент интерфейса, хранящийся в форме.

Multi-value options

Для текстовых полей с множественными значениями можно выбрать тип разделителя

Также можно выбрать вариант отображения множественных значений:

Security options

Определяет такие настройки как – должно ли поле быть подписано и/или зашифровано, а также требуется ли как минимум Editor access для изменения значения поля.

Добавление общего поля

Есть два способа добавления общего поля:

Выбрать в меню Create – Design Shared Field.

Встать на уже существующее поле и выбрать для него Design – Share This Field, после этого поле можно добавлять и на любые другие формы.

Общее поле имеет жирную рамку и все свойства обычного поля.

Будучи добавлено на форму один раз, общее поле становится доступно в списке общих полей БД. Чтобы вернуть поле в обычное состояние выберите поле и затем пункт меню Design – Convert to single use.

Если вы удалите общее поле из всех форм, оно не удалится из БД до тех пор, пока вы не удалите его из списка общих полей.

Чтобы отредактировать общее поле дважды нажмите на него мышкой в любой форме или в панели навигации, сохраненные изменения автоматически распространятся на все формы.

Внимание! Если вы хотите переименовать общее поле, то делайте это не в форме, а откройте поле из списка общих полей вашей БД.

Списки

Поля типа «Список» могут содержать несколько значений одного и того же типа данных, которые могут использоваться в представлениях для отображения документа в нескольких категориях.

Язык @-Function был разработан для работы со списками значений и включает набор специфических функций работы со списками. Другие языки, такие как Lotus Script, также позволяют работать со списками значений поля, но уже как с массивами.

Для работы со списками предназначены:

Dialog list

Checkbox

Radio button

Listbox

Combobox

а также поля типа Names, Authors, Readers.

В них пользователь может выбрать одно или несколько значений, а также, возможно, ввести значение, которого нет в списке.

Список возможных значений может формироваться следующими способами:

статический текстовый список,

формула, которая строит список, при этом, значения могут попадать в список, например, из представления,

из личной или общей адресной книги (специальная БД) – они используются для получения имен,

из списка управления доступом БД – возвращают список имен,

окно диалога, построенное на основе определенного представления.

Статический текстовый список

Список хранится в дизайне БД.

Список доступен для всех пользователей, имеющих доступ к БД (не требуется брать значения из других источников).

Список быстро отображается.

Даже если вы разрешите пользователям вводить в поле новые значения, которых изначально не в списке, то новые значения не добавятся в список возможных значений поля и не будут доступны в будущем авторам документов, использующим данную форму.

Если нужно изменить список, человек с правами Дизайнера должен обновить этот список.

Синонимы ключевых слов

Используются с целью экономии места, а также в многоязычных БД.

При этом пользователь видит текстовое значение, а в документе хранится число, которое ему соответствует.

Общее поле – это объект, который один раз определяется в БД, но используется в разных формах. Его можно определить в рамках формы или в списке общих полей на закладке Shared Elements.

Общие поля позволяют:

минимизировать поддержку дублирующихся полей (особенно сложных) в рамках БД с помощью использования общего поля в нескольких формах,

ускорить разработку форм в рамках БД, которые используют одни и те же поля,

использовать шаблоны дизайна, чтобы хранить базовое определение общего поля (master shared field definitions).

При использовании общих полей увеличивается время открытия формы. Рекомендуется использовать общее поле, если оно содержит значительное количество кода и выгода от его общего использования и поддержки очевидна.

Такие свойства поля как формат (шрифт, выравнивание) настраиваются каждый раз индивидуально. Не путайте также общие поля с наследованием данных, которое относится к данным общего использования, но не к дизайну.

Могут использоваться в полях типа:

Dialog list

Checkbox

Radio button

Внимание! Если вы используете синонимы, то вам придется позаботиться о корректном отображении для пользователей значений данного поля в представлениях.

Для нашего примера в колонке придется написать формулу

@if (ExampleField=”0”; “Red”;@if (ExampleField=”1”;”Green”;”Blue”))

Правда, это отрицательно скажется на производительности представления.

Списки, основанные на формулах

Наиболее универсальный способ формирования списков – это формулы. Формулы позволяют разработчику собирать данные из разных источников:

колонки представлений текущей или других БД – с помощью одной из @DB функций,

колонки из таблиц реляционных БД,

значения, которые хранятся в документе Notes.ini — с помощью функции @Enviroment.

Преимущества данного подхода:

в список автоматически добавляются новые значения по мере того, как пользователи создают новые документы в БД,

пользователи, не имеющие, прав Дизайнера, могут осуществлять поддержку списка, модифицируя источник, из которого берутся эти значения.

Основные недостатки данного подхода:

@DB функции могут возвращать только ограниченное количество данных,

на построение списка тратится время,

пользователь может не иметь прав доступа к источнику данных, используемому для формирования списка.

Пример

Чаще используются формулы, которые берут значения из представления, в котором в каждой строке отображается отдельное значение.

Эта функция возвращает первую колонку значений из представления ProductByType текущей БД.

Результаты кэшируются и хранятся, пока открыта БД.

По мере того как добавляются новые типы продукции, они автоматически попадают в список и доступны пользователю для выбора.

Внимание! Пользователь должен иметь уровень доступа не ниже «Читатель», чтобы иметь доступ к БД-источнику.

Name lookups

Оба варианта – Use Address Dialog for choices и Use Access Control List for choices — возвращают имя (или имена, если разрешены множественные значения).

Вы можете разрешить пользователю добавлять новые значения в данное поле, но помните, что они не добавятся в список доступных вариантов выбора в будущем для авторов, создающих документы по этой форме.

Окно диалога, построенное на основе определенного представления — View lookup

Вы можете использовать диалоговое окно с вопросом, заголовком и списком для выбора, построенном на основе определенного представления.

Для этого используется функция @PickList.

@PickList( [CUSTOM] : [SINGLE] ; server : file ; view ; title ; prompt ; column ; categoryname)

Надо установить свойство поля «Использовать синонимы»

Они указываются прямую палочку в списке выбора.

В документе хранится синоним, а отображается текстовое значение.

Хранится 0 или 1, а отображается Red, Green или Blue

Although @PickList([CUSTOM]) operates similarly to @DbColumn and @DbLookup, @PickList is preferable because it:

Stores more data

Performs the lookup faster

Allows you to quickly locate the desired document by typing the first few characters

@PickList doesn’t offer a NoCache option like @DbColumn and @DbLookup because lookup results are never stored. Each time @PickList is executed, a new lookup is performed.

For a calendar view, @PickList displays two days starting with today, without time slots. The user can click on the date picker button to navigate to other days.

You cannot use this function in Web applications.

@PickList can return no more than 64K bytes of data. Use the following equations to determine how much of your data can be returned using @PickList.

However, @PickList can access a view of any size, so there are no limits to the number of choices it can present. Only the return value is limited in size.

Примеры

Эта формула отображает представление Products в диалоговом окне

PickList( [CUSTOM] ; «» ; «Products» ; «Select a product» ; «Please select the products you want to order» ; 1 );

Эта формула отображает представление Products в диалоговом окне, но использует @DbName для обращения к текущей БД.

PickList( [CUSTOM] ; @DbName ; «Products» ; «Select a product» ; «Please select the products you want to order» ; 1 );

Эта формула отображает представление Products в диалоговом окне, но возвращает вторую колонку

PickList( [CUSTOM] ; @DbName ; «Products» ; «Select a product» ; «Please select the products you want to order» ; 2 );

Отличается тем, что пользователь может выбрать только одно значение

PickList( [CUSTOM] : [SINGLE] ; @DbName ; «Products» ; «Select a product» ; «Please select the products you want to order» ; 2 );

Открывает представление By Category в текущей БД и отображает значения в категории «Leather» (в иерархическом представлении).

@PickList( [CUSTOM] ; «» ; «By Category» ; «Select a product» ; «Please select the products you want to order» ; 5; «Leather»);

Также для формирования списков могут использоваться функции:

@dbcolumns – столбец из вида

@dblookup – то же самое плюс возможность фильтрации по критерию

Checkbox и Radio button

Можно указать число колонок. Если число колонок будет равно числу вариантов выбора, то элемент будет расположен горизонтально.

Rich Text

Поля Rich Text обеспечивают:

В клиенте Notes создавать Rich Text, который включает форматированный текст, таблицы, изображения, секции, гиперссылки, вложения и встроенные объекты.

В браузере создавать форматированный текст, включающий форматирование шрифтов и абзацев и возможность создавать гиперссылки.

Возможности по обработке этих полей существенно ограничены — сравнивать текстнаходить позицию в тексте, соединять 2 поля мы не можем, т.к. в них используется еще и дополнительная служебная информация.

Свойства

Web Access: Display Using Java applet — апплет для форматирования текста загружается в браузере:

Вам следует установить размеры поля достаточно большими – для этого используйте тэги в HTML Attributes (закладка HTML). Например, “height=100 width=350”.

Using HTML – вы увидите просто окно для ввода текста.

Best fit for OS – Domino будет решать, что использовать Java applet или поддерживаемый операционной системой Rich Text апплет. Например, для IE может использоваться собственный апплет

.

Rich Text Lite

Он позволяет использовать практически те же самые объекты, что и Rich Text. Однако он дает возможность ограничить пользователя — для него можно указать типы объектов, которые можно использовать в поле.

Пользователь выбирает тип объекта в специальном окне.

Также можно указать какой тип объектов показывать первым.

Добавление вложений из браузера

В клиенте Notes пользователи могут добавлять вложение в любое поле типа Rich Text. В браузере для реализации этой возможности необходимо использовать специальный элемент. Выберите в меню Create – Embedded Element – File Upload Control.

В браузере вы увидите:

Не забудьте скрыть этот элемент от клиентов Notes с помощью свойства Hide when.

Когда пользователи в браузере открывают документ, они видят его как иконку и могут кликнуть на него, чтобы начать скачивать его посредством HTTP.

В режиме редактирования документа рядом с иконкой вложения появляется Checkbox.

[CUSTOM]

Keyword. Indicates that you want to display a view in a dialog box.

[SINGLE]

Keyword. Optional. Limits the selection to a single document.

server : file

Text list. The server is the name of the server where the database is. The file is the path and file name of the database you want to open. Specify the name and location of the database using the appropriate format for the operating system

view

Text. The name of the view that you want to open in the database.

title

Text. The window title for the dialog box.

prompt

Text. The prompt that you want to appear inside the dialog box. Only one line of text is displayed. Longer lines are truncated.

column

Number. A number indicating which column value you want @PickList to return. Use 1 to indicate the first column, 2 to indicate the second column, and so on. Unlike @DbColumn and @DbLookup, @PickList counts all columns, regardless of the types of formula they contain.

categoryname

Note This parameter is new with Release 5.

Text. Optional. Displays the specified category in the view. The view should be categorized in order to use this parameter.

Загрузка...