Опубликован: 04.07.2008 | Уровень: профессионал | Доступ: платный | ВУЗ: Компания IBM
Лекция 4:

Применение новых элементов разработки в приложении ITSO Electronics

< Лекция 3 || Лекция 4: 123 || Лекция 5 >
Аннотация: В лекции описаны основы работы с новыми элементами разработки и рассмотрены дополнения к классам LotusScript, COM, OLE, Java и CORBA

Новые функции и возможности Lotus Domino Designer 7 основаны на более тесной интеграции с развивающимися стандартами Web, увеличении функциональной совместимости с другими стандартами программного обеспечения IBM и упрощении использования приложений разработчиками и пользователями.

В этой лекции мы проиллюстрируем, как новые функции Lotus Domino 7 используются для улучшения приложения ITSO Electronics. Рассмотрим следующие функции:

  • команды контекстного меню;
  • свойство формы AutoSave;
  • общие столбцы;
  • расширенные настройки для представлений и папок;
  • дополнения к языку формул;
  • дополнения к классам LotusScript, COM и OLE;
  • дополнения к классам Java и CORBA.

4.1 Команды контекстного меню

У разработчиков приложений теперь появилась возможность добавлять действия в меню, выпадающее по нажатии правой кнопки мыши (иначе их называют контекстными) в представлениях и папках. По правому щелчку мыши открывается быстрый доступ к функциям, к которым пользователи обращаются регулярно. Такой способ воздействует на выбранные документы в представлении и технически ничем не отличается от щелчка по кнопке в панели Action. С точки зрения пользовательского интерфейса, эта функция полезна, когда пользователь предпочитает обрабатывать одиночный документ на основе информации, имеющейся в представлении, например при отправке файла в часто используемую папку, удалении или выделении фрагмента текста. Добавление действий в контекстное меню может быть использовано как в качестве альтернативы, так и вместе с действиями в панели Action и меню Action. В контекстное меню могут быть добавлены и новые, и уже существующие действия.

В приложении ITSO Electronics в представлении "Sales Activity By Customer" существует командная кнопка Create New Sales Activity. Для того чтобы увеличить эффективность использования приложения, мы обновили параметр Display окна свойств Action и отметили галочкой свойство Include in right mouse button menu (Включить в контекстное меню) ( рис. 4.1).

Параметр Include in right mouse button menu

Рис. 4.1. Параметр Include in right mouse button menu

После щелчка правой кнопкой мыши в представлении появится контекстное меню, в котором будет только что добавленное действие ( рис. 4.2). Мы также добавили в контекстное меню и другие действия.

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

увеличить изображение
Рис. 4.2. Действие включено в контекстное меню

4.2 Свойство формы AutoSave

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

4.2.1 Включение поддержки функции AutoSave в клиенте Lotus Notes

При установке Lotus Notes 7 функция AutoSave не включена по умолчанию. Для ее включения необходимо выбрать соответствующий параметр в Lotus Notes Client User Preferences (Параметры пользователя клиента Lotus Notes).

  1. Выберите File => Preference => User Preferences (Файл \Rightarrow Параметры \Rightarrow Параметры пользователя).
  2. На вкладке Basics в параметрах Startup Options (Параметры запуска) активируйте опцию AutoSave every 15 minutes (Производить автосохранение каждые 15 минут) (см. рис. 4.3).
  3. (Дополнительно) увеличьте или уменьшите интервал выполнения AutoSave.
  4. Щелкните по кнопке ОК.
Замечание По умолчанию AutoSave производится каждые 15 минут. Интервал выполнения этой операции находится в пределах от 1 до 999 минут.
Активация функции AutoSave в User Preferences

Рис. 4.3. Активация функции AutoSave в User Preferences

Параметры AutoSave в окне User Preferences соответствуют трем переменным в файле NOTES.INI. Эти переменные приведены в табл. 4.1.

Таблица 4.1. Переменные в файле NOTES.INI
Переменная Параметр в User Preference
AUTO_SAVE_ENABLE=n Функция AutoSave отключена, когда n=0
AUTO_SAVE_INTERVAL=<mins> <mins> устанавливает временные интервалы между выполнением AutoSave
AUTO_SAVE_USER,<Abbreviated User Name>=<Database name relative to data directory> Устраняет конфликты имен в базах данных с функцией AutoSave

4.2.2 Активирование AutoSave для формы

В Lotus Domino Designer использованы преимущества новой функции AutoSave, заключающиеся в возможности ее активизации в форме, находящейся в приложении Lotus Notes. Если пользователи активируют функцию AutoSave в параметрах Lotus Notes, как показано в предыдущем разделе, документы, которые они создают или редактируют, будут сохранены в отдельную локальную зашифрованную базу данных с помощью формы, в которой активированы AutoSave. Для того чтобы активировать функцию AutoSave для формы, откройте форму в Domino Designer и поставьте галочку рядом с опцией Allow Autosave (Разрешить выполнение Autosave ) в окне свойств Form (см. рис. 4.4). Если функция AutoSave активирована в клиенте Lotus Notes, ее выполнение каждый раз будет отображаться в строке состояния.

Параметр Allow AutoSave в окне свойств Form

Рис. 4.4. Параметр Allow AutoSave в окне свойств Form

Разработчикам приложений следует убедиться в том, что функция AutoSave при активации в формах приложения корректно работает с их приложением. Во многих приложениях Lotus Notes и Domino присутствует код, создающий элементы по событиям Save (Сохранение) и Postsave (Постсохранение) или производящий проверку достоверности в момент загрузки. Из-за того что коды проверки достоверности и события формы не выполняются во время автоматического сохранения документа, автоматически сохраненный документ может не загрузиться после восстановления. Возможно, потребуется добавить код в событие Queryopen, чтобы установить значения по умолчанию для конкретных элементов, чтобы гарантировать правильную загрузку документов после восстановления.

Элемент $AutosaveRecovery можно использовать для работы с восстанавливаемыми документами. $AutosaveRecovery доступен для восстановленных документов до события PostOpen, а после этого события он удаляется. Например, форма может содержать код Queryopen, предотвращающий открытие документа в режиме редактирования, если поле Status не эквивалентно полю Draft. Если пользователь изменил статус на "Public" и произошло автоматическое сохранение, а после этого произошел сбой в работе компьютера, пользователю все еще необходимо открыть этот документ в режиме редактирования, несмотря на то, что значение поля Status кажется некорректным. Обратите внимание на следующий код:

Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant,
Continue As
Variant)
Dim doc As NotesDocument
If Mode And Not Isnewdoc Then
Set doc = Source.Document
If doc.Status(0) <> "Draft" Then
Continue = False
Messagebox "Only Draft documents may be edited.", _
MB_ICONSTOP, "Edit Error"
End If
End If
End Sub

Вместо этого можно написать:

If doc.Status(0) <> "Draft" And Not doc.HasItem("$AutosaveRecovered ") Then

Элемент $DontAutosave можно использовать для отключения функции AutoSave в данном конкретном документе. Функция AutoSave может быть снова активирована путем удаления $DontAutosave.

4.2.3 Восстановление документов, сохраненных с помощью AutoSave

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

Предложение восстановить несохраненный документ

Рис. 4.5. Предложение восстановить несохраненный документ

Если вы щелкнете по кнопке Yes (Да), откроется окно Recover Unsaved Documents (Восстановить несохраненные документы), в котором перечислены все документы, которые могут быть восстановлены (см. рис. 4.6).

Окно Recover Unsaved Documents

Рис. 4.6. Окно Recover Unsaved Documents

В табл. 4.2 описаны функции каждой из четырех кнопок окна, представленного на рис. 4.6.

Таблица 4.2. Варианты, предлагаемые в окне Recover Unsaved Documents
Вариант Описание
Recover (Восстановить) Восстановление выбранных документов и удаление их из списка.
Recover All (Восстановить все) Восстановление всех документов и удаление их из списка; в этом случае не нужно подтверждать выполнение операции для каждого элемента
Remove (Удалить) Удаление выбранных документов из базы данных AutoSave
Remove All (Удалить Все) Удаление всех документов из базы данных AutoSave

Если пользователь щелкнул по кнопке No, то восстановление документов, сохраненных автоматически, можно осуществить позже, выбрав File => AutoSave => Recover AutoSaved Documents (Файл \Rightarrow Автоматическое сохранение \Rightarrow Восстановить документы, сохраненные автоматически). После этого появится окно Recover Unsaved Documents, и пользователь сможет восстановить или удалить документы описанным выше способом.

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

4.2.4 Использование функции AutoSave вручную

Замечание Этот вариант работает только в том случае, если в форме активировано автоматическое сохранение.

Иногда пользователю, редактирующему документ, требуется немедленно его сохранить. Текущий документ можно сохранить в базу данных AutoSave, выбрав File => AutoSave => Autosave Now (Файл \Rightarrow Автоматическое сохранение \Rightarrow Выполнить автоматическое сохранение немедленно).

4.2.5 Получение доступа к базе данных AutoSave

База данных AutoSave находится в пользовательской директории Data. После создания база данных AutoSave именует файлы так же, как файлы почты. К названию базы данных добавляется приставка as_. В нашем сценарии у пользователя Manny Santana база данных AutoSave будет называться: as_msantana.nsf. Если база данных с таким именем уже существует, то к названию будет добавлена цифра 1 и далее, до тех пор, пока не будет создано уникальное имя.

Учитывая особенности присвоения имен в базе данных AutoSave будут возникать конфликты с такими именами пользователей, как John Doe, Jane Doe, James Doe и т. д. Чтобы быть уверенными в том, что AutoSave соответствует текущему пользователю, после создания базы данных необходимо проверить пользователя, указанного в файле NOTES.INI:

AUTO_SAVE_USER,<Abbreviated User Name>=<Database name relative to data
directory>

В нашем приложении этот элемент будет добавлен к файлу NOTES.INI пользователя Manny Santana:

AUTO_SAVE_USER,Manny Santana/ITOSElectronics=as_msantana.nsf

Когда пользователь запускает Lotus, происходит проверка файла NOTES.INI на наличие элементов, относящихся к базе данных AutoSave. Если такие элементы найдены, название базы, заданное в элементе, используется в качестве названия базы данных AutoSave. Если пользователь не обладает доступом к заданной базе данных AutoSave, он получит сообщение об ошибке и функция AutoSave будет отключена. Если заданной базы данных не существует, будет создана новая база данных, при этом будет использовано имя, заданное в элементе. Если соответствующий элемент с именем пользователя отсутствует в файле NOTES.INI, то он в нем создается, соответственно создается база данных с учетом правил присвоения имен, описанных выше.

< Лекция 3 || Лекция 4: 123 || Лекция 5 >
Артем Поммер
Артем Поммер
Россия, Омск
Артур Гибадуллин
Артур Гибадуллин
Россия, Нижневартовск, ФГБОУ ВО НВГУ, Преподаватель