2009年12月19日土曜日

カレンダーの現在の日付を新規文書へ反映させる


カレンダー形式のビューで新規文書を作成するアクション(日付の枠内をダブルクリック、あるいはビューのアクションボタンをクリック)したとき、アクティブになっている日付を、新規文書の日付欄へ自動で設定したい場合があります。
 
ダブルクリックした日付は NotesUIView.CalendarDateTime で取得することができます。
これをカレンダービューのイベント Regiondoubleclick で使います。
 
Sub Regiondoubleclick(Source As Notesuiview)
 Dim ws As New notesuiworkspace
 Dim uidoc As NotesUIDocument
 Dim doc As NotesDocument
 Set uidoc = ws.ComposeDocument("", "", "Schedule")
 Set doc = uidoc.Document
 doc.StartDate = Datevalue(Source.CalendarDateTime)
End Sub

 
アクティブな日付をカレンダービューのアクションボタンで取得するには、NotesUIWorkspace.CurrentCalendarDateTime を使います。
 
Sub Click(Source As Button)
 Dim ws As New notesuiworkspace
 Dim uidoc As NotesUIDocument
 Dim doc As NotesDocument
 Dim varDate As Variant
 varDate = ws.CurrentCalendarDateTime
 Set uidoc = ws.ComposeDocument("", "", "Schedule")
 Set doc = uidoc.Document
 doc.StartDate = varDate
End Sub
 
ちなみに、最後の行を
doc.StartDate = ws.CurrentCalendarDateTime
とすると値が入らないし、
doc.StartDate = Datevalue(ws.CurrentCalendarDateTime)
とするとすんなりいきません(Notes 8.0.1で確認)

0 件のコメント:

コメントを投稿