2023/04/05

ダイアログボックスの開き方

日付を 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 メソッドで保存しないので、このプログラムが終了と同時に消滅し、文書としては残りません。


使い方

以下の通りです。

  1. レイアウト領域を使ったダイアログボックスフォームを作成
  2. 上記コードをダイアログを開くボタンなどにセット
  3. ダイアログボックスフォーム名を A) にセット
  4. ダイアログボックスに初期表示する値を B) に指定
  5. [OK]で閉じた時の処理を C) に記述

なお、今回はテンプレートコード掲載が目的ですので、フォーム作成手順などの詳細は割愛します。ご了承ください。

0 件のコメント:

コメントを投稿