FineReport报表填报主键空值问题
来源:互联网 发布:杭州理论培训网络授课 编辑:程序博客网 时间:2024/06/06 09:23
1. 问题描述
在使用Web报表软件FineReport制作填报模板时可能会遇到以下问题:数据库中的A字段为主键,在定义报表填报属性时设置别的字段为主键,数据库中有一条记录是某个报表主键对应的字段值为空,当对这条记录进行更新时,却进行了插入提交。
注:在Java报表软件FineReport中,报表填报属性设置主键,即判断单元格中的值与数据库中是否相同,若有相同的则进行更新,若没有则进行插入。
2. 原因
当有空值时,那么在执行update语句时则where条件后面是“某字段=null”,而在填报属性中若where 某字段=null时,update语句会失效然后便会转向insert语句,这样就造成了插入重复数据的现象。
3. 解决方案
首先要知道可能为空的报表主键对应数据库中的数据类型,然后在报表填报属性设置里面给对应的字段的值设置公式:以字符串为例,字符串对应的空值就是空字符串”",则公式为if(单元格=null,”",单元格)。
下面以一个实例看一下问题。
3.1 实例
新建工作簿,将A1,B1,C1,D1单元格的控件类型定义成文本型。
以Employee表为例,此表中的EmpID为主键,然后在报表填报属性处设置EmpName和Sex为主键,最后的填报属性界面如下:
填报预览,在A1,B1,D1分别输入1,Jack,团员,C1不输入值,点击提交,提示提交成功。然后同样再在这几个单元格中分别插入A1,B1,D1中分别输入2,Jack,党员,C1同样不输入值,本来应该只剩一条后输入的记录的,但是两条都存在,如下图所示:
将有可能为空的字段即Sex字段对应的值改成if(C1=null,”",C1),然后将数据库中的这两个值删除掉,将这两条记录重新插入,数据库中只剩一条记录了即对第一条数据进行了更新操作,如下图所示:
- FineReport报表填报主键空值问题
- FineReport报表工具6.5离线填报示例
- FineReport 填报报表数据自定义提交
- 填报报表解决不能填入自动增长主键问题
- FineReport实线java报表填报录入的效果图
- [FineReport]数据填报
- FineReport填报分页设置
- FineReport填报分页设置
- 填报报表
- finereport报表
- FineReport报表
- 填报问题
- FineReport报表工具实现报表多值查询
- FineReport报表乱码解决
- FineReport报表开发总结
- FineReport助飞鹤乳业建报表系统
- finereport 报表工具 教程
- FineReport 创建报表模板
- 解决WebClient或HttpWebRequest首次连接缓慢问题
- LLVM 源码分析(三)ImmutablePass
- 计算日期间隔(天数)
- 大话存储系列1——对存储的初步认识
- WIFI手动命令行连接AP
- FineReport报表填报主键空值问题
- 学习 Web 开发技术的16个最佳教程网站和博客
- centos安装php的mysql扩展
- 802.1ad Provider Bridges 学习笔记 .
- 工具笔记
- 关于css js文件缓存问题
- android 弹出软键盘将底部视图顶起问题
- php配置
- eCryptfs: a Stacked Cryptographic Filesystem