
Лаб работы domino / GL 7
.pdf8.Будет ли обращение к приложению производиться из Lotus Notes и(или) Web-браузера?
9.Кто будет иметь доступ к приложению базы данных?
10.Какие варианты отчетов могут быть сформированы?
11.Существует ли механизм обратной связи или уведомления о проблемах?
12.Кто получит полномочия администратора?
13.Для каких именно клиентов предназначено приложение: внутренних или внешних?
14.Существуют ли дополнительные условия, если клиенты приложения внешние?
15.Имеются ли поля конфиденциального содержания, видимые изнутри, но скрытые для внешних клиентов?
16.Существуют ли деловые корпоративные руководства или руководства по безопасности, которые должны быть соблюдены?
Вопросы по приложению для управления потоками работ
1.Имеются ли поля, которые необходимо блокировать в зависимости от состояния документа?
2.В чем заключается процесс потока работ?
3.Кто вправе создавать документы?
4.Кто вправе одобрять документы?
5.Имеется ли процесс «сброса» состояния документа?
6.Если поток работ включает статус «отмены», можно ли открыть документ заново?
7.Необходим ли для приложения файл журнала или истории для контроля изменения состояний и одобрения?
8.Предполагается ли наличие нескольких уровней одобрения?
9.Каковы роли, или уровни, полномочий?
10.Позволено ли администратору переписывать изменения?
11.Что делать, если лицо, ответственное за одобрение документов, на выезде? Возможно ли указание «дежурного заместителя», одобрение документов администратором?
Вопросы по приложению, имеющему Web-интерфейс
1.Как будет производиться вход в приложение (по учетным записям Windows Active Directory или по учетным записям Domino)?
2.Имеется ли в компании браузер, который выбран для работы по умолчанию?
3.Будет ли приложение иметь только Web-интерфейс или доступ к нему возможен через Web-браузеры и клиентские программы для Lotus Notes?
4.Может ли клиент приложения прикреплять документы через Web-браузер?
5.Кто будет управлять созданием идентификаторов пользователей и паролей?
Разработка приложения для Lotus Notes
Хотя единого подхода к построению баз данных не существует, этот раздел укажет порядок действий по разработке базы «с нуля». В нем вы найдете пошаговое описание того, как создать базу данных, используя большинство элементов. Закончив этот проект, вы должны понимать логическую цепочку реализации базы данных
Проект: Создание базы данных для отслеживания Web-сайтов |
135 |
|
и быть знакомы со множеством элементов дизайна. Вот перечень тех шагов, которые нам предстоит сделать для построения приложения:
Шаг 1. Создание базы данных.
Шаг 2. Создание формы и добавление полей. Шаг 3. Создание представления.
Шаг 4. Создание библиотеки сценариев. Шаг 5. Размещение кнопок на форме.
Шаг 6. Размещение кнопок на представлении. Шаг 7. Организация навигации.
Шаг 8. Создание экрана приветствия и справочных документов. Шаг 9. Изменение пиктограммы.
Шаг 10. Настройка механизмов защиты.
Выбрав этот подход, вы постепенно будете встраивать в базу данных все больше и больше функций. А так как почти любое приложение базы данных содержит формы и представления, вы и начнете с этих двух элементов. Затем добавите код управления автоматизацией действий, создадите кнопки, библиотеки сценариев и, наконец, настроите внешний вид и навигацию в приложении.
Проект: Создание базы данных для отслеживания Web-сайтов
Уровень сложности: |
Средний |
Время выполнения: |
Приблизительно 2 часа |
Материалы проекта: |
1 форма, 9 полей, 1 представление, 1 библиотека, |
|
1 страница, 1 схема, 1 набор фреймов, 1 навигатор, |
|
6 кнопок действий |
Языки: |
LotusScript и язык формул |
Тип базы данных: |
Библиотека справочной информации |
По окончании проекта у вас появится рабочая база данных, которая может использоваться для хранения и контроля ссылок на Web-ресурсы, идентификаторов пользователей и паролей. На форму базы будет добавлено поле Readers, позволяющее, если вы помните из гл. 4 «Элементы дизайна Domino», ограничить возможность просмотра записей данных, которые создал другой пользователь. Иными словами, каждый конечный пользователь продукта увидит уникальный набор Web-сайтов. Помимо этого, мы добавим кнопки автоматического показа Web-сай- тов в том браузере, который указал пользователь, а в завершение настроим навигацию по программе, создав набор фреймов, страницу и схему отображения.
Шаг 1. Создание базы данных
Итак, начнем с запуска клиента Designer. Затем, выбрав пункты меню File > Database > New, создадим базу. На экране появится диалоговое окно (см. рис. 7.3). Укажите в нем сервер размещения базы данных (или оставьте поле, равное Local, чтобы создать базу на вашей рабочей станции). В поле заголовка приложения введите Websites. Убедитесь, что тип шаблона соответствует -Blank- и нажмите ОК для создания базы данных.

Specify New Database Name and Location
S«vet ; : f |Local |
H i |
|
IMe |
[Websites |
|
filename | Websites nsf
fcnciyption...
Г~ £teate full text kidex for searching
Specify Template for New Database
Sejvet |
| Local |
" 3 |
Template
ВDatabase litxaiy (7) Design Synopsis
Discussion • Notes i W e b (7) Doc Libfaiy • Notes tx W e b (7) Domino W e b Access (G)
He ц а т е |
ГShow advanced templates
ГInherit future design changes
;.7.3. Диалог New Database
Глава 7 . О с н о в ы п о с т р о е н и я п р и л о ж е н и й для Lotus Notes
OK
Cancel
| Advanced...
About..
Примечание
Для того чтобы создать базу данных на сервере, вам, возможно, придется запросить дополнительные права. Иногда этими полномочиями наделен системный администратор, который устанавливает, кто вправе создавать базы Notes на сервере. В одних компаниях создавать базы разрешено всем, в других такое право дано лишь системным администраторам. По умолчанию, создав базу, вы получаете полномочия «Manager». Это наивысший уровень полномочий, который обеспечивает возможность управления дизайном и механизмом безопасности приложения. Если базу данных, напротив, для вас создал администратор, обычно им назначается второй уровень пол- н о м о ч и й - «Designer», который позволяет вам корректировать дизайн самой базы, но не дает изменять настройки контроля доступа. Таким образом, нетрудно понять, что хорошие рабочие отношения с системным администратором могут оказаться полезны при проектировании и разработке приложений баз данных Notes. Подробную информацию о защите баз данных см. в гл. 19 «Безопасность».
Непосредственно после создания базы данных она (без элементов дизайна) будет добавлена на панель Design клиента Designer. Итак, вы взяли первый барьер в разработке баз данных Notes! Теперь мы перейдем к построению и настройке внешнего вида форм, используемых для управления записями, или документами.
>г 2. Создание формы и добавление полей
1ввода и отображения информации о конкретном интернет-сайте воспользу-
яформой Web Site (Web-сайт). После того как вы ее создадите, форма позволит >сматривать информацию об Web -сайте только автору документа. Это даст воз-
Проект: Создание базы данных для отслеживания Web-сайтов |
135 |
|
можность каждому пользователю хранить свои собственные URL-ссылки на Webресурсы и управлять ими.
Для создания формы выберите пункты меню Create > Design > Form. Затем добавьте к ней описательный заголовок, скажем Web Site, разместив его наверху,
иописания следующих полей - слева.
•Title (Заголовок).
•Link (Ссылка).
•Category (Категория).
•Rank (Рейтинг).
•UserlD (Идентификатор пользователя).
•Password (Пароль).
•Last Update (Последнее обновление).
•Description (Описание).
Затем добавьте поля, как это описано в следующей таблице. Для создания поля выберите пункты меню Create > Field. Убедитесь в том, что тип данных, формула и другие атрибуты каждого поля формы заданы верно, воспользовавшись для этого диалоговым окном свойств и(или) панелью Programmers. Для вывода диалога свойств на экран щелкните по объекту и выберите в меню пункт Design > Field Properties.
Попе |
Тип |
Формула / Значение |
|
Примечания |
||
Title |
Text |
|
|
|
|
|
Link |
Text, редак- |
|
|
|
|
|
|
тируемое |
|
|
|
|
|
|
(Editable) |
|
|
|
|
|
Category |
Dialog List, |
Class |
:=""; |
|
На вкладке 1 диалога свойств поля |
|
|
Editable |
Cache |
:= "NoCache"; |
|
установите признак Allow multiple |
|
|
|
Host |
:= ""; |
|
values. На вкладке 2 задайте признак |
|
|
|
View |
:= "Category"; |
|
Allow values not in list. Смените тип |
|
|
|
Column |
:= 1; |
|
выбора значений на Use formula for |
|
|
|
output |
:= 0Trim(0 |
|
choices и добавьте формулу к полю |
|
|
|
Unique |
|
: |
||
|
|
(SDbColumn{ Class |
|
|||
|
|
Cache; Host; view ; |
|
|||
|
|
Column ) ) ) ; |
|
|
||
|
|
@If (output = ""; ""; |
|
|||
|
|
output) |
|
|
||
Rank |
Combobox, |
1-Star |
|
На вкладке 2 диалога свойств поля |
||
|
Editable |
2-Star |
|
|
установите опцию Choices |
|
|
|
3-Star |
|
|
|
|
|
|
4-Star |
|
|
||
|
|
5-Star |
|
|
|
|
UserlD |
Text, Editable |
|
|
|
|
|
Password |
Text, Editable |
|
|
|
|
|
LastUpdate |
Time/Date; |
@If |
(0 |
|
|
На вкладке 2 диалогового окна |
|
вычисляемое |
IsDocBeingSaved; |
|
установите возможность отображе- |
||
|
(Computed) |
0Now; |
LastUpdate); |
|
ния в поле даты и времени одновре- |
|
|
|
|
|
|
|
менно |
Description |
Rich Text, |
|
|
|
|
|
|
Editable |
|
|
|
|
|

138 |
Глава 7. Основы построения приложений для Lotus Notes |
|
Эта форма содержит скрытое поле Readers, определяющее, кто наделен правом просматривать документ. Добавьте над заголовком формы пустую строку. Выберите в меню пункты Create > Field и вставьте в первую строку формы новое поле.
Поле |
Тип |
|
Формула |
Примечания |
|
|
|
значения по |
|
|
|
|
умолчанию |
|
Readers |
Readers, вычисляемое |
SUserName |
Выберите в меню Design > Field Properties. |
|
|
во время создания |
|
Перейдите на вкладку 6. Установите флажок |
|
|
(Computed |
when |
|
Hide paragraph if formula is true. Установите |
|
Composed), |
скрытое |
|
формулу в 1. Смените цвет шрифта поля |
|
(Hidden) |
|
|
на RED, чтобы показать то, что поле скрыто |
|
|
|
|
из интерфейса. |
|
|
|
|
Убедитесь, что это поле - самое первое |
|
|
|
|
и верхнее поле формы |
|
|
|
|
|
Теперь ваша форма должна выглядеть похожей на рис. 7.4.
Ц (Untitled) • Fotm |
xj |
|
|
|
|
|
|
" • |
. |
|||||
|
Hidden: f |
|
|
Readers |
^ |
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Web Site |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Title: |
|
|
|
r |
Title |
TJ |
|
|
|
|
|
||
|
Link: |
|
|
|
r |
Link |
TJ |
|
|
|
|
|
||
|
Category: |
|
Г |
Category |
.J |
|
|
|||||||
|
Rank: |
|
I |
Rank |
Й |
|
||||||||
|
UserlD: |
|
r |
UserlD |
т.] |
|
|
|
|
|||||
|
Password: |
|
r |
Password |
TJ |
|
|
|
||||||
|
Last Update: |
|
|
|
|
|
|
|
||||||
r |
LastUpdate |
s j |
|
|
|
|||||||||
|
Description: |
|
|
|
|
|
|
|
|
|
|
|
||
|
f |
Description 3 |
|
|
|
|
|
|
|
|
nc. 7.4. Законченная форма Web Site
Наконец, сохраните форму, выбрав пункты меню File > Save. На экране появит- 1 приглашение задать название формы. Введите Web Site|Website и нажмите ОК, гобы сохранить дизайн формы.
Поздравляем, вы успешно создали свою первую форму! Попробуйте ее запус4ть. Переключитесь в программу-клиент Lotus Notes, откройте базу данных и вымрите пункты меню Create > Web Site, после чего поработайте со вновь созданной ормой.

Проект: Создание базы данных для отслеживания Web-сайтов |
135 |
Примечание
Поле Category будет выдавать на экране предупреждающее сообщение. Это сообщение - временное, и к завершению проекта его не будет.
Шаг 3. Создание представления
Любая база должна включать как минимум одно представление. По умолчанию при создании базы данных представление «(untitled)» в ней создается автоматически. Для настройки представления по умолчанию перейдите к разделу Views панели Design и дважды щелкните по представлению мышью. Как только оно откроется, клиент Designer выведет на экран диалог свойств представления (см. рис. 7.5). Введите его название (Name) - By Category и псевдоним (Alias) - Category.
Г View |
w |
am t X |
\ т ц i |
i d i s 1 ж Т ^ Ш Ш |
|
Name |
By Category |
1 |
Alias |
Category |
|
Comment |
|
|
|
|
|
|
|
|
Style |
Standard Outline |
-r |
:
Reading order f T f "
Рис. 7.5. Диалог свойств представления
Столбец 1
Будет содержать поле Category. Выберите в меню пункты Design > Column Properties. В диалоговом окне свойств задайте заголовок столбца Cat. и ширину 2. Установите флажок Show twistie when row is expandable (см. рис. 7.6).
Для иллюстрации группировки сделайте данное представление «сгруппированным». Перейдите на вкладку 2 и задайте тип сортировки Ascending, а также тип представления Categorized. Затем перейдите на вкладку 3 и измените цвет текста на синий (blue), а стиль - на жирное начертание (bold). Завершив установку, закройте диалог свойств. Задайте в панели Programmers тип вывода информации - Field и название поля - Category, указав, что в столбце будет показано поле со значением «категории».
Столбец 2
Будет содержать имя Web-сайта. Для создания столбца выберите в меню пункты Create > Append New Column. Затем для указания характеристик перейдите к меню Design > Column Properties. На вкладке 1 задайте заголовок столбца - Title. Перейдите на вкладку 2 и задайте порядок вывода значений по возрастанию (Ascending). В панели Programmers укажите тип вывода информации - Field и название поля - Title.
138 Глава 7. Основы построения приложений для Lotus Notes
ii |
| * |
|
l |
a |
s | ж |
Title: |
|
|
|
|
|
Width: |
2 |
X§ Multi-value separator: |
None |
||
ЯЙНш |
'-."ЧВ |
• • J |
|
|
™ |
: 3 Resizable |
|
-J |
Show |
responses only |
|
Display values as icons |
|
Editable column |
|||
Use value as color |
M |
User definable |
Do not display title in column header / Show twistie when tow is expandable
«istie Image
Рис. 7.6. Диалог свойств столбца
Столбец 3
Будет содержать идентификатор пользователя. Добавьте новый столбец. В диалоговом окне свойств задайте заголовок столбца (UserlD) и закройте окно. В панели Programmers укажите отображение Field и щелкните по UserlD.
Столбец 4
Будет выводить на экран пароль. Добавьте новый столбец. В диалоговом окне свойств задайте заголовок столбца (Password) и закройте окно. В панели Programmers укажите отображение Field и щелкните по Password.
Совет
По умолчанию при открытии представления все категории автоматически раскрываются. Для настройки представления таким образом, чтобы все категории автоматически были свернуты, выберите в меню View > Properties (см. рис. 7.7). Если диалог свойств показывает свойства столбца (COLUMN), нажмите мышью на треугольник и укажите вариант VIEW. После этого на второй вкладке установите признак Collapse all when database is first opened.
Теперь важно обратить внимание на тот факт, что представление не содержит формулы выборки (см. рис. 7.8), а значит, по умолчанию на экране будут показаны все документы из базы данных. В том случае, если бы формула выборки была в представлении необходима, она была бы размещена в панели программирования объекта «Выборка представления» (View Selection).
Поздравляем, вы успешно создали свое первое представление! Для сохранения изменений в меню выберите File > Save. Ваше представление должно выглядеть, как на рис. 7.9. В завершение шага представление требуется закрыть.

Проект: Создание базы данных для отслеживания Web-сайтов |
135 |
Н Ю - ™ ШЛ\ аг
V ] Default w h e n database i s first opened
Default design for n e w folders a n d views
Collapse all w h e n database is first opened
Ш'esponse documents in a hierarchy
S h o w in V i e w menu Q Allow customizations
Evaluate actions for every document c h a n g e
Create new documents at view level
Go to last opened document
On Refresh Display indicator
Рис. 7.7. Настройка свойств представления для сворачивания категорий
Objects | Reference j |
|
B y C a t e g o i y |
( V i e w ) : V i e w S e l e c t i o n |
||||
|
|
|
|
|
|
|
|
Ш |
• |
By Category |
(Globais) |
[£ |
Run J Client |
Simple Search |
|
В |
• |
By Category |
(View) |
|
|
|
|
|
|
oiSBEBSS! |
|
|
|
||
|
|
О Form Formula |
|
|
|
||
|
|
<> HelpRequest |
|
|
|
||
|
|
О Target Frame (single cfic |
|
|
|
||
|
|
О Target Frame (double c l ; |
|
|
|||
|
|
i> |
(Options) |
|
|
|
|
|
|
ф |
(Declarations) |
|
|
|
|
|
|
ф |
Queryopen |
|
|
|
|
|
|
t> Postopen |
|
|
|
|
|
|
|
f. |
Regiondoublecfick |
|
|
|
|
|
|
f> Queryopendocument |
|
|
|
||
|
|
f> |
Queryrecalc |
|
|
|
|
|
|
|
Queryaddtofolder |
|
|
|
|
|
|
i> |
Querypaste |
|
|
|
|
|
|
f> |
Postpaste |
|
|
|
|
|
|
|
Querydragdrop |
Щ |
Add Condition... |
| |
|
|
|
|
|
|
|
|
|
Рис. 7.8. Раздел представления View Selection
CD у C a t e g o r y View |
X | |
|
|
|
|
cmJthi» |
j u s e r l D |
P a s s w o r d |
| • |
|
LU |
<i |
Рис. 7.9. Готовое представление By Category
138 |
Глава 7. Основы построения приложений для Lotus Notes |
|
Шаг 4. Создание библиотеки сценариев
Теперь для иллюстрации принципа программирования с разделяемым кодом (shared programming) мы напишем библиотеку на LotusScript. Здесь, как и во всех включенных в книгу проектах, мы приведем рабочий исходный код, который можно набрать вручную или скопировать из текстового файла с сопроводительного Web-сайта.
На первый взгляд код на языке LotusScript может показаться пугающим. Однако приведенные процедуры имеют целью продемонстрировать идею общего кода и сценарных библиотек и познакомить с языком LotusScript, не вынуждая вас беспокоиться о синтаксических элементах. Задача вашей работы с этим разделом - узнать порядок построения и использования библиотеки на LotusScript. Она содержит общий код нескольких кнопок действий вашего приложения, а также функцию для проверки того, содержатся ли значения в обязательных полях формы. Для создания библиотеки выберите в меню пункты Create > Design > Script Library > LotusScript Library.
Совет
Приведенный далее код доступен в инструментальной панели для разработчиков. Просто откройте в клиенте Lotus Notes базу данных с названием Project Library и перейдите к разделу Script Library соответствующего проекта. Найдя нужный проект, скопируйте код и вставьте его в про- грамму-клиент Designer со своим текущим проектом. Убедитесь, что перед вставкой фокус установлен в панели Programmer's. Не делая такой вставки, вы можете набрать код вручную.
Библиотека содержит две подпрограммы и одну функцию. Подпрограммы
LaunchSiteFromDoc и LaunchSiteFromView по нажатию кнопки из документа или из представления By Category загружают Web-сайт. Функция CheckFieldValues проверяет значения полей, когда в базу добавляются новые документы.
Подпрограмма LaunchSiteFromDoc извлекает ссылку на Web-сайт из текущего документа и открывает этот сайт в браузере, который выбран по умолчанию. Для создания подпрограммы наберите следующий код в панели программирования Designer, расположенной внизу справа. Обратите внимание, что в том случае если вы начнете набор (или вставите код) в раздел Options, Designer автоматически сформирует для подпрограммы новый раздел.
Sub LaunchSiteFromDoc ( )
Производит загрузку Web-сайта из документа. Выводит предупреждение, если в настройках
' браузера обнаруживаются проблемы.
On Error Goto oops
Dim w As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim siteName As String
Проект: Создание базы данных для отслеживания Web-сайтов |
135 |
|
Set uidoc = w.CurrentDocument Set doc = uidoc.Document siteName = doc.Link(O)
Print "Launch website: " siteName Call w.URLOpen ( siteName )
Exit Sub
oops:
Msgbox "Browser error. The Internet browser "+_ "may not be configured " +Chr$(13)+ " correctly. "+_ "Check your location document in your address "+_
" book "+Chr$(13)+"or contact the help desk for "+_ "additional assistance."
Resume
End Sub
Вторая из подпрограмм предназначена для загрузки Web-сайта из представления. Работа этого кода немного отличается от работы первой показанной подпрограммы. В предыдущем примере ссылка извлекалась из документа, открытого как текущий. В этом она берется из документа, который выделен в представлении. При этом подпрограмма удостоверяется, что выбранная строка действительно является документом, а не названием категории, или группы. Дополнительно она проверяет, что выделен лишь один документ (Web-сайт). Для задания подпрограммы введите в панель Programmers библиотеки на LotusScript следующий код:
Sub LaunchSiteFromView
Производит загрузку Web-сайта из представления. Выводит предупреждение, если в настройках браузера обнаруживаются проблемы.
On Error Goto oops
Dim s As notessession
Dim db As notesDatabase
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Dim w As New NotesUIWorkspace
Dim siteName As String
Set s = New NotesSession
Set db = s.CurrentDatabase
Set collection = db.UnprocessedDocuments
If collection.count = 0 Then
Msgbox ("Please select a Web site. "+_ "The current selection is a category.")
Elseif collection.count > 1 Then