4-1-1 計算式・編集式の処理の違い

計算式・編集式では、他のフィールド名を指定することで、指定したフィールドに保存されているフィールドバッファの値を参照できます。

  • 計算式で指定した場合
    式の結果によりフィールドバッファの値を置き換えます。
  • 編集式で指定した場合
    式の結果によってフィールドバッファの値を置き換えません。
注意
  • 編集式で指定した式の演算結果は、他のフィールドからは参照できません。
  • 次の設計関数を使用する場合は、必ず編集式で指定します。
    • ページ関数 :PAGE
    • システム変数 :_PAGE_CNT、_PREV_P、_NEXT_P、_PAGE_GROUP_COUNT、_TOTAL_PAGE_COUNT、_SERIAL_PAGE_COUNT、_TOTAL_PAGE_CNT
    • 印刷書式関数 :FORMAT、FORMAT2
    • P系統計関数 :PSUM、PAVG、PMIN、PMAX、PCOUNT
  • 編集式は、フィールドのデータ型に関係なく、演算結果を文字データとして指定する必要があります。

以下、フィールドのデータ型の違いによる計算式と編集式の違いについて説明します。

文字型フィールドの場合

文字型フィールドの場合の計算式と編集式の違いについて、次のようなフィールドが作成されている場合を例に説明します。

フィールド名 データ 計算式 編集式 フィールドへの出力結果
A 東京 名古屋   名古屋
B 大阪   九州 九州
C   A   名古屋
D     B 大阪
  1. データをフィールドバッファに格納

    データを各々のフィールドのフィールドバッファに格納します。

    • A :東京
    • B :大阪
    • C :""
      初期値として""(空文字列)を格納
    • D :""
      初期値として""(空文字列)を格納
  2. 計算式の結果をフィールドバッファに格納

    計算式を実行し、取得した結果をフィールドバッファに格納します。

    • A :名古屋
      「東京」から「名古屋」へフィールドバッファの値を置き換え
    • B :大阪
    • C :名古屋
      「""(空文字列)」から「名古屋」へフィールドバッファの値を置き換え
    • D :""
      初期値として""(空文字列)を格納
  3.  フィールドバッファの値を元に編集式を実行

    計算式によって更新されたフィールドバッファの値を元に、編集式を実行します。
    編集式によって取得した結果を印刷データとして出力します。

    • A :名古屋
    • B :九州
      編集式で九州が指定されているため、値を「九州」に変更して出力
    • C :名古屋
    • D :大阪
      編集式でBに格納されているフィールドバッファの値 「大阪」を参照

数値型フィールドの場合

数値型フィールドの場合の計算式と編集式に違いについて、次のようなフィールドが作成されている場合を例に説明します。

フィールド名 データ 計算式 編集式 フィールドへの出力結果
A 10 100   100
B 20   FORMAT(200,"ZZZZZ9") 200
C 0 A   100
D 0   FORMAT(B,"ZZZZZ9") 20
  1. データをフィールドバッファに格納

    データを各々のフィールドのフィールドバッファに格納します。

    • A :10
    • B :20
    • C :0
      初期値として0(ゼロ)を格納
    • D :0
      初期値として0(ゼロ)を格納
  2. 計算式の結果をフィールドバッファに格納

    計算式を実行し、取得した結果をフィールドバッファに格納します。

    • A :100
      「10」から「100」にフィールドバッファの値を置き換え
    • B :20
    • C :100
      置き換え後のAのフィールドバッファの値 「100」を参照
    • D :0
  3. フィールドバッファの値を元に編集式を実行

    計算式によって更新されたフィールドバッファの値を元に、編集式を実行します。
    編集式によって取得した結果を印刷データとして出力します。

    • A :100
    • B :200
      編集式で200が指定されているため、値を「200」に変更して出力
    • C :100
    • D :20
      編集式でBに格納されているフィールドバッファの値 「20」を参照