通貨端数表示制御のカスタマイズの必要性
iDempiere(ADempiereも)の標準機能では、通貨の表示は小数点第2位まで表示されます。これは通貨がドルやユーロであれば問題ないのですが、円の場合、100円が'100.00'と表示されて、日本人にとっては違和感がありますし、見にくいのも事実だと思います。グローバルに考えた場合、この違和感は日本人だけではないと思います。小数点第2位まである通貨を使用している国の人以外は、違和感があるのではないでしょうか?
そこで、通貨の小数点以下の端数表示の制御を「通貨精度(Currency Precision)」という情報をもとに制御できるようにカスタマイズしました。「通貨精度(Currency Precision)」という情報は通貨マスタにもともと保持されていますので、Compiere Disitiributionとしてもいつかは実装しようと考えていた機能なのではないかと思います。
カスタマイズの仕様
仕様としては基本原則として「フォーマットパターン(Format Pattern)」が登録されていない場合は、「通貨精度(Currency Precision)」が画面表示上適用されます。
通貨精度は、標準精度(StdPrecision)と原価計算精度(CostingPrecision)の2種類あります。
- リファレンスが"Amount"の時は、標準精度が適用されます。
- リファレンスが"Cost+Prices"の場合は、原価計算精度が適用されます。
【補足説明】WindowでリファレンスがCost+Pricesの場合に、原価計算精度が適用されるようになりました。
2016年9月5日の更新(committed 07be176)により、WindowでリファレンスがCost+Pricesの場合に、原価計算精度が適用されるようになりました。
「フォーマットパターン(Format Pattern)」は、データの表示形式を自分の好みに合わせてある程度変える事ができる機能で、Javaの仕様をそのまま引き継いだ設定を行います。「フォーマットパターン(Format Pattern)」が登録されている場合は、「通貨精度(Currency Precision)」より優先して「フォーマットパターン」の形式でデータが表示されます。
参考資料
上記の参考資料はiDempiereのリポジトリへも反映して頂けるように2013年6月17日に改善要求を提案した時のものです(IDEMPIERE-1061)。
残念ながら、iDempiereコミュニティーとしては、多くの賛同を得られずコアに機能として追加して頂く事はできませんでしたが、プラグインとして公開しましたのでご利用頂ければと思います。