数据窗口只保存编辑不保存删行

在某些情况下,可能需要数据窗口只保存编辑不保存删行。

 

例如,有一个卡片表,先注册后发卡。注册时添加记录到表中并保存,发卡时将已注册卡发给员工。发卡时可以删除记录。但这时候删除的记录不能从数据库中删除,所以保存时就不能直接对数据窗口update(),而要采用一些变通的办法。

 

今天就出现了这种情况,下面是解决办法。如果有更好的办法再补充。

 

datastore ldst_1//定义一个用于保存的datastore

 

ldst_1 = create datastore

ldst_1.dataobject = dw_edit.dataobject//dw_edit是显示的数据窗口
ldst_1.settransobject(sqlca)

 

//将显示的记录复制到datastore,复制后ldst_1的行状态为newmodified!

dw_edit.rowscopy(1,dw_edit.rowcount(),primary!,ldst_1,1,primary!)


for ll_i = 1 to ldst_1.rowcount()
      ldst_1.setitemstatus(ll_i,0,primary!,datamodified!)//行状态修改为datamodified!
      ldst_1.setitemstatus(ll_i,'kp_person',primary!,datamodified!)//'kp_person'为用户修改列,此处必须修改其状态
      //注意:以下赋值项要写到setitemstatus之后

      ldst_1.object.kp_lb[ll_i] = '2'//卡类别(2用户卡)
      ldst_1.object.kp_fkr[ll_i] = gl_userid//发卡人
      ldst_1.object.kp_fkrq[ll_i] = f_getserverdate()//发卡日期
next

 

//保存
sqlca.autocommit = false


if ldst_1.update() = 1 then

      commit;

      sqlca.autocommit = true

      messagebox("提示","保存成功!")

else

      rollback;

      sqlca.autocommit = true

      messagebox("提示","保存失败!")

      return -1

end if

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值