首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > VFP >

VF怎么在grid中添加数据而不保存到数据库中

2012-03-03 
VF如何在grid中添加数据而不保存到数据库中?如题,想要在VF的表单中通过增加按钮对GRID进行数据添加而不会

VF如何在grid中添加数据而不保存到数据库中?
如题,想要在VF的表单中通过增加按钮对GRID进行数据添加而不会保存在数据库中,在点击保存按钮后,数据才成功的保存到数据库中。如何实现这个功能?

[解决办法]

VB code
设计一组维护记录的命令按钮*-------------------------------------设计思路:    1.该命令按钮组含有[新增]、[修改]、[删除]、[存储]、[取消]等命令按钮。     2.在运行新增或修改功能时,除了[存储]、[取消]按钮可操作,其余按钮都设置为禁止状态,防止使用者操作不当引起错误。    3.不是运行新增或修改功能时,除了[存储]、[取消]按钮为禁止状态外,其它按钮都是可以选择操作。     4.在运行新增或修改功能时,光标自动会跳到第一个输入框(文本框)中。   设计步骤:    1、从[表单控件]工具栏点工具按钮,添加一个命令按钮组到表单上,默认有Command1和Command2两个命令按钮。      2.设置CommandGroup对象的AutoSize属性为.T.,BottonCount属性为5,Name属性为UpdateBtn。      3.设置其中的各个按钮属性如下:     Command1:Caption="新增" FontSize=12 Name=CmdNew     Command2:Caption="修改" FontSize=12 Name=CmdEdit     Command3:Caption="删除" FontSize=12 Name=CmdDel     Command4:Caption="存储" FontSize=12 Name=CmdSave     Command5:Caption="取消" FontSize=12 Name=CmdCancel 4.在表单新增一属性UpDateMode,用于存储表单当前是否处于可编辑状态(即新增或修改状态),初始值为.f.。 5.在表单上所有可编辑对象的When Event方法程序里都写上一句: RETURN ThisForm.UpDateMode6.设置表单的数据环境的表缓冲模式为“3-开放式行缓冲”。 7.因为在编写代码时一般要控制定位记录的按钮,以下编写代码假设表单上存在另一组用于定位记录的按钮组,取名为Navigator,其中的四个按钮分别为:     首记录:CmdTop;    上一记录:CmdPrior;    下一记录:CmdNext;    末记录:CmdBottom 8.编写[新增]按钮的Click Event方法程序的代码:     ThisForm.UpdateMode=.t. &&进入新增状态后,将该属性的值设为.t.,每个字段可编辑     Append Blank     With This.Parent         .Parent.Refresh         .CmdNew.Enabled=.f.         .CmdEdit.Enabled=.f.        .CmdDel.Enabled=.f.        .CmdSave.Enabled=.t.         .CmdCancel.Enabled=.t.         .Parent.Navigator.SetAll("Enabled",.f.) &&将记录定位按钮设置为禁止状态                 .Parent.Text1.SetFocus &&进入新增状态后,光标自动进入第一个输入框。     EndWith 9.编写[修改]按钮的Click Event方法程序的代码:     ThisForm.UpdateMode=.t.    With This.Parent         .Parent.Refresh        .CmdNew.Enabled=.f.         .CmdEdit.Enabled=.f.        .CmdDel.Enabled=.f.         .CmdSave.Enabled=.t.         .CmdCancel.Enabled=.t.         .Parent.Navigator.SetAll("Enabled",.f.)         .Parent.Text1.SetFocus EndWith 10.编写[删除]按钮的Click Event方法程序的代码:     nSure=MessageBox("是否确定删除此记录?",4+32+256,"警告")     if nSure=6         Delete         Skip         If Eof()             Go Bottom             With This.Parent                .Parent.Navigator                 .CmdTop.Enabled=.t.                 .CmdPrior.Enabled=.t.                 .CmdNext.Enabled=.f.                 .CmdBottom.Enabled=.t.             EndWith         Else             This.Parent.Parent.Navigator.SetAll("Enabled",.t.)         EndIf         This.Parent.Parent.Refresh     EndIf 说明:为了提高程序运行效率,应将程序的运行环境中的Set Deleted设置为On,即隐藏删除记录,但是在运行删除命令后,必须移动记录指针,被删除的记录才会隐藏。一般来说在删除记录后应该用TableUpdate()更新原始表,但这里我们开始将数据环境设置为开放式的行缓冲,所以Skip以后会自动更新。 11.编写[存储]按钮的Click Event方法程序的代码:     ThisForm.UpdateMode=.f. &&恢复编辑框的只读状态     =TableUpdate(.f.) &&将缓冲区所编辑的数据写回原始记录。     With This.Parent         .CmdNew.Enabled=.t.         .CmdEdit.Enabled=.t.         .CmdDel.Enabled=.t.         .CmdSave.Enabled=.f.         .CmdCancel.Enabled=.f.         .Parent.Navigator.SetAll("Enabled",.t.)     EndWith 12.编写[取消]按钮的Click Event方法程序的代码:     ThisForm.UpdateMode=.f. &&恢复编辑框的只读状态     =TableRevert(.f.)     If Eof()         Go Bottom         With This.Parent            .Parent.Navigator             .CmdTop.Enabled=.t.             .CmdPrior.Enabled=.t.             .CmdNext.Enabled=.f.             .CmdBottom.Enabled=.t.         EndWith     Else         This.Parent.Parent.Navigator.SetAll("Enabled",.t.)    EndIf     With This.Parent         .CmdNew.Enabled=.t.         .CmdEdit.Enabled=.t.         .CmdDel.Enabled=.t.         .CmdSave.Enabled=.f.         .CmdCancel.Enabled=.f.         .Parent.Refresh     EndWith 13.在Form的load里写:     Set Deleted On     Go Top    在Form的Unload里写:     Set Deleted Off至此编写一组记录维护的命令按钮组基本完成,你可以将这组命令按钮保存为类方便今后调用。当然在情况发生变化的时候仍需要修改相应的代码以适应新的情况。 

热点排行