转载: 原文作者: fhthkm
实现
我们首先先看下具体的实现效果,在界面上我们点击添加,可以自动添加一行,我们只要手动输入即可,同样删除的话,选择某行直接删除即可。
实现的过程是首先添加数据窗口对象,然后与数据库中的表进行关联,同时对数据窗口进行设置,设置完成后将数据窗口对象与界面上的DataWindow控件进行绑定,我们通过图片来看下具体的过程。
1.选择要添加的数据窗口对象的风格
2.选择何种方式连接数据源
3.选择数据库中的表与数据窗口对象进行绑定
4.对数据窗口进行设置,设置表头和可编辑属性,图片中的2如果不设置,则数据窗口不可编辑,不能输入文本,我在这里花费了很长的时间。
5.下面两张图片设置数据窗口可更新属性,不设置的话,只可以进行查询,不可进行删除和增加。在此还有一点要说的是,数据库中要绑定的表必须有主键。
6.最后一步是将数据窗口进行保存。
7.添加window窗体,在窗体上添加与数据窗口对象关联的控件DataWindow。
数据窗口对象添加完毕以后,下面我们就来看下具体代码的实现
1.在窗口的open事件下代码:
//将数据窗口与控件进行绑定
dw_1.dataobject=“d_user”
dw_1.settransobject( sqlca )
dw_1.retrieve()
2用户管理窗口w_yhgl的Closequery事件代码如下。
/
/窗体关闭时进行提醒
integer rt dw_1.accepttext()
if dw_1.modifiedcount() =0 and dw_1.deletedcount()=0 then
return0 else
rt=messagebox(“提示”,“添加修改内容未保存,确实退出吗?”,Question!,YesNo!)
if rt=1 then
return0
endif
end if return 1
3数据窗口控件的Itemechanged事件代码如下。
cb_save.enabled=true //激活“保存”按钮
4[添加]按钮控件cb_add的Clicked事件代码如下。
//添加功能的实现
integer row
row=dw_1.insertrow(0)
dw_1.scrolltorow(row)
5[删除]按钮控件cb_delete的Clicked事件代码如下。
//进行记录的删除
dw_1.deleterow(0)
cb_3.enabled=true
6[保存]按钮控件cb_save的Clicked事件代码如下。
//对添加和删除进行操作
if dw_1.update(true,false)=1 then
dw_1.resetupdate()
commit;
cb_3.enabled=false
else
rollback;
messagebox("提示","保存数据失败!")
end if
7[退出]按钮控件cb_exit的Clicked事件代码如下。
close(parent)
到这里我们利用数据窗口对象实现记录的增删查就实现了。
总结
总的来说,我认为数据窗口和DataWindow其实就是一个封装好的控件,可以与数据库中的表进行绑定,我们对于记录进行增删改查时不再需要后台写SQL语句,只需要利用他们提供给我们的方法就可以实现增删改查的功能,并且关于数据窗口对象的样式也是有很多种风格的,使用起来还是很方便的。