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,或者编码,或者名称去更新数据库的数据。将字段更新的逻辑和存储过程一样!反正原理就是要更新锁定与有效期的数据,你得知道是哪一些!!!)