|
|
|||||||||||||||||||||||||||||
|
Книга по Lotus. Разработка приложений в среде Domino 7: Глава 4 (электронная книга)Источник: IBM developerWorks Россия Команда Авторов International Technical Support Organization, специалисты International Technical Support Organization, IBM
Новые функции и возможности Lotus Domino Designer 7 основаны на более тесной интеграции с развивающимися стандартами Web, увеличении функциональной совместимости с другими стандартами программного обеспечения IBM и упрощении использования приложений разработчиками и пользователями. В этой главе мы проиллюстрируем, как новые функции Lotus Domino 7 используются для улучшения приложения ITSO Electronics. Рассмотрим следующие функции:
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). Рис. 4.1. Параметр Include in right mouse button menu После щелчка правой кнопкой мыши в представлении появится контекстное меню, в котором будет только что добавленное действие (рис. 4.2). Мы также добавили и другие действия в контекстное меню. Замечание. Контекстное меню не доступно для пользователей, ограниченных в правах. Все действия, выполняемые в контекстном меню, должны быть также доступны в меню Actions. Рис. 4.2. Действие включено в контекстное меню 4.2 Свойство формы AutoSaveAutoSave в клиенте Lotus Notes - это функция, с помощью которой осуществляется регулярное автоматическое сохранение документов Lotus Notes в локальную базу через определенные интервалы времени, определяемые пользователем. В случае сбоя программы, рабочей станции или перебоев в питании пользователь сможет восстановить документ, который редактировал, до того, как произошел сбой. Будучи профессиональными консультантами мы рекомендовали компании ITSO Electronics следовать инструкциям, приведенным в последующих разделах, и рассмотреть защиту приложений Lotus Domino с помощью новой функции AutoSave. 4.2.1 Включение поддержки функции AutoSave в клиенте Lotus NotesПри установке Lotus Notes 7 функция AutoSave не включена по умолчанию. Для ее включения необходимо выбрать соответствующий параметр в Lotus Notes Client User Preferences (Параметры пользователя клиента Lotus Notes).
Замечание. По умолчанию AutoSave производится каждые 15 минут. Интервал выполнения этой операции находится в пределах от 1 минуты до 999 минут. Рис. 4.3. Активация функции AutoSave в User Preferences Параметры AutoSave в окне User Preferences соответствуют трем переменным в файле NOTES.INI. Эти переменные приведены в табл. 4.1. Таблица 4.1. Переменные в файле NOTES.INI
4.2.2 Активирование AutoSave в формеВ Lotus Domino Designer использованы преимущества новой функции AutoSave, заключающиеся в поддержке функции AutoSave в форме, находящейся в приложении Lotus Notes. Если пользователи активируют функцию AutoSave в параметрах Lotus Notes, как показано в предыдущем разделе, документы, которые они создают или редактируют, будут сохранены в отдельную локальную зашифрованную базу данных с помощью формы, в которой активированы AutoSave. Для того чтобы активировать функцию AutoSave для формы, откройте форму в Domino Designer и поставьте галочку рядом с опцией Allow Autosave (Разрешить выполнение Autosave) в окне свойств Form (см. рис. 4.4). Если функция AutoSave активирована в клиенте Lotus Notes, ее выполнение каждый раз будет отображаться в строке состояния. Рис. 4.4. Параметр Allow AutoSave в окне свойств Form Разработчикам приложений следует убедиться в том, что функция AutoSave при активации в формах приложения корректно работает с их приложением. Во многих приложениях Lotus Notes и Domino присутствует код, создающий элементы по событиям Save (Сохранение) и Postsave (Постсохранение) или производящий проверку достоверности в момент загрузки. Из-за того что коды проверки достоверности и события формы не выполняются во время автоматического сохранения документа, автоматически сохраненный документ может не загрузиться после восстановления. Возможно, потребуется добавить код в событие Queryopen, чтобы установить значения по умолчанию для конкретных элементов, чтобы гарантировать правильную загрузку документов после восстановления. Элемент $AutosaveRecovery можно использовать для работы с восстанавливаемыми документами. $AutosaveRecovery доступен для восстановленных документов до события PostOpen, а после этого события он удаляется. Например, форма может содержать код Queryopen, предотвращающий открытие документа в режиме редактирования, если поле Status не эквивалентно полю Draft. Если пользователь изменил статус на «Public» и произошло автоматическое сохранение, что повлекло за собой сбой в работе компьютера, то пользователю все еще необходимо открыть этот документ в режиме редактирования, несмотря на то, что значение поля Status кажется некорректным. Обратите внимание на следующий код:
Вместо этого можно написать:
Элемент $DontAutosave можно использовать для отключения функции AutoSave в данном конкретном документе. Функция AutoSave может быть снова активирована путем удаления $DontAutosave. 4.2.3 Восстановление документов, сохраненных с помощью AutoSaveАвтоматически сохраненные документы могут быть восстановлены либо сразу после загрузки, либо в любое другое время после запуска. При выполнении запуска после сбоя системы или перебоя в питании, после аутентификации пользователю предлагается восстановить несохраненный документ (см. рис. 4.5). Рис. 4.5. Предложение восстановить несохраненный документ Если вы щелкнете по кнопке Yes (Да), откроется окно Recover Unsaved Documents (Восстановить несохраненные документы), в котором перечислены все документы, которые могут быть восстановлены (см. рис. 4.6). Рис. 4.6. Окно Recover Unsaved Documents В табл. 4.2 описаны функции каждой из четырех кнопок окна, представленного на рис. 4.6. Таблица 4.2. Варианты, предлагаемые в окне Recover Unsaved Documents
Если пользователь щелкнул по кнопке No, то восстановление документов, сохраненных автоматически, можно осуществить позже, выбрав File - AutoSave - Recover AutoSaved Documents (Файл - Автоматическое сохранение - Восстановить документы, сохраненные автоматически). После этого появится окно Recover Unsaved Documents, и пользователь сможет восстановить или удалить документы описанным выше способом. Документ не может быть восстановлен, если не найдена точная копия базы данных документов. Он остается в базе данных AutoSave «как есть», и позже можно снова его восстановить. Если документ был модифицирован с момента автоматического сохранения, появится соответствующее сообщение и пользователю будет предложено либо переписать документ, используя сохраненный вариант, либо сохранить внесенные изменения. Если пользователь решит восстановить документ, полученный в результате автоматического сохранения, документ будет открыт в Lotus Notes в режиме редактирования. AutoSave не будет автоматически сохранять документ от лица пользователя после восстановления. Если документ восстановлен из базы данных AutoSave, он также удаляется из базы данных, которая позволяет поддерживать приемлемые размеры базы данных AutoSave. 4.2.4 Использование функции AutoSave вручную
Замечание. Этот вариант работает только в том случае, если в форме активировано автоматическое сохранение. Иногда пользователю, редактирующему документ, требуется немедленно его сохранить. Текущий документ можно сохранить в базу данных AutoSave, выбрав File Ю AutoSave Ю Autosave Now (Файл Ю Автоматическое сохранение Ю Выполнить автоматическое сохранение немедленно). 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:
В нашем приложении этот элемент будет добавлен к файлу NOTES.INI пользователя Manny Santana:
Когда пользователь запускает Lotus, происходит проверка файла NOTES.INI на наличие элементов, относящихся к базе данных AutoSave. Если такие элементы найдены, название базы, заданное в элементе, используется в качестве названия базы данных AutoSave. Если пользователь не обладает доступом к заданной базе данных AutoSave, он получит сообщение об ошибке и функция AutoSave будет отключена. Если заданной базы данных не существует, будет создана новая база данных, при этом будет использовано имя, заданное в элементе. Если соответствующий элемент с именем пользователя отсутствует в файле NOTES.INI, то он в нем создается, соответственно создается база данных с учетом правил присвоения имен, описанных выше. 4.3 Общие столбцы (Shared Columns)Программа Lotus Domino Designer 7 предоставляет возможность создания общих столбцов, используемых в представлениях и папках. Общий столбец представляет собой отдельный элемент дизайна, однако, будучи вставленным в представление, он становится его частью. Разрабатываемый общий столбец обладает теми же свойствами и внешним видом, что и неотделяемый столбец в представлении и папке. Более того, общий столбец обладает специфичными свойствами. В окне свойств Shared Column, (см. рис. 4.7) можно задать название столбца (обязательно), псевдоним (не обязательно) и комментарий (не обязательно). Рис. 4.7. Окно свойств Shared Column Представление или папка, содержащие общий столбец, обратно совместимы для доступа из Всемирной сети и Lotus Notes. Общие столбцы могут быть использованы в DB2 Query View, о чем уже упоминалось в п. 2.3 «Query View». Общие столбцы, подобно общим полям, не являются многоязычными элементами. Использование общих столбцов позволяет разработчикам увеличить производительность, за счет создания общих столбцов, вставляемых во множество представлений и папок, находящихся в одной базе данных. То есть нет необходимости в создании одного и того же столбца несколько раз. Благодаря этой новой функции можно распространять изменения на все представления, используя один и тот же столбец. 4.3.1 Создание общего столбцаЧтобы создать новый общий столбец, выберите Column в меню Shared Code. Щелкните по кнопке New Shared Column (Создать общий столбец) или выберите Create - Design - Shared Column (Создать - Разработка - общий столбец). Также можно копировать и вставлять существующий разрабатываемый общий столбец. Чтобы создать новый общий столбец, основываясь на разработке существующего столбца в представлении, откройте представление, выделите столбец, затем выберите Create - Copy As Shared Column (Создать - Скопировать как общий столбец). В качестве альтернативы можно выделить столбец, открыть контекстное меню и выбрать Copy As Shared Column (см. рис. 4.8). Рис. 4.8 Использование контекстного меню для создания нового общего столбца После этого появится окно, в котором надо ввести название нового общего столбца (см. рис. 4.9). В результате будет создан новый общий столбец, а текущий столбец останется без изменений. Существующий столбец полностью независим от только что созданного общего столбца, поэтому если пользователю захочется унаследовать изменения дизайна из нового общего столбца, ему необходимо удалить существующий столбец в представлении и вставить новый общий столбец, чтобы заменить тот неотделяемый столбец. Рис. 4.9. Присвоение имени новому общему столбцу В приложении ITSO Electronics существует представление «Sales People By Name», в котором есть столбец Sales Person (Торговый агент). Нам необходимо отобразить такую же информацию в представлении «Sales People By Number». Следовательно, столбец Sales Person будет использован для создания нового общего столбца, который мы назовем Sales Person. Представления, в которых использованы общие столбцы, могут быть открыты в предыдущих версиях клиента Lotus Notes. 4.3.2 Использование общего столбцаДля использования общего столбца в представлении, откройте представление и выберите Create - Insert shared column (Создать - Вставить общий столбец) или Create - Append shared column (Создать - Добавить общий столбец). Выберите общий столбец из представленного в окне списка (рис. 4.10). Отметьте галочкой опцию Use Formula Only (Использовать только язык формул), если хотите заменить свойства отображения колонки, такие как шрифт и расположение колонки в представлении. Не выбирайте этот параметр, если хотите зафиксировать свойства отображения. Programmatic Name (Программное имя) (в окне Properties - закладка Advanced) вставленного/присоединенного столбца не наследуется из общего столбца, вне зависимости от параметра опции Use Formula Only; следовательно, это значение всегда может быть изменено. Тем не менее, значение столбца (формула) не может быть изменено. Рис. 4.10. Окно Insert Shared Column Чтобы использовать общий столбец Sales Person в представлении «Sales People By Number», мы открыли представление в Domino Designer и вставили общий столбец, выполнив последовательность действий, описанную выше. На рис. 4.11 представлено обновленное представление со вставленным общим столбцом. Для изменения дизайна общего столбца откройте список общих столбцов, щелкнув Shared Code - Columns (Общий код - Столбцы), и найдите нужный общий столбец в этом списке. Общий столбец также может быть изменен, для чего необходимо его выделить и щелкнуть Design - Edit Shared Column (Разработать - Изменить общий столбец). Предварительно будет предложено сохранить изменения, которые затрагивают описание общего столбца, а значит, автоматически отражаются в представлениях, использующих данный общий столбец, как видно из рис. 4.12. Эти обновленные представления повторно сохраняются, используя ID текущего пользователя, к тому же в представлениях, использующих опцию Use Formula Only (Использовать только формулу), обновляется только формула. Рис. 4.12. Сохранение общего столбца Чтобы удалить общие столбцы, выделите нужный столбец в списке общих столбцов и выберите Edit - Delete (Изменить - Удалить) или щелкните по нему правой кнопкой мыши и выберите из контекстного меню Delete (Удалить) (см. рис. 4.13). После того как будет удален общий столбец, он станет неотделяемым столбцом во всех представлениях, его содержащих. Рис. 4.13. Удаление общего столбца Щелкнув по командной кнопке Who is using this Shared Column (Кто использует этот общий столбец) в списке Column design, можно увидеть, какие представления и папки в базе данных используют выбранный общий столбец. В приложении ITSO Electronics, если открыть базу данных в Domino Designer, выбрать Shared Code - Columns (Общий код - Столбцы), затем общий столбец SalesPerson из списка и щелкнуть по командной кнопке Who is using this Shared Column (Кто использует этот общий столбец), появится информация, представленная на рис. 4.14. Рис. 4.14. Информационное окно, отображающее все представления, использующие этот столбец
4.4 Расширенные настройки для представлений и папокСвойство столбца, называемого user definable (определяемое пользователем), позволяет разработчикам создавать формулу столбцов на основе профильных документов базы данных. В предыдущих версиях программы Lotus Domino Designer использование этой функции было ограничено до цветового кодирования столбца. В Lotus Domino Designer 7 обеспечивается более широкая поддержка профильных документов в столбцах представлений и папок, что позволяет применять в приложениях большее количество параметров времени выполнения. Хорошим примером в данном случае является почтовый шаблон Lotus Notes 7. В папке Inbox (Входящие) содержится столбец с индикатором письма и скрытый столбец, управляющий цветовым кодированием. Содержимое и режим работы обоих столбцов определяются параметрами почты пользователя, которые пользователь устанавливает самостоятельно (см. рис. 4.15). Рис. 4.15. Опция Column, определяемая пользователем Мы хотим улучшить приложение ITSO Electronics с помощью добавления столбца, показывающий регион, выбранный в этом месяце, а также указывающий на то, относится ли документ к текущему пользователю. Иконка в виде звезды отображается в том случае, если данный регион выбран в текущем месяце. Синяя стрелка указывает на то, что данный документ относится к текущему пользователю. В противном случае в этом столбце ничего не отображается. Перед добавлением столбца профиля пользователя мы предполагаем, что приложение содержит профильный документ, который называется SalesProfile. Для столбца профиля пользователя может быть использован только один «общий» профильный документ; следовательно, при создании профильного документа дополнительный параметр uniquekey не используется. За более подробной информацией о профильных документах обратитесь к статье IBM developerWorks® «The hidden power of Profile documents» по адресу:
4.5 Дополнения к языку формулЯзык формул Lotus Notes обновлен в Domino Designer 7. Новые @-функции внедрены как для поддержки интеграции IBM DB2 и IBM Workplace Client TechnologyТМ, так и для поддержки средств безопасности политик и блокирования ECL. Также была добавлена новая @-команда, предназначенная для обнаружения всех папок, в которых располагается выбранный документ. К новым командам относятся следующие:
Замечание. функция @IfError вышла из употребления в Lotus Domino Designer 7.0, однако она полностью совместима с предыдущими версиями. Для получения дополнительной информации об этих новых функциях и командах к см. Lotus Domino Designer 7 Help по адресу: 4.6 Дополнения к классам LotusScript, COM и OLEК языку LotusScript были добавлены следующие улучшенные возможности:
Также следует отметить одно новое свойство Lotus Domino Designer 7, добавленное к LotusScript. Это свойство класса NotesUIDocument называется ModifiedSinceSaved и выявляет изменения, произведенные в документе в режиме редактирования с момента последнего сохранения. Для получения дополнительной информации об обновлениях в языке LotusScript в Lotus Domino Designer 7 перейдите к Lotus Domino Designer 7 Help по адресу: 4.7 Дополнения к классам Java и CORBAПрограммное обеспечение Lotus Domino Designer 7 поддерживает новые версии Java, Java Virtual Machine (JVM™) 1.4.2 и новую версию программы синтаксического анализатора расширяемого языка разметки гипертекста (XML). Благодаря новой функции кнопок-флажков и преимуществ отладки Java, можно настраивать агенты Java, Web-сервисы и библиотеки скриптов для осуществления удаленной отладки с помощью клиента Lotus Notes. К Lotus Domino Designer 7 добавлены следующие средства и функции:
Для получения дополнительной информации о поддержке Java и CORBA в Lotus Domino Designer 7 перейдите к Lotus Domino Designer 7 Help по адресу: Ссылки по теме
|
|