Birt は 3 つの数値/数字タイプをサポートしています (例: データセットの出力列):
Integer
Decimal
Float
同時に、BIRT には 1 つ (はい! 1 つ!!!) の数値用の css 組み込み形式しかありません。つまり、たとえば int (日) と decimal (金額) がある場合、それらに組み込みの css スタイルを使用することはできません (独自に定義して各項目に適用します)。
さらに進みます。BIRT から Java クラスを呼び出し、いわゆるInteger
値を渡します。Javaで得られるものは何ですか? 正しいDouble
。本来のInteger
価値があるというのは、今ではそのレベルではありえない。
もちろん、場合によっては、値に基づいてデータ型を推測することもできます。例えば
public Object formatFromBirt(Object pObject){
if (pObject == null) return null;
...
if (pObject instanceof Double) {
// workaround for int as double (e.g. days in arrear in total)
LWDecimal dec = new LWDecimal((Double)pObject);
if (dec.getScale() == 0){
pObject = dec.getJavaDecimal().toBigInteger();
}
}
return formatObject(pObject);
}
私の大きな質問は - 皆さん、BIRT の数値型システムでの混乱をどのように処理していますか?