48
1 1 Введение 1.1 Введение в Lotus Notes Lotus Domino и Notes дают в руки разработчиков информационных систем новую уникальную по своим возможностям мощную среду разработки прикладных корпоративных систем и Internet/intranet-приложений. Продукт Lotus Notes (Lotus Development Corporation, an IBM subsidiary) наиболее успешный пример программного обеспечения для рабочих групп. На базе коммуникационных технологий Lotus и Java-технологий создаются системы информационной поддержки деловых процессов, управления знаниями, систем электронного документооборота, автоматизации организационно-распорядительной и производственно-хозяйственной деятельности различных фирм, предприятий и организаций. Notes уже достаточно широко используется в различных фирмах для организации совместной работы с документами и для координации деятельности сотрудников. Делопроизводство и документооборот включают в себя работу с большим количеством разнородных документов, информация в которых слабо структурирована. Эти документы живут во времени и необходимо обеспечить последовательность действий над документом в течение его жизненного цикла и организовать взаимодействие вовлеченных в этот процесс людей. Очевидно, что создание такой системы не тривиальная задача и требует нового подхода для решения, отличающегося от принципов разработки стандартных информационно-справочных систем и традиционных баз данных реляционного типа. Поэтому и появился новый продукт для построения деловых приложений – Lotus Notes. Notes объединил достаточно хорошо известные современные технологии: Клиент серверная технология Система тиражирования данных (реплицирования) Система управления документоориентированой базой данных Средства разработки приложений Электронная почта Средства защиты информации. Каждая из этих технологий, взятая в отдельности, достаточно хорошо известна. Но объединенные вместе в рамках единой системы они дали совершенно новое качество. Пакет Notes является чрезвычайно объемным, поэтому довольно трудно обозреть все его возможности. Notes использует архитектуру клиент-сервер. Локальная сеть состоит из сервера Notes и рабочих станций клиентов. Локальные сети могут быть объединены в глобальную сеть Notes. Для этого серверы Notes объединяются с помощью модемов и коммутируемых или выделенных телефонных каналов. Одним из самых сильных свойств Notes – возможность неограниченного увеличения численности групп и их территориального расположения. Notes предоставляет возможность обмениваться информацией почти любого вида с практически неограниченным числом сотрудников по всему миру. Информация оптимальным образом

1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

  • Upload
    vokhue

  • View
    267

  • Download
    4

Embed Size (px)

Citation preview

Page 1: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

1

1 Введение 1.1 Введение в Lotus Notes Lotus Domino и Notes дают в руки разработчиков информационных систем новую уникальную по своим возможностям мощную среду разработки прикладных корпоративных систем и Internet/intranet-приложений.

Продукт Lotus Notes (Lotus Development Corporation, an IBM subsidiary) наиболее успешный пример программного обеспечения для рабочих групп. На базе коммуникационных технологий Lotus и Java-технологий создаются системы информационной поддержки деловых процессов, управления знаниями, систем электронного документооборота, автоматизации организационно-распорядительной и производственно-хозяйственной деятельности различных фирм, предприятий и организаций. Notes уже достаточно широко используется в различных фирмах для организации совместной работы с документами и для координации деятельности сотрудников.

Делопроизводство и документооборот включают в себя работу с большим количеством разнородных документов, информация в которых слабо структурирована. Эти документы живут во времени и необходимо обеспечить последовательность действий над документом в течение его жизненного цикла и организовать взаимодействие вовлеченных в этот процесс людей.

Очевидно, что создание такой системы не тривиальная задача и требует нового подхода для решения, отличающегося от принципов разработки стандартных информационно-справочных систем и традиционных баз данных реляционного типа. Поэтому и появился новый продукт для построения деловых приложений – Lotus Notes. Notes объединил достаточно хорошо известные современные технологии: • Клиент – серверная технология • Система тиражирования данных (реплицирования) • Система управления документоориентированой базой данных • Средства разработки приложений • Электронная почта • Средства защиты информации.

Каждая из этих технологий, взятая в отдельности, достаточно хорошо известна. Но объединенные вместе в рамках единой системы они дали совершенно новое качество.

Пакет Notes является чрезвычайно объемным, поэтому довольно трудно обозреть все его возможности.

Notes использует архитектуру клиент-сервер. Локальная сеть состоит из

сервера Notes и рабочих станций клиентов. Локальные сети могут быть объединены в глобальную сеть Notes. Для этого серверы Notes объединяются с помощью модемов и коммутируемых или выделенных телефонных каналов. Одним из самых сильных свойств Notes – возможность неограниченного увеличения численности групп и их территориального расположения. Notes предоставляет возможность обмениваться информацией почти любого вида с практически неограниченным числом сотрудников по всему миру. Информация оптимальным образом

Page 2: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

2

распределяется между серверами и рабочими станциями. Наиболее трудоемкие процессы выполняются на сервере.

Реплицирование (тиражирование) баз данных – мощный и гибкий механизм

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

Notes – открытая система для распределения информации и построения

деловых приложений и может функционировать на различных платформах серверов и клиентов. Изоляция разработчика от платформы – единственный путь для создания действительно открытой системы. Прикладные разработчики (на уровне API, или в интерфейсе пользователя Notes) получают три ключевых слоя изоляции: от операционной системы, от сетевого протокола и от физического местоположения хранилища объектов – БД Notes (через удаленный вызов процедур – remote procedure call – RPC). Система удаленного вызова процедур (RPC) направляет запросы либо на локальный диск, либо на соответствующий сервер. Web Navigator предоставляет полный доступ к Интернету и позволяет включать информацию, находящуюся в Web, в базы данных Notes. Электронная почта позволяет сотрудникам обмениваться сообщениями с другими пользователями Notes и с пользователями других e-mail продуктов, отправлять письма через Интернет, вести совместные проекты, подготавливать и контролировать выполнение решений совещаний, организовывать дискуссии, составлять расписания вашего времени, расписания необходимых встреч, использовать факсовые и телексные сообщения, подписывать документы, получать новости и информационные рассылки. Notes поддерживает все основные стандарты Интернета. Предоставляет доступ к почте Интернета, телеконференциям, адресным книгам и Web-страницам. Можно использовать базы данных Notes и свою почту из Интернета.

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

Средства разработки баз данных удобны и обладают большой мощью. Используется объектно-ориентированная управляемая событиями модель программирования. Как реакция на события, возникающие при выполнении действий над объектами интерфейса, автоматически вызываются созданные разработчиком скрипты – программы на LotusScript. LotusScript - это BASIC-совместимый объектно-ориентированный язык программирования. Чтобы разработчик имел возможность спокойно оперировать из LotusScript необходимыми

Page 3: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

3

объектами, имеется более 20 встроенных классов, которые содержат в совокупности порядка четырехсот методов и свойств.

Имеются еще три класса, позволяющих получать из LotusScript доступ к информации из реляционных баз через стандартный ODBC –интерфейс. Этих возможностей часто окажется достаточно для решения задач, связанных с интеграцией реляционных баз и баз Notes.

Все это делает Notes главным и каждодневным инструментом, которые

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

1.2 Документоориентированные базы данных Lotus Notes Самой важной компонентой Lotus Notes являются базы данных. БД Notes можно сравнить с некоторым информационным архивом, с которым совместно работает большое число пользователей. В этот архив можно добавить информацию и очень быстро отыскать необходимую.

База данных Notes храниться в файле с расширением .NSF и содержит

следующие элементы: 1. Документы с данными, которые надо хранить в БД 2. Формы – бланки, которые используются при создании и отображении этих

документов. 3. Списки документов, хранящихся в БД. 4. Информация о правах доступа пользователей к базе данных. 5. Агенты – специальные программы, предназначенные для выполнения

определенных действий в БД.

Файл с БД может быть расположен на сервере Notes или на жестком диске персонального компьютера. Кроме имени файла БД имеет еще название, которое описывает тип хранимой в ней информации, например, «отдел кадров», «деканат» и т. д.

При внедрении Notes в организациях самого различного профиля происходит

не внедрение единой системы, жестко регулирующей делопроизводство и документооборот, а использование целого набора приложений. Число используемых в организациях приложений может достигать нескольких десятков, сотен и даже тысяч. На столе вы можете иметь специализированные базы данных, например, «исходящие письма», «входящие письма», «отдел кадров», «внешние контакты», «договоры», «приказы и распоряжения», «проекты и мероприятия», «совещания и заседания», «обращение клиентов». Каждая база имеет свои принципы организации и функционирования. При этом документы в базах можно упорядочить по категориям, выполнять полнотекстовый поиск или поиск по ключевому слову, готовить новый документ или письмо по образцу уже имеющихся. Получается система автоматизации и информационной поддержки организационно распорядительной деятельности и производственно-хозяйственной деятельности (т.е. то, что мы называем делопроизводство и документооборот).

Существует несколько встроенных БД, которые следует отметить особо:

Page 4: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

4

• Общая Адресная книга – содержит информацию обо всех зарегистрированных пользователях Lotus Notes.

• Личная Адресная книга – используется в качестве личной записной книжки. • Почта. • Справка. 1.3 Основные понятия и визуальная структура

Формы и документы

Основная единица хранения БД Notes – документ, который является фактически эквивалентом бумажного документа. Проектируется одна или несколько форм для создания этих документов. При сохранении документа Notes сохраняет только информацию, находящуюся в полях формы. Вся информация о типе полей, шрифтах, цвете, кнопках, рисунках и т.д. храниться в форме. Каждая форма имеет свое имя. Чтобы подготовить документ нужно выбрать необходимую форму из имеющихся в базе, заполнить ее и сохранить этот документ в базе данных.

Формы создаются разработчиком базы данных. Документы – пользователями базы данных.

Представления и папки

Представление или вид – определенный способ просмотра информации в БД, отображаются все документы, удовлетворяющие определенному критерию. Разные виды могут содержать списки одних и тех же документов, но с различной информацией, извлеченной из этих документов. Информация может быть сгруппирована по категориям, например, “по отделам”, “по стажу работы”. Каждая база должна иметь, по крайней мере, одно представление.

Папка – место, в которое вы можете положить документы, чтобы упорядочить

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

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

Агенты Агенты создаются для автоматизации различных действий: модификации полей документов, отправки почтовых сообщений, поиска необходимой информации, архивирования устаревших документов и т. д. Агенты могут

Page 5: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

5

запускаться из меню, из других агентов, нажатием кнопки, по расписанию (с периодом 0.5, 1, 2, 4, 8 часов, ежедневно, еженедельно, ежемесячно). Отбор обрабатываемых документов может производиться по заданному критерию или по запросу полнотекстового поиска.

Возможности электронной почты

Электронная почта может использоваться для автоматической рассылки документов пользователям, для ознакомления, утверждения, напоминаний или изменений. При пересылке данные могут шифроваться. Каждый пользователь может иметь на сервере свой почтовый ящик, который представляет собой стандартную базу данных Notes .

Кроме традиционных задач передачи сообщений среда Notes добавляет интеллектуальные средства маршрутизации сообщений, например между разными уровнями иерархии в организации в пределах глобальной сети Notes.

Поддержка всех основных стандартов Интернета предоставляет вам доступ к почте Интернета, телеконференциям, адресным книгам и Web- страницам прямо из Notes. Вы можете также использовать свою почту и базы данных из Интернета.

Каждый пользователь Notes имеет свою базу данных почты, которая создается администратором при его регистрации. Эта БД содержит почтовые сообщения, созданные пользователем и пришедшие на его имя. Документ базы данных почты ничем не отличается от документов других баз Notes.

2 Работа с Lotus Notes Установка LN индивидуально для каждого студента (может измениться в 2003 учебном году): 1) Вызвать Far и выбрать каталог 3:network-> INFORMATICS -> MX\Setup\Notes 2) скопировать в каталог H:\Notes все файлы из MX\Setup\Notes\Lotus Notes . 3) свой личный id из MX\Setup\Notes\Ids скопировать в H:\Notes с именем notes.id 4) запустить LN 5) На запрос пароля для Guest ответить отказом. 6) В появившемся окне выбрать notes.id и ввести пароль ( пароль –703312) 7) Сменить пароль: Файл | Сервис |Учетная запись|Установить пароль 8) Настроить почтовый файл: Файл|параметры|параметры места вызова|Почта–

mail\students\gr1481\8129 (указать свои координаты) 9) Открыть БД почты: Файл| БД | открыть|сервер|mail|students|gr1481| 8129

2.1 Запуск Lotus Notes Notes запускается двойным щелчком на соответствующем значке. Затем выдается запрос пароля. Регистры в пароле различаются. Когда Notes примет ваш пароль, вы увидите его пригласительную страницу. Можно выбрать пригласительную страницу из трех предложенных или создать самому. Суть пригласительной страницы заключается в том, чтобы обеспечит быстрый и удобный доступ к наиболее часто используемым частям Notes.

2.2 Электронная почта

База данных почты

Дважды нажмите на значке, содержащем конверт и ваше имя. Слева вы увидите следующие папки и представления: • Входящие, • Черновики,

Page 6: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

6

• Отправленные, • Все документы, • Цепочки обсуждения, • Правила, • Бланк, • Календари групп, • Корзина. По умолчанию при открытии базы данных почты на экране отображается представление, содержащее информацию о сообщениях, находящихся в папке Входящие. Поступившие, но еще не прочитанные сообщения, отмечаются звездочкой. Вы видите, кто отправил сообщение, когда он это сделал, объем сообщения и тему. Дважды нажмите заголовок сообщения, которое вы хотите прочесть. Чтобы закрыть сообщение, которое вы прочли, нажмите клавишу ESC.

Вы также можете: • Создавать новые сообщения • Создавать новые папки и представления • Сортировать существующие сообщения • Отвечать на письма, при желании с включением оригинала • Переносить сообщения в различные папки • Удалять сообщения • Настраивать ваши персональные адресные книги • Создавать и настраивать свой календарь • Создавать календари групп • Делать вырезание, копирование и вклеивание • Добавлять таблицы в документы • Использовать дискуссионные базы данных • Управлять информацией с помощью библиотек и документов

Для закрытия базы данных почты нажмите ESC еще раз.

Создать новое сообщение

Щелкните на кнопке “Создать сообщение”. На открывшейся странице автоматически написано ваше имя, дата и время. Выбирая заголовок письма, можете изменить рисунок в верхней части сообщения. (Найти самим, где это можно сделать) Кому – Набираете имя и фамилию (или несколько, разделяя их запятыми) из адресной книги. Notes просматривает весь список, осуществляя поиск по введенным буквам, и дописывает имя и фамилию до конца. Нужно только немного подождать. Либо набираете е-mail адрес. Копия – адреса всех, кому вы хотите послать копию СК - скрытая копия. Если вы введете в это поле чей-то адрес, то адресат получит копию вашего сообщения, но остальные получатели не будут об этом знать. Панель действий дает возможность выполнять наиболее часто повторяющиеся функции. Тема - вводится заголовок сообщения, который виден в представлении. В основном поле набирается текст сообщения.

Page 7: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

7

Вверху над бланком находится панель действий. Вы можете отправить письмо, отправить и сохранить копию для себя, или сохранить как черновик для дальнейшей доработки, не отправляя. Используя кнопку Адрес, можете выбирать адреса из адресных книг. Нажмите кнопку «Адрес» и посмотрите в справке, какие есть возможности выбора адреса. Рассмотрите окно “Параметров доставки”. Ответить на письмо, при желании с включением оригинала Выберите сообщение и щелкните на кнопке «Ответить». Появится меню: • ответить, • ответить с документом, • ответить всем, • ответить всем с документом. Notes открывает письмо, которое уже автоматически адресовано . Если вы выбрали просто ответ, но хотите обращаться к оригиналу сообщения во время набора текста, то выберите в основном меню пункты «Вид|Родительский документ». Вы сможете видеть два сообщения одновременно. Если вы выбрали ответ с документом, то текст этого документа автоматически помещается в текст письма. Поле Тема тоже заполняется автоматически, указывается на какую тему ответ. Если вы выберите вариант «Ответить всем», то ваш ответ будет отправлен всем, кто получил это сообщение, за исключением тех, чьи адреса находятся в поле Скрытая копия. Они ответ не получат. Создать новую папку или представление Чтобы создать ваши собственные папки или представления, выполните следующие действия: В главном меню выберите - Создать | Папка или Представление. Notes откроет диалоговое окно создания. Рассмотрите диалог самостоятельно во время лабораторной работы. Создайте новые папки и представления. Сортировать существующие сообщения Если в заголовке столбца представления изображены один или два маленьких треугольника, вы можете менять способ сортировки информации, щелкнув на этом заголовке. Если вы щелкните, например, в представлении «Все документы» на заголовке «Дата», то письма будут упорядочены по убыванию даты и первыми будут показаны более свежие письма. При повторном щелчке порядок показа вернется к первоначальному. Перенос сообщений в различные папки Откройте вид или папку, в которой содержится сообщение, которое необходимо переместить. Убедитесь, что папка, в которую вы хотите переместить сообщение, присутствует на панели навигации. На сообщении нажмите левую кнопку мыши и не отпуская ее, перетащите указатель мыши на папку, в которой вы хотите сохранить сообщение. Отпустите левую кнопку мыши. Notes переместит сообщение в указанную папку. Если вы хотите несколько сообщений переместить в одно и то же место, то отметьте эти сообщения в самом левом столбце, нажимая мышью. Для выделения блока сообщений, идущих подряд можно воспользоваться клавишами Shuft + <стрелка вверх или стрелка вниз>. В левом столбце появляется отметка выбора в

Page 8: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

8

виде галочки. Когда выделили все сообщения подлежащие перемещению, перетащите одно из выбранных сообщений в надлежащую папку. Следует отметить, что если вы перетаскиваете сообщение из некоторого вида в папку, то в виде он все равно остается, т.к. вид всегда отображает документы, соответствующие определенному критерию. Если вы перенесете документ из одной папки в другую, то он исчезнет из первой папки. Как положить документ в несколько папок? Notes позволяет сохранять сообщения в разных папках одновременно. Чтобы добавить сообщение в новую папку, не удаляя его из исходной, нажмите клавишу CTRL на сообщении и, удерживая левую кнопку мыши, перетащите сообщение в нужную папку. Вы можете добавить несколько сообщений одновременно из папки в папку. Отметьте необходимые сообщения и, удерживая клавишу CTRL и левую кнопку мыши, переместите одно из отмеченных сообщений. Ваш документ может находиться в нескольких папках и в нескольких видах и в каждом из них идет обращение к оригиналу, копии не создаются. Если вы измените документ, то он изменится везде, во всех видах и во всех папках.

Создание таблиц В документах могут создаваться обычные, особые и вложенные таблицы. Таблицы создаются только в форматируемых полях (в полях, в которых допускается ввод текста, а также вставка объектов, вложений и рисунков). Чтобы создать обычную таблицу: 1. Откройте документ в режиме редактирования. 2. Щелкните кнопкой мыши место, куда требуется вставить таблицу. 3. Выберите команду «Создание|Таблица». 4. В группе «Вид таблицы» нажмите кнопку стандартной таблицы (первая кнопка слева). 5. В полях «Строк» и «Столбцов» укажите число строк и столбцов в таблице. 6. Нажмите кнопку OK. Можно создать таблицы, строки которых отображаются как вкладки (вторая кнопка слева в группе «Вид»); таблицы, в которых каждые две секунды меняется отображаемая строка (третья кнопка слева в группе «Вид»); таблицы, в которых отображаются различные строки, в зависимости от действия или значения поля (первая кнопка справа в группе «Вид»). Чтобы создать вложенную таблицу, поместите указатель в ячейку таблицы, в которую требуется добавить другую таблицу, и повторите весь алгоритм создания таблицы. Если требуется вставить еще строки и столбцы в таблицу, выберите соответствующие команды «Таблица | вставить строку или столбец». (Кнопочки с изображением таблицы). Новая строка таблицы добавляется над текущей строкой, новый столбец добавляется слева от текущего столбца. Использование вложений в документах

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

Page 9: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

9

трех команд, нажав на соответствующую кнопку: «просмотреть», «запустить», «извлечь».

«Просмотреть» - означает просмотр файла без использования программного обеспечения, с помощью которого был создан файл.

«Запустить» - файл открывается при помощи программы, в которой этот файл был создан (например, Exel, Word).

«Извлечь» - Notes сохраняет копию вложенного файла на указанном носителе, а его оригинал остается вложенным в документ. Если вы хотите вложить файл в ваше сообщение, то выбираете в меню: «Фаил|Вложить» и в диалоговом окне выбираете нужный файл.

Цвет и графика в документах Имеется возможность изменять цвет фона документов и, если это

допускается их структурой, использовать в качестве фона рисунки. Кроме того, рисунки могут импортироваться из других файлов. Чтобы изменить фон нужно в режиме редактирования выбрать «Файл | Свойства документа». И на третьей слева вкладке установить цвет фона или выбрать картинку для фона. Если размер рисунка совпадает с размером документа, он отображается один раз. Если рисунок меньше, его копии располагаются рядом таким образом, чтобы закрыть весь фон документа. Можно установить параметр – «не размножать изображение».

Имеется возможность копировать рисунки (в формате BMP) в документы через буфер, для рисунков других форматов допускается импорт графических файлов (Файл | импорт). Можно изменять размер рисунков в документе. Рисунки могут добавляться только в форматируемые поля - в поля, в которых допускается ввод текста, а также вставка объектов, вложений и рисунков. Удаление сообщений Уничтожение документов происходит в два этапа. Сначала отмечаются документы, подлежащие уничтожению. Для этого выбирается соответствующий документ и нажимается клавиша DEL. Документ помечается значком с изображением мусорной корзины. Это действие обратимо, нужно только снять выделение, нажав клавишу DEL еще раз. Если хотите удалить документ, нажмите F9. Появиться диалоговое окно с предупреждением. Вы можете окончательно удалить документ или отказаться от удаления, если передумали. Уничтожение сообщения, из какой либо папки или вида, повлечет за собой уничтожения его из всех папок и видов. Notes выдает соответствующее окно предупреждения. 2.3 Адресная книга Настройка вашей персональной адресной книги Чтобы открыть вашу Адресную книгу можно щелкнуть на значке «Адресная книга» в списке закладок на левом крае окна Notes. Поиск почтового адреса для отправки почтового сообщения проводится в вашей личной адресной книге. Если в личной адресной книге отсутствует необходимая информация, будет проверен справочник Domino почтового сервера. Чтобы указывать адреса для отправки почтовых сообщений было легче, можно сохранять данные о контактах в списках рассылки адресной книги. Кроме того, в личной адресной книге Notes сохраняет»

• сведения о местах вызова, из которых пользователи подключаются к Notes, • серверы, подключения к которым выполняются из Notes,

Page 10: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

10

• учетные записи Интернета. Чтобы добавить контакт в адресную книгу нажмите кнопку «Добавить контакт» и заполните поля. Поля «имя» и «адрес электронной почты заполняются обязательно. Остальные – по вашему желанию. Нажмите кнопку «сохранить и закрыть». Чтобы адресовать сообщения группе пользователей, можно создать список рассылки. Сообщение отправляется один раз по указанному списку. Чтобы создать список рассылки откройте адресную книгу, перейдите в представление «Группы» и нажмите кнопку «Добавить в список рассылки». Введите имя в поле «Название группы», описание – в поле «Описание» и укажите имена пользователей (через запятую или Enter) в поле «Члены». Сохраните созданный список. 2.4 Календарь и задачи «Календарь» и «Задачи» - это представления почтовой базы данных, используемые для организации личного времени, назначения встреч, для напоминания себе о чем-то в заданное время, или напоминания о повторяющихся событиях, например, годовщинах, днях рождений и т.д. и отслеживания задач. Во время лабораторных работ поработайте с записями календаря. При создании приглашения на собрание можно выполнять поиск свободного времени приглашаемых пользователей для нахождения времени, подходящего для большинства из них. Кроме того, можно выполнять поиск времени, в которое доступны помещения и ресурсы, заказываемые для проведения собрания. При поиске свободного времени для собрания Notes отображает диалоговое окно "Свободное время": Сначала Notes пробует найти время, в которое свободны все приглашенные, указанные в полях «Пригласить», «Копия» и «СК» (а также вы и все помещения и ресурсы, указанные в полях «Заказать комнаты» и «Заказать ресурсы»). Если такого времени в пределах трех недель найти не удается, Notes пробует найти время, приемлемое для большинства приглашенных, отдавая предпочтение перечисленным в поле «Пригласить». Если указанное время подходит не всем приглашенным, Notes выводит в диалоговом окне «Свободное время» сообщение «Назначенное время подходит не всем» и предлагает варианты в поле «Рекомендуемое для встреч время». Почтовая база данных содержит расписание свободного времени, представляющее собой список интервалов времени по дням недели, когда вы обычно доступны для участия в собраниях. Чтобы составить это расписание воспользуйтесь кнопкой «Сервис», выберите - «Параметры», перейдите на вкладку - «Календарь» и на вкладку - «Свободное время». Пользователь может создать задачу для себя либо создать запрос на задачу и отправить его другим пользователям. Задачи, созданные пользователем для себя, добавляются в список задач пользователя. При создании запроса на задачу для кого-то другого Notes добавляет запись в список задач пользователя и отправляет почтовые сообщения всем указанным пользователям.

Page 11: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

11

3 СОЗДАНИЕ БАЗ ДАННЫХ 3.1 Логическая структура файла БД Notes

БД Notes является контейнером (рис. 1) для большого числа объектов различного класса – документов, форм, представлений и агентов.

Заголовок БД (DatabaseTitle)

Установки реплицирования (Replication Settings) Список управления доступом (Access Control List)

История репликаций (Replication History) Информация об активности пользователей (User Activity Log)

Индексы видов и другие нереплицируемые данные Карта размещения (Allocation map)

Пиктограмма БД (Icon Note) Документ «About Database» (Policy Note) Документ «Using Database» (Help Note)

Вид (View Note) Форма (Form Note) Агент (Filter Note)

Документ (Data Note) Документ (Data Note) Форма (Form Note) Вид (View Note)

Документ (Data Note) о о о

Файл БД начинается с некоторого заголовка и карты размещения данных в

остальной части БД. Заголовок содержит уникальные идентификаторы данного файла и реплики

БД, отметки о времени создания и последней модификации, название и категорию БД, параметры реплицирования, список управления доступом и т.п. Основная часть данных содержит записи данных, называемых note, а также другие типы объектов, как, например, присоединенные файлы, встроенные OLE-объекты, списки непрочитанных документов и т.п.

Различные виды note могут присутствовать в каждом файле многократно, причем не существует определенного порядка их следования. Каждый объект представлен в карте размещения уникальным «вектором размещения записи» (Record Relocation Vector - RRV), который содержит позицию объекта в файле. Note – это общая структура определенного формата, используемая Notes для хранения разнородной информации. В некотором смысле Note – это документо- ориентированный аналог записи в реляционной БД. Виды, формы, агенты, пиктограммы, Help-документы – все хранятся как notes. Документы также являются просто одной из разновидностей notes – data note. Запись любого из перечисленных типов имеет набор из трех идентификаторов: • NoteID – идентификатор в данной базе (RRV – позиция записи в файле); • UNID – универсальный идентификатор, устанавливающий соответствие между

репликами одного и того же документа;

Page 12: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

12

• OID – оригинальный идентификатор, уникально идентифицирующий документ в мировом масштабе. А также запись включает последовательность именованных пунктов (items), таких как поля в документах.

Header – заголовок. Содержит NoteID, дату/время последней модификации, тип записи – форма, вид, документ и т.д. Access Privilege Mask – определяет привилегии доступа к записи. Items – элементы, составляющие запись – имя поля, его значение, длину, тип данных, некоторый список флагов.

3.2 Основные типы записей

Структура документа определяется в основном формой, с помощью которой он редактировался. В форме есть определения полей, в документе появляются соответствующие пункты. Некоторые пункты добавляются самим Notes. Самые важные из них:

Form – имя формы, с помощью которой документ был создан $File – общая информация о присоединенных файлах и встроенных объектах

OLE. $Links – список идентификаторов документов, видов и БД, на которые есть

ссылки в данном документе. $Readers – список имен, групп и ролей, определяющий, кто может читать

документ. $Revisions –перечень дат и времен модификации документа. $UpdatedBy – имена тех, кто редактировал документ.

3.3 Шаблоны БД и создание БД

Шаблон БД – это база данных, служащая образцом для создания новых БД. Он используется как хранилище элементов дизайна – видов, форм, подформ, агентов, навигаторов и т.д.

Создать новую БД можно следующими способами: • Разработать с нуля. • Использовать готовые шаблоны, предоставляемые Notes, для создания БД,

затем доработать. • Скопировать существующую БД с параметром «Только структуру», затем

доработать. • Разработать новый шаблон с нуля или на основе существующих, затем создать

новые БД, наследующие дизайн шаблона при всех его последующих модификациях.

Обновление дизайна в БД на сервере происходит ежедневно серверной программой. Можно запретить наследование обновления дизайна, опустив флажок «Наследовать изменение структуры».

Базовые средства позволяют начинающим пользователям создавать простые, но полезные базы данных. Опытные пользователи могут использовать имеющиеся средства программирования, включающие в себя язык программирования LotusScript вместе со встроенными классами, и создавать сложные комплексы взаимосвязанных баз данных.

Header Access Privilege Mask

item item o o o o o o o o o

Page 13: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

13

Создать новую базу можно на основе уже существующей. Шаблоном называют готовую базу данных, структура которой используется для создания новых баз. Поставляемые шаблоны баз данных хранятся в файлах с расширением .NTF. Для получения информации о шаблонах обратитесь к справочной системе, посмотрите соответствующие документы «О базе данных» и «Работа с базой данных». Создание базы данных с использованием шаблона позволяет использовать элементы ее структуры: формы, представления, папки, агенты, и т.п. Можно оставить эти элементы без изменения или модифицировать их полностью или частично, а также добавить новые элементы. Таким образом, существующая база данных может быть использована в качестве первого приближения для создания необходимой базы данных. 3.4 Разработка БД с нуля, или используя шаблоны для создания БД

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

Для вызова диалогового окна создания базы данных выберите ФАЙЛ | БАЗА ДАННЫХ | СОЗДАТЬ

Список СЕРВЕР предназначен для выбора сервера, на котором будет находиться создаваемая база данных. Если выбрать в этом списке локальный компьютер, то на жестком диске вашего компьютера создается локальная база данных. В эту базу данных нельзя будет войти с другого компьютера. При выборе некоторого сервера, созданная база данных становится общей, и к ней будут иметь доступ те пользователи, которым будет предоставлен доступ разработчиком или менеджером этой базы данных. В период разработки базы данных целесообразно расположить ее на локальном диске. Когда же база будет создана окончательно, тогда ее можно будет скопировать на один из серверов и сделать базой коллективного пользования. На это нужно будет получить разрешение администратора. (При создании учебной БД установите «Локальный компьютер»)

В поле НАЗВАНИЕ введите название базы, например, «отдел кадров». Длина имени должна быть не более 32 символов в английской кодировке или не более 16 символов в русской двухбайтовой системе кодировке.

В поле ИМЯ введите Имя файла, например, H:\lab\ok.nsf. Рядом с полем ввода находится кнопка, нажатие которой открывает окно «выберите папку». Можно выбрать нужный диск и каталог, где будет находиться файл с базой данных.

Кнопка ШИФРОВАНИЕ – предоставляет возможность зашифровать локальную базу данных.

Кнопка ПРЕДЕЛЬНЫЙ РАЗМЕР открывает окно диалога, где вы можете указать размер базы в гегабайтах. Заданный объем нельзя изменить.

Флаг СОЗДАТЬ ПОЛНЫЙ ИНДЕКС ДЛЯ ПОИСКА устанавливается, если требуется создание файла индекса, необходимого для выполнения команд полнотекстового поиска. Механизм полнотекстового поиска позволяет производить в базе поиск документов с заданными словами, фразами, числами или датами. В запросах также можно использовать шаблоны и логические операторы. Имеется возможность проводить полнотекстовый поиск даже по базе, не имеющей индекса полнотекстового поиска. Однако, поскольку такой поиск реализуется последовательным просмотром информации из документов, он требует больших временных затрат. Размер индекса в среднем колеблется в пределах от 25% до 75% от размера базы. Физически индекс располагается в подкаталоге с именем имя_файла_базы.FT, находящемся в каталоге, содержащем файл базы. Этот каталог автоматически создается при создании индекса.

Page 14: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

14

Кнопка ИСТОЧНИК ШАБЛОНОВ открывает окно диалога «серверы шаблонов» для выбора сервера, на котором находятся необходимые шаблоны. По умолчанию в списке шаблонов отображаются шаблоны, хранящиеся в каталоге данных Notes (обычно это каталог Notes\Data). Если из этого списка выбрать шаблон, то около кнопки О ШАБЛОНЕ появится имя файла, в котором хранится этот шаблон. При нажатии этой кнопки открывается окно, содержащее документ «о базе данных». Если установили флажок ПОКАЗАТЬ ДОПОЛНИТЕЛЬНЫЕ ШАБЛОНЫ, то к списку шаблонов приложений добавится список системных шаблонов. Флажок НАСЛЕДОВАТЬ ИЗМЕНЕНИЕ СТРУКТУРЫ устанавливается для того, чтобы все изменения в структуре шаблона наследовались в структуре создаваемой базы. Это означает, что любые изменения в формах, полях, представлениях, папках, навигаторах, агентах и действиях шаблона структуры будут переноситься в созданные на их основе базы данных.

В верхней строчке списка шаблонов стоит «– НЕТ –». Выбор этого значения позволяет вам создавать базу с нуля.

Установите все необходимые параметры в окне диалога и нажмите ОК. На экране появится окно просмотра содержимого базы данных, со стандартным навигатором Notes для пустой базы. В «Базы данных» (нажать значок слева от поля) появится закладка с названием базы, например, «отдел кадров», нажимая на эту закладку можно открыть базу данных. Если вы создавали базу данных на основе шаблонов, то можете использовать уже готовые формы для создания документов.

3.5 КОПИРОВАНИЕ СУЩЕСТВУЮЩЕЙ БАЗЫ ДАННЫХ

Альтернативным способом создания базы данных является копирование структуры любой базы данных или шаблона. Для создания копии существующей базы данных выполните следующие действия.

Выделите в рабочем пространстве значок базы данных, которую требуется скопировать. И выполните команду

ФАЙЛ|БАЗА ДАННЫХ| СОЗДАТЬ КОПИЮ. Откроется диалоговое окно «копирование базы данных». В этом окне вы указываете место размещения и название копии. В разделе КОПИРОВАТЬ выбираете один из вариантов.

• Структуру базы данных и документы – создает копию базы данных вместе с документами.

• Только структуру – копируется только структура базы данных без документов.

Если вы установите опцию копировать ТАБЛИЦУ УПРАВЛЕНИЯ ДОСТУПОМ, то она будет скопирована. Это может ограничить доступ к создаваемой базе данных и не разрешит модифицировать ее структуру. Чтобы этого не произошло, флажок следует снять.

Если база данных, с которой создавалась копия новой базы, наследовала свою структуру с некоторого шаблона структуры, то новая база данных также будет наследовать структуру этого шаблона. Чтобы отменить наследование и получить возможность самостоятельно изменять структуру базы данных, снимите в окне «свойства» для базы данных флажок «Наследовать структуру». Для этого выберите в рабочей области базу, свойства которой хотите изменить и выполните ФАЙЛ|БАЗА ДАННЫХ|СВОЙСТВА – выберите четвертую слева закладку и снимите этот флажок.

Page 15: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

15

3.6 Таблица управления доступом Для каждой БД создается Таблица управления доступом ACL (Access Control

List). Она определяет, какие пользователи, группы и серверы имеют доступ к БД и какие задачи в этой базе они могут исполнять. Этот список создается при создании базы и далее ведется управляющим базы данных в диалоговом окне, получаемом из меню

ФАЙЛ|БАЗА ДАННЫХ| УПРАВЛЕНИЕ ДОСТУПОМ. Существует семь уровней доступа:

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

2. Разработчик. Может создавать, изменять и удалять документы и элементы дизайна, модифицировать репликационные формулы базы, создавать индекс полнотекстового поиска.

3. Редактор. Может читать, создавать и редактировать все документы в БД, в том числе и созданные другими пользователями, но не может изменить элементы дизайна, ACL и прочие атрибуты, присущие более высоким уровням доступа.

4. Автор. Может читать все документы и создавать новые, но редактировать может только документы, созданные им.

5. Читатель. Может читать документы, но не может добавлять новые или редактировать существующие.

6. Корреспондент. Может добавлять новые документы, но не может читать существующие, потому, что не видит их в видах базы.

7. Нет доступа. Пользователь не может открыть БД.

4 ПРОЕКТИРОВАНИЕ ЭЛЕМЕНТОВ СТРУКТУРЫ БАЗЫ ДАННЫХ 4.1 ПРОЕКТИРОВАНИЕ ФОРМ Каждая форма в базе данных Notes представляет собой бланк для ввода, чтения, редактирования и печати документов определенного типа. Форма сама может содержать множество различных элементов, таких как поля, статический текст, таблицы, графические изображения, вложения, OLE –объекты, кнопки и секции. Список всех форм базы данных находится в папке КОНСТРУКТОРА “Формы”. Чтобы создать новую или изменить существующую форму требуется уровень доступа не ниже разработчика. Элементы формы Основными элементами формы являются поля, в которые вводятся необходимые данные. Кроме полей формы содержат и другие элементы. Формы могут содержать: • ПОЛЯ – предназначены для ввода и отображения данных различного типа. Поля

могут находиться в любом месте формы. Они могут быть уникальными для данной формы или общими для нескольких форм базы данных. Можно зашифровывать данные в полях, добавить электронную подпись, использовать скрытые поля для вычисления данных. Полям можно назначать определенные текстовые атрибуты, чтобы сделать данные, отображаемые в них более наглядными.

• НАДПИСИ – неизменяемый текст, обычно это названия полей или некоторая справочная информация. Текст может быть расположен в любом месте формы.

Page 16: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

16

К нему можно применять любые операции форматирования, менять его шрифт, размер, цвет и т.д.

• ТАБЛИЦЫ – позволяют расположить поля в форме в виде таблицы – по строкам и столбцам. Или в виде альбома с закладками.

• ГРАФИЧЕСКИЕ ОБЪЕКТЫ – можно размещать фотографии, рисунки, картинки, графики.

• ВЛОЖЕНИЯ – позволяют вложить в форму любой файл. Пользователи могут в каждом документе, созданном по данной форме извлечь файл или запустить его на выполнение

• OLE- объекты. Форма может содержать связанные или внедренные объекты, созданные с помощью других приложений.

• СВЯЗИ – в форме можно создать связи с документами, представлениями и базами данных NOTES . Эти связи могут активизироваться при чтении документов и предоставлять дополнительную информацию.

• ДЕЙСТВИЯ и ГИПЕРОБЪЕКТЫ.Эти элементы формы позволяют выполнять определенные действия над документами и полями. В них могут быть заложены действия в виде простой операции Notes , @-формулы или программы, написанной на языке LotusScript. Гиперобъекты в виде всплывающих текстов предоставляют дополнительную информацию по использованию формы или документа.

• ПОДФОРМЫ – позволяют объединить постоянно используемые элементы формы в подформу, доступную при разработке других форм. Подформу можно добавить в форму при ее проектировании, можно добавить ту или иную подформу в документ в зависимости от результатов вычисления некоторых формул.

• МАКЕТЫ – представляют собой области в форме или подформе фиксированного размера, в которых могут находиться поля и некоторые другие элементы формы с возможностью их перемещения внутри этих областей. Можно при определенных условиях сделать область макета невидимой. Макет может содержать надписи, графику, кнопки, поля любого типа, кроме форматируемых.

• РАЗДЕЛЫ и РАЗДЕЛЫ С КОНТРОЛИРУЕМЫМ ДОСТУПОМ – используются в формах с большим количеством полей и статического текста, затрудняющих просмотр формы на экране. Разделы можно свертывать и развертывать, что позволяет сделать форму более компактной и удобной для просмотра. Можно создать раздел с ограниченным доступом. Только определенные пользователи будут иметь доступ к содержимому раздела.

4.2 СОЗДАНИЕ ФОРМЫ

Новую форму можно добавить в базу данных одним из следующих способов: • СОЗДАТЬ НОВУЮ ФОРМУ • КОПИРОВАТЬ СУЩЕСТВУЮЩУЮ ФОРМУ из какой – либо базы данных.

Для создания новой формы вызовите КОНСТРУКТОР, если вы еще не в нем. Выберите СОЗДАНИЕ|КОНСТРУКТОР|ФОРМА. Если вы уже в «Навигаторе КОНСТРУКТОРА» выберите папку «Формы» для вашей базы данных.

Откроется окно проектирования формы, содержащее четыре области: • Область формы, • Область действий (обычно за экраном справа), • Область конструктора, • Область объектов и списков.

Page 17: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

17

Размеры областей можно менять стандартным образом, подвести мышь к границе, указатель изменит свой вид на перекрестье со стрелкой, нажать кнопку мыши и, удерживая ее, переместить границу области. ОБЛАСТЬ ФОРМЫ

ОБЛАСТЬ ДЕЙСТВИЙ

ОБЛАСТЬ ОБЪЕКТОВ И СПИСКА

ОБЛАСТЬ КОНСТРУКТОРА

4.2.1 Свойства формы

Следует определить «АТРИБУТЫ ФОРМЫ» - ее имя, цвет фона, включается ли она в меню команды «СОЗДАНИЕ», определить, кто из пользователей может читать и создавать документы, используя эту форму. Нажмите правую кнопку мыши в области формы, на экране появится меню, выберите «СВОЙСТВА ФОРМЫ». Откроется диалоговое окно «ФОРМА» с семью листами вкладок. 1. Сведения о форме 2. Параметры 3. Запуск 4. Фон формы 5. Колонтитулы 6. Печать 7. Безопасность Вкладка «Сведения о форме»

Имя – Поле имя для ввода имени формы. Допустима любая комбинация букв, цифр, пробелов, знаков пунктуации. Если перед каким-то символом в имени формы ввести знак подчеркивания, то этот символ можно будет использовать в качестве горячей клавиши при выборе команд из меню «Создание». Допускается два уровня имен, разделяемых обратным слэшем. Используется при группировании форм по тематике. Например, в почте выбрав меню «Создание» вы увидите пункт «Специальное», за ним идет символ треугольника. Если выберете этот пункт, то увидите дополнительное меню из двух пунктов – «Сообщение со связью» и «телефонное сообщение». Это значит в имени формы указано – Специальное\сообщение со связью, и в имени другой формы Специальное\Телефонное сообщение. Символ вертикальной черты в имени формы отделяет синонимы. Синонимы используются только разработчиком базы данных. Длина полного имени формы, включая названия и синонимы, не может превышать 256 байтов в английской кодировке или 128 в русской.

Список ТИП формы: Возможны следующие типы:

• документ, - главный документ. • ответ - ответ на главный документ. (Прежде чем создавать документ,

являющийся ответом на главный документ, надо в представлении выделить этот главный документ и только после этого открыть форму для создания ответного документа).

Page 18: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

18

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

список из двух элементов. Можно выбрать вариант - меню «Создание» - в этом случае создаваемая форма будет включена в список форм меню команды Создание. При подготовке документа по этой форме вы можете выбрать ее из меню Создание – имя формы. Второй вариант – окно «Создание –Другое». Если форм больше 9, то наименее важные из них в диалоговое окно «другое». Эта форма будет доступна для пользователя после выполнения команды – «Создание» – «Другое» – имя формы.

Флажок Использовать в построителе запросов – разрешает использование формы в запросах полнотекстового поиска.

Список Версии - управление версиями документа. Возможны следующие варианты:

• Нет – новые версии не создаются, все изменения производятся и сохраняются в исходном документе;

• Новые становятся ответами – если документ, созданный по форме, изменен, то каждая новая версия сохраняется как ответный документ к исходному документу и можно проследить историю изменения документа. При этом исключается возникновение конфликтов при репликации или одновременном редактировании и сохранении документа несколькими пользователями.

• Старые становятся ответами – В этом случае новые документы становятся основными документами. А сам документ становится ответным документом. Возникновение конфликтов в этом случае не исключается, т.к. место основного документа только одно.

• Новые версии равноправны. Новая версия основного документа остается на одном уровне с основным документом, а новая версия ответного документа остается на одном уровне с ответным документом. При работе с формой несколькими пользователями возникновение конфликтов исключено.

Если выбран какой- либо вариант отслеживания версий, становится доступным список Создание Версий . Возможны два варианта: • Авто: Файл, Сохранить – новая версия документа создается автоматически при

сохранении документа. • Ручное: Файл, Создать версию. Новая версия создается по команде Файл –

Сохранить версию. Последняя секция содержит шесть флажков параметров.

1. Основная форма базы данных – данная форма является формой по умолчанию базы данных. В случаях, когда Notes не знает, какую форму использовать для доступа к документу, он использует основную форму.

2. Сохранять форму в документе – позволяет сохранять копию формы вместе с документом. Обычно в базе данных храниться одна форма, которая используется для отображения документов. Установка этого флага приводит к увеличению размера файла с базой данных, но при копировании документа из одной базы данных в другую Notes будет знать по какой форме подготовлен документ. Такое удобно, если документ может быть скопирован или отправлен почтой в БД, где нет соответствующей формы.

3. Отключить обмен через поля. Отменяет обмен значениями полей формы с полями других программных продуктов, основанных на технологи Notes/FX 2.0.

Page 19: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

19

Эта технология позволяет Notes и другим приложениям совместно использовать данные на основе OLE-технологии.

4. Автоматически обновлять поля – обеспечивает автоматическое обновление полей при переходе от одного поля к другому. При каждом переводе курсора в следующее поле во время редактирования документа происходит пересчет всех вычисляемых полей. Это может сильно замедлить ввод данных.

5. Сохранять анонимность автора – запрещается добавлять в документ поле $UpdateBy, содержащее имена автора и редакторов документа. Вместо него появляется поле $Anonymous, содержащее “1”.

6. Объединять конфликты реплицирования – попытка совместить результаты редактирования документа разными пользователями. Это удается сделать, если в документе разными пользователями отредактированы разные поля. Если разные пользователи отредактировали одно поле, один из документов сохраняется как конфликтный.

Вкладка “Параметры” Область Создание Флаг «Формулы наследуют значения из выделенного документа» – можно включить наследование содержимого полей при создании нового документа из другого родительского документа, который в момент выбора формы из меню был выделен в виде или открыт. Это не копирование, а только возможность использования в формулах полей нового документа в момент его создания значений полей родительского документа. Таким образом, кроме установки этой опции необходимы еще соответствующие формулы полей. Наследование удобно в формах, предназначенных для создания ответных документов, новых версий, редакций документов. Флаг «Поместить выбранный документ целиком в форматируемое поле» - если установлен этот флаг, необходимо еще выбрать из списка имя поля типа Rich Text, в которое будет помещаться родительский документ и способ представления этого документа: ссылка на родительский документ, полный текст родительского документа внутри свертываемой секции или просто полный текст родительского документа. Область Открытие Флаг «Автоматически включать режим правки» – по умолчанию документ открывается в режиме чтения. Установка этой опции позволит открыть документ в режиме редактирования, если у пользователя имеются соответствующие права доступа. Флаг «Область контекста» – экран делится на две панели. Вверху представлен собственно текущий документ, а внизу, в зависимости от выбранного варианта, либо документ, на который в открытом документе есть ссылка, либо родительский документ. Область «Закрытие» Флаг «Открывать окно отправки почты» - при закрытии окна редактирования или создания документа появляется диалоговое окно с вариантами: • Отправить и сохранить копию • Отправить и не сохранять копию • Сохранить, но пока не отправлять • Отменить изменения И флажками • Подписать

Page 20: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

20

• Шифровать Если выбраны первые два варианта, в документе должно присутствовать поле SendTo, содержащее адрес получателя. Вкладка «Фон формы» Можно выбрать цвет фона или картинку и установить для нее необходимые флажки. Вкладка «Колонтитулы» Устанавливаем наличие и содержание верхнего и нижнего колонтитулов при печати документа, созданного по этой форме. Вкладка «Безопасность» Используйте эту страницу окна свойств формы для управления правами пользователей на применение самой формы для создания документов и чтение документов, созданных с ее помощью. По умолчанию разрешено чтение документа для всех пользователей, с правами не ниже «читатель». Можно создать список лиц, которые будут иметь доступ на чтение. Уберите этот флажок, и нажмите на кнопку с изображением фигуры. Откроется список лиц, выберите нужные. Создание документов разрешается всем пользователям с правами доступа не ниже чем «автор». Аналогично можно составить свой список. Там же можно устанавливать ключи шифрования документа. 4.2.2 Заголовок окна формы Слева - находится список имеющихся в форме объектов и список предопределенных событий для выбранного объекта. Справа – окно редактирования формулы или скрипта для выбранных объекта и события. Для событий, помеченных • Ромбиком - можно написать формулу на языке @-функций. • Кружочком – программы на JavaScript • Листом бумаги – можно выбрать LotusScript или формулу Пример: Объект - форма Предопределенные события у этого объекта Ромбик Заголовок окна Ромбик Содержимое заголовка ………… Ромбик Конечная рамка • Заголовок JS • ……… • OnUnload (options)

(Declarations) …… В объекте ФОРМА для события ЗАГОЛОВОК ОКНА открывается окно редактирования формулы. Можно определить заголовок окна открываемого документа. Эта формула не является обязательной. Если она не задана, то окно документа получает заголовок БЕЗИМЕНИ. В качестве заголовка вы можете

Page 21: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

21

использовать любые поля документа, кроме поля Rich Text и можете использовать @-функции, кроме @Command и @PostedCommand (в 5-й версии более 200 @-функций ). (@Command – имеет более 350 @-команд) Типичный пример : @if(@IsNewDoc;”Новый документ”; Тема) где Тема – это поле в форме, содержащее тему документа. (У объекта ФОРМА – 35 событий)4.3 Создание полей Каждый объект типа ПОЛЕ в форме содержит информацию о том, какие данные и каким образом могут быть занесены в соответствующее поле (Item) документа при его создании, редактировании и сохранении, какие формулы или скрипты используются при работе с полем.

Для создания поля используйте меню СОЗДАТЬ|ПОЛЕ или кнопку «создать поле». Открывается диалоговое окно с 7 вкладками для настройки свойств поля: 1. Общие 2. Отображение 3. Дополнительно 4. Шрифт 5. Выравнивание абзаца 6. Условия скрытия 7. Дополнительный код HTML Если нужно изменить свойства имеющегося поля, то установите курсор в это поле и нажмите правую кнопку мыши. Появится меню, в котором выберите «Свойства поля». Откроется вышеописанное диалоговое окно. Меняйте. Если предполагается одно и то же определение поля использовать в нескольких формах, то нужно создать общее поле, а затем его вставлять в формы. Список всех общих полей в БД можно найти в виде КОНСТРУКТОРА Ресурсы – Общие поля. Там же можно создать общее поле. Различие между полем и общим полем заключается только в способе хранения определения поля (внутри формы или отдельно) и никак не влияет на данные, которые содержаться в этом поле в различных документах.

Вкладка «общие» Имя поля – должно начинаться с буквы, может включать буквы, цифры пробелы и символы $ и _, общей длиной до 32 байт. Использование русских букв не рекомендуется. В одной форме не может быть двух полей с одинаковыми именами. Не стоит в двух формах одного приложения одинаково называть поля с различными типами данных, или различного назначения и содержания. Тип поля- определяет, как содержимое данного поля будет интерпретироваться, храниться и использоваться. Тип поля выбирается из выпадающего списка, содержащего 14 вариантов. С выбранным вариантом связана Вкладка «Отображение» , которая зависит от выбранного типа поля и обеспечивает диалог для установления параметров, специфичных для полей такого формата. Рассмотрим основные типы • Текст - текст до 65 кб, состоит из букв, цифр, знаков препинания и пробелов. • Дата\ время – формат ввода и представления времени и даты определяется

установками, сделанными на вкладке «отображение».

Page 22: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

22

• Число – числовая информация, которая может быть использована в математических расчетах. Выбирается формат числа на вкладке «отображение»: • – обычный, • в %, • научный, использующий экспоненциальную нотацию (например, 12345.6

будет представлено как 1.23456Е+4), • денежный (добавляет к числу знак денежной единицы)

и к каждому формату более тонкие настройки. • Список с окном – при редактировании значения выбираются из выпадающего

списка. Этот список задается на вкладке «Отображение». В секции «значение» в верхней строке находится поле со списком с пятью возможными вариантами. К выбранному варианту появляются необходимые поля в этой же секции. 1. Значения (введите значения по одному в строку) – это начальная

установка. Внизу поле для ввода списка. Например: да |1

Нет|2 Иногда|3

Можно использовать синонимы, при этом в открытом документы видны слова «да», «нет», «иногда», а в документе сохраняется синоним, например 1, если выбрано «да». И везде, где это поле проверяется, должны использовать синоним. Это может облегчить модификацию приложения, но для показа этого поля в виде потребуется написать не просто имя, а формулу, например, @if(FieldName=“1”;”да”; @if(FieldName = “2”; ”нет”; ”иногда”)).

2. Определять по формуле – используйте формулу для создания списка выбора. Появляется окно для ввода формул. Чаще всего в такой формуле используются функции @DbColumn или @DbLookup для получения списка из какого – либо вида этой или другой БД. Например: (БД – типа “Notes” или “”.) @DbColumn(“”;”All”) – возвращает 1-ю колонку из вида “All” текущей базы. @DbColumn(“”;””:”stud.nsf”;”общие сведения”;2) – возвращает список из 2 колонки вида “общие сведения” локальной базы stud.nsf из базы типа Notes. @DbColumn(“”:”noCache”;” ”;”отправленные”;3) – БД типа Notes, результат выбора не «кэшировать», данные извлечь из текущей базы, из 3 колонки вида «отправленные». @DbColumn(“”;"MX/Inf/TSU/Tomsk/RU":"Decanat\\Stud.nsf";”ФИО”;1)

3. Выбирать в окне адресации – используется диалоговое окно для выбора из доступных адресных книг. Дополнительных параметров не требуется.

4. Из таблицы управления доступом – список составляется из всех имен групп и ролей, представленных в таблице управления доступом.

5. Выбирать в окне просмотра данных – выбор из диалогового окна, в котором открыт определенный вид. На листе «Отображение» появляются выпадающие списки для выбора БД из всех баз в рабочем пространстве, и для выбора вида из всех в выбранной БД и поле для ввода номера колонки вида.

• Набор флажков – можно задать список в виде набора флажков. Например: |x| - отправить | | - подписать |Х| - шифровать

• Набор переключателей. О – не отправлять О – отправить О – только сохранить

• Поле со списком (похож на список с окном, но только формула и перечень). • Форматируемый тип (RTF) – Rich Text , может содержать стилизованный текст,

графику, таблицы, гипертекстовые ссылки, кнопки, свертываемые секции, OLE-

Page 23: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

23

объекты. Однако это поле не может быть показано в колонке вида и не может быть использовано в @функции как аргумент.

• Авторы – ACL – определяет уровень доступа к базе в целом. Это поле в документе дает возможность регулировать права доступа с точностью до конкретного документа. Может содержать список имен, групп и ролей, определяющих, кто может редактировать данный документ.

• Имена - тип поля, обеспечивающий при сохранении документа преобразование иерархических имен в «канонический» формат, а при показе представляющий имена в сокращенном виде. На листе «отображение» можно выбрать интерфейс для его ввода. Поддерживается четыре варианта:

• Обычное редактируемое поле • Выбор имен из адресных книг • Выбор имен, групп и ролей из ACL • Выбор в окне вида

• Читатели - содержит список имен, групп и ролей, определяющий кто может читать данный документ. Ограничивает доступ к конкретным документам.

• Пароль – поле • Формула

Кроме определения типа есть еще один выпадающий список, задающий способ занесения данных в это поле: • Изменяемое – данные вводятся пользователем. • Вычисляемое – вычисляется значение поля. В списке событий для данного

поля выберите «Значение» и напишите @-формулу в области конструктора. Значение вычисляется при создании документа, при каждом пересчете полей или сохранении документа.

• Вычисляемое при открытии – такое поле используется только для показа вычисленного значения. Данные этого поля в БД не сохраняются, поля такого типа не могут быть показаны в виде.

• Вычисляемое при создании – формула вычисляется только один раз при создании документа.

Флажок Разрешить несколько значений при вводе - если установлен, то нужно выбрать разделитель значений как при вводе, так и при выводе. (лист Отображение и лист Дополнительно) Флажки • Разрешить значение не из списка – в поле можно ввести значение, которого

нет в списке. Введенное значение в список не добавляется. • Показывать кнопку вызова списка – если не установлен, то список можно

вызвать, нажав Enter. • Обновлять поля при изменении значения – если установлен, то при выборе

нового значения пересчет всех формул, в которые входит это поле, происходит сразу, иначе только после того, как поле теряет фокус.

• Обновлять список при обновлении документа

Вкладка Дополнительно Справка по полю может содержать текст до 70 символов. Этот текст

появляется в режиме редактирования, если установлена опция «Вид| Отобразить|Справки по полям». @ - команда для установления этой опции программно выглядит так: @Command([ViewShowFieldHelp]).

Page 24: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

24

Вкладка «Шрифт» Можно выбрать шрифт, размер, цвет и начертание (жирный, курсив, подчерк,

верхний индекс и т. д.). Вкладка «Выравнивание абзаца» Вкладка «Условия скрытия» Содержит опции, позволяющие в определенных случаях скрыть поле от

пользователя. Скрывать абзац, если выполняется: • Просмотр для чтения • Открытие для чтения • Печать • Просмотр для изменения • Открытие для изменения • Копирование в буфер обмена

Скрывать абзац, если истинно значение @-формулы, которая записана в окне формул (формула возвращает истину или ложь). Если окно пустое, а некоторые флажки установлены, то поле скрывается от всех пользователей. Формула видимости выполняется при открытии документа и любом обновлении полей. Существуют способы пересчета только формул видимости, не затрагивая никаких других формул и скриптов. Команда @Command([RefreshHideFormulas]) Метод RefreshHideFormulas класса NotesUIDocument.

Вкладка «Дополнительный код HTML »

4.4 Дополнительные компоненты форм 4.4.1 Кнопки Поместите курсор в нужное место и выберите меню «Создание| Гиперобъект|Кнопка». Откроется окно свойств кнопки, в котором определяется ее внешний вид. В области конструктора можете выбрать в окне Запуск : • Простые действия – в нижней части окна появляется кнопочка «добавить

действие». При нажатии этой кнопки возникает диалоговое окно, в котором можно выбрать действия из выпадающего списка действий. К каждому действию свой диалог, в следующей части окна.

• Формула – программа, написанная на языке @-формул Notes. На листе вкладки «Списки» - выпадающий список : • Поля базы данных • @-команды в формуле • @-функции в формуле

• LotusScript – набор процедур на языке LotusScript для предопределенных событий.

• JavaScript Для кнопки можно задать условия скрытия, совершенно аналогично подобной

вкладке в форме.

Page 25: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

25

4.4.2 Панель действий Панель действий – это область в верхней части вида или формы (документа). Там можно размещать кнопки действий. На этой кнопке может быть написан текст, или текст со значком или только значок. Все это можно установить в диалоговом окне, которое вызывается из меню «Создание| Действие….. Для пиктограммы действия» – можете выбрать одну из 156 пиктограмм. Для этого необходимо в секции Графика выбрать вариант Notes из предложенных трех (Нет, Notes, другая). Если выбрать вариант «Другая», то можно вставить имеющуюся у вас картинку. Панель действий открывается в правой верхней части экрана при выборе «Вид| область действий». В нижней части экрана находится область конструктора. В этой области можно задать простое действие, @-формулу или набор процедур на LotusScript, аналогично как это делали для «Кнопки». В окне «область действий» всегда присутствуют шесть предопределенных действий, которые нельзя удалить, но можно не показывать пользователю. По умолчанию эти действия не помещены на панель действий. Если хотите поместить. то дважды щелкните левой кнопкой мыши на соответствующее действие и в открывшемся диалоговом окне установите флажок «поместить на панель действий». Для действия можно задать условия скрытия – выбрав соответствующий лист свойств. По своим возможностям действия ни чем не отличаются от кнопок. Но панель действий всегда расположена в верхней части окна, и никогда не скроллируется вместе с текстом документа. Таким образом, действия целесообразно применять в случаях, когда необходимые действие должно запускаться независимо от того, какой фрагмент документа находится на экране. Используйте кнопки, если нужно определить действие, связанные с конкретным полем или фрагментом формы. 4.4.3 Подформы

Если в нескольких формах БД употребляется некоторый повторяющийся фрагмент, включающий поля, секции, текст, изображения, кнопки и т.п., его можно выделить в отдельную подформу, а в указанных формах сделать на нее ссылки. Подформа – это та же форма, но используемая не самостоятельно, а загружаемая всегда из какой-то формы при открытии или создании документа. Такие ссылки могут быть даже вычисляемыми, т.е. имя требуемой подформы может определяться при загрузке в результате выполнения @-формулы, которая может учесть значения поля в открываемом документе, имя пользователя и т.п. В итоге можно представить себе форму, состоящую исключительно из таких вычисляемых ссылок, и собираемую при открытии документа из набора подформ как из конструктора. Создать подформу можно из меню «СОЗДАНИЕ|КОНСТРУКТОР| ПОДФОРМА» Список имеющихся подформ можно увидеть, если выбрать «ВИД| КОНСТРУКТОР вид РЕСУРСЫ | ПОДФОРМЫ». Выделенная подформа будет открыта в окне проектирования, совершенно аналогичном окну проектирования формы. В подформе вы можете делать практически все то же, что и в форме, но в нее нельзя вставлять другие подформы. При создании полей имена всех полей должны быть уникальными в пределах формы вместе со всеми подформами, которые в ней используются одновременно. Основные свойства подформы содержат только одну закладку.

Имя – может иметь синонимы, отделяемые «|». При вставке в форму. В ней запоминается последний синоним. Рекомендуется употреблять английский

Page 26: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

26

алфавит, как в самом имени, так и в синонимах. Все равно они пользователям не видны. Если вы установили флажок «Включить в окно вставки подформы», то меню «СОЗДАНИЕ|ВКЛЮЧИТЬ ПОДФОРМУ» открывает окно, где перечислены все подформы, у которых установлен этот флажок. Вы можете выбрать из списка нужную подформу. А можете установить флажок «имя подформы вычисляется по формуле». В этом случае нужно задать формулу, которая при открытии документа определит имя вставляемой подформы. Если возвращается пустая строка или строка, не соответствующая ни одной из подформ, то никакая подформа не вставляется, а в строке состояния печатается сообщение «подформа не загружена». «Включить в окно вставки формы» – если установлен этот флажок, то при создании новой формы сразу открывается диалоговое окно «добавление подформы», где можно выбрать из списка подформы у которых этот флажок был установлен. 4.4.4 Макеты

Макет предназначен для точного выравнивания полей форм. На него можно помещать график, таблицу. Для создания макета используется меню «СОЗДАНИЕ|ОБЛАСТЬ МАКЕТА|СОЗДАТЬ ОБЛАСТЬ». В форме внутри создается регион, обведен тонкой линией. Для установления свойства макета – щелкнуть правой кнопкой. Вставка в макет производится из меню «Создание» – область макета. Графика вставляется в макет только из CleapBoard. Размещение внутри макета мышкой по пикселям. 4.4.5 Разделы Они предназначены для объединения полей в одну группу. Для создания раздела выделяем нужные поля в меню «Создать|Раздел»

- обычный – ввести название; - с ограниченным доступом – наложить ограничения на доступ. Именно секции с управляемым доступом обеспечивают возможность

встроить в форму механизм электронной подписи. Но для действительной защиты данных в конкретных полях документа необходимо их шифровать. Пример:

Некоторая секция изначально встроена в форму документа, но она скрыта от пользователя, до тех пор, пока поле «Документ» не равно «паспорт» (военный билет, свидетельство о рождении, студбилет, зачетка). Если из списка выбрали некоторое значение, затем команда @Command([RefreshHideFormulas]) пересчитывает форму видимости объектов документа и показывает соответствующий раздел, а команда @Command([SectionExpandAll]) – его разворачивает. Сделать для каждого документа свою секцию и показывать ее по мере выбора документа.

Page 27: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

27

5 Виды 5.1 Проектирование видов

Вид позволяет организовывать некоторый набор документов в список. Каждый документ представлен в одной или нескольких строчках, каждая колонка содержит определенную информацию о документе. Должен быть хотя бы один вид. Обычно создаются несколько видов, по-разному представляющих содержимое БД. • Подмножество документов БД, присутствующих в виде, определяется

критерием отбора вида. В самом общем случае это все документы. • Представление каждого документа зависит от формул и параметров колонок

вида. • Порядок следования документов зависит от наличия сортированных колонок. • Документы можно группировать. Вложенность категорий до 32 уровней. • Можно поддерживать или отменить иерархию ответных документов. Чтобы создать новый вид нужно выбрать меню «Создание|Конструктор| Представление». Появится диалоговое окно «создание представления». Введите: • имя представления (например, «все документы»), • тип представления,

«общее» - если доступ не ограничен специально, может открыть любой пользователь; «личное» – вид доступен только своему создателю; «Общее, личное при первом входе» - вид создается как общий, но после первого обращения к нему каждого пользователя становится персональным;

• размещение – указать папку для размещения вида, • условия отбора – можно задать критерий отбора документов.

Кнопка «добавить условие» - открывает окно построителя запросов, в котором можно легко задать это условие. Если установите флажок «ОТБОР ПО ФОРМУЛЕ», то появится кнопка «ОКНО ФОРМУЛ», разворачивается окно редактирования, в котором можно определить критерий отбора с помощью @-формул.

Критерий отбора, установленный при создании вида, в любой момент может быть изменен в Конструкторе вида. Задайте все параметры и нажмите ОК. Дважды щелкните на имени представления в окне вида конструктора, и откроется окно для проектирования вида. Появится окно такое же, как при проектировании форм. Отличается только область проектирования представления. Вместо элементов формы, в соответствующей области задаются колонки. Можно создать новую колонку, можно настроить имеющуюся. Справа «область действий». Внизу – «Объекты и списки», и область для задания критерия отбора документов, формулы колонок, формулы или скрипты действий. Процесс проектирования вида содержит несколько этапов, порядок выполнения произволен: • определение свойств вида • создание и определение колонок • разработка действий для этого вида (не обязательно).

5.2 Свойства вида Командой меню Правка – свойства открывается окно свойств вида с пятью вкладками –

Page 28: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

28

• сведения о представлении, • параметры, • Стиль, • дополнительно • безопасность. Первая вкладка, практически, определяет один важный атрибут – имя представления. Основное имя и его псевдоним вводятся в двух разных полях. В основном имени по 64 байта на один уровень (всего не более двух уровней, разделенных «\») и 128 байтов на все синонимы. Для того чтобы вид существовал незаметно для пользователя, заключите его имя в круглые скобки - (имя). Такие виды часто разрабатываются для выполнения по ним функций @DbColumn, @DbLookup. Вкладка Параметры • использовать при первом открытии БД – вид по умолчанию. • использовать для новых папок/представлений – используется как шаблон

при создании новых видов и попок • свертывать все при первом открытии БД – при открытии вида все категории

показываются свернутыми • отображать ответный документ в виде иерархии – каждый документ – ответ

накрепко привязан в виде к своему родителю, т.е. если «родитель» не проходит критерий отбора, то и все его ответные документы в виде не показываются. Ответные документы не участвуют в общем порядке сортировки, а сортируются в пределах группы одного уровня, принадлежащей одному документу- родителю. Если опция не установлена, то все документы в виде показываются независимо.

• отображать в меню Вид – по умолчанию эта опция не установлена. В меню ВИД присутствует только команда ПЕРЕЙТИ, открывающая диалоговое окно для выбора нужного вида. Если установить, то имя этого вида появится в меню.

Вкладка Стиль Можно установить цвет фона, цвет итоговых цифр, цвет выделения непрочитанных документов, цвет четных строк, для чередования с основным фоном, заказать поле для выделения документов, расширить последний столбец до границы окна, показывать или не показывать заголовки столбцов, количество строк в заголовке, указать количество строк для отображения информации документа. Если для отображения информации документа используется более одной строки и установлен флажок минимальное количество строк, под документ будет отводится не больше строк, чем нужно. В противном случае каждый документ будет занимать столько строк, сколько указано. Вкладка Дополнительно – используется, как правило, опытными разработчиками, поскольку параметры, которые установлены в ней по умолчанию, меняются достаточно редко. Вкладка Безопасность По умолчанию действует опция Все читатели и выше. Если вам нужно ограничить использование проектируемого вида, отмените эту опцию и выберите конкретные имена в списке, содержащем весь ACL базы.

Page 29: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

29

5.3 Критерий отбора документов

Критерий отбора задается в области проектирования вида. Способ определения критерия выбирается из двух вариантов. Простые условия- в этом случае по кнопке «добавить условие» открывается окно того же самого построителя запросов, который присутствовал при установлении свойств вида. Поддерживаются условия: • по авторам – вводится или выбирается из адресной книги имя пользователя,

который является или не является автором документа (автор определяется при помощи функции @Autor).

• по дате – проверяется дата создания или модификации документа, сравнение производится с заданной датой или диапазоном дат (около 10 различных вариантов)

• по значению поля –в выпадающем списке выбирается имя поля, в зависимости от его типа задается условие и значение критерия. Например, для текстового поля два варианта: содержится или нет заданная строка. Проверка производится при помощи функции @Contains(имяполя, значение).

• по форме – выбирается имя формы из тех, которые могут использоваться для создания запросов. Открывается окно с выбранной формой в режиме редактирования. Все значения, которые будут введены в поля формы, в критерии будут соединены оператором AND.

• используется форма – проверяется, какая форма была использована для создания документа (по полю Form). В виде будут представлены только документы подготовленные по отмеченным формам.

Можно последовательно набирать несколько условий. Они будут соединены оператором AND. Когда критерий набран, можно переключиться с «простые условия» на «формула». Увидите ваш критерий в виде @-формулы. Формула Формула отбора начинается с ключевого слова SELECT, после которого записывается критерий. Критерии могут комбинироваться с помощью логических операторов “|»(OR),”&”(And),”!”(Not). Если формулы нет, то используется формула по умолчанию, которая отбирает все документы – Select @All 5.4 Определение колонок вида Создание новой колонки – нажимаете на кнопку вставить столбец или используйте меню Создание – добавить столбец или Создание –вставить столбец. 5.4.1 Вкладка «Сведения о столбце» Основные свойства столбца • заголовок – использование заголовка необязательно. Если текст шире колонки,

он будет усечен при показе в виде, или перенесен на новую строку, если в свойствах вида установлено число переносов заголовка больше единицы.

• Ширина – для установления ширины колонки удобнее использовать мышь. • Изменяемый размер – при каждом открытии вида столбец будет иметь ширину,

установленную в дизайне, но пользователь может регулировать ее, передвигая мышью правую границу.

• Скрыть столбец – невидим для пользователя, но может быть необходим для целей сортировки, получения данных из этого вида с помощью @DbColumn, @DbLookup или из LotusScript программ.

Page 30: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

30

• Снабжать развертываемые строки треугольниками – эта опция делает удобной работу в видах с категориями и с иерархией ответных документов. Щелчок по треугольнику вызывает свертывание – развертывание категории или следующего уровня иерархии ответных документов.

• Разделитель значений – если колонка отображает для одного документа множество значений, то значение НЕТ, которое установлено по умолчанию, следует заменить одним из четырех возможных разделителей: пробел, запятая, точка с запятой, разрыв строки.

• Отображать только ответ – устанавливается только в одной колонке, если вид должен представлять иерархию ответных документов.

• Отображать значения значками – показ в колонке одной из предопределенных пиктограмм. Формула колонки должна возвращать целое число, которое и будет определять, какая из пиктограмм будет показана для каждого документа. Пример – @if(@Attachments;5;0) возвращает 5 для документов, в которых есть присоединенные файлы, и такие документы в этой колонке будут представлены пиктограммой «скрепка». Другой пример, @TextToNumber(FieldName) – преобразует текст в число, если содержимое поля нельзя преобразовать в число, возвращается @Error. Диапазон чисел и соответствующих пиктограмм для пятой версии от 1 до176.

5.4.2 Вкладка «Сортировка» Сортировка - Определяет порядок следования документов в виде при его открытии. Можно установить сортировку по возрастанию, убыванию или отказаться от сортировки, что установлено по умолчанию. Тип – определяет способ сортировки документа: • Обычная – сортировка колонки только упорядочивает документы по

содержанию. • По группам – документы объединяются по категориям, т.е. документы, для

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

• С учетом регистра – прописные и строчные буквы различаются при сортировке. • Щелчок заголовка – если установлена эта опция, заголовок колонки становится

активной областью и при щелчке мышью вызывает выполнение одной из следующих операций: • Сортировка по возрастанию • Сортировка по убыванию • Сортировка в обратном порядке • Смена представлений – переключение в другой вид. Появляется окошко, где

можно выбрать нужный вид. Пользователь различает все эти варианты по значку около правой границы заголовка. • Итоговое значение – представление в числовой колонке обобщающих

результатов по всем главным документам в виде. • Не вычислять • Сумма – показывается напротив каждой категории и под последним

документом

Page 31: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

31

• Среднее для документа – сумма делится на количество документов • Среднее для подгруппы – внутри каждой категории документы суммируются,

и результат делится на количество документов в подгруппе • Процент от родительской категории - для каждой категории показывается ее

доля в общей сумме в процентах (%.) • Процент от всех документов.

При желании значения для каждого документов можно не показывать. Для этого нужно установить флажок «Скрыть значения в строках». Все остальные вкладки рассмотрите сами. 5.4.3 Формула колонки Когда выделен заголовок столбца, в области конструктора можно выбрать один из трех способов для определения значения в столбце: • Простая функция • Поле • Формула Простая функция – выбор из 13 предопределенных простых функций. Поле – если колонка просто отображает значение какого–то поля, выберите имя этого поля из списка всех полей. Формула – большинство @-функций может быть использовано в формулах колонки. Например, поле Ф – содержит фамилию, И - имя, О - отчество. Чтобы в колонке выводилась фамилия и инициалы, можно использовать формулу: Ф + “ “ + @Left(И;1) +”.”+@Left(О;1)+”.” Пример 2: Вы хотите сгруппировать документы в представлении по названиям месяцев рождения. Поле ДР – содержит дату рождения. Введем переменную М, которая равна номеру месяца, если он известен, или 13. M:=@If(@IsTime(ДР);@Month(ДР);13); @Select(M;”январь”;”февраль”; . . . .;”неизвестно”) Но порядок следования будет по алфавиту. Чтобы это исправить, нужно вставить перед этой колонкой еще одну, но не группирующую, а просто сортированную в возрастающем порядке, с формулой: @If(@IsTime(ДР);@Month(ДР);13); Пример 3: Вывести курс, зная номер группы m:=@if(@Month(@Now )>7;1;0); g:=@Modulo(@Year(@Now);10) +m; gr:=@Integer(@Modulo(@TextToNumber(Группа);100)/10); @Text(@If(Группа="";"0";@if(g>gr;g-gr;g-gr+10) )) 5.5 Панель действий вида

Панель действий - область в верхней части вида или документа. Набор действий полностью определяется разработчиком. Можно для каждой кнопки установить условие ее видимости. В окне проектирования вида список имеющихся действий находится в области действий, справа, вверху. В списке присутствуют шесть предопределенных действий, которые нельзя удалить, но можно не показывать. Для создания нового действия выполните команду СОЗДАНИЕ|ДЕЙСТВИЕ … . Откроется окно свойств нового действия под названием «Без имени».

Page 32: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

32

5.5.1 Свойства действия

Окна свойств действий вида не отличаются от соответствующих закладок для формы. Закладка «Условие скрытия действия» позволяет это условие задать. Не забудьте только установить флажок «Скрывать действия», если истинно значение формулы. 5.5.2 Программирование действий

Вы можете задать простое действие или несколько действий, выполняемых по очереди, @-формулу или набор процедур на языке LotusScript или JavaScript, определяющих, что должно происходить по нажатию кнопки.

Если вы хотите определить действие с помощью языка @-формул, выберите Формула из выпадающего списка. Закладка Списки поможет вам вставлять в текст имена полей, имена @-формул и @-команд. Обычные @-функции и @-команды могут работать только с выделенным документом. Примеры: • Открыть документ на редактирование - @Command([EditDocument];”1”) , если “0”,

то документ откроется на чтение. • Пометить документ на удаление - @Command([EditClear]) Подавляющее большинство @-команд вообще не имеет отношения к выделенному документу, например: • Создать новый документ по заданной форме – @Command([Compose];””;”kart”) ,

где “kart” это имя формы, второй параметр означает сервер и БД, в данном случае текущая БД.

С помощью некоторых @-команд могут производиться операции над группой выбранных документов. Обрабатывается вся группа сразу, а не каждый документ по очереди, например: • @Command([FilePrint]) – печать выбранных документов. • @Command([Folder]) – переместить документы в заданную параметром папку.

Если для действия в панели дизайна выбран LotusScript, то должны быть определены процедуры обработки предопределенных событий. Основное событие для действия, происходящее при каждом нажатии кнопки, это Click. LotusScript обеспечивает множество операций, невозможных для @-формул. Использование @-формул бывает проще и эффективнее в некоторых случаях, а в определенных местах @-формулы остались единственным вариантом, например, для определения видимости объектов.

6 @-формулы в Lotus Notes @-формулы состоят из одного или более предложений, которые выполняются по порядку. Широко используются в следующих целях: • отбор документов для включения в вид. • Отбор документов при селективных репликациях • Вычисления значений для показа в документах, видах и папках. • Определения видимости полей формы, действий в форме или виде. • Вычисление, преобразование и проверка значений полей документа. • Определение вычисляемых подформ в форме.

Page 33: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

33

• Выполнение последовательности действий при запуске агента. 6.1 Переменные Для задания значения поля FIELD Status :=Status; @If(Priority="Low"|Priority="Medium";@SetField("Status";"Closed"); @SetField("Status";"Open")) Оператор с ключевым словом Field присваивает значение полю, если оно уже существует в документе, в противном случае создает новое поле с таким именем. Временные переменные Доступны только в пределах формулы, в которой они определены, от определения до конца формулы и в течение одного выполнения этой формулы. Создание и инициализация: ИмяПеременной := Значение; Тип соответствует типу Значения и может быть текстом, датой, числом или логическим. Функция @Set(ИмяПеременной;Значение) – позволяет изменить значение переменной в процессе выполнения формулы. Например: Full Name:=""; @If(FirstName="";@Set("FullName";Title+" "+LastName);@Set("FullName"; FirstName+" " + LastName)) 6.2 Константы Текстовые заключаются в кавычки –“ \\text- в \” \\ ” это (\text – в “\) Числовые :123, -123, 1.23, 1.23Е-1 Дата-время заключены в квадратные скобки: [5:30] [30.10.2000] [10.10.00 5:30] 6.3 Операторы := (присваивание), : (объединение списков) – можно объединить в список несколько значений, например, «Иванов»: «Петров»: «Сидоров» Каждый из операндов сам может быть списком. Арифметические - +,-- , *, / Сравнение - =,!=,<,>,<=, >=, Логические - ! (не) &(и) |(или) Операции со списками возможны двух типов: • Попарно – первый с первым, второй со вторым и т.д. Если один из списков

короче, то вместо недостающих элементов используется последний. • Все со всеми – первый элемент первого списка со всеми элементами второго,

затем второй элемент первого списка со всеми второго и т. д. Обозначение: перед обычным знаком операции вставляется *.

При операциях сравнения списков в обоих случаях для получения Истины достаточно положительного результата в одной паре. Например, сравнение двух списков “а”:”б” =”а”:”с” –истина, т.к. “а”=”а” “а”:”б” !=”а”:”с” –истина, т.к. “б”!=”с”

Page 34: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

34

6.4 Функции @-функции – это способ обращения к встроенному в Notes набору процедур. Некоторым функциям требуются аргументы – ключевые слова. Они заключаются в квадратные скобки. (@Prompt([ok];Title;Subject)) @-команды – можно выполнить все стандартные команды меню и кроме того ряд специализированных команд. Первый аргумент – ключевое слово, определяющее имя команды. 6.5 Порядок выполнения формулы

Действия в формулах выполняются слева направо, сверху вниз. Прервать процесс выполнения можно используя функцию @Return(value). А функций, позволяющих организовывать циклы, нет. Для проверки условия можно использовать функцию @if. Чтобы выполнить несколько операторов при заданном условии, нужно использовать функцию @do: @if(условие;@Do(оператор1; ….операторN); операторFalse); Большинство типов @-формул в результате выполнения должны возвращать значения. Последним оператором в такой формуле должен быть оператор, возвращающий значение. 6.6 Формулы полей редактируемые поля. Описание редактируемого поля содержит три формулы: • Значение по умолчанию – формула, выполняется один раз, при создании

документа. Потом можно это значение изменить. • Преобразование данных – формула, выполняется при сохранении документа

или пересчете. Например, в поле sendTo должен содержаться список лиц, которым отправляется документ автоматически, при сохранении. К введенному списку всегда добавляется имя ответственного из поля Name, затем из всего списка выбрасываются повторения и пустые элементы.

@Trim(@Unique(SendTo:Name)); • Проверка введенных данных – формула проверки соответствия сохраняемого

значения заданным условиям. Выполняется при сохранении документа или пересчете. Например, если поле Фамилия в документе не заполнено, то отказ в сохранении и вывод сообщения.

@if(Фамилия=””;@Failure(“введите фамилию”);@Success); Failure - показывает сообщение в окне. Форматируемые поля Содержат только формулу по умолчанию.

7 @-функции Lotus Notes 7.1 @If, @Do, @Select,@Return • @if(у1; д1; у2; д2;…у99; д99; действие_иначе)

Если условие у1 истинно, то выполняется действие д1, иначе выполняется переход к проверке следующего условие и т.д. Как только находится истинное условие,

Page 35: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

35

выполняется связанное с ним действие и пропускается оставшаяся часть выражения. Если все условия ложны, выполняется «действие_иначе». Пример: @If(@IsNewDoc; NewNoteTitle; @ViewTitle = "Авторы"; ByAuthorTitle; StandardTitle) – если новый документ, то возвращается значение из поля NewNoteTitle, иначе, если текущий вид «Авторы», то возвращается значение поля ByAuthorTitle. Если документ не новый и текущий вид не “Авторы”, то возвращается значение поля StandardTitle. • @do(выражение1;выражение2; …выражениеN) Вычисляет выражения слева направо и возвращает значение последнего выражения. Пример: @If( @Prompt([YESNO]; "Вопрос";"Редактировать этот документ?"); @If(@Prompt([OKCANCELEDIT]; "Редактировать";"Если имя указано верно, нажмите ОК."; @UserName) != "ERR_CANCEL"; @Command([EditDocument]); @Return("")); @Do(@Prompt([OK]; "Отказ";"Нажмите OK для перехода к следующему документу."); @Command([NavigateNext]) )) Открывается диалоговое окно «Вопрос» с двумя кнопками «Да» и «Нет». Если выбрать «Да», то выполнится второй @if, иначе - @do. По второму @if открывается диалоговое окно с двумя кнопками «ОК» и «Отказ» и с полем для ввода, содержащим имя пользователя в каноническом формате, полученном по @UserName. Если выбрать «ОК», то документ будет открыт в режиме редактирования. Если выбрать «отказ», то выполнение формулы будет прекращено. Если выбрать «Нет» в первом диалоговом окне, то откроется диалоговое окно с сообщением и одной кнопкой «Да». После нажатия на эту кнопку произойдет переход к следующему документу в виде. • @Select(число;значение1;…..значениеN) Возвращает значение в позиции «число» или последнее. Примеры:

@Select(2;1;2;3) – возвращает 2 @Select(5;1;2;3) - 3 @Select(1;”янв”:”фев”:”мар”;”апр”:”май”) – возвращает список ”янв”:”фев”:”мар” • @Return(значение) Прекращает выполнение формулы и возвращает указанное значение. @Return(@Error); - другая функция @Return(“Stop”); - строку @Return(False); - логическое значение 7.2 функции для работы со значениями типа дата-время @Now – возвращает текущую дату и время как значение типа «дата-время», например,[21/10/00 17:30:45] @Date - возвращает только компоненту даты @Date(год;месяц;день) @Date(год;месяц;день;час;минута;сек) @Date([дата-время]) Например: @Date(2000;10;12) – возвращает 12/10/00

Page 36: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

36

@Date(2000;10;12;13;12;11) – возвращает 12/10/00 @Date([12/10/200013:12:11])- возвращает 12/10/00 @Time - содержит только компоненту времени @Time(час;минута;секунда) @Time (год;месяц;день;час;минута;сек) @Time ([дата-время]) Например: @Time (2000;10;12;13;12;11) – возвращает 13:12:11 @Time ([12/10/200013:12:1]) – возвращает 13:12:11 Следующие функции извлекают из величины «дата – время», например, [11/10/2000 09:22:15] : • день месяца - @Day (дата-время). @Day(@Now) вернет 11 • номер месяца - @Month(дата-время). @Month(@Now) вернет 10 • год - @Year(дата-время). @Year([11/10/2000]) вернет 2000 • час - @Hour(дата-время). @Hour(Date) вернет 9 • минута - @Minute(дата-время). @Minute(Date) вернет 22 • секунда - @Second(дата-время). @Second(@Now) вернет 15 @IsTime(значение) - возвращает 1(True), если параметр содержит величину «дата-время». @TextToTime(строка) - преобразует текстовую строку в величину «дата-время» . @Adjust (дата-время; год; месяц; день; час; минута; секунда) – изменяет величину «дата - время» на заданный интервал времени например, можно вычислить дату исполнения документа, если известна дата создания и срок исполнения, например, один месяц: @Adjust(@Created;0;1;0;0;0;0)

Диалог с пользователем @Prompt( [стиль ] : [ NoSort ] ; “заголовок” ;” текст” ; “по умолчанию” ; “выбор” ; “filetype” ) Параметр [стиль] – определяет внешний вид диалогового окна:

Page 37: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

37

1. [OK] – в окне сообщение и кнопка ОК. Использует параметры «заголовок» и «текст». Возвращает 1(true)

2. [YesNo] - в окне сообщение и кнопки Да и Нет. Использует параметры «заголовок» и «текст». Возвращает 1(true), если нажата кнопка Да, 0(false),если Нет

3. [YesNoCancel] - в окне сообщение и кнопки Да, Нет, Отменить. Использует параметры «заголовок» и «текст». Возвращает 1(true), если нажата кнопка Да, 0(false),если нажата Нет, -1,если нажата Отменить

4. [OkCancelEdit] – в окне сообщение, подокно для ввода текста с содержимым по умолчанию, кнопки ОК и Отменить. Использует параметры «заголовок», «текст» и «по умолчанию». Если нажата кнопка Да, возвращает введенный текст.

5. [OkCancelList] – в окне сообщение, список значений для выбора с отмеченным значением по умолчанию и кнопки ОК и Отменить. Выбирается только одно значение из списка. Используются все параметры. Возвращается выбранное пользователем значение.

6. [OkCancelCombo] - в окне сообщение, выпадающий список значений для выбора с показанным в верхнем текстовом подокне значением по умолчанию и кнопки ОК и Отменить. Выбирается только одно значение из списка. Используются все параметры. Возвращается выбранное пользователем значение.

7. [OkCancelEditCombo] – подобно [OkCancelEdit], но позволяет пользователю вводить значения, не из списка.

8. [OkCancelListMult] - подобно [OkCancelList], но позволяет пользователю выбирать одно или несколько значений.

9. [Password] – в окне сообщение, подокно для ввода пароля и кнопки OK и отменить. Использует параметры «заголовок» и «текст». Возвращает введенный пользователем пароль.

Примеры @Prompt: 1. @Prompt([Ok;" Сообщение";"Копирование прошло успешно")

2. @Prompt([YesNo]; "Выбор"; "Отправить сообщение?")

3. @Prompt([YESNOCANCEL]; "Заголовок"; "Tекст в окно" )

4. @Prompt([OkCancelEdit]; "Заголовок"; "Введите имя."; @UserName)

5. ������, � ���������� �������� �� ���������.

@Prompt([OkCancelList]; "Заголовок"; "Выберите базу данных для открытия."; "Расписание"; " Расписание ":"Телефонная книга":@Subset(@MailDbName;-1)) @Subset (список ;число) – если число >0,возвращает указанное число значений, считая от начала списка; <0 – от конца списка. Результат возвращает в порядке, определенном в списке.

@MailDbName – возвращает двухэлементный текстовый список формата “сервер”:”файл_почтового_ящика” .

6. @Prompt([OkCancelCombo]; "Заголовок"; "Выберите БД для открытия."; "Расписание"; "Телефонная книга":"Записная книга":”Расписание”)

(Выпадающий список, выбирает из списка) 7. @Prompt([OkCancelEditCombo]; "Заголовок"; "Текст в окне"; "стр по умолчанию"; "стр по умолчанию":"стр 1":”стр 2”)

(Выпадающий список, вводит или выбирает из списка) 8. @Prompt([OkCancelListMult]; "Заголовок"; "Текст в окне."; "Желтый"; "Желтый":"красный": "оранжевый":"синий")

(Выбирает одно или несколько значений из списка.)

9. @Prompt([PASSWORD]; "Пароль"; "Введите пароль.")

@PickList( [Custom] : [Single]; сервер:БД; вид ; заголовок ; текст; столбец )

Page 38: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

38

Выводит модальное диалоговое окно, содержащее указанный вид, в котором пользователь может отметить один или несколько документов. Функция возвращает значение из указанного столбца этого вида для выбранных документов. Если «сервер» задан равным “”, предполагается, что база расположена локально. Если вместо двухэлементного списка задано просто “” , вид будет браться из текущей базы. Параметр вид – текстовая строка, содержащая имя открываемого вида. Примеры @PickList 1. choice:=@PickList( [Custom] ; "" ; "Продукция" ; "Заголовок" ; "Текст в окне" ; 1 ); Формула открывает вид Продукция из текущей базы в диалоговом окне . Предположим пользователь отметил два документа, для которых в первой колонке вида отображается «скрепки» и «степлер». Временная переменная Choise получает значение: “скрепки”: “степлер”. 2. choice:=@PickList( [Custom] ; @DbName ; "Продукция" ;"Заголовок" ;"текст в окне" ;1 ); Эта формула дает тот же самый результат, но используется @DbName для указания имени

текущей базы данных.

3. choice:=@PickList( [Custom] : [Single]; @DbName ; "Продукция" ; "Заголовок" ;”текст в окне" ; 2 );

Разрешен выбор только одного документа 4. FIELD person:=person; @SetField( "person"; @PickList( [Name] ) ) Выводит диалоговое окно из доступных адресных книг.

@DialogBox( форма ; [AutoHorzFit] : [AutoVertFit] : [NoCancel] : [NoNewFields] : [NoFieldUpdate] : [ReadOnly] ; sizeToTable ; noOkCancel ; title ) Открывает в модальном диалоговом окне текущий документ по указанной форме. Пользователь не может переключиться в другое окно, пока не закроет этот диалог кнопкой ОК или Отмена. При работе с одним и тем же документом по разным формам действуют следующие соглашения:

• Если форма имеет одноименные поля с текущим документом, эти значения выводятся в диалоговом окне.

• Если пользователь изменяет значение какого–то поля в диалоговом окне, эти изменения будут отражены в полях документа.

• Если пользователь вводит значение для поля в диалоговом окне, но текущий документ не содержит поле с таким именем, поле и значение добавляются в документ, даже если в основной форме для показа этого документа такого поля нет.

Примеры @DialogBox: 1. В форме1 есть кнопка с формулой @DialogBox("форма2";[AutoHorzFit]:[AutoVertFit] ) Форма2 содержит удобный интерфейс для редактирования некоторого поля или полей. После редактирования новое значение поля или полей поступает в документ.

Page 39: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

39

8 Язык LotusScript Процедуры существуют в виде функций, подпрограмм или свойств. Функция – описывается именем, типом возвращаемых значений и типом параметров с помощью оператора Function. Операторы заключаются между ключевыми словами Function ….. End Function. Подпрограмма - описывается именем и типом параметров с помощью оператора Sub …..End Sub. Свойство – определяется операторами Property Get или Property Set …End Property. Объявление свойства включает определение имени и типа свойства. Параметров свойство не имеет. Желательно объявлять переменные в порядке возрастания длины их типов. Это уменьшает используемый объем памяти. Типы данных Integer, Long – числовой, целый (2 байта и 4 байта) Single, Double – вещественные числа ( 4 байта и 8 байт) String – строковый, (“”,| |, { }.) Пустая строка - “”. Currency – денежный, в виде чисела с фиксированной точкой (8 байт). Variant – может принимать значения любого типа из вышеперечисленных. Объявление переменной Оператор Dim используется для явного объявления имени. Имя будет неявно объявленным, если существует ссылка на него при отсутствии явного объявления. Dim p(5) As Integer – массив из 5 элементов. Dim x As Single – числовая переменна с плавающей точкой. Для объявления переменной - ссылки используется следующая форма оператора: Dim имя As New className Например: Dim kn As New Button(“да”,60,125) переменная kn – объявлена как ссылка на объект класса Button. New Button – создаваемый объект. Процедура конструктора New для класса Button требует наличия трех аргументов. Новая кнопка создается под именем «Да» в позиции 60, 125. Ссылкой на эту кнопку является значение переменной kn.

8.1 Объекты, события и скрипты событий

Когда мы вводим информацию в поля документа, нажимаем кнопки, запускаем агентов - возникают определенные события. Автоматически вызываются соответствующие событиям скрипты, созданные разработчиком приложения. К числу объектов Notes , которые могут содержать скрипты, относятся действия видов или форм, кнопки, поля, агенты, открытые документы. Для каждого из этих объектов имеется свой собственный набор предопределенных событий. Если разработчик не предпринял никаких действий, событию соответствует пустой скрипт. Задача состоит в создании скриптов, необходимым образом реагирующих на события. В окне конструктора формы можно видеть все объекты и предопределенные события к каждому объекту. Предопределенные события:

Page 40: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

40

• Initialize – возникает при создании и инициализации любого объекта. • Terminate – возникает при ликвидации объекта. • Queryopen – событие Формы, возникает перед открытием документа по этой

форме. • Postopen – событие формы, возникает после того, как документ был открыт по

этой форме, но до того, как пользователю был передан фокус ввода. • Postrecalc – событие формы, возникает после того, как был выполнен

перерасчет полей в документе. • Click - событие кнопки, возникает при нажатии на кнопку. • Qwerymodechange – событие формы, возникает перед изменением режима

документа из просмотра в режим редактирования и наоборот. • Postmodechange – событие формы, возникает после изменения режима

документа (чтение/редактирование). • Entering – событие поля документа в режиме редактирования, возникает в

момент входа курсора в поле, но перед передачей пользователю фокуса ввода. • Exiting – событие поля документа в режиме редактирования, в момент выхода

курсора из поля. • Querysave – событие Формы, возникает перед сохранением документа. • Qweryclose – событие формы, возникает перед закрытием объекта.

Аргументы скриптов предопределенных событий Source – источник, объект, являющийся источником события • Для формы – это ссылка на объект класса NotesUIDocument. Применяя свойства и

методы этого класса, вы можете выполнять различные действия с документом в рабочем пространстве

• Для события Click источником является нажатый объект класса Button или Navigator . Объекты этих классов не имеют свойств и методов.

• Для событий Entering и Exiting источником является поле. Объект класса «поле» не имеет свойств и методов

• Mode равен 1, если документ открывается в режиме редактирования и 0 – в режиме чтения

• IsNewDoc равен true, если документ в базе не сохранялся и false, если был открыт существующий документ.

• Continue – возвращаемое скриптом значение Область объявлений (Declarations) и область опций (Options) объекта Эти области содержат общую информацию и общие объявления переменных для всех скриптов этого объекта, которые используются при компиляции . 8.2 Объекты и события при разработке форм, полей, кнопок и действий В форме всегда присутствует объекты: • (Globals)имя_формы • имя_формы(Форма) – этот объект всегда функционирует совместно c открытым по

данной форме документом в рабочем пространстве пользователя. Объекты, допускающие скрипты: • поля, объекты класса Field – имя_поля(Field) • кнопки, объекты класса Button – имя_кнопки(Button) • действия, объекты класса Action – имя_действия(Action)

Page 41: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

41

Предопределенные события для документов в рабочем пространстве Объекту Имя_формы(Форма), присущи следующие предопределенные события: • Initialize – возникает при создании объекта, задолго до того, как новый или

существующий документ будет показан в рабочем пространстве. Событие обычно используют для инициализации определенных в объекте переменных.

• Queryopen(source,mode,isnewdoc,continue) – перед тем как документ будет открыт и показан. Аргументы Source – объект класса NotesUIDocument, представляющий документ в рабочем пространстве пользователя, но еще не полностью. Если mode = 1, то делается попытка открыть документ в режиме редактирования, 0 – в режиме чтения. Если isnewdoc равноTrue, делается попытка создать новый документ, если False – открыть существующий. Continue- позволяет недопустить открытие документа.

• Postopen(source) – возникает после того, как документ был открыт и показан в рабочем пространстве, но до того, как пользователю был передан фокус ввода.

• Postrecalc(source)- возникает после того, как все поля в документе были пересчитаны, но до того, как пользователю был возвращен фокус ввода.

• Querymodechange(source,continue) – возникает перед переходом из режима просмотра в режим редактирования и наоборот.

• Postmodechange(source) – возникает после смены режима документа, но до того, как был возвращен фокус ввода.

• Querysave(source,continue) – возникает перед сохранением документа. Аргумент continue позволяет не дoпустить сохранение документа.

• Queryclose(source,continue) – возникает перед закрытием документы. Аргумент continue позволяет не дoпустить закрытие документа.

• Terminate – возникает при ликвидации объекта, уже после того, как документ был закрыт. Может использоваться для выполнения некоторых завершающих действий над определенными в объекте переменными.

Событие Initialize присуще всем, допускающим скрипты объектам. Когда документ

открывается по форме, событие возникает и для всех объектов-полей, определенных в форме документа. При открытии документа события происходят в следующем порядке : • Initialize для объекта (Global)Имя_формы • Initialize для объекта Имя_формы(Form) • Queryopen для объекта Имя_формы(Form) • Initialize для полей в форме документа. • Postopen для объекта Имя_формы(Form) • Initialize для кнопок и действий возникают только при первом использовании

соответствующего объекта. Событие Terminate также присуще всем допускающим скрипты объектам. Когда документ закрывается , события происходят в следующем порядке: • Queryclose для объекта Имя_формы(Form) • Terminate для проинициализированных действий. • Terminate для объекта Имя_формы(Form) • Terminate для полей • Terminate для для объекта (Global)Имя_формы • Пример 1 . Скрипт выполняется , когда пользователь открыл документ. Скрипт переводит документ в режим редактирования, открывает горизонтальную линейку и распахивает все секции документа. После выполнения скрипта пользователь получает фокус ввода.

Page 42: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

42

Sub Postopen(Source As NotesUIDocument) Source.EditMode = True Source.Ruler = True

Call Source.ExpandAllSections End Sub Пример 2. Скрипт выполняется, когда пользователь выходит из документа после его редактирования. Перед закрытием документа пользователь получает диалоговое окно. Sub Queryclose(Source As NotesUIDocument, Continue As Variant)

Dim workspace As New NotesUIWorkspace Set doc = workspace.CurrentDocument If doc.EditMode Then Messagebox “Не забудь сделать копию” End if

End sub Предопределенные события для полей • Initialize – для редактируемых и вычисляемых полей • Entering - для редактируемых полей, когда поле получает фокус ввода • Exiting – для редактируемых полей, когда поле теряет фокус ввода • Terminate - для редактируемых и вычисляемых полей Пример 1: Скрипт выполняется, когда редактируемое текстовое поле FullName получает фокус ввода и вставляет в поле конкатенацию содержимого полей FirstName и LastName через пробел. Sub Entering(Source As Field) Dim ws As New NotesUIWorkspace Set doc = ws.CurrentDocument Call doc.FieldSetText(“FullName”,doc.FieldGetText(“FirstName”) &” “ & doc.FieldGetText(“LastName”) End sub Пример 2: Скрипт выполняется, когда редактируемое поле Age теряет фокус ввода.Скрипт проверяет введено ли что-нибудь в поле и является ли эта информация числом, и предлагает ввести число. Sub Exiting(Source As Field) Dim workspace As New NotesUIWorkspace Dim uidoc As NotesUiDocument Set uidoc = workspace.CurrentDocument age = uidoc.FieldGetText(“Age”) If age = “” Or Not Isnumeric(age) Then While age=”” Age=Inputbox(“Введите возраст”) Wend While Not Isnumeric(age) Age=Inputbox(“возраст должен быть числом”) Wend Call uidoc.FieldSetText(“Age”,age) End if End Sub Предопределенные события для кнопок и действий формы Имеются четыре предопределенных события: • Initialize – возникает при первом использовании объекта • Click – возникает при нажатии на кнопку

Page 43: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

43

• Objectexecute – недокументированное событие • Terminate- присуще только проинициализированным кнопкам Пример 1: Скрипт выводит в диалоговом окне название каждой базы в каталоге данных Notes на станции, выполняющей скрипт. Sub Click(Source As Button) Dim directory As New NotesDbDirectory("") Dim db As NotesDatabase Set db = Directory.GetFirstDatabase(DATABASE) While Not(db Is Nothing) Messagebox db.Title Set db = Directory.GetNextDatabase() Wend Messagebox "а все" End Sub Объект (Globals) Имя_формы и глобальные объявления в форме Назначение этого объекта – предоставить вам возможность объявить переменные, определить подпрограммы, функции, собственные типы и классы, чтобы они оказались доступны всем объектам в форме, используя события (Declarations) и (Options) этого объекта. Событие Initialize позволяет записать скрипт, присваивающий начальные значения глобальным переменным, загружающий библиотеки динамической компановки DLL. Событие Terminate – выполнить некоторые резюмирующие действия на основе значений глобальных переменных после закрытия документа, выгрузить библиотеки динамической компановки и т.д. 8.3 Создание дополнительных скриптов для объекта Помимо скриптов, обрабатывающих предопределенные события и всегда присутствующих у объекта, можно добавить к любому объекту ваши собственные скрипты: подпрограммы, функции, свойства. Для этого выбираете курсором (Globals)Имя_формы и в области конструктора набираете заголовок дополнительного скрипта, например Sub name или Function name или Dim name и т.д. 8.4 Использование отладчика скриптов

Для перехода в режим отладки выберите в меню Файл | Сервис | отладчик LotusScript. Окно отладчика скриптов состоит из двух панелей. На верхней панели в выпадающем списке название объекта, в другом – название события и внизу скрипт для выбранного объекта и события. Кнопка «Войти» - позволяет выполнить очередную строку с заходом в вызываемые процедуры, «Обойти» – без захода. Кнопка «Выполнить» – служит для выполнения всех оставшихся операторов в текущей процедуре и возврата на следующую строку вызывавшей процедуры, до первой точки останова или до завершения скрипта. «Стоп» – прерывает выполнение скрипта и завершает отладчик. «Продолжить» – продолжает выполнение скрипта до первой встретившейся точки останова или до его завершения. Чтобы установить точку останова, выберите нужный скрипт, нужную строку и дважды щелкните по ней мышью. В строке появится красный кружок. Если еще два раза щелкнуть мышью, то точка останова будет временно запрещена и при последующем двойном щелчке – убрана. В нижней области три закладки. На первой – список всех установленных точек останова с пометкой Disable, если запрещена. На второй закладке – значения переменных, доступных скрипту и их типы. Переменные сложных типов или объекты классов раскрываются подобно категориям в видах.

Page 44: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

44

9 Встроенные классы 9.1 Введение в встроенные классы Notes Встроенные классы Notes можно разделить на две группы: 1. Классы интерфейса пользователя – обеспечивают доступ к объектам

пользовательского интерфейса: рабочее пространство (Workspace), окно вида (View Window), окно документа (Document Window), поле и форматируемое поле. • NotesUIWorkSpace – представляет текущее рабочее пространство Notes. • NotesUIDocument – представляет документ, который сейчас выбран в рабочем

пространстве 2. Классы заднего планы – представляют такие объекты Notes, как базу данных, вид или папку, агент, документ, пункт в документе. Выполняемые пользователем действия происходят без явного отображения в пользовательском интерфейсе.

• NotesSession – представляет среду Notes, в которой выполняется данный скрипт . Он позволяет получать доступ к адресным книгам, информации о текущем пользователе, к переменным из файла Notes.ini, текущей платформе Notes.

• NotesDbDirectory – позволяет просмотреть список имеющихся баз и получить доступ к любой из них

• NotesDatabase – представляет конкретную базу Notes и обеспечивает доступ ко всем, содержащимся в ней объектам.

• NotesACL – представляет список управления доступом (ACL) базы. • NotesACLEntry – представляет один элемент из набора элементов в ACL. • NotesAgent – представляет конкретного агента. • NotesView – представляет вид или папку в базе и обеспечивает доступ к

содержащимся там документам. • NotesViewColomn –представляет столбец вида или папки. • NotesDocumentCollection - представляет коллекцию документов из базы,

отобранную в соответствии с некоторым критерием. • NotesDocument – представляет один документ в базе. • NotesItem – представляет один пункт документа. Поле в форме (Field) и пункт в

документе (Item) – это разные объекты, хотя часто и связанные между собой. • NotesRichTextItem - является производным от класса NotesItem, т.е. он

наследует все свойства и методы базового класса, но дополнительно имеет свои собственные специфические свойства и методы для работы с произвольным текстом.

Контейнерная иерархия стандартных классов довольно сложна, поэтому она не приводится целиком, а рассматривается на примере создания и использования объектов. Рассмотрим следующий скрипт, в котором проявлена контейнерная иерархия классов: Dim s As New NotesSession ‘( Метод New cоздает новый объект класса NotesSession и присваивает переменной s ссылку на него. Этот объект представляет текущий сеанс пользователя) Dim db As NotesDatabase ‘(переменная класа NotesDatabase. Ей пока не присвоено значение и она не связана ни с какими объектами) Dim view As NotesView ‘(переменная класа NotesView, аналогично) Dim doc As NotesDocument ‘(аналогично) Dim item As NotesItem ‘(представляет один пункт документа) Set db = s.CurrentDatabase ‘переменной присваивается ссылка на объект класса NotesDataBase, возвращаемая свойством СurrentDatabase объекта s. Этот объект содержится в объекте класса NotesSession, он представляет текущую базу в сеансе пользователя. Set view = db.GetView(“Cтуденты”) ‘переменной присваивается ссылка на объект класса NotesView, возвращаемая методом GetView объекта db. У объекта db (базы данных) может

Page 45: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

45

быть несколько видов и метод имеет параметр. Здесь метод GetView создает и возвращает ссылку на объект, представляющий вид с названием «Студенты». Set doc = view.GetFirstDocument ‘ переменной doc присваивается ссылка на объект класса NotesDocument, представляющий первый документ в виде view. Set Item = doc.GetFirstItem ‘переменной item класса NotesItem присваивается ссылка на объект класса NotesItem, представляющий первый пункт в документе doc. Из рассмотренного примера становится очевидной следующая иерархия классов: NotesSession -> NotesDatabase -> NotesView -> NotesDocument -> NotesItem Краткое знакомство с некоторыми классами Класс NotesUIWorkspace Объект этого класса используется для манипуляций с рабочим пространством пользователя. Его единственное свойство СurrentDocument позволяет получить доступ к текущему документу в рабочем пространстве. Методы этого класса позволяют открыть текущий документ в режиме просмотра или редактирования по предопределенной форме (метод EditDocument) или по заданной форме в диалоговом окне ( метод DialogBox),создать новый документ в любой базе по указанной форме (метод ComposeDocument), открыть указанный вид из указанной базы (OpenDatabase), обновить текущий вид (ViewRefresh).

Для создания объекта класса NotesUIWorkspace используется метод New Dim имяпеременной As New NotesUIWorkspace Свойство CurrentDocument Set notesUIDocument = notesUIWorspace. CurrentDocument Пример: Скрипт создает объект Workspace , соответствующий текущему рабочему пространству Notes, затем получает ссылку на содержащийся в нем текущий документ и выводит в диалоговом окне содержимое поля Subject этого документа. Dim ws As New NotesUIWorkspace Dim uidoc As NotesUIDocument Set uidoc = ws.CurrentDocument Messagebox(uidoc.FieldGetText(“Subject”) Метод EditDocument Открывает текущий документ в заданном режиме, True- редактирования или False – просмотра. Если параметр опущен, то в режиме редактирования. Set notesUIDocument = notesUIWorkspace.EditDocument([editmode]) Метод ComposeDocument Создает новый документ по форме Form$ из базы File$ на сервере server$, делает его текущим документом и показывает в рабочем пространстве Set notesUIDocument =notesUIWorkspace.СomposeDocument([server$[,file$[,form$]]]) Например: скрипт создает новый документ по форме «Topic» в текущей базе данных Dim ws As New NotesUIWorkspace Dim uidoc As NotesUIDocument Set uidoc = ws.ComposeDocument(“”,”Topic”) Mетод DialogBox Выводит в модальном диалоговом окне текущий документ по указанной форме Flag = notesUIWorkspace.Dialogbox(form$)

Page 46: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

46

Возвращаемое значение flag = true, если пользователь закрыл диалог кнопкой ОК, или false, если кнопкой Cancel. При работе с одним и тем же документом по разным формам действуют записанные вами ранее соглашения. Метод OpenDatabase Открывает в рабочем пространстве пользователя указанный вид из указанной базы. Метод ViewRefresh Обновляет текущий вид Класс NotesUIDocument

Объект этого класса представляет документ, который открыт в рабочем пространстве Notes. Свойства объекта этого класса позволяют получит доступ к документу (Document), определить, новый ли это документ (IsNewDoc), в каком поле находится курсор (CurrentField), какой заголовок окна (WindowTitle), управлять режимом просмотра / редактирования (EditMode), “видимостью” подсказок для полей (FieldHelp), скрытых символов (HiddenChars), линейки форматирования (Ruler), горизонтальной полосы прокрутки (HorzScrollBar). Методы объекта этого класса позволяют выполнять типовые операции с буфером обмена (Cut, Copy,Paste, SelectAll, DeselectAll), “категоризацию” документа (Categorize), пересчет формул полей (Refresh) и формул видимости ( RefreshHideFormulas) , управлять состоянием секций документа (ExpandAllSections, CollapseAllSections), разными способами перемещать курсор по полям документа (GotoTop, GotoBottom, GotoNextField, GotoPrevField, GotoField), получать из редактируемого поля (FieldGetText) и заносить в него текст (InsertText, FieldSetText), очищать (Clear, FieldClear), удалять, сохранять и перезагружать документ (DeleteDocument, Save, Reload). Объект класса NotesUIDocument имеет 7 событий и программист может создать скрипты, которые будут выполняться в ответ на возникшее событие. Получить ссылку на объект класса NotesUIDocument можно следующими способами: • свойством CurrentDocument класса NotesUIWorkspace • методами EditDocument и ComposeDocument NotesUIWorkspace • как аргумент Source скриптов обработки событий объекта класса NotesUIDocument Свойство Document Set notesDocument = notesUIDocument.Document Объект класса NotesDocument, представляющий документ в базе, который соответствует текущему документу в рабочем пространстве. Если документ в рабочем пространстве новый и никогда не сохранялся, то свойство возвращает ошибку. Свойство EditMode Чтение Flag = notesUIDocument.EditMode Установка notesUIDocument.EditMode = Flag Позволяет выяснить или изменить режим (чтение или редактирование) документа в рабочем пространстве. Свойство IsNewDoc Flag = notesUIDocument.IsNewDoc Возвращает True, если документ новый и False. Метод GotoTop Call notesUIDocument.GotoTop Помещает курсор в первое редактируемое поле в документе, только в режиме редактирования. Метод GotoBottom Call notesUIDocument.GotoBottom

Page 47: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

47

Помещает курсор в последнее редактируемое поле в документе, только в режиме редактирования. Метод GotoNextField Call notesUIDocument.GotoNextField (prev) Помещает курсор в следующее редактируемое поле в документе,расположенное правее или ниже, только в режиме редактирования Метод GotoField Call notesUIDocument.GotoField(“имя поля”) Помещает курсор в поле c именем, заданным параметром, только в режиме редактирования. Поле должно существовать и быть редактируемым Метод Print Печатает текущий документ. Call notesUIDocument. Print Метод Save Call notesUIDocument. Save Сохраняет документ из рабочего пространства в базе. Метод Close Call notesUIDocument. Close Закрывает документ из рабочего пространства. Перед закрытием появляется диалоговое окно с запросом на сохранение внесенных изменений. Событие QueryОpen(source as NotesUIDocument,mode as Integer, IsNewDoc as Variant,continue as Variant) - Возникает при попытке открыть текущий документ, перед его открытием. Аргумент Source представляет текущий документ в рабочем пространстве. Если mode = 0 , документ открывается в режиме чтения, 1 – редактирования. Если значение IsNewDoc = True, пользователь пытается создать новый документ, иначе открыть существующий документ. Сontinue – позволяет запретить или разрешить открывать этот документ. Пример: Скрипт проверяет, назначен ли текущий пользователь на роль Supervisor. Если да, он может открыть документ, если пользователь не назначен на эту роль или вообще отсутствует в ACL, он вообще не сможет открыть этот документ. Sub QueryОpen(source as NotesUIDocument,mode as Integer, IsNewDoc as Variant, continue as Variant) Dim ss As New NotesSession Dim db As NotesDatabase Dim acl As NotesACL Dim entry AsNotesACLEntry Set db=ss.CurrentDatabase Set acl= db.ACL Set entry = acl.GetEntry(ss.UserName) If (entry Is Nothing) Then Continue = False Elseif Not (entry.IsRoleEnabled(“Supervisor”)) Then Continue = False End if End Sub Событие PostOpen Возникает после того, как текущий документ был открыт, но перед передачей пользователю фокуса ввода. Обычно в скрипте этого события делают проверку или установку значений полей в текущем документе. Событие QueryModeChange Возникает перед изменением режима (чтение/редактирование) Можно разрешить или запретить изменение режима. Событие PostModeChange

Page 48: 1 Введение - ict.edu.ruict.edu.ru/ft/004255/Lotus.pdf · уникальную по своим возможностям мощную среду ... Lotus и Java ... программирования

48

Возникает после того, как режим документа был изменен, но до передачи пользователю фокуса ввода. Событие PostRecalc Возникает после того, как документ был пересчитан. Событие QuerySave Возникает перед попыткой сохранить документ в базе, но перед сохранением. Программист может разрешить или запретить сохранение, а соответственно и закрытие документа. Пример:Скрипт предотвращает сохранение документа с незаполненным полем “TITLE” Sub QuerySave (source as NotesUIDocument, Continue As Variant) If (source.FieldGettext(“Title”)=””) Then Messagebox(“Заполните”) Call source.GotoField(“Title”) Continue = False End if End Sub Событие QueryClose Возникает при попытке закрыть документ, но перед тем, как документ будет закрыт. Программист может разрешить или запретить закрытие документа. Класс NotesUIView

Класс NotesSession - представляет текущую сессию или сеанс Для получения доступа к текущей сессии необходимо методом New создать объект класса NotesSession. Dim ns As New NotesSession (Set ns = New NotesSession) Выполнение любого скрипта всегда происходит в рамках одной сессии. 1 Свойства AddressBooks – возвращает адресные книги, известные во время выполнения скрипта (тип array of NotesDatabase notesDatabaseArray = notesSession. AddressBooks UserName – -имя текущего пользователя (тип string) name$ = notesSession. UserName CurrentDatabase- Set notesDatabase = notesSession.CurrentDatabase – возвращает объект класса NotesDatabase, представляющий базу, в которой находится данный скрипт. Эта база может оказаться как открытой, так и нет. Метод Close – Call notesSession.Close – закрывает сессию. После этого любые объекты, содержащиеся в объекте Session, более не должны использоваться дизайнером – они станут неопределенны.