在填报报表中,用到的数据库的主键ID是自增长的,即新增一条数据时,ID还是没有的,只有保存后数据库才会自动自增长生成ID,
问题1:如果在填报设置中设置ID为主键,插入更新时会因为主键为空而报错不能插入数据;
问题2:如果没有主键设置,在填报时修改其他的字段,结果是生成新的一条数据而不是在原有数据上更新
请问这种情况怎么解决
1126更新:目前看来没有能够解决的方法,只能在报表中不设置主键,并利用条件属性设置控件不允许更新已有内容
设置两个提交属性,一个提交条件是A3不为空,智能提交,设置A3为主键,这样可以按主键更新。
另一个提交条件是A3为空,插入提交,不设置主键,这样A3为空的就会插入而不报错
不知道对你有没有帮助:
数据库自增长ID填报 https://help.fanruan.com/finereport/doc-view-544.html?source=1
这种的要在填报的时候 勾选表的唯一索引字段为主键,使用过智能提交,即可实现新数据的插入和旧数据更新;
例如:
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
智能提交下面有一个提交条件,你把数据库主键ID设置成对应列。
你就设置数据库自增长的主键id为主键,然后在报表中把id这一列隐藏了。用户提交的时候 如果id有值就是代表更新,没值就是代表新增。