在wabacus框架中实现交叉报表

<col column="param_name" staticondition= "param_name='#data#'" dataset="e_yc_history">
                <statistic id="static1" type="sum" column="param_value" valuestyleproperty="align='center'"></statistic>
                <format><!-- 对动态表头数据进行格式化 -->
                        <imports>
                               <import>java.util.*</import>
                         </imports>
                        <value>
                            <![CDATA[
                                if(mDynamicColData!=null&&mDynamicColData.size()>0)
                                {
                                    Iterator itKeys=mDynamicColData.keySet().iterator();
                                    while(itKeys.hasNext())
                                    {
                                        String key = (String)itKeys.next();
                                        String value = (String)mDynamicColData.get(key);
                                        if(value!=null&&!value.trim().equals(""))
                                             mDynamicColData.put(key,value);
                                    }
                                }
                            ]]>
                        </value>
                 </format>
                 </col>
交叉报表在查询的时候要注意,如果动态列是汉字或者是字符串的话要在把#data#用单引号括起来,这是因为框架在拼凑sql 语句的时候如果是数字的话不会影响的,但如果是汉字或者字符串的话就会出错的。下面看个例子:
动态列的SQL语句是:select guid,sum(case when param_name='温度' then param_value  end ) as column_10000 from tb; 就是找出动态列是温度的值,如果在#data#前面不加‘’单引号的话就会变成select guid,sum(case when param_name=温度 then param_value  end ) as column_10000 from tb;所以就会出错的。
注:上面的<statistic>和<format>标签都是针对<col>标签的,所以要放在<col>标签里面,也就是
<col>
<statistic></statistic>
<format></format>.
</col>

 

转载于:https://my.oschina.net/u/1177875/blog/173594

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值