スクリプトの記述方法・構文について説明します。
記述方法
オブジェクトと変数
演算子
条件分岐
繰り返し
命令の区切りは「;」(セミコロン)で表します。
短い命令はセミコロンでつなげて、複数の命令を1行に記述することができます。
スクリプト中で文字列を扱う場合はダブルクォーテーション(")で囲みます。
文字を扱う場合はシングルクォーテーション(')で囲みます。
STRING s; s = "abcdefg"; return s; |
次の特殊文字を値として使用する場合はエンサイン(\)を付けて記述します。
<特殊文字>
特殊文字 | 記述 |
---|---|
ダブルクォーテーション(") | \" |
シングルクォーテーション(') | \' |
改行コード | \n |
<例>
STRING s; s = "abcdefg\nあいうえお"; return s; |
スクリプトでは次のオブジェクトを値を代入する変数として使うことができます。
変数はあらかじめスクリプトの先頭で宣言しておく必要があります。
変数名には任意の名前を英単語(一部に数値を使うことは可能)を使って指定することができます。
ただし、定義済みの変数名、メソッド名、プロパティ名、TRUEやFALSEなど予約されている名前は使用できません。
<オブジェクト>
オブジェクト | 説明 |
---|---|
CHAR | 文字を管理するオブジェクトです。 |
DATA | データを管理するオブジェクトです。 |
DATE | 日時を管理するオブジェクトです。 |
GRAPH | グラフ用の文字列を生成するためのオブジェクトです。 |
IMAGE | 画像を管理するオブジェクトです。 直接使うことはありません。 |
ITEM | アイテムを管理するオブジェクトです。 |
NUMBER | 数値(double)を管理するオブジェクトです。 |
NUMBER_ARRAY | 数値の配列を管理するオブジェクトです。 |
SECTION | セクションオブジェクトを管理するオブジェクトです。 |
STRING | 文字列を管理するオブジェクトです。 |
STRING_ARRAY | 文字列の配列を管理するオブジェクトです。 |
<定義済のマクロ>
マクロ | 説明 |
---|---|
TRUE | NUMBER型の1を返します。 |
FALSE | NUMBER型の0を返します。 |
EMPTY | NUMBER型で欠損値を返します。 欠損値は演算時にゼロ(0)として扱われます。 |
<オブジェクト・変数を使う例>
STRING s; s = "abcdefg"; return s; |
計算や比較に利用するさまざまな演算子を使うことができます。
<算術演算子>
演算子 | 説明 | 例 | |
---|---|---|---|
+ | 2つの数値の和を求める(加算) 2つの文字列をつなげる |
a + b "a"+"b" |
|
- | 2つの数値の差を求める(減算) | a - b | |
* | 2つの数値の積を求める(乗算) | a * b | |
/ | 2つの数値で除算を行う(除算) | a / b | |
% | 2つの数値で除算し、余りを求める(余剰) | a % b | |
++ | 変数の値を1増やす(インクリメント) | a++ | |
-- | 変数の値を2減らす(デクリメント) | a-- |
<論理演算子>
演算子 | 説明 | 例 | |
---|---|---|---|
&& | 2つの値の論理積を求める(論理積) | ||
|| | 2つの値の論理和を求める(論理和) |
<比較演算子>
演算子 | 説明 | 例 | |
---|---|---|---|
< | 左辺値が右辺値未満のときTRUE | a < b | |
<= | 左辺値が右辺値以下のときTRUE | a <= b | |
> | 左辺値が右辺値より大きいときTRUE | a > b | |
>= | 左辺値が右辺値以上のときTRUE | a >= b | |
== | 左辺値と右辺値が同じときTRUE | a == b | |
!= | 左辺値と右辺値が異なるときTRUE | a != b |
<代入演算子>
演算子 | 説明 | 例 |
---|---|---|
= | 値を変数に代入 | a = 5 |
+= | 変数の値を加算する | a += 5 |
-= | 変数の値を減算する | a -= 5 |
*= | 変数の値を乗算する | a *= 5 |
/= | 変数の値を除算する | a /= 5 |
%= | 変数の値を除算し、余りを代入する | a %= 5 |
条件によって処理を分ける条件分岐の構文には、「if 〜 else 構文」があります。
if 文は、条件分岐の制御構文で条件がTRUEの場合に続く処理を実行します。
FALSEの場合は続く処理をスキップしelse文以降の処理を実行します。
else if ... のようにelse文の後に if 文を続けて、さらに条件を分岐させることも可能です。
処理が複数ある場合は、{ と } で囲みます。
※
条件の判定はTRUEかFALSEで行いますが、FALSEまたは0以外の値を指定した場合はTRUEと同じ結果となります。
<記述方法>
// if ( 条件式 ) 処理1 // if ( 条件式 ) 処理1 else 処理2 // if ( 条件式1 ) { 処理1 } else if ( 条件式2) { 処理2 } else { 処理3 } |
<例>
if (GetVarS("Var1") == "ON") { return TRUE; } else if (GetVarS("Var2") == "ON") { return TRUE; } return FALSE; |
処理を繰り返し実行する構文には、「for 構文」があります。
for 文は、処理を指定回数繰り返したいときに使用する構文です。
変数に初期値を設定し、条件がTRUE(FALSE以外)の間、変数の値を増減しながら処理を実行します。
変数の増減は、処理先頭に戻ったときに行われます。
最大繰り返し数、初期値、条件、変数の増減式は「 ; 」セミコロンで区切って記述します。
注意
「Wonderful Report」では無限ループを防ぐため、最大繰り返し数の指定が必要です。
<記述方法>
// for ( 最大繰り返し数 ; 初期値 ; 条件式 ; 変数の増減 ) 処理1 // for ( 最大繰り返し数 ; 初期値 ; 条件式 ; 変数の増減 ) { 処理 } |
<例>
DATA data; NUMBER ny,nvalue; data = GetData(); for(1000;ny = 0;ny < 5;ny++) { nvalue += Num(data.Get("Field1", ny)); } return nvalue; |