入库成本与目标成本对比报表中我学到的东西

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控件树形展示

            

原文地址:https://www.cnblogs.com/ygzs007/p/9261972.html