質問者のバージョンは6.5なので「できない」と回答しています(いじわるじゃないですよ)が、8 では OnSelect というビューのイベントが追加されています。
ヘルプによると、このイベントが発生するのは
・ビューが開くとき
・選択マージンでチェックマークを使用して文書を選択/選択解除したとき
・選択された行をクリックするとき
とのこと。
ビューで文書を1つ選択するたびにこのイベントが発生するなんて...なんだかパフォーマンス悪そうな予感....
ビューで「選択された」文書をこのイベントで取得したい場合、ハイライト表示されている文書は CaretNoteID を利用して簡単に取得することができますが、(ハイライトされていないけど)チェックマークをつけた1文書を取得するには工夫が必要です。
次のLotusScriptのサンプルでは、選択マージンでチェックマークを付けた時にその文書の NoteID をリスト変数へ追加します(NoteID が既にリストにある場合は追加しません)。
その後、ビューのアクションボタンを押すとリスト変数へ追加した順番に番号付けします。
'ビューの(Globals) (Declarations)
Dim ws As NotesUIWorkspace
Dim ss As NotesSession
Dim num%
Dim idlist List As Long
'ビューの(Globals) Initialize
Sub Initialize
Set ws = New NotesUIWorkspace
Set ss = New NotesSession
End Sub
'ビューのイベント Onselect
Sub Onselect(Source As Notesuiview)
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Set dc = Source.Documents
Set doc = dc.GetFirstDocument
While Not ( doc Is Nothing )
If Not Iselement( idlist( doc.NoteID ) ) Then
num = num + 1
idlist( doc.NoteID ) = num
Exit Sub
End If
Set doc = dc.GetNextDocument( doc )
Wend
End Sub
'ビューのアクション「選択順に番号を付ける」
Sub Click(Source As Button)
Dim doc As NotesDocument
Dim db As NotesDatabase
Set db = ws.CurrentDatabase.Database
Forall o In idlist
Set doc = db.GetDocumentByID( Listtag( o ) )
doc.num = o
Call doc.Save( True, False )
End Forall
num = 0
Erase idlist
Call ws.ViewRefresh
Call ws.CurrentView.DeselectAll
End Subとっても手抜きなので、選択マージンをマウスでなぞったり、チェックマークをを消したり、Ctrl + A などで一度にチェックを付けたり、などなどには対応していません...orz
0 件のコメント:
コメントを投稿