填报日期判断

image.pngPRODUCT_CODE作为主键来判断,CREATE_DATE是创建日期,LAST_UPDATE_DATE是更新日期,我想实现的就是如果主键是新增的的话创建日期和更新日期都是今天,但是如果之前有主键,只是做了更改更新提交的话,那么就只有更新日期变为今天的

FineReport 嘘.. 发布于 2025-5-8 11:00
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
华莉星宸Lv7资深互助
发布于2025-5-8 11:03

更新日期 可以直接在填报属性里面写公式 now()

或是按照下面的方式来做,填报属性绑定E2  F2

image.png

最佳回答
0
ID1208Lv6高级互助
发布于2025-5-8 11:03(编辑于 2025-5-8 11:05)

多字段检验是否与数据库中的数据重复--https://help.fanruan.com/finereport/doc-view-3032.html

初始化或者填报的时候获取数据库数据对比,在页面设置flag,然后根据flag值设置对应的时间

其他的填报正常设置

最佳回答
0
用户k6280494Lv6资深互助
发布于2025-5-8 11:04

PRODUCT_CODE CREATE_DATE LAST_UPDATE_DATE放在单元格

用公式判断,a1放主键,b1放 CREATE_DATE  c1 LAST_UPDATE_DATE

if(len(a1)=0,now(),b1)

if(len(a1)=0,now(),C1)

最佳回答
0
FR-LeonLv4初级互助
发布于2025-5-8 11:10
1. 设置填报属性

在「模板>报表填报属性」中:

  • 选择智能提交方式

  • 将PRODUCT_CODE设为主键字段

  • 绑定CREATE_DATE和LAST_UPDATE_DATE到对应单元格

2. 日期字段处理方案新增数据时(主键不存在):

INSERT INTO 表名(PRODUCT_CODE, CREATE_DATE, LAST_UPDATE_DATE)

VALUES(?, NOW(), NOW())  -- 同时插入当前日期
更新数据时(主键已存在):

UPDATE 表名

SET LAST_UPDATE_DATE = NOW()

WHERE PRODUCT_CODE = ?  -- 仅更新最后修改日期
3. 注意事项
  1. 必须勾选「未修改不更新」选项,确保未修改字段不参与提交

  2. 如果使用Oracle数据库,可通过触发器自动处理日期字段:


CREATE OR REPLACE TRIGGER TRG_DATE

BEFORE INSERT OR UPDATE ON 表名

FOR EACH ROW

BEGIN

IF INSERTING THEN

:NEW.CREATE_DATE := SYSDATE;

END IF;

:NEW.LAST_UPDATE_DATE := SYSDATE;

END;
效果验证

填报属性设置提交时会自动区分新增/更新操作,并按规则处理日期字段

  • 5关注人数
  • 36浏览人数
  • 最后回答于:2025-5-8 11:10
    请选择关闭问题的原因
    确定 取消
    返回顶部