本站首页    管理页面    写新日志    退出

The Neurotic Fishbowl

[Java报表软件—技术知识]FineReport报表填报主键空值问题
FineReport——报表技术领跑者 发表于 2013/4/1 13:36:31

  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),然后将数据库中的这两个值删除掉,将这两条记录重新插入,数据库中只剩一条记录了即对第一条数据进行了更新操作,如下图所示:

阅读全文(1618) | 回复(0) | 编辑 | 精华

 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)

 
 



The Neurotic Fishbowl

.: 公告

本博客提供详细的java报表软件的制作过程,发布java报表软件的版本更新信息,并适时对国内主流报表软件进行功能比较。


Bloginess

«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31

.: 我的分类(专题)

首页(357)
Java报表软件—制作笔记(54)
Java报表软件—功能比较(43)
Java报表软件—使用心得(21)
Java报表软件—行业动态(54)
Java报表软件—新闻资讯(48)
Java报表软件—技术知识(49)
Java报表软件—问题解析(2)


In the Bowl

.: 最新日志

如何对报表的参数控件赋值
java报表工具FineReport常见
报表怎么做 FineReport连接池原
报表怎么做FineReport数据连接之
报表模板之报表设计
报表模板之报表设计


.: 最新回复

回复:报表参数
好好学习,
好好学习,天天向上。买双 air jor
回复:理解FineReport缓存系列2
回复:理解FineReport缓存系列2


The Fishkeeper
blog名称:Java报表软件
日志总数:357
评论数量:69
留言数量:0
访问次数:1208998
建立时间:2006年4月16日



Text Me

.: 留言板

签写新留言

需要你的帮助


Other Fish in the Sea

.: 链接

报表开发工具  html5图表java报表开发工具




站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.039 second(s), page refreshed 144761665 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号