数据表特殊字段在报表中的表示方法

报表是类EXCEL使用环境的报表开发工具,同EXCEL一样,对单元格的表示都是通过类似A1,B1这种方式。在实际的项目开发中,有时候会碰到数据库数据表的数据字段名也定义为了类似与A1,B1的格式。此情况下,报表模板表达式ds1.select(A1)的解析就会出现数据提取错误。


下面的小例子重现错误并提出解决办法


一:首先在数据库中创建一个table,命名为Test5,并将字段名命名为A1,B1,C1


CREATE TABLE Test5(A1 int ,B1 VARCHAR(10),C1 VARCHAR(10))


二:插入数据


INSERT INTO Test5 VALUES(1,'B1','C1')


INSERT INTO Test5 VALUES(2,'B2','C2')


INSERT INTO Test5 VALUES(3,'B2','C2')


三:创建报表模板,其数据集命名为ds1,表达式为:SELECT Test5.A1,Test5.B1,Test5.C1 FROM Test5


四:浏览效果

从上图可以看出ds1.select(A1)解析出错,查询出的数据并非数据表中的值,而是一个名为com.runqian.report4.model.engine.CSVariable@1e9b48b的对象。


结论:此种情况,如果用ds.select(字段名)的话,得到的是错误的对象


五:解决思路


快逸报表提供了一种代替数据集中字段名的表示方法,用ds1.select(#N)代表数据集中的某个字段,#N的N代表数据集中的第N个字段,我们可以用此方法把那些不好处理的字段替换查询出来。


举例说明SELECT Test5.A1,Test5.B1,Test5.C1 FROM Test5中#1代表第一个字段A1, #2代表第二个字段B1, #3代表第三个字段C1,依次类推


六:修改报表

七:正确的数据显示

总结:当遇到此类情况或者其他不方便直接表示的字段(如字段过长)时,我们在单元格表达式中都可以用#加数字来取代这些特殊字段。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值