d4_orders.4gl

oninit

2007年02月09日 23:23

IBM Informix 4GL 7.32 に含まれている demo4 の日本語サンプルコードをコンパイルして動作させると、レポート出力結果の金額値出力部分に数値が表示されず、こんな感じになってしまうのに気づきました。

==== ここから (手を抜いてHTML化したので、単語間の空白が詰まってしまいました。ご了承ください。)

-------------------------------------------------------------------------------
# 品番 メーカ 品目名 数量 単価 単位 単位 説明 金 額

1 01 HRO 野球グローブ(軟 2 ******* 箱 10 個/ケース ***********

-------------------------------------------------------------------------------
合 計: ***********
送 料: ***********
-----------
総合計:***********

==== ここまで

調べてみると、d4_orders.4glに、Informix 4GL version 4の日本語化仕様に沿った記述が入っていました。このままではversion 7 でコンパイルした場合に正しく動作しないですね。

version 7.32.xC3までの製品に含まれる、日本語版のd4_orders.4gl では、レポート関数内で、金額型数値の書式指定文字列に、"\" ( 円マーク ) を使用していますが、これは、version 7 では "$" を使用すべきですね。

正しく書式指定文字列を直してあげたら、こんな感じに、無事レポート出力が正常になりました。

======= ここから

-------------------------------------------------------------------------------
# 品番 メーカ 品目名 数量 単価 単位 単位 説明 金 額

1 01 HRO 野球グローブ(軟 2 \75000 箱 10 個/ケース \150000

-------------------------------------------------------------------------------
合 計: \150000
送 料: \5250
-----------
総合計:\155250

======= ここまで


以下、修正内容です。

( ujis 版のソースコード
% cd $INFORMIXDIR/demo/fgl/ja_jp/e007
% diff d4_orders.4gl ~/fixed/d4_orders-for-v7.4gl
464c464
< USING "\\\\\\\\\\\\\\"," ",x.最小販売単位," ",x.単位内容
," ";
---
> USING "$$$$$$$"," ",x.最小販売単位," ",x.単位内容," ";
466c466
< USING "\\\\\\\\\\\\\\\\\\\\\\"
---
> USING "$$$$$$$$$$$"
473c473
< PRINT COLUMN 60, " 合 計: ",calc_total USING
"\\\\\\\\\\\\\\\\\\\\\\"
---
> PRINT COLUMN 60, " 合 計: ",calc_total USING "$$$$$$$$$$$"
476c476
< x.運賃 USING "\\\\\\\\\\\\\\\\\\\\\\"
---
> x.運賃 USING "$$$$$$$$$$$"
479c479
< PRINT COLUMN 60, " 総合計: ",calc_total USING
"\\\\\\\\\\\\\\\\\\\\\\"
---
> PRINT COLUMN 60, " 総合計: ",calc_total USING "$$$$$$$$$$$"
円マークもバックスラッシュとして表示されてしまいましたね。たびたびの手抜き入力済みません。
関連記事