さて、宣言通りLotus Scriptに関して投稿しようかと思います。
まずは簡単なTips程度のレベルで。
Lotus Scriptでワークスペース上のNotes文書を色々弄る際、NotesUIDocumentクラスをベースに使うと思います。
んでもって、併せてNotesDocumentクラスで文書を取得して色々弄ったりして、様々な処理を実現させたりするかと。
文書を色々弄って保存するぞー!という時に、NotesUIDocumentクラスからCloseメソッドを実施すると…
保存ダイアログが一々出てきます。ウザいですね。
NotesUIDocumentクラス側でSaveメソッドを使えば普通は出てこない筈なんですが、なんだかんだで出てくる時があります。もしくは自分のやり方がいけないのかもしれへん…
また、入力処理をさせたいだけであって、該当の文書は保存する必要の無いフォーム上でこいつが出てくると面倒臭いですね。
他にも、NotesDocument側で保存処理をしないといけない場合(競合の関係上、普通はUI側で保存処理をする。)も出てきます。当たり前だけど。
その場合は、該当文書のSaveOptionsを0にしてしまえば、このダイアログは出てきません。
ただ、SaveOptionsを0にした後に保存をしてしまうと、次編集した際に保存ダイアログが出なくなって、出ないといけない場面で出なくなるので、注意が必要。
下記のような感じで実装すればOKです。
Dim workspace As New NotesUIWorkspace Dim session As New NotesSession Dim db As NotesDatabase Dim uidoc As NotesUIDocument Dim doc As NotesDocument Set db = session.CurrentDatabase Set uidoc = workspace.CurrentDocument Set doc = uidoc.Document 'なんらかの文書処理 '保存処理 Call doc.save(True, True) doc.SaveOptions = "0" Call uidoc.Close(True)至ってシンプル。
NotesDocument側で保存をした後、これまたNotesDocument側でSaveOptionsに”0”を入れる。
この後UI側を閉じると、保存ダイアログが出ません。どうしてもNotesDocument側で保存しなきゃいけない(文書リンクやら添付ファイルやらを適用する関連)処理の場合、非常に役に立つ。
LotusScriptってどうしてもこのへんが面倒臭いんですよね。慣れると面白いんですけど。