数据录入窗口的通用写法[转载]

数据录入窗口的通用写法[转载]

2010-08-01 22:02:22| 分类: PB学习资料 | 标签:录入 窗口 通用 程序 |举报 |字号 订阅

数据录入窗口有很多公用程序,这里进行简单总结,然后读者可以考虑使用继承、用户对象等方式将这些公用内容封装起来,以便以后的开发中重用,从而提高软件的开发效率。公用程序总结以下几点:
1、插入
通常提供一个命令按钮,在按钮的Clicked事件中编写如下脚本:
dw_1.ScrollToRow(dw_1.InsertRow(0))
2、删除
通常提供一个命令按钮,在按钮的Clicked事件中编写如下脚本:
integer li_flag
long ll_CurRow

ll_CurRow = dw_1.GetRow(0)
if ll_CurRow < 1 then return

li_Flag = MessageBox('提示','确实要删除当前数据吗?',Question!,YesNo!,2)
if li_Flag = 1 then
dw_1.DeleteRow(ll_CurRow)
end if
3、提供一个关闭按钮,在该按钮的Clicked事件上编写如下脚本:
Close(parent)
4、提供一个保存按钮,在该按钮的Clicked事件上编写如下脚本:
Long ll_Rows

ll_Rows = dw_1.ModifiedCount() + dw_1.DeletedCount()
if ll_Rows < 1 then return
if dw_1.Update() = 1 then
commit;
MessageBox('提示','数据保存成功。保存了' + String(ll_Rows) + '条记录。')
else
rollback;
MessageBox('提示','数据错误,请仔细检查。')
end if
5、在数据窗口控件dw_1的Constructor事件中编写如下脚本:
This.SetTransObject(SQLCA)
在DBError事件中编写如下脚本:
return 1
在ItemError事件中编写如下脚本:
return 1
在LoseFocus事件中编写如下脚本:
This.AcceptText()
6、在窗口的CloseQuery事件中编写如下脚本:
integer li_flag
long ll_Rows
dw_1.AcceptText()
ll_Rows = dw_1.ModifiedCount() + dw_1.DeletedCount()
if ll_Rows > 0 then
li_flag = MessageBox('提示','数据已经修改,是否保存?',&
Question!,YesNoCancel!,1)
choose case li_flag
case 1 //保存
if dw_1.Update() = 1 then
commit;
return 0
else
if MessageBox('提示','数据错误,不能保存。是否继'+&
'续关闭?',Question!,YesNo!,2) = 1 then
return 0
else
rollback;
return 1
end if
end if
case 2 //不保存
rollback;
return 0
case 3 //取消
return 1
end choose
else
return 0
end if
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值