工具栏增加一个锁定按钮

1.报表有填报栏和锁定栏,提交按钮记录到【填写数据】里边,比如:填写数据,

记录的是最新填报数量,按锁定按钮记录到【锁定数据*】里边,比如:锁定数据1,记录的是每次按锁定按钮时,填写数据栏的最新数据。

2.锁定按钮只针对某一些人开放,而且还可以设置自动开启时间,过了这个时间就不可见。

以上求方法,谢谢。

FineReport darklinboxs 发布于 2024-11-11 22:38
1min目标场景问卷 立即参与
回答问题
悬赏:6 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
CD20160914Lv8专家互助
发布于2024-11-11 22:47(编辑于 2024-11-11 23:12)

1、在数据库的表中增加一个锁定字段的状态,比如锁定 就是1,非锁定就是0

2、再增加一个锁定时间(这个字段的时间如果要动态,你自己用当前时间+N天,默认写进数据库,比如锁定有效期为今天+7天,你就把今天+7的时间写入到这个字段)后期用户查询时,判断如果系统时间大于你的这个时间就失效了!

3、再增加一个字段就是填写时间,精确到时分秒

4、填写数据的时候,默认锁定字段的状态为0,就是没有锁定,把填写时间写到字段中去

5、锁定数据的时候,用户点击按钮,去把最大填写时间查询出来,然后赋值为1,同时按第2步说的,把锁定有效时间你自己增加进去(这一步操作用存储过程最方便了

调用存储的方式如下

var mycode=this.options.form.getWidgetByName('mycode').getValue(); //获取参数

var mydate=this.options.form.getWidgetByName('mydate').getValue(); 

var STATUS=this.options.form.getWidgetByName('STATUS').getValue(); 

var sql="exec test_aa_cc "+mycode+","+mydate+","+STATUS;

var res=FR.remoteEvaluate('=sql("dbbasedata","'+sql+'",1,1)');

方式二:

var mycode=this.options.form.getWidgetByName('mycode').getValue(); //获取参数

var mydate=this.options.form.getWidgetByName('mydate').getValue(); 

var STATUS=this.options.form.getWidgetByName('STATUS').getValue(); 

var sql="call test_aa_cc ('"+mycode+"','"+mydate+"','"+STATUS+"')";

var res=FR.remoteEvaluate('=sql("dbbasedata","'+sql+'",1,1)');

大概是这样的流程

(如果你不想用存储过程,那么你得保证你每次显示在页面的数据是最新用的。然后有对应的id,或者编码,或者名称是唯一的,这样设置填报属性去按id,或者编码,或者名称去更新数据库的数据。将字段更新的逻辑和存储过程一样!反正原理就是要更新锁定与有效期的数据,你得知道是哪一些!!!)

image.png

  • 2关注人数
  • 104浏览人数
  • 最后回答于:2024-11-11 23:12
    请选择关闭问题的原因
    确定 取消
    返回顶部