Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Сценарии LS для события QueryClose

Читайте также:
  1. Богов активизируют люди и события
  2. Воспроизведение события в действии
  3. Г) События, обусловленные причинными факторами, как события внесознательной психической жизни
  4. Глава 8. События закручиваются.
  5. Желаете принять участие в адаптационном сценарии "Замок Губернатора"?
  6. Задания и события
  7. И последний событийный класс AWT — java.awt. event. WindowListener. Класс содержит события, возникающие при работе с окнами.
  8. Игровые события
  9. Как Ларри Боссиди заставляет события развиваться в нужном русле
  10. Корниловский мятеж: события 27-31 августа 1917 года

Пример. Узнаём, сколько раз пользователь открывал тот или иной документ. Для этого в программе для события QueryClose проверяется, находится ли документ в режиме редактирования. Если да, то значение специального скрытого поля (оно сохраняется вместе с документом), увеличивается на 1. Если документ не редактируется, то происходит переключение в режим редактирования, увеличивается на 1 счетчик того, сколько раз документ читался, затем документ сохраняется, при этом пользователь ничего не замечает.

 

Sub QueryClose (Source As Notesuidocument, Continue As Variant)

Dim ntr As Long

Dim Note As NotesDocument

 

Set note=Source.Document

If note.IsNewNote Then

Ntr=0

Else ntr=clng(note.NumTimesRead(0))

EndIf

ntr=ntr+1

Call note.ReplaceItemValue(“NumTimesRead”,cstr(ntr))

Call note.Save(True, false)

EndSub.

 

Clng – возвращает значение, преобразованное к типу long.

Cstr – возвращает значение, преобразованное в строку.

 

В рассмотренном выше примере действия производятся не над клиентским документом, хотя он является исходным документом в данной программе (используем объект Source класса NotesUIDocument). В программе происходит переход от клиента к серверу, для чего объектной переменной note присваивается значение свойства Document источника. Все действия осуществляются на сервере, т.к. это проще и программный код определяет событие QueryClose (пользователь находится в режиме закрытия документа), поэтому нет необходимости выполнять какие либо действия в документе клиента. Далее проверяем, не является ли документ новым, если это так, то счётчик обнуляем, иначе присваиваем ему значение поля NumTimesRead, в котором хранится число обращений к данному документу. Т.к. изменения осуществляются для сервера, то нет необходимости знать в каком режиме (редактирования или чтения) находится клиентский документ, т.к. если документ не редактировался, то сервер сам переключит его в режим редактирования и пользователь ничего не заметит (см. в постановке примера). Далее увеличим счётчик на 1, независимо от того, это новый документ или нет. Сохраним полученное значение счётчика в поле NumTimesRead и сохраним документ сервера.


67 Работа с программами-агентами.

 

Для создания программы-агента необходимо раскрыть Shared Code à Agents в Domino Designer, нажать кнопку New Agent. Для вновь созданного агента необходимо написать программный код (на языке формул, Lotus Script, Java, Java Script или выбрать простое действие из списка) хотя бы в одном из двух событий: Initialize, Terminate (последнее используется реже).

Управляющими средствами программ-агентов являются события.

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

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

Если в меню Design выбрать программы-агенты, то список всех доступных программ-агентов базы данных будет показан в представлении, столбцы которого описывают различные свойства программ-агентов:

1) Name/ Comment – имя программы-агента и сопроводительные документы;

2) Alias – псевдоним имени программы-агента;

3) Trigger – значения поля When Should This Agent Run (когда должна выполняться данная программа-агент);

4) Owner (владелец) – Shared, если это общая программа-агент или имя конкретного пользователя;

5) Notes – если отмечено, то программа-агент запускается в Notes;

6) Web – если отмечено, то программа-агент запускается в Web.

Рассмотрим несколько примеров программ-агентов. Программа-агент Archive переносит документы в архив почтовой базы данных. Программа-агент Page Minder в Notes Personal Navigator проверяет наличие обновлений для выбранной Web-страницы, а затем обновляет ее по расписанию.

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

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

 


68 Создание программ-агентов Lotus Script.

 

Пример. Программа-агент для отправки по почте напоминаний, написанная на языке LotusScript. Нижеописанная программа-агент выполняется ежедневно по расписанию в базе данных, содержащей формы REQ. В этих формах существуют: поле CompletionDate, содержащее дату выполнения задания; поле Status, отображающее статус документа; поле PersonAssigned, указывающее, кто отвечает за выполнение задания. Программа-агент выполняется каждый день, просматривая все документы в базе данных. Если срок исполнения документа уже прошел, а документ не завершен, то исполнитель получает почтовое напоминание со ссылкой на незавершенный документ.

Sub Initialize

Dim s As New Notes Session

Dim db As NotesDatabase

Dim collection As NotesDocumentCollection

Dim note, memo As NotesDocument

Dim item As NotesItem

Dim rtitem As NotesRichTextItem

Dim cutoff As New NotesDateTime (Today)

Dim duedate As NotesDateTime

Set db = s.CurrentDatabase

Set collection = db.AllDocuments

Set note = collection.GetFirstDocument




Дата добавления: 2015-09-10; просмотров: 23 | Поможем написать вашу работу | Нарушение авторских прав

Введение в технологии IBM: Lotus Domino\ Notes Версия 6/6.5 | Система управления документоориентированой базой данных | Создание копий БД. | Операторы | Аргументы [A], [G], [I], [P], [Q], [S]были спроектированы для использования в шлюзовых и других почтовых системах. Онине используются с именами Notes. | Пример. Dim S (0 to 10) as string | Операторы прерывания | Пример. Dim db as NotesDatabase | Пример. |


lektsii.net - Лекции.Нет - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав