計算式・編集式にグローバル変数を使用する
グローバル変数は、1回の出力処理において、有効な文字型データのパラメーター値として定義できる変数です。
グローバル変数とその初期値を定義することで、複数のフォームで変数の値を共通して使用できます。
たとえば、自社名や自社住所などを帳票上に印刷するために、フォーム設計時に固定文字として直接値を定義している場合、自社名が変更になると、固定文字で自社名を出力している帳票を、すべて個別に変更する必要があります。
しかし、固定文字の代わりに自社名をあらわすグローバル変数を用いたフィールドを設定しておけば、グローバル変数の初期値を変更するだけで、すべての出力データを変更できます。
ここでは、ユーザーが定義したグローバル変数をフィールドに設定し、出力結果を確認するまでの手順を説明します。なお、グローバル変数をあらかじめ定義せずに、式の設定欄に直接入力することもできます。式の設定欄に直接入力する場合の書式については、「グローバル変数(編集関数)」を参照してください。
手順
グローバル変数とその初期値を定義する
計算式・編集式でグローバル変数を使用するために、まずグローバル変数を定義します。任意の変数をグローバル変数として設定できます。グローバル変数の初期値をXML様式ファイル内に登録するには、次の手順で行います。
ここでは、[編集式]ダイアログからグローバル変数を登録する例を説明します。
[編集式]ダイアログの[グローバル変数の設定]ボタンをクリックします。

[グローバル変数]ダイアログを表示して、[追加]ボタンをクリックします。

[変数追加]ダイアログで各項目を設定します。
ここでは、変数名を「$COMPANY$」、データを「帳票商事」、「初期値なし」を設定する例を用いて説明します。
設定が完了したら、[OK]ボタンをクリックします。

項目
説明
変数名
変数名を入力します。
「COMPANY」のように"$"で囲わずに変数名を入力してた場合も、前後に"$"が自動的に付加され「$COMPANY$」と登録されます。
データ
変数の初期値を任意に設定します。
データは内部で文字データとして扱われます。データを入力する際には、文字データを指定する場合でも、""(ダブルクォーテーション)でくくる必要はありません。 「"帳票商事"」のようにダブルクォーテーション付きの文字列としてデータを入力したい場合にのみ、ダブルクォーテーションでくくってください。
ここでは、「帳票商事」と入力します。
初期値なし
別のXML様式ファイルで定義された同じグローバル変数の初期値([データ]の値)を引き継ぐ場合に、オンにします。
なお引き継ぎの対象となるのは、このXML様式ファイルより前に出力対象となるXML様式ファイルのグローバル変数の初期値です。このXML様式ファイルより後に出力対象となるXML様式ファイルの初期値は、引き継げません。

リストに追加されたことを確認し、[OK]ボタンをクリックします。

参考
設定済みのグローバル変数を修正したい場合は、[修正]ボタンをクリックします。
ただし、修正時は変数名を変更できません。

設定済みのグローバル変数を削除したい場合は、[削除]ボタンをクリックします。
フィールドにグローバル変数を設定する
定義したグローバル変数を、フィールドの計算式・編集式に設定する方法について説明します。
ここでは、編集式にグローバル変数「$COMPANY$」を設定する例を用いて説明します。
[編集式]ダイアログの[グローバル変数の参照]ボタンをクリックします。

参考
定義されていないグローバル変数名を、式の設定欄に直接入力することも可能です。ただし、その場合は、グローバル変数の初期値を登録できません。初期値も登録しておきたい場合は、前項「グローバル変数とその初期値を定義する」に戻って操作してください。
XML様式ファイルに定義しているグローバル変数名が一覧で表示されます。
使用するグローバル変数名をダブルクリックします。

設定欄にグローバル変数が入力されます。
参考
グローバル変数を選択せずにリストを閉じたい場合は、[グローバル変数の参照]リスト右上の閉じるボタンをクリックします。
グローバル変数では、文字型データとして値が扱われます。
数値データとして扱うためには、VAL関数やNUMVAL関数を使用してデータを変換する関数を設定する必要があります。
設定例については、「グローバル変数(編集関数)」を参照してください。
グローバル変数による出力結果を確認する
編集式に指定したグローバル変数がどのように出力されるのかを確認する方法について説明します。
ここでは、編集式に「$COMPANY$+"御中"」を設定する例を説明します。
編集式に「$COMPANY$+"御中"」と入力します。
グローバル変数「$COMPANY$」は、[グローバル変数の参照]から入力すると、より確実です。
[結果の確認]ボタンをクリックします。

[確認]ボタンをクリックします。
グローバル変数より"帳票商事"を取得し、「御中」を付加したデータ「帳票商事御中」が表示されます。

[データ]欄には、[グローバル変数]ダイアログで設定した[データ]の値が表示されます。
参考
グローバル変数の[初期値なし]のオン/オフにかかわらず、[データ]が定義されている場合はその値が初期値として表示されます。
参考
結果の確認時には、グローバル変数の定義時に設定したデータ値に文字列としての""が付加されて表示されます。
たとえば、グローバル変数$ADDRESS$のデータとして「"東京都渋谷区"」とダブルクォーテーション付きの文字列が設定されている場合は、「""東京都渋谷区""」とダブルクォーテーション付きの文字列データとして表示されます。
そのため編集式に、「$ADDRESS$+"渋谷XX"」を設定した場合は、結果欄には、「""東京都渋谷区"渋谷XX"」と表示されます。「"東京都渋谷区渋谷XX"」とデータを取得したい場合は、グローバル変数のデータ値を入力する際に「東京都渋谷区」と文字列をダブルクォーテーションでくくらないようにしてください。

使用例
出荷伝票として複数のXML様式ファイル(FORM1からFORM3)を1回の帳票出力で出力する場合、XML様式ファイルの設計方法には、次の2つのパターンがあります。
パターン1: グローバル変数を使用しない場合
自社名や自社住所のように伝票内で値が固定のものは、固定文字として設定する。また、金額、単価、売価のデータは、各フィールドに流し込まれる値に対して、通貨レートの値を乗じた値とする。通貨レートの値は、ダミーフィールドを作成して取得する。

FORM1
表 1. フィールドの設定項目名
フィールド名
データ型
フィールドに流し込まれるデータ
計算式
編集式
社名
PRICE
数値
1000
PRICE*RATE
RATE(マスク設定)
数値
1.2
FORM2
表 2. フィールドの設定項目名
フィールド名
データ型
フィールドに流し込まれるデータ
計算式
編集式
単価
UNIT_PRICE
数値
500
UNIT_PRICE*RATE
RATE(マスク設定)
数値
1.2
FORM3
表 3. フィールドの設定項目名
フィールド名
データ型
フィールドに流し込まれるデータ
計算式
編集式
売価
SELLING_PRICE
数値
5000
SELLING_PRICE*RATE
RATE(マスク設定)
数値
1.2
パターン2: グローバル変数を使用する場合
自社名や自社住所のように伝票内で値が固定のものでも、固定文字ではなくフィールドを設定する。そのフィールドに計算式・編集式を使ってグローバル変数を指定する。また、通貨レートもグローバル変数として指定する。

FORM1
表 4. フィールドの設定項目名
フィールド名
データ型
フィールドに流し込まれるデータ
計算式
編集式
社名
C_NAME
文字
$COMPANY$
住所
C_ADD
文字
$ADDRESS$
金額
PRICE
数値
1000
PRICE*VAL($RATE$)
表 5. グローバル変数の設定変数名
データ
初期値なし
RATES
1.2
オフ
COMPANY
帳票商事
オフ
ADDRESS
東京都渋谷区渋谷×××
オフ
FORM2
表 6. フィールドの設定項目名
フィールド名
データ型
フィールドに流し込まれるデータ
計算式
編集式
社名
C_NAME
文字
$COMPANY$
住所
C_ADD
文字
$ADDRESS$
金額
UNIT_PRICE
数値
500
UNIT_PRICE*VAL($RATE$)
表 7. グローバル変数の設定変数名
データ
初期値なし
RATES
オン
COMPANY
オン
ADDRESS
オン
FORM3
表 8. フィールドの設定項目名
フィールド名
データ型
フィールドに流し込まれるデータ
計算式
編集式
社名
C_NAME
文字
$COMPANY$
住所
C_ADD
文字
$ADDRESS$
金額
SELLING_PRICE
数値
5000
SELLING_PRICE*VAL($RATE$)
表 9. グローバル変数の設定変数名
データ
初期値なし
RATES
オン
COMPANY
オン
ADDRESS
オン
参考
自社名や住所が変更になった場合、パターン1ではFORM1からFORM3のすべての固定文字を修正する必要がありますが、パターン2ではFORM1でグローバル変数の[データ]の値を修正するのみです。
また、換算率が変更になった場合も、パターン1ではデータファイルを修正する必要がありますが、パターン2ではFORM1でグローバル変数RATESの[データ]の値を修正するのみです。
出力結果
出力結果は、どちらの場合も同様です。
1ページ目

2ページ目

3ページ目
