一時変数は、式の中だけに存在します。有効範囲はその式です。式内で割り当てられた属性以外は持ちません。
一時変数を作成する構文は次のとおりです。
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] というフィールドに収めます。手順は次のとおりです。
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)
変数には、式が進むにつれて新しい値を割り当てることができます。
次の例は、@While ループを繰り返すたびに一時変数 n の再割り当てを行います。
n := 1;
@While(n <= @Elements(Categories);
@Prompt([OK]; "Category " + @Text(n); Categories[n]);
n := n + 1
)