LotusScript, строенные классы




страница1/24
Дата06.06.2016
Размер3.59 Mb.
  1   2   3   4   5   6   7   8   9   ...   24
; Lotus Domino R. 5: @~формулы, LotusScript, «строенные классы LotusScript и Java 701

Возвращаемое значение - объект класса NotesUIDocument, представляющий документ,


открытый в рабочем пространстве. с" '

Пример 1. Скрипт акции по виду открывает в режиме редактирования документ, «на котором находится» курсор вида (прямоугольная рамка).

Sub Click(Source As Button)

ws As New NotesUIWorkspace • ' : •••.-••,.



Call ws.EditDocument( True )

End Sub


Пример 2. Скрипт акции по виду открывает в режиме редактирования документ, «на котором находится» курсор вида, и перемещает курсор документа в поле Body.

Sub Click(Source As Button)

Dim ws As New NotesUIWorkspace

Dim uidoc As NotesUIDocument



Set uidoc = ws.EditDocument( True ) ' ><

Call uidoc. GotoField ( "Body" ) •'•*•

End Sub

Метод editProfile - «создать или открыть профильный документ»



Set notesUIDocument = nolesUIWorkspace.editProTi\e(profileName$ [, userName$ ])

Открывает в режиме редактирования новый или существующий «профильный» документ в текущей базе рабочего пространства. Параметр profileNameS (тип String) задает имя или алиас «профильного» документа, а в базе должна присутствовать соответствующая форма (с именем profileNameS) для его отображения. Необязательный параметр userName$ (тип String) определяет имя пользователя, к которому относится «профильный» документ.

Пример, Скрипт создает новый или открывает уже существующий профильный документ "Interest Profile" для текущего пользователя.

Dim ws As New NotesUIWorkspace

Dim session As New NotesSession - ' '-'-• • • '

Call ws.EditProfile("Interest Profile", session.UserName)

Метод composeDocument - «создать новый документ»

Set notes UIDocument = notes UnVorkspace.ComposeDocwnent(

[ servers [ ,file$ [ ,form$ [, windowWidth# [, windowHeighttt ]]]]])

Создает новый документ по форме form$ из базы/г/е$ на сервере serverS, «делает его» текущим документом и «показывает» в интерфейсе пользователя.

•'•:•'•' Параметр server$ (тип String) задает имя сервера, на котором находится содержащая
к,; форму база. Если параметр опущен или задан, как пустая строка (""), предполагается, что
•••- база расположена локально. Если оба параметра server$ ufi!e$ опущены или заданы пустыми

строками, форма выбирается из текущей базы.

Параметр file$ (тип String) указывает имя файла базы, в которой (по форме из которой) необходимо создать документ. Если параметр опущен или задан пустой строкой (""), документ создается в текущей базе (по форме из текущей базы).

• Параметр form$ (тип String) задает название формы, по которой должен быть создан


документ. Если параметр опущен или задан пустой строкой (""), появляется диалоговое окно
Create Other, в котором пользователь может выбрать имя формы.

© InterTrust Co. Тел. (095) 9567928

702 Встроенные классы LotusScript и Java

Параметры windowWidthft и windowHeighttt (оба типа Double) задают соответственно ширину и высоту (в дюймах) окна создаваемого документа. Если параметры опущены, они выбираются такими же, как у текущего окна.

Возвращаемое значение - объект класса NotesUIDocument, представляющий документ, который создан в виртуальной памяти и открыт в рабочем пространстве.

Пример. Скрипт создает новый документ по форме Main Topic в текущей базе, когда пользователь нажимает кнопку акции в виде.

Sub Click{Source As Button)

Dim ws As New NotesUIWorkspace

Dim uidoc As NotesUIDocument

Set uidoc = ws.ComposeDocument( "", "Main Topic" )

End Sub


© Метод dialogBox - «открыть документ в диалоговом окне по указанной форме»

flag = notesUIWorkspace.dialogBox(form$ [, autoHorzFit [, autoVertFit

[, noCancel [, noNewFields [, noFieldUpdate [, readonly [, title$ [, notesDocument [, sizeToTable [, noOkCancel ]]]]]]]]]] )

Выводит в модальном диалоговом окне текущий (открытый в окне или выбранный курсором в виде или папке) или специфицированный параметром notesDocument (объект класса NotesDocument) документ по указанной форме.

Параметр form$ (тип String) задает имя формы, по которой следует отображать документ.

Если параметры autoHorzFit или autoVertFit равны true, то требуется «подгонять» размеры диалогового окна по горизонтали или вертикали под размер области первой размещения (layout region) в форме. Значение false или отсутствие соответствующего параметра запрещает подгонку размеров диалогового окна по горизонтали или вертикали.

Если параметр noCancel равен true, в окне будет присутствовать только кнопка ОК, если false - кнопки ОК и Cancel.

Если параметр noNewFields равен true, поля, имеющиеся в форме, по которой в диалоговом окне открывается документ, но отсутствующие в самом документе, не будут «переданы» в документ. Если же этот параметр равен false или опущен, «новые» поля, созданные в форме, будут «переданы» в документ.

Если параметр noFieldUpdate равен true, изменения, выполненные пользователям в полях формы, по которой в диалоговом окне открывается документ, не передаются в сам документ. Если же параметр равен false или опущен, изменения будут «переданы» в документ.

Если параметр readonly равен true, документ будет открыт в диалоговом окне в режиме чтения, в нем будет присутствовать только кнопка Ok, а пользователь не сможет перевести этот документ в режим редактирования. Такое может быть полезно, например, при «выводе» развернутых подсказок. Если же параметр равен false или опущен, документ будет открыт в режиме редактирования.

Параметр titleS (тип String) определяет текст в заголовке диалогового окна. Значение по умолчанию "Lotus Notes".

Параметр notesDocument (объект класса NotesDocument) определяет открываемый в диалоговом окне документ. Когда параметр опущен, по умолчанию открывается текущий

документ.



© InterTrust Со. Тел. (095) 9567928

Lotus Domino R. 5: @-формулы, LotusScript, встроенные классы LotusScript и Java 703

Если параметр sizeToTable (появился в версии 50) равен true, то будет выполняться «подгонка» размеров таблицы под размеры диалогового окна. Если же параметр равен false или опущен, подгонка таблицы под размер диалогового окна не выполняется.

Если параметр noOkCancel (появился в версии 5.0) равен true, в окне будут отсутствовать кнопки Ok и Cancel. Если же он равен false или опущен, кнопка ОК присутствует, а наличие кнопки Cancel зависит от значений предшествующих параметров.

Возвращаемое значение flag равно true, если пользователь закрыл диалог кнопкой ОК,


или false, если кнопкой Cancel. . -

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

Такая возможность может использоваться с любой формой, но она особенно полезна с формами, которые содержат одну область размещения (layout region), потому что пользователь может работать с этой областью, как с диалоговым окном. В окне свойств области размещения рекомендуется «снимать» опцию Display Border и выбирать опцию 3D style. Параметры autoHorzFit и autoVertFit позволяют удачным образом выводить отдельную область размещения в диалоговом окне. Ниже дается пример диалогового окна, «подогнанного» под размеры области размещения.



Рис. 3.3. Диалоговое окно, подогнанное под размер области размещения

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

При работе с одним и тем же документом по разным формам действуют следующие соглашения:


  • если форма form$ имеет общие (одноименные) поля с текущим документом, значения
    этих полей из текущего документа выводятся в диалоговом окне;

  • если пользователь изменяет значение какого-то поля в диалоговом окне и нажимает
    кнопку Ok, эти изменения произойдут в соответствующих полях текущего документа,
    если только это не «запрещено» параметрами метода;

© InterTrust Со. Тел. (095)9567928

704 Встроенные классы LotusScript и Java

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

Пример 1. Скрипт акции по виду открывает текущий документ в диалоговом окне по форме Polic1 Предполагается, что форма содержит область размещения (layout region), и диалоговое окн «подгоняется» под размер этой области.

Sub Click(Source As Button)

Dim ws As New NotesUIWorkspace

Call ws.DialogBox("Policy",True,True,True,True,False,False,"Policy")

End Sub

Пример 2. Скрипт кнопки открывает в диалоговом окне первый документ из вида "By Categorj текущей базы. Предполагается, что форма Dialog Box содержит область размещения (layout region содержащую поля Subject и Categories, и пользователь изменить название и категорию открытого и форме документа. Диалоговое окно «подгоняется» под размер этой области.



Sub Click(Source As Button) - . / '

Dim db As NotesDatabase

Dim s As New NotesSession

Dim ws As New NotesUIWorkspace

Dim view As NotesView •. •/..-• "•'•••£•*''•;•"'.• -: --'-V ; .,;:' •,.:-* .' ''•••'." .'•"../••/•"

Dim doc As Notes Document .,

Set db = s.CurrentDatabase : '

Set view = db.GetView( "By Category" )

Set doc = view.GetFirstDocument

Call ws.DialogBox("Dialog Box", True, True, False, False, False, _ False, "Dialog Box", doc)

Call doc.save (True, False) End Sub

© Метод refreshParentNote - «передать данные из диалога в документ» Call notesUIWorkspace.refreshPareniNQte()

Рассматривая метод dialogBox, внимательный читатель мог обратить внимание, что Domino версий 5 можно открыть документ в диалоговом окне, не содержащем кнопок О] или Cancel. Конечно, такой диалог можно закрыть, однако данные, введенные ил измененные в полях формы этого диалога, не будут при этом переданы в докумен' Проблему решает метод refreshParentNote.

Подобно команде @Command([RefreshParentNote]), этот метод передает данньк введенные или измененные пользователем в полях формы, используемой диалоговым окно* в соответствующий документ. Обычно вызов метода refreshParentNote выполняется пр обработке события QueryClose используемой диалоговым окном формы, или по нажатш имеющейся в форме «собственной» кнопки, скрипт которой сначала передает изменения документ, а затем закрывает диалоговое окно.

Пример. Скрипт акции по виду открывает «указанный курсором» документ в диалоговом окне б( кнопок ОК и Cancel по форме LR.

Sub Click(Source As Button)

Dim ws As New notesUIWorkspace

Call ws.DialogBox("LR", True , True, True, True, False, False, _

"My Title",,False,True)

End Sub


Форма LR представляет собой область размещения с полем Subject и «собственной» кнопке; скрипт которой сначала передает изменения из поля Subject в документ, а затем закрывает диало

© InterTrust Co. Тел. (095) 9567928

Lotus Domino R. 5: @-формулы, LotusScript, встроенные классы LotusScript и Java 705

Заметим, что если вызов метода RefreshParentNote «закомментировать», изменения не будут


передаваться в документ. (. ,,.-..



Sub Click(Source As Button)

Dim ws As New NotesUIWorkspace Call ws.RefreshParentNote

Set uidoc - ws.CurrentDocument Call uidoc.close End Sub

Метод addDatabase - «добавить пиктограмму базы в рабочее пространство» Call notesUIWorkspace.addDstt'Abase( server $ , filenames )

Добавляет в рабочее пространство пиктограмму базы filenames, расположенной на сервере serverS или локально, если server$ = "", и «выбирает» эту пиктограмму в рабочем пространстве. Если пиктограмма базы уже присутствует в рабочем пространстве, происходит только ее выбор.

Метод openDatabase - «открыть указанный вид из указанной базы»
Call notesUIWorkspace.o'penDatabsise( server$ ,file$ , view$ , key$ , ,

newlnstance, temporary)

Открывает в интерфейсе пользователя указанный вид из указанной базы. Параметры serverS (тип String) nfile$ (тип String) задают имя сервера и путь и имя файла базы.

Необязательный параметр viewS (тип String) сообщает имя вида, который следует открыть. Если параметр опущен, открывается вид по умолчанию.

Необязательный параметр key$ (тип String) позволяет «прокручивать» открываемый вид на первый из документов, содержащих в первом сортированном столбце этого вида значение key$. Если же параметр опущен, позиционирование вида на документ не выполняется.

Если параметр newlnstance равен true, то вид будет открыт в новом окне, даже если этот вид уже открыт в другом окне. Значение false или отсутствие параметра требуют открывать вид в новом окне только тогда, когда окно с данным видом в списке окон отсутствует.

Если параметр temporary равен true, то база должна быть открыта только «временно», без добавления ее пиктограммы в рабочее пространство пользователя (если только ее там нет). Значение false или отсутствие параметра требуют добавления пиктограммы базы в рабочее пространство пользователя (если ее там еще нет).



© Метод openFileDialog - «диалог для выбора открываемых файлов»

stringArray = notesUIWorkspace.openFileDialag( multipleSelection [, title$ ] [,filters$ ] [, initialDirectoryS ] [, initialFile$ ])

Выводит диалоговое окно FileOpen («выбор открываемых файлов»). Если параметр multipleSelection равен true, окно позволяет выбрать несколько файлов, иначе только один файл. Строка title$ задает текст в заголовке окна. Строка filters$ задает шаблон для отбора предлагаемых пользователю файлов. Например, если filtersS - "Notes Databases|*.nsfjNotes Templates]*.ntf", то в списке кандидатов для отбора присутствуют только базы и шаблоны баз Notes. Наконец, строки initialDirectoryS и initialFileS задают соответственно каталог, из



© InterTrust Со. Тел. (095) 9567928

706 Встроенные классы LotusScript и Java

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

Возвращаемое значение имеет тип Variant и содержит массив строк с именами выбранных файлов, если пользователь нажал кнопку Ok, или Empty, если пользователь нажал кнопку Cancel.

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

Dim ws As New NotesUIWorkspace

Dim files As Variant



files = ws.OpenFileDialog(True, "File List", "", "c:")

If Isempty(files) Then

Messagebox "Ничего не выбрано" Else

Dim messagelist As String

Forall filelist In files

messagelist = messagelist & filelist & Chr(lO)

End Forall

Messagebox messagelist End If

© Метод saveFileDialog - одиалог для выбора сохраняемых файлов»



stringArray = notesUIWorkspace.sa\eҐileDialog( multipleSelection [, titleS ] [,filters$ ] [, initialDirectoryS ] [, initialFile$ ] )

Выводит диалоговое окно FileSave («выбор сохраняемых файлов»). Параметры и возвращаемое значение метода аналогичны соответствующим параметрам метода openFileDialog.



© Метод openFrameSet - «открыть набор фреймов» Call notesUIWorkspace.openҐmmeSet( framesetS )

Подобно «команде» @Command([OpenFrameset]), открывает указанный параметром frameset$ (тип String) набор фреймов. Если предварительно был определен текущий целевой фрейм, набор фреймов открывается в нем.



Пример. Скрипт открывает набор фреймов myFrameset.

Dim ws As New NotesUIWorkspace Call ws.OpenframeSet{"myFrameset")



© Метод setTargetFrame - «определить целевой фрейм» Call notesUIWorkspace.setTnrgeiFrame(frame$ )

Подобно функции @SetTargetFrame, позволяет определить целевой фрейм при открытии вида, страницы, набора фреймов или создании или редактировании документа. Параметр frameS (тип String) задает имя фрейма, в который должна выполняться «загрузка».

Вызывать метод SetTargetFrame необходимо перед вызовом методов openView (открыть вид), openPage (открыть страницу), openFrameSet (открыть набор фреймов), composeDocument (создать и открыть документ) или editDocument (открыть документ для редактирования) - все эти методы выполняют «загрузку» в предустановленный методом setTargetFrame целевой фрейм.

© InterTrust Co. Тел. (095) 9567928

Lotus Domino R. S: @-формулы, LotusScript, встроенные классы LotusScript и Java 707

Пример. Скрипт открывает набор фреймов myFrameset, определяет его фрейм frame2 в качестве текущего фрейма и загружает в него страницу banner.

Dim ws As New NotesUIWorkspace '•'' ;-':' '"•-"•••• ••' • • .•-- : - : ; '

Call ws.OpenframeSet("myFrameset") Call ws.SetTargetFrame("top")

Call ws.OpenPage("banner")

0 Метод openPage - «открыть страницу»

Call notes UIWorkspace.openPage(pagename$) . •

Подобно «команде» @Command([OpenPage]), открывает заданную параметром pagename$ (тип String) страницу из текущей базы. Если предварительно был определен текущий целевой фрейм, страница открывается в нем.



© Метод prompt - «диалог предопределенного типа»

variant = notesUIWorkspace.prampt( type%, title$,prompt$, [default] [, values ] )

Подобно «команде» @Prompt, метод выводит диалоговое окно. Пользователь выбирает или вводит информацию в окне и завершает диалог, а метод возвращает введенную или выбранную пользователем информацию.

Параметр type% задается константой, определяющей тип диалогового окна. Возможные
типы точно такие же, как у функции @Prompt: PROMPT_OK, PROMPTJYESNO,
PROMPTJfESNOCANCEL, PROMPT_OKCANCELED1T, PROMPT_OKCANCELLIST,
PROMPTJ3KCANCELCOMBO, PROMPT OKCANCELEDITCOMBO,

PROMPT_OKCANCELLISTMULT, PROMPT PASSWORD. . , :... ..

Параметры titleS и prompt$ (оба типа String) задают текст, выводимый соответственно в заголовок окна и в само окно.

Параметр default задает выбор по умолчанию и необходим в диалоговых окнах типа PROMPT_EDIT, PROMPT_LIST, PROMPT COMBO, PROMPT_EDITCOMBO и PROMPTJLISTMULT. Он может быть типа String, Array of type String, Variant of type String или Variant Array of Strings и содержать одну или несколько строк текста.

Параметр values задает все предоставляемые на выбор пользователю варианты и необходим в диалоговых окнах типа PROMPT LIST, PROMPT COMBO, PROMPT_ EDITCOMBO и PROMPT JJSTMULT. Он может быть типа Array of type String, Variant of type String или Variant Array of Strings.

Возвращаемое значение имеет тип Variant и зависит от способа завершения диалога и типа использованного диалогового окна. Если диалог был завершен кнопкой CANCEL, возвращается Empty. Если же диалог был завершен кнопкой ОК, то для диалогов типа . PROMPT_OK, PROMPT_YESNO, PROMPT_YESNOCANCEL возвращается Variant of type . Integer, для PROMPTJEDIT, PROMPTJJST, PROMPT_COMBO, PROMPT EDITCOMBO, PROMPTJPASSWORD - Variant of type String, а для PROMPT_LISTMULT - Variant Array.

Пример. Реализация и внешний вид диалога с выбором одного элемента из списка.

Dim ws As New NotesQIWorkspace .

Dim returnValue As String, possibleValues(5) As String ! -•

possibleValues(0) = "Julius Erving"

possibleValues(1) = "Moses Malone"

possibleValues (2) = "Charles Barkley" " "•'"'•' i ' ' : - • . • ' • • "'•'

possibleValues (3) = "Wilt Chamberlain" ,. , ,>'?':-

possibleValues (4) = "Maurice Cheeks" '' — .



© InterTrust Co. Тел. (095) 9567928

708 Встроенные классы LotusScript u Java

possibleValues(5) = "Bobby Jones"

returnValue = ws.Prompt(PROMPT_OKCANCELLIST,"Survey", _

"Who was the greatest Philadelphia 76er of all time?","",possibleValues)

If (returnValue <> "") Then

Print "Your favorite player is " & returnValue Else

Print "Sorry, but no selection was made." End If






f



© Метод pickListColleetion - едиалог для выбора документов из вида» ;

Set notesDocumentCollection = notesUIWorkspace.picliljistCol\ection( type%,



multipleSelection [, server$ ] [, databaseFileName$ ] [, viewName$ ] [, titleS ] [, prompt$ ] [, categorynameS ] )

Подобно функции @Picklist, метод выводит модальное диалоговое окно с содержимым вида. Пользователь может выбрать в этом окне один или несколько документов, коллекция которых и возвращается методом.

Значение параметра type$ (тип Integer) задается константой PICKLIST_CUSTOM - в диалоговом окне будет отображаться содержимое вида. Иных вариантов, подобных доступным в функции @Picklist, в документации не упоминается.

Если параметр multipleSelection равен true, возможен выбор нескольких документов, если false - только одного документа.

Параметры server$, databaseFileNameS и viewNameS (все типа String) специфицируют имя сервера, имя файла базы данных и имя вида, который должен отображаться в диалоговом окне.

Параметры title$ и prompts (оба типа String) задают текст, выводимый соответственно в заголовок диалогового окна и в само окно в его верхней части.

Необязательный параметр categorynameS (тип String) может применяться для категоризированных видов и содержать название категории - в этом случае в диалоговом окне будут отображаться не все документы из вида, а только документы из этой категории.

Возвращаемое значение представляет собой объект класса NotesDocumentCollection, содержащий коллекцию (возможно, пустую) отобранных пользователем документов, если пользователь завершил диалог нажатием кнопки (Ж, или Nothing, если диалог был завершен кнопкой Cancel.


  1   2   3   4   5   6   7   8   9   ...   24


База данных защищена авторским правом ©uverenniy.ru 2016
обратиться к администрации

    Главная страница