填报报表,主键自增长如何在填报设置中设置主键

在填报报表中,用到的数据库的主键ID是自增长的,即新增一条数据时,ID还是没有的,只有保存后数据库才会自动自增长生成ID,

问题1:如果在填报设置中设置ID为主键,插入更新时会因为主键为空而报错不能插入数据;

问题2:如果没有主键设置,在填报时修改其他的字段,结果是生成新的一条数据而不是在原有数据上更新

请问这种情况怎么解决

image.png

image.png

image.png

  


1126更新:目前看来没有能够解决的方法,只能在报表中不设置主键,并利用条件属性设置控件不允许更新已有内容

FineReport 访客登录 发布于 2020-11-24 17:30 (编辑于 2020-11-26 13:44)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
1
shirokoLv6资深互助
发布于2021-6-18 11:20

设置两个提交属性,一个提交条件是A3不为空,智能提交,设置A3为主键,这样可以按主键更新。

另一个提交条件是A3为空,插入提交,不设置主键,这样A3为空的就会插入而不报错

  • yzmS387E0656611 yzmS387E0656611 你咋个这么聪明啊,我折腾了一天了,又是触发器,函数什么的...........
    2023-05-22 23:20 
最佳回答
0
ekDanLv6初级互助
发布于2020-11-24 17:33

不知道对你有没有帮助:

数据库自增长ID填报  https://help.fanruan.com/finereport/doc-view-544.html?source=1

最佳回答
0
格调Lv6初级互助
发布于2020-11-24 17:44(编辑于 2020-11-24 17:49)

这种的要在填报的时候 勾选表的唯一索引字段为主键,使用过智能提交,即可实现新数据的插入和旧数据更新;

例如:

CREATE TABLE t_opr_ceshi (
	id bigint NOT NULL IDENTITY(1,1),
	chance_id bigint,
	app_code varchar(20),
	org_id varchar(20),
	label_id int,
	status int,
	entry_time datetime,
	update_time datetime,
	entry_name varchar(100),
	modify_name varchar(100),
	tmstamp timestamp(8) NOT NULL,
	CONSTRAINT PK__t_opr_ceshi__3213E83F90E63B7D PRIMARY KEY (id)
) go;
设置唯一索引为 chance_id ,app_code,org_id

image.png

  • 访客登录 访客登录(提问者) 你看我的第二张截图,是你说的那些设置吗
    2020-11-24 17:46 
  • 格调 格调 回复 访客登录(提问者) 你是页面自增?这也叫自增主键?
    2020-11-24 17:50 
  • 访客登录 访客登录(提问者) 回复 格调 第一列的ID是自增主键
    2020-11-24 17:54 
  • 格调 格调 回复 访客登录(提问者) ID字段是数据自增主键吧?如果是不需要在填报属性设置,没插入一条会自动+1,如果不是自增主键,可以在页面用公式实现
    2020-11-24 17:59 
  • 访客登录 访客登录(提问者) 回复 格调 是的,但是现在的问题是,如果不在填报属性中设置主键,那么想要修改某条数据的时候就会变成新生成一条数据或者修改失败
    2020-11-24 18:02 
最佳回答
0
ShenRuiALv5见习互助
发布于2020-11-24 17:48

智能提交下面有一个提交条件,你把数据库主键ID设置成对应列。

  • 访客登录 访客登录(提问者) 好像不行,还是会报主键为空的错
    2020-11-24 17:55 
  • ShenRuiA ShenRuiA 回复 访客登录(提问者) 我没有设置自增长,然后主键设成UID。
    2020-11-24 17:56 
最佳回答
0
鱼仔仔家的荣荣Lv4初级互助
发布于2020-11-25 08:41

你就设置数据库自增长的主键id为主键,然后在报表中把id这一列隐藏了。用户提交的时候 如果id有值就是代表更新,没值就是代表新增。

  • 6关注人数
  • 1483浏览人数
  • 最后回答于:2021-6-18 11:20
    请选择关闭问题的原因
    确定 取消
    返回顶部