@関数でメッセージボックスを表示できる @Prompt。よく使いますよね。
LotusScript の MessageBox と同様、引数や使い方が多岐にわたるので、覚えるのが難しいです。ダイアログリストフィールドのようにキーワードから選択する画面も作成できるので、MessageBox 以上に複雑ですね。
ということで、今回は、@Prompt でよく使うパターンだけを抽出してサンプルコード付きでまとめてみました。
メッセージ表示
まずは、メッセージを表示するだけの単純なパターンです。使用するキーワードは、[Ok] です。ウィンドウタイトルとメッセージだけの引数ですので、わかりやすいですね。
REM {パラメータセット}; xTitle := "メッセージ表示"; xMessage := "[OK]ボタンだけのメッセージボックスです。"; REM {Prompt表示}; @Prompt([Ok]; xTitle; xMessage) |
確認
続いては、処理の実行を確認する場合などに使う、[はい][いいえ]ボタンのあるパターンです。使用するキーワードは、[YesNo] もしくは [YesNoCancel] です。
以下のサンプルは、[YesNoCancel] で記述しています。この形式の場合に限り、[キャンセル]ボタンをクリックした場合、-1 が戻り値になります。それを検知したら、式を強制終了させています。
REM {パラメータセット}; xTitle := "確認"; xMessage := "実行してよろしいですか?"; REM {Prompt表示}; xReturn := @Prompt([YesNoCancel]; xTitle; xMessage); REM {[キャンセル]の時は処理を抜ける}; @If(xReturn = -1; @Return(""); @Success); REM {実行する処理を記述}; @If(xReturn = @True; @Do( REM {[はい]の場合の処理を記述}; ・・・ ); @Do( REM {[いいえ]の場合の処理を記述}; ・・・ ) ) |
入力
次は、文字列を入力する場合です。LotusScript の InputBox に相当します。使用するキーワードは、[OkCancelEdit] です。入力した文字列を返します。
[YesNoCancel] 以外の場合、[キャンセル]ボタンをクリックするとそこで、式の実行が終了します。ですので、以下のサンプルでも[キャンセル]ボタンの判定はしていません。
REM {パラメータセット}; xTitle := "入力"; xMessage := "入力してください。"; REM {Prompt表示}; xReturn := @Prompt([OkCancelEdit]; xTitle; xMessage; ""); REM {[キャンセル]の時は以下は実行しない(自動で式の評価終了)}; REM {入力した文字(xReturn)の処理}; ・・・ |
選択
選択肢の一覧から、選択するパターンです。
REM {パラメータセット}; xTitle := "選択"; xMessage := "選択してください。"; xOptions := "選択肢1":"選択肢2":"選択肢3"; xDefault := @Subset(xOptions; 1); REM {Prompt表示}; xReturn := @Prompt([OkCancelList]; xTitle; xMessage; xDefault; xOptions); REM {[キャンセル]の時は以下は実行しない(自動で式の評価終了)}; REM {選択時のの処理(xReturn)}; ・・・ |
私は「@Prompt([ChooseDatabase];"";"")」もよく使います・・・
返信削除