数据表特殊字段在报表中的表示方法
来源:互联网 发布:windows 引导修复 编辑:程序博客网 时间:2024/05/18 00:36
报表是类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,依次类推
六:修改报表
七:正确的数据显示
总结:当遇到此类情况或者其他不方便直接表示的字段(如字段过长)时,我们在单元格表达式中都可以用#加数字来取代这些特殊字段。
下面的小例子重现错误并提出解决办法
一:首先在数据库中创建一个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
- 数据表特殊字段在报表中的表示方法
- 更新数据表中的字段
- 键盘中一些特殊键在SWT中的常量表示
- HTML特殊字符在源码中的表示总结
- HDLC中的特殊字段
- MySQL数据表中的字段操作
- 数据在计算机中的表示方法
- Access数据表字段类型与建表示例
- 数据表/字段名称和数据库关键字冲突在Hibernate映射中的处理办法
- 挂载报表中初始化报表临时数据表的方法
- T-SQL分割数据表中的字段
- 修改mysql数据表中的字段属性
- MySQL修改数据表中的字段名
- HTML当中特殊字符的表示 (特别是sql运算符在xml和html中的表示)
- 在已有数据表增加字段
- 数据表命名和字段命名方法
- MSSQL数据表指定字段复制方法
- 导出oracle数据表及字段方法
- 1619-7 张良 十二月十号总结 [连续第七十一天]
- 【工具】文献分析工具histcite的简单使用
- 判断一个字符串是否为另外一个字符串旋转之后的字符串
- 【LeetCode】390. Elimination Game
- 1482.奖学金
- 数据表特殊字段在报表中的表示方法
- Qt之多线程(五)
- 为什么spring注入接口正确而注入接口的实现类错误?
- 使用Py2Exe for Python3创建自己的exe程序
- [react native]学习日志---es6语法学习
- Unix网络编程之一
- Qt之多线程(六)
- position
- 郝斌的C语言基础 163 冒泡排序