伯特支持3個/數字類型的(例如,對於在數據集中輸出列):BIRT:Number類型(格式)地獄
Integer
Decimal
Float
在同時,BIRT擁有唯一的1(yes!ONE !!!)css數字內置格式。這意味着如果你有,例如int(天)和十進制(金額),你不能使用內置的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號碼類型系統所有黑金爛攤子?