2023/04/26

@Prompt の使い方

@関数でメッセージボックスを表示できる @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)};
  ・・・


1 件のコメント:

  1. 私は「@Prompt([ChooseDatabase];"";"")」もよく使います・・・

    返信削除