2025/09/01

ダイアログボックスと初期値の設定

前回は DialogBox メソッドで引数に文書を指定する方法を 2 つ紹介しました。既存の文書をヘルプのように表示する方法と新規文書を作成して表示する方法です。

後者は、ダイアログボックスとのインターフェースに新規文書を使うイメージですが、その活用の方法について補足します。


使いやすいダイアログを目指して

前回のプログラムでダイアログボックスを表示すると、入力項目は空っぽの状態となり、すべての項目を埋めていく必要があります。

これだとアプリとしては不便です。便利に使うためには、適切な初期値が必要です。


初期値を与える方法 ①

一番単純な方法は、ダイアログ用フォームのフィールドでデフォルト値の式をセットします。

今回のプログラムでは、新規作成した文書をダイアログに渡していたので、文書内にフィールドは存在しません。ですので、ダイアログを開くタイミングでフィールドが生成され、デフォルト値をセットする処理が実行されます。


初期値を与える方法 ②

少し複雑な処理(検索や演算)を行う場合、ダイアログ用フォームの QueryOpen で処理するという方法もあります。LotusScript で記述するので、自由度の高いコーディングが可能です。


初期値を与える方法 ③

新規作成した文書にフィールドを作ってからダイアログボックスを開くことでも初期値を与えることができます。

この方法では、ダイアログの呼び出し側で初期値をセットするので、呼び出し側の状況に応じた初期値が決定できます。よって、ダイアログを複数の用途で利用する場合に特におススメの方法といえます。

例えば、次のコードは、期間は今日から 30 日後、エリアは ”近畿” を初期値としています。

Sub Click(Source As Button)
         ・・・
   Set ndb = ns.CurrentDatabase
   Set nd = ndb.CreateDocument

   '初期値のセット
   nd.From = Today
   nd.To = Today + 30
   nd.Area = "近畿"


   If True = nuiw.DialogBox("dlgSearchCondition", True, True, , , , , "出力条件", nd) Then
      '条件を取得
      vFrom = nd.From(0)
          ・・・
End Sub

この方法であれば、”九州” を初期値にしたい場合でも、簡単に対応できますね。


0 件のコメント:

コメントを投稿