数据窗口只保存编辑不保存删行
2010-05-14 16:29
260 查看
在某些情况下,可能需要数据窗口只保存编辑不保存删行。
例如,有一个卡片表,先注册后发卡。注册时添加记录到表中并保存,发卡时将已注册卡发给员工。发卡时可以删除记录。但这时候删除的记录不能从数据库中删除,所以保存时就不能直接对数据窗口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
例如,有一个卡片表,先注册后发卡。注册时添加记录到表中并保存,发卡时将已注册卡发给员工。发卡时可以删除记录。但这时候删除的记录不能从数据库中删除,所以保存时就不能直接对数据窗口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
相关文章推荐
- 我用showmodaldialog打开窗口,编辑数据保存后,但虽然数据库里的数据更新了,第二次再showmodaldialog打开窗口时数据并不是更新的状态:
- PowerBuilder 编辑数据窗口后保存 引起 PB程序崩溃
- 令编辑窗口只能保存,不能取消
- 数据窗口中限定某列不可编辑
- 使可编辑的数据窗口只读
- 将数据窗口保存为Excel文件的方法
- 关闭窗口时保存数据的办法
- EXTJS桌面显示窗口(左边:TREE,右边:PANEL),点击按钮弹出窗口编辑数据提交后台PHP。
- ListView 换行自动保存刚才焦点行编辑数据
- PB 数据窗口导出PDF,同一个数据窗口多次调用保存方法,合并到一个PDF中
- 数据窗口保存为excel的通用函数
- pb数据窗口新增的列编辑后不会分行
- php保存数据到数据库到后台显示删除编辑,到前台展示
- 关于Windows窗口保存前结束编辑的问题
- 解决窗口关闭时保存数据的方法
- 保存数据时结束编辑
- 碰到了个难题,c1FlexGrid 单元格编辑时 直接点保存按钮取不到 行 DataRowState rowState 数据 解决方案
- ArcGIS10.2 因空间索引导致数据编辑保存速度慢问题
- NSIS实现自定义选择数据保存目录窗口
- 关闭窗口时保存数据的办法