一時変数

一時変数は、式の中だけに存在します。有効範囲はその式です。式内で割り当てられた属性以外は持ちません。

一時変数を作成する構文は次のとおりです。

variableName := value

変数は、等式の右辺にある値の型を使用します。値はどのようなフィールド型でも Boolean 型でもかまいません。

Boolean データ型は、特定の @関数が返す型で、1 (True) か 0 (False) の値を持っています。

String データ型の変数に格納できるのは、2,048 文字までです。それより長いテキストを処理するには、複数の変数を連結します。例えば、3,400 文字のテキストブロックに相当する変数「Source」を設定する代わりに、前半の 1,700 文字のテキストブロックに相当する変数「Source1」と後半の 1,700 文字に相当する変数「Source2」を設定します。変数は次のように連結します。

@Prompt([OK];"Length";@Text(@Length((Source1+Source2))))

等式の左辺に変数名を使用すると、前に予約語 FIELD を付けない限り、一時変数になります。

次の例は、一時変数をさまざまに使用して、当月の月名を [MonthName] というフィールドに収めます。手順は次のとおりです。

  1. 現在の日付を一時変数 date に収めます。
  2. date から月を抽出し、月の数字を示す文字列 month に変換します。
  3. 値 1 から 12 を使用して文字列リスト「nMonths」を作成します。
  4. 値 January から December を使用して文字列リスト「months」を作成します。
  5. 当月を示す数値を月の名前に変換します。
date := @Created;
month := @Text(@Month(date));
nMonths := "1" : "2" : "3" : "4" : "5" : "6" : "7" : "8" : "9" : "10" : "11" : "12";
months := "January" : "February" : "March" : "April" : "May" : "June" : "July" : "August" : "September" : "October" : "November" : "December";
FIELD MonthName := @Replace(month; nMonths; months)

変数には、式が進むにつれて新しい値を割り当てることができます。

注: 変数の再割り当ては Release 6 で新しく追加されました。以前のリリースでは、変数の再割り当てをしようとするとエラーになりました。

次の例は、@While ループを繰り返すたびに一時変数 n の再割り当てを行います。

n := 1;
@While(n <= @Elements(Categories);
   @Prompt([OK]; "Category " + @Text(n); Categories[n]);
   n := n + 1
)