質問者のバージョンは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 件のコメント:
コメントを投稿