Работа с формами. Создание и проектирование форм. Типы форм, страница 3

@AllChiIdren, @AllDescendants, @DocChildren, @DocumentUniqueID

Отношения между типами документов внутренне поддерживаются системой Notes — ответные документы хранят ссылку на родительский документ в поле с именем $Ref. Это зарезервированное поле содержит идентификатор родительского документа.

В иерархическом представлении ответные документы отображаются под главным документом, на базе которого они созданы. Документы типа "ответ-на-ответ" отображаются под ответным документом, который был выделен во время их создания. Иерархические представления автоматически отображают подчиненные документы с отступом. Отображение иерархии документов удобно для дискуссионных баз данных, но менее полезно для форм, которые в основном предназначены для сбора данных.

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

@Text(@DocumentUniqueID)

Ключевое слово $Ref можно использовать в вычисляемом поле ответного документа в качестве формулы для события Value. Документ отобразит пиктограмму ссылки на документ,   не   котором   можно  щелкнуть  для  открытия   родительского  документа.

Важно правильно выбрать тип формы. В большинстве случаев выбирается тип "документ". Поскольку Notes поддерживает внутренние связи между главными документами и ответными документами, ответные документы могут быть удобными во многих случаях. Хорошим примером может служить применение ответных документов в дискуссионном формате. Ответные документы также эффективны для баз данных, которые отслеживают проекты. Родительский документ может содержать информацию, которая относится к самому проекту, а ответные документы — данные для определенных выполняемых задач.

Применение ответных документов для сбора данных имеет серьезное неудобство. Ответные документы не подсчитываются в иерархических представлениях (которые содержат главные и ответные документы). В таких   представлениях   подсчитываются только главные документы. Для подсчета полей в документах типа "ответ" и "ответ-на-ответ" необходимо создать представление, которое содержит только ответные документы. Перед использованием одного из ответных типов следует учесть потребности  в  средствах  генерации  отчетов для  формы.

Форма может быть либо создана либо скопирована. При копированиии формы разделяемые ресурсы (поля или рисунки) не будут скопированы вместе с формой. Их нужно копировать отдельно.

Существует несколько предопределенных типов форм, которые создаются для специальных целей. К ним относятся:

-  формы профилей;

-  формы, запрашивающие у пользователя информацию;

-  формы, для биллинговых приложений.

Формы профилей представляют собой особый тип форм, предназначенный для сбора информации о пользователе или базе данных. Данные этих форм хранятся в документах Profile. Для каждого пользователя может существовать только один документ, содержащий профиль. Профили являются такими же документами, как и обычные документы, за одним исключением – они не отображаются в представлениях и не учитываются в счетчике документов БД. Обычно пользователи создают профили, используя действия или агенты, которые написаны с применением языка LotusScript или языка формул. Вы можете использовать любую форму для создания профиля. После создания формы необходимо создать кнопку, действие или агент, который бы использовал либо формулу @CommandEditProfile либо UIWorkspace.EditProfile или NotesDtabase. GetProfileDocument применяется в программе LotusScript для извлечения документов. В качестве примера профиля можно привести Interest Profile в шаблоне Discussion – Notes&Web(R5.0).

Чтобы удалить форму откройте БД, выделите форму и нажмите DEL или выберите в меню Edit – Clear. После удаления формы, все документы, которые были созданы с ее помощью, будут отображаться при помощи формы «по умолчанию», назначенной в БД. Альтернативой этому может быть создание формы, которая будет храниться вместе с документами.