Компания IBM
Опубликован: 04.07.2008 | Доступ: свободный | Студентов: 529 / 63 | Оценка: 4.48 / 4.37 | Длительность: 08:45:00
Лекция 4:

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

< Лекция 3 || Лекция 4: 123 || Лекция 5 >

4.4 Расширенные настройки представлений и папок

Свойство столбца, называемое "user definable" (определяемое пользователем), позволяет разработчикам создавать формулу столбцов на основе профильных документов базы данных. В предыдущих версиях программы Lotus Domino Designer использование этой функции было ограничено цветовым кодированием столбца. В Lotus Domino Designer 7 обеспечивается более широкая поддержка профильных документов в столбцах представлений и папок, что позволяет применять в приложениях большее количество параметров времени выполнения. Хорошим примером в данном случае является почтовый шаблон Lotus Notes 7. В папке Inbox (Входящие) содержится столбец с индикатором письма и скрытый столбец, управляющий цветовым кодированием. Содержимое и режим работы обоих столбцов определяются параметрами почты пользователя, которые пользователь устанавливает самостоятельно (см. рис. 4.15).

Свойство столбца "User-definable"

Рис. 4.15. Свойство столбца "User-definable"

Мы хотим улучшить приложение ITSO Electronics с помощью добавления столбца, показывающего регион, выбранный в этом месяце, а также указывающего на то, относится ли документ к текущему пользователю. Иконка в виде звезды отображается в том случае, если данный регион выбран в текущем месяце. Синяя стрелка указывает на то, что данный документ относится к текущему пользователю. В противном случае в этом столбце ничего не отображается. Перед добавлением столбца профиля пользователя мы предполагаем, что приложение содержит профильный документ, который называется SalesProfile. Для столбца профиля пользователя может быть использован только один "общий" профильный документ; следовательно, при создании профильного документа дополнительный параметр uniquekey не используется. За более подробной информацией о профильных документах обратитесь к статье IBM developerWorks \text{\textregistered} "The hidden power of Profile documents" по адресу: http://www.ibm.com/developerworks/lotus/library/ls-Profile_documents/

Для того чтобы добавить новый столбец профиля пользователя в представление "Sales Person By Name" приложения ITSO Electronics, сделайте следующее:

  1. Откройте представление в Domino Designer и вставьте новый столбец, щелкнув Create => Insert new column (Создать \Rightarrow Вставить новый столбец).
  2. Откройте окно свойств Column и убедитесь в том, что приведенные ниже значения определены ( рис. 4.16):
    • Активируйте опцию Display values as icon (Отображать значения в виде иконок), так как столбец профиля пользователя будет отображать иконку, которая соответствует региону, выбранному в текущем месяце, или индикатор, показывающий отношение к текущему пользователю.
    • Активируйте опцию User definable (Определяемая пользователем).
    • Определите существующий профильный документ в базе данных SalesProfile в поле Profile Document.
    • Используйте @UserName в качестве формулы значения столбца ( Column Value ).
      Замечание Формула значения столбца должна быть непостоянной, такой как @Username, @Created или @Random. В качестве формулы значения столбца можно использовать любую непостоянную формулу, так как ее значение не вычисляется. Если использована постоянная формула, такая как "", или специальная текстовая функция, такая как @DocNumber, профильный столбец пользователя не будет отображаться корректно, и для каждого документа в представлении появится сообщение Replication or Save Conflict (Конфликт репликации или конфликт сохранения).
      Определение столбца профиля пользователя

      увеличить изображение
      Рис. 4.16. Определение столбца профиля пользователя
    • В закладке Advanced (см. рис. 4.17), в поле Name, содержится название поля, находящегося в этом документе. В нашем случае это поле $ToRegion. В поле профиля документа хранится формула, вычисляемая при отображении строки представления. Другими словами, поле value поля $ToRegion представляет собой закодированную формулу, выходное значение которой отображается в столбце. Формула Value, принадлежащая к $ToRegion, представляет собой формулу, выходное значение которой и есть упомянутая формула.
      Закладка Advanced в окне свойств Column

      Рис. 4.17. Закладка Advanced в окне свойств Column

      Конечный пользователь, редактирующий профильный документ, в большинстве случаев не сможет написать эту формулу. Вычисляемое поле, содержащее формулу, а в нашем случае это $ToRegion, обычно вычисляется для конечного пользователя, что необходимо для того, чтобы увидеть, какой должна быть формула. Вычисляемая формула поля должна сгенерировать формулу, которая хранится в поле. На рис. 4.18 представлен дизайн формы SalesProfile и показано значение поля в поле $ToRegion, которое генерирует значение формулы.

      Форма SalesProfile в Domino Designer

      увеличить изображение
      Рис. 4.18. Форма SalesProfile в Domino Designer
  3. На рис. 4.19 представлен профильный документ SalesProfile. Введите значения в поля RegionSelection и HighlightUser. Формула поля $ToRegion вычисляет новую формулу, которая будет использована для столбца, определяемого пользователем. Например, если выбран регион South East и отмечена галочкой опция Highlight User, значение формулы $ToRegion будет следующим:
    @If(SName = @Username; 111; SRegion = "South East"; 159; 0)
    Профильный документ SalesProfile

    увеличить изображение
    Рис. 4.19. Профильный документ SalesProfile

    Опция, выбранная пользователем, будет доступна всегда, а не только когда выбрано Use value as color (Использовать цвет в качестве значения). Таким образом, становится возможным использование столбца профиля документа в качестве иконки, а также других типов столбцов. Если профильный документ определен для множества столбцов в границах одного представления, необходимо, чтобы для всех столбцов был использован один и тот же профильный документ. В противном случае при сохранении представления появится сообщение об ошибке (см. рис. 4.20).

    Сообщение об ошибке, касающееся столбца профиля пользователя

    Рис. 4.20. Сообщение об ошибке, касающееся столбца профиля пользователя

    После того как представление будет сохранено, столбец профиля пользователя появится в представлении Sales People By Name ( рис. 4.21).

    Столбец профиля пользователя, отображающий иконки в представлении

    увеличить изображение
    Рис. 4.21. Столбец профиля пользователя, отображающий иконки в представлении
Замечание Будьте осторожны при использовании кавычек и обратных косых черт в вычисляемой формуле поля. Из-за того что множество макроформул содержат кавычки, а некоторые содержат обратные косые черты, вычисляемая формула значения поля профиля часто должна содержать кавычки (или обратные косые черты) внутри кавычек, что приведет к путанице. Поэтому следует делать вычисляемые поля видимыми только на время разработки, как мы и сделали в данном случае, что позволяет редактировать поля, видеть результирующую формулу и определять синтаксически правильные элементы. Также следует помнить о том, что когда вы вставляете данные из других полей в вашу формулу, в них могут содержаться кавычки или обратные косые черты. Поэтому вам придется использовать @ReplaceSubstring(название поля; "\\":"\"; "\\\\"; "\\\"") для преобразования этих символов в правильные строковые литералы.

4.5 Дополнения к языку формул

Язык формул Lotus Notes обновлен в Domino Designer 7. Новые @-функции внедрены как для поддержки интеграции IBM DB2 и IBM Workplace Client TechnologyТМ, так и для поддержки средств безопасности политик и блокирования ECL. Также была добавлена новая @-команда, предназначенная для обнаружения всех папок, в которых располагается выбранный документ.

К новым командам относятся следующие:

  • @AdminECLIsLocked: новая функция, которая проверяет текущий статус Administration ECL в адресной книге.
  • @DB2Schema: функция, которая по заданному в виде текстовой строки названию базы данных возвращает текстовую строку, содержащую схему DB2 заданной базы данных, если это база данных db2nsf, или же пустую строку, если это база данных не db2nsf. Эта функция полезна в формуле SQL Query в Query View, (см. "Использование интеграции с DB2 для улучшения приложения ITSO Electronics" , "Query View") где вы должны определить формулу, генерирующую SQL-запрос, который возвращает записи, необходимые вам. SQL-запрос должен использовать полное точное табличное имя, включающее название схемы, и желательно использовать именно функцию @DB2Schema, а не название жестко закодированной схемы, чтобы дизайн можно было переносить на другие серверы и приложения.
  • @IsDB2: новая функция, которая по заданному серверу и имени файла или серверу и replica-копии ID базы данных сообщает о том, включена ли в данной базе данных поддержка DB2 или нет.
  • @IsEmbeddedInsideWCT: новая функция, которая определяет, встроена ли какая-либо часть текущей сессии Notes в клиент Workplace.
  • @PolicyIsFieldLocked: новая функция, которая определяет, когда поле заблокировано административной политикой и не может быть изменено.
  • @Command([DiscoverFolders]): команда, отображающая окно Folders containing current document (Папки содержащие текущий документ).
Замечание функция @IfError вышла из употребления в Lotus Domino Designer 7.0, однако она полностью совместима с предыдущими версиями.

Для получения дополнительной информации об этих новых функциях и командах см. Lotus Domino Designer 7 Help по адресу: http://www.lotus.com/ldd/doc/domino_notes/7.0/help7_designer.nsf.

4.6 Дополнения к классам LotusScript, COM и OLE

К языку LotusScript были добавлены улучшенные возможности:

  • поддержка новых средств профилирования кода, обсуждением которых мы займемся в "Диагностирование и отладка приложения ITSO Electronics" , "Профилирование кода в приложении ITSO Electronics";
  • новые возможности работы с коллекциями документов;
  • расширенная поддержка XML;
  • необходимая поддержка для интеграции с технологией Workplace Client. Также следует отметить одно новое свойство Lotus Domino Designer 7, добавленное к LotusScript. Это свойство класса NotesUIDocument называется ModifiedSinceSaved и выявляет изменения, произведенные в документе в режиме редактирования с момента последнего сохранения.

Для получения дополнительной информации об обновлениях в языке LotusScript в Lotus Domino Designer 7 перейдите к Lotus Domino Designer 7 Help по адресу: http://www.lotus.com/ldd/doc/domino_notes/7.0/help7_designer.nsf

4.7 Дополнения к классам Java и CORBA

Программное обеспечение Lotus Domino Designer 7 поддерживает новые версии Java, Java Virtual Machine (JVMTM) 1.4.2 и новую версию программы синтаксического анализатора расширяемого языка разметки гипертекста (XML). С помощью отладки Java можно настраивать агенты Java, Web-сервисы и библиотеки скриптов для осуществления удаленной отладки с помощью клиента Lotus Notes.

К Lotus Domino Designer 7 добавлены следующие средства и функции:

  • документация к ядру SunTM Java для классов Java и CORBA;
  • поддержка платформы Sun JavaTM 2, Technology Edition, V1.4.2;
  • новый метод approveHostedOrgStorageDeletion класса AdministrationProcess;
  • новый метод getModifiedDocuments класса Database;
  • новое свойство UntilTime класса DocumentCollection;
  • поддержка Java Platform Debugger Architecture (JPDA) (Архитектура отладчика платформы Java).

Для получения дополнительной информации о поддержке Java и CORBA в Lotus Domino Designer 7 перейдите к Lotus Domino Designer 7 Help по адресу: http://www.lotus.com/ldd/doc/domino_notes/7.0/help7_designer.nsf

< Лекция 3 || Лекция 4: 123 || Лекция 5 >