4-4-7 印刷書式関数

関数名
機能
FORMAT/ FORMAT2 指定した書式でデータを編集し、印刷します。

FORMAT/ FORMAT2

機能 指定した書式でデータを編集し、印刷します。
書式 FORMAT(数値or数値型フィールド名,書式文字列)
FORMAT2(文字型フィールド名or数値型フィールド名,書式文字列)
設定
  1. 「数値or数値型フィールド名」(FORMAT2の場合は「文字型フィールド名or数値型フィールド名」)に、編集したいデータが入ってくるフィールド名を指定します。
  2. 「書式文字列」に編集方法を定義します。
FORMAT関数とFORMAT2関数の違い

印刷書式関数であるFORMAT関数とFORMAT2関数では、編集式の設定によりデータの印刷結果が異なります。

  • FORMAT関数で生成した場合
    データ FORMATの設定
    ZZZZZZ ZZZZZ9 999999
    100 100 100 000100
    0   0 000000
    NULL   0 000000

    Z: ゼロサプレスする(有効数字ではないデータをスペースに置き換えます)
    9: ゼロサプレスしない(有効数字ではないデータを0に置き換えます)

    FORMAT関数では、0とNullの判断ができません。したがって、データが送られてこない場合でも、0が出力されます。

  • FORMAT2関数で生成した場合(文字型で設定します)
    データ FORMAT2の設定
    ZZZZZZ ZZZZZ9 999999
    100 100 100 000100
    0   0 000000
    NULL      

    FORMAT2関数では、0とNullの区別が行われます。
    そのため「ZZZZZ9」と設定しても、文字型フィールドでデータが送られてこない場合は""(空文字列)が出力されます。
    数値型フィールドで設定した場合は、0が出力されます。

編集方法 「nZZZ,ZZZ,ZZ9.99m」
  • n(先頭付加文字)
    マイナス(-)データ時に「」を表示します。
    マイナス(-)データ時に「」を表示します。
    (「日本語」、「中国語簡体字」、「中国語繁体字」のときに表示されます)
    (「英語」、「フランス語」、「チェコ語」のときに表示されます)
    (「韓国語」のときに表示されます)
    (「タイ語」のときに表示されます)
    $
    その他任意の文字
  • 編集文字
    Z ゼロサプレスする
    9 ゼロサプレスしない
    , カンマを挿入する(カンマ編集)(「フランス語」、「チェコ語」のときはノーブレークスペースが挿入されます)
    . 小数点位置(小数点を印刷する)(「フランス語」、「チェコ語」のときはカンマが挿入されます)
    v 仮想小数点位置(小数点を印刷しない)
  • m(最語尾付加文字)
    %
    その他任意の文字(円など)
参考
  • 先頭付加文字の右隣から数値データが印刷されますが、FORMAT2関数のデフォルトでは、マイナス記号()の位置は固定で、実際のデータのみが右寄せで出力されます。
    • FORMAT関数の場合: "   1"
    • FORMAT2関数の場合: "   1"
  • 任意の文字を加える場合は、数値データも含めてフィールドの印字桁数以内に収める必要があります。印字桁数を超えた部分は、表示されません。
使用例
  • 例1 数値データ-123.456がデータとして入力された数値型フィールド「I2」で、付加記号としてを指定して出力する場合
    • FORMATの場合
      • 編集式 FORMAT(I2,"ZZ,ZZ9.99")
      • 印刷結果 "XX123.45"(Xは半角スペース)
    • FORMAT2の場合
      • 編集式 FORMAT2(I2,"ZZ,ZZ9.99")
      • 印刷結果 "XX123.45"(Xは半角スペース))
  • 例2 何も値が入力されていない文字型フィールド「S1」値を編集して出力する場合
    • FORMATの場合
      • 編集式 FORMAT(S1,"ZZ,ZZ9.99")
      • フィールドバッファ ""
      • 印刷結果 "XXXXX0.00"(Xは半角スペース)
    • FORMAT2の場合
      • 編集式 FORMAT2(S1,"ZZ,ZZ9.99")
      • フィールドバッファ ""
      • 印刷結果 ""
参考

例2では、出力先が文字型フィールドのため、初期値としてフィールドバッファの値に、""(空文字列)が格納されます。FORMAT関数が指定されている場合は、書式に従い0を表示します。FORMAT2関数が指定されている場合は、値を""のまま出力します。

  • 例3 何も値が入力されていない数値型フィールド「I1」で、値を編集して出力する場合
    • FORMATの場合
      • 編集式 FORMAT(I1,"ZZ,ZZ9.99")
      • フィールドバッファ 0
      • 印刷結果 "XXXXX0.00"(Xは半角スペース)
    • FORMAT2の場合
      • 編集式 FORMAT2(I1,"ZZ,ZZ9.99")
      • フィールドバッファ 0
      • 印刷結果 "XXXXX0.00"(Xは半角スペース)
参考

例3では、出力先が数値型フィールドのため、初期値としてフィールドバッファの値に、0(ゼロ)が格納されます。FORMAT関数が指定されている場合は、書式に従い0を表示します。FORMAT2関数が指定されている場合でも、書式に従い0を表示します。