Skip to main content

5-4-10 グローバル変数

グローバル変数は、VrInit~VrQuit関数までの間、有効な文字型データのパラメーター値として定義できる変数です。

グローバル変数を定義することで、上位アプリケーションから出力されたデータを、複数のフォーム間で共通して使用することが可能です。

例えば、自社名や自社住所などを帳票上に印刷するために、フォーム設計時に固定文字として直接値を定義している場合は、自社名が変更になると、固定文字で自社名を出力している帳票は、すべて個別に変更しなければなりません。

しかし、固定文字の代わりに、自社名をあらわすグローバル変数を用いたフィールドを設定しておけば、上位アプリケーション側からグローバル変数に与える変数値を変更するだけで、すべての出力データが変更されるため、XML様式ファイルの修正を行う必要はありません。

グローバル変数とその初期値を定義する

計算式・編集式でグローバル変数を使用するために、まずグローバル変数を定義します。任意の変数をグローバル変数として設定できます。グローバル変数の初期値をXML様式ファイル内に登録するには、次の手順で行います。

ここでは、[編集式]ダイアログからグローバル変数を登録する例を説明します。

  1. 編集式]ダイアログの[グローバル変数の設定]ボタンをクリックします。

    swd92user_p323.png

    編集式]ダイアログ

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

    swd92user_p324.png

    グローバル変数]ダイアログ

  3. 変数追加]ダイアログで各項目を設定します。

    ここでは、変数名を「$COMPANY$」、データを「帳票商事」、「初期値なし」を設定する例を用いて説明します。

    設定が完了したら、[OK]ボタンをクリックします。

    swd92user_p325.png

    変数名とデータを指定する

    変数名

    変数名を入力します。

    「COMPANY」のように"$"で囲わずに変数名を入力しても"$"が前後に自動的に付加され「$COMPANY$」と登録されます。

    データ

    変数の初期値を任意に設定します。

    データは内部で文字データとして扱われます。データを入力する際には、文字データを指定する場合でも、""(ダブルクォーテーション)で括る必要はありません。

    「"帳票商事"」のようにダブルクォーテーション付の文字列として、データを入力したい場合にのみダブルクォーテーションで括るようにしてください。

    ここでは、「帳票商事」と入力します。

    初期値なし

    プログラムで印刷するときの初期値として使用されます。

    次の場合にチェックを付けます。

    • プログラムで値を動的に変更したい場合

    • 同じグローバル変数名で異なる値を登録したXML様式ファイルを使用して出力する際に、1つ目のXML様式ファイル内で登録されたグローバル変数の値を、2つ目以降のXML様式ファイルにも引き継いで使用したい場合

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

    swd92user_p326.png

    グローバル変数]ダイアログ

    参考

    • 設定済みのグローバル変数を修正したい場合は、[修正]ボタンをクリックします。

      ただし、修正時は変数名を変更できません。

    swd92user_p327.png

    変数修正]ダイアログ

    • 設定済みのグローバル変数を削除したい場合は、[削除]ボタンをクリックします。

フィールドにグローバル変数を設定する

定義したグローバル変数を、フィールドの計算式・編集式に設定する方法について説明します。

ここでは、編集式にグローバル変数「$COMPANY$」を設定する例を説明します。

  1. 編集式]ダイアログの[グローバル変数の参照]ボタンをクリックします。

    swd92user_p328.png

    編集式]ダイアログ

    参考

    定義されていないグローバル変数名を、式の設定欄に直接入力することもできます。ただし、その場合は、グローバル変数の初期値を登録できません。初期値も登録しておきたい場合は、前項「グローバル変数とその初期値を定義する」に戻って操作してください。

  2. XML様式ファイルに定義しているグローバル変数名が一覧で表示されます。

    使用するグローバル変数名を選択して、[式の入力]ボタンをクリックするか、グローバル変数名をダブルクリックします。

    選択したグローバル変数が入力されます。

    swd92user_p329.png

    定義したグローバル変数が表示される

    参考

    グローバル変数では、値は文字型データとして扱われます。

    数値データとして扱うためには、VAL関数やNUMVAL関数を使用して、データを変換する関数を設定する必要があります。

    設定例については、本項の「定義されていないグローバル変数名の指定($グローバル変数名$)」を参照してください。

グローバル変数による出力結果を確認する

編集式に指定したグローバル変数がどのように出力されるのかを確認する方法について説明します。

ここでは、編集式に「$COMPANY$+"御中"」を設定する例を説明します。

  1. 編集式に「$COMPANY$+"御中"」と入力します。

    グローバル変数「$COMPANY$」は[グローバル変数の参照]から入力すると、より確実です。

  2. 結果の確認]ボタンをクリックします。

    swd92user_p330.png

    編集式]ダイアログ

  3. 確認]ボタンをクリックします。

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

    swd92user_p331.png

    確認結果を表示する

    データ]欄には、[グローバル変数]ダイアログで設定した[データ]の値が表示されます。

    参考

    グローバル変数の初期値あり/なしの設定にかかわらず、[データ]が定義されている場合はその値が初期値として表示されます。

    初期値あり/なしの設定は、実際にプログラムから実行する際にのみ有効です。

    参考

    結果の確認時には、グローバル変数の定義時に設定したデータに文字列としての""が付加されて表示されます。

    例えば、グローバル変数$ADDRESS$のデータとして「"東京都渋谷区"」とダブルクォーテーション付の文字列が設定されている場合は、「""東京都渋谷区""」とダブルクォーテーション付きの文字列データとして表示されます。

    そのため編集式に、「$ADDRESS$+"渋谷X-X-X"」を設定した場合は、結果欄には、「""東京都渋谷区"渋谷X-X-X"」と表示されます。「"東京都渋谷区渋谷X-X-X"」とデータを取得したい場合は、グローバル変数のデータを入力する際に「東京都渋谷区」と文字列をダブルクォーテーションで括らないようにしてください。

    swd92user_p332.png

定義されていないグローバル変数名の指定($グローバル変数名$)

定義されていないグローバル変数名を、式の設定欄に直接入力することも可能です。

ただし、グローバル変数の初期値は登録できません。

また、式の設定欄に直接入力したグローバル変数名は、グローバル変数のリストには表示されません。

書式

$グローバル変数名$

設定

フィールドの計算式、または編集式で、変数名を「$」で囲って定義します。

グローバル変数の初期値データを設定し、そのデータ値をXML様式ファイル内に保存したい場合は、[グローバル変数の設定]ボタンから、変数を定義する必要があります。

使用例

出荷伝票として複数のXML様式ファイル(FORM1からFORM3)を1つのスプールに出力する場合は、XML様式ファイルの設計方法には、次の2つのパターンがあります。

  • パターン1:グローバル変数を使用しない場合

    自社名、自社住所など、伝票内で値が固定のものは、固定文字として設定する。また、金額、単価、売価のデータは、各フィールドに入ってくる値に対して、通貨レートの値を乗じた値とする。 通貨レートの値は、ダミーフィールドを作成して取得する。

    swd92user_i119.png

FORM1

項目名

フィールド名

データ型

計算式

編集式

金額

PRICE

数値

PRICE*RATE

RATE(マスク設定)

数値

FORM2

項目名

フィールド名

データ型

計算式

編集式

単価

UNIT_PRICE

数値

UNIT_PRICE*RATE

RATE(マスク設定)

数値

FORM3

項目名

フィールド名

データ型

計算式

編集式

売価

SELLING_PRICE

数値

SELLING_PRICE*RATE

RATE(マスク設定)

数値

  • パターン2:グローバル変数を使用する場合

    自社名と自社住所など、伝票内で値が固定のものでも、固定文字ではなくフィールドを設定する。そのフィールドに計算式・編集式を使ってグローバル変数を指定する。また通貨レートもグローバル変数として指定する。

    swd92user_i120.png

FORM1

項目名

フィールド名

データ型

計算式

編集式

社名

C_NAME

文字

$COMPANY$

住所

C_ADD

文字

$ADDRESS$

金額

PRICE

数値

PRICE*VAL($RATE$)

FORM2

項目名

フィールド名

データ型

計算式

編集式

社名

C_NAME

文字

$COMPANY$

住所

C_ADD

文字

$ADDRESS$

単価

UNIT_PRICE

数値

UNIT_PRICE*VAL($RATE$)

FORM3

項目名

フィールド名

データ型

計算式

編集式

社名

C_NAME

文字

$COMPANY$

住所

C_ADD

文字

$ADDRESS$

売価

SELLING_PRICE

数値

SELLING_PRICE*VAL($RATE$)

各アイテムのプロパティに設定する値

参考

グローバル変数では、値は文字型データとして扱われます。

数値データとして扱うためには、VAL関数NUMVAL関数を使用して、データを変換する関数を設定する必要があります(上図パターン2の表を参考)。

グローバル変数を使用する場合のプログラムの違いは、次のとおりです。

印刷結果は、どちらの場合も同じになります。

パターン1:グローバル変数を使用しない場合

VrInit()


VrSetForm("FORM1",1)
VrsOut("PRICE","1000")
VrsOut("RATE","1.2")
・・・
VrEndPage()

VrSetForm("FORM2",1)
VrsOut("UNIT_PRICE","500")
VrsOut("RATE","1.2")
・・・
VrEndPage()

VrSetForm("FORM3",1)
VrsOut("SELLING_PRICE","5000")
VrsOut("RATE","1.2")
・・・
VrEndPage()
VrQuit()

パターン2:グローバル変数を使用する場合

VrInit()
VrsOut("$RATE$","1.2")
VrsOut("$COMPANY$","帳票商事")
VrsOut("$ADDRESS$","東京都渋谷区渋谷×××")
VrSetForm("FORM1",1)
VrsOut("PRICE","1000")
・・・

VrEndPage()

VrSetForm("FORM2",1)
VrsOut("UNIT_PRICE","500")

・・・
VrEndPage()

VrSetForm("FORM3",1)
VrsOut("SELLING_PRICE","5000")

・・・
VrEndPage()
VrQuit()

参考

自社名や住所が変更になった場合は、青色の箇所の修正が必要となります。

換算率が変更になった場合は、 赤色の箇所の修正が必要となります。

この例からもわかるように、グローバル変数を使用することで帳票移行処理時の作業工数を削減することが可能になります。

出力結果

出力結果は、どちらの場合も同様です。

1ページ目

swd92user_i121.png

2ページ目

swd92user_i122.png

3ページ目

swd92user_i123.png