作成者カテゴリ 
公開
アンドロメダ
03/07/2017 01:16 PM
クライアント
ノーツサーバノーツクライアントサーバOSクライアントOSネットワークプロトコル
8.x8.xWindows Server 2008Windows 7TCP/IP

Querydocumentdeleteイベントの繰返しについて

Querydocumentdeleteイベントにて、フィールドに受付済フラグが
存在する文書は削除できないようにしています。

この処理自体は問題無く動作するのですが、削除操作をした後、続けて別の
文書の削除操作を繰返すと、Source.Documentsに繰返した文書が全て累
積されるようです。(1文書選択した場合のみ。複数文書をチェックマークで
選択した場合は累積されない)

そのため、最初に受付済フラグが存在する文書を削除しようとした後に、
受付済フラグが存在しない文書を選択して削除しようとしても、最初に
削除しようとした受付済フラグがずっと残ってしまい(dc.getfirstdocument
で文書を取得しているため)、かといって何度削除操作をするのかは、
ユーザー次第なのでdc.getNthdocumentで正しい文書を取得するこ
ともできません。

何か解決方法がございますでしょうか?単純にイベントが終了した段階で、
SourceのDocumentsが100%初期化してくれたらそれで済むのですが・・

Sub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant)

Dim db As NotesDatabase
Dim dc As notesdocumentcollection
Dim doc As notesdocument
Dim s As New NotesSession

Set dc = Source.Documents
Set doc = dc.getfirstdocument

Do Until doc Is Nothing
If doc.受付フラグ(0) <> "" Then
If doc.更新者(0)=s.UserName Then
continue = False
Msgbox "本文書は受付済のため削除はできません。"
Exit Sub
End If
End If
Set doc = dc.getnextdocument(doc)
Loop

End Sub


[Previous Main Document]
Querydocumentdeleteイベントの繰返しについて (アンドロメダ) * 現在地 *
. . Re: Querydocumentdeleteイベントの繰返しについて (水)
[Next Main Document]