1、SQL方面:
(1)、用DECODE函數解決除數為零的情況
? 具體語法:
? DECODE(參數,0,1,參數) ->DECODE(TAB1.A8,0,1,TAB1.A8)
(2)、保留小數方法:
CAST(num as number(18,6))-> 6代表小數的位數
? ? ? ? ? ? ? ? ? ? ? CAST((TAB1.a2)/decode(tab1.a8,0,1,tab1.a8) as number(18,6)
也可以用用ROUND()保留小數位。
2、代碼方面:
? ? ? ? 尤其是這個困擾了我好長時間(以后要尤其注意)
(1)、遇到報表中的動態字段的時候在生成列的方法里面寫rownum,然后用Map把對應的編碼(名稱)和添加的rownum相互對應(這樣動態的字段就變成了相應的固定字段)
? ? ? (在報表中的rs可以直接取根據字段的別名取獲得字段的值)
Map<String, Integer> ciMap = new HashMap<String, Integer>();
IRowSet rs1 = getCostItems_test(companyId, locale, filterContent,tblPreTreatData, filter);
try {
while (rs1.next()) {
ciMap.put(rs1.getString("ciNumber"), rs1.getInt("nums"));
}
} catch (SQLException e1) {
e1.printStackTrace();
}
? ? ? ?
? ? ? ?
? ? ? ??
(2)、凍結列
?? this.kDTable1.getViewManager().setFreezeView(-1, this.kDTable1.getColumn("dwzcb1").getColumnIndex());
(3)、F7控件樹形展示
? ? ? ? ? ??
?