Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
22
Добавлен:
08.02.2015
Размер:
653.57 Кб
Скачать

8.Будет ли обращение к приложению производиться из 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

Соседние файлы в папке Лаб работы domino