日付を From - To で入力する場合など、いくつかのフィールドをまとめて入力する場合では、ダイアログボックスを開く場合があります。ダイアログでは、別のフォームやビューに移動することができず、入力完了するまで他の操作を受け付けなくできます。
開発者としては、入力チェックはもとより、フィールド間の関係性チェックなどを独立したフォーム内で完結できるので、メインのフォームの設計をシンプルにできます。そして、同様の画面が必要になった場合に流用ができ、作業を効率化できます。
実際にダイアログボックスの利用するには、一定のプログラムが必要となります。
今回は、ダイアログボックスを開くプログラム(呼び出し側)の一般的なコードをテンプレート的に掲載します。
Dim ns As New NotesSession Dim ndb As NotesDatabase Dim nuiw As New NotesUIWorkspace Dim ndDlg As NotesDocument Dim b As Boolean Dim sFm As String Set ndb = ns.Currentdatabase Set ndDlg = ndb.Createdocument() 'ダイアログ用文書 'A) ダイアログのフォーム名をセット sFm = "dlgForm" 'B) 初期値(フィールド)をセット ndDlg.dlgMsg = "基準日を入力してください。" ndDlg.dlgDate = Today 'ダイアログの表示 b = nuiw.Dialogbox(sFm, True, True, False, False, False, False, ndb.Title, ndDlg) If b = True Then 'C) ダイアログ[OK]で閉じた時の処理を以下に記述 End If |
処理の流れは、以下の通りです。
- 接続中の DB 内にダイアログボックス用の仮の文書(ndDlg)を準備
- その文書に初期値を設定して、ダイアログを開く
- [OK]ボタンで閉じた時は処理を継続(If 文の中身を実行)
なお、この仮の文書(ndDlg)は、Save メソッドで保存しないので、このプログラムが終了と同時に消滅し、文書としては残りません。
使い方
以下の通りです。
- レイアウト領域を使ったダイアログボックスフォームを作成
- 上記コードをダイアログを開くボタンなどにセット
- ダイアログボックスフォーム名を A) にセット
- ダイアログボックスに初期表示する値を B) に指定
- [OK]で閉じた時の処理を C) に記述
なお、今回はテンプレートコード掲載が目的ですので、フォーム作成手順などの詳細は割愛します。ご了承ください。
0 件のコメント:
コメントを投稿