VF按钮CLICK代码。求助

qq414244443 2011-07-28 01:23:52
初学VF
请问如何用按钮的CLICK向表添加内容
例如:表1 B1 包含 姓名 电话 地址 三个字段
文本框3个TEXT1 TEXT2 TEXT3 分别代表 姓名 电话 地址
按钮COMMAND1
请问如何单击按钮 把文本框的内容输入到表对应的字段
先谢谢大家
...全文
933 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq414244443 2011-07-28
  • 打赏
  • 举报
回复
能否为上面的例子专门写一下简单的代码。不用拓展。谢谢了。我改了你的例子,没有成功[Quote=引用 1 楼 apple_8180 的回复:]

VB code
设计一组维护记录的命令按钮

*-------------------------------------

设计思路:
1.该命令按钮组含有[新增]、[修改]、[删除]、[存储]、[取消]等命令按钮。
2.在运行新增或修改功能时,除了[存储]、[取消]按钮可操作,其余按钮都设置为禁止状态,防止使用者操作不当引起错误。
3.不是运行新增或修改功能时,除……
[/Quote]
qq414244443 2011-07-28
  • 打赏
  • 举报
回复
谢谢。非常感谢[Quote=引用 1 楼 apple_8180 的回复:]

VB code
设计一组维护记录的命令按钮

*-------------------------------------

设计思路:
1.该命令按钮组含有[新增]、[修改]、[删除]、[存储]、[取消]等命令按钮。
2.在运行新增或修改功能时,除了[存储]、[取消]按钮可操作,其余按钮都设置为禁止状态,防止使用者操作不当引起错误。
3.不是运行新增或修改功能时,除……
[/Quote]
everyday1212 2011-07-28
  • 打赏
  • 举报
回复
十豆三老师写的超全!
十豆三 2011-07-28
  • 打赏
  • 举报
回复
设计一组维护记录的命令按钮

*-------------------------------------

设计思路:
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.UpDateMode

6.设置表单的数据环境的表缓冲模式为“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方法程序的代码:
If Messagebox("是否确定删除此记录?",4+32+256,"警告")=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
至此编写一组记录维护的命令按钮组基本完成,你可以将这组命令按钮保存为类方便今后调用。当然在情况发生变化的时候仍需要修改相应的代码以适应新的情况。


*----------------------------------------------------------------------


以下是一个简单的例子,只是为了举例,没有考虑非正常操作产生的问题,请参考使用:

设表名为:BOTO1
设表字段:NAME,SEX,AGE 均为字符型,长度10。
建立一个表单:DEMO.SCX
表单上有:
四个按钮:添加(Command1)、修改(Command1)、删除(Command3)、保存(Command4)、取消(Command5)、退出(Command6)
三个文本框:TEXT1、TEXT2、TEXT3
一个Grid表:

*--表单的Load事件:
Use boto1

*--表单的Init事件:
This.GRID1.RecordSource='BOTO1'
This.GRID1.DeleteMark=.F.
This.GRID1.ReadOnly=.T.
This.Command4.Enabled=.F.
This.Command5.Enabled=.F.
For I=1 To 3
J=Alltrim(Str(I))
This.Text&J..Enabled=.F.
Endfor
This.Text1.Value=Alltrim(Name)
This.Text2.Value=Alltrim(sex)
This.Text3.Value=Alltrim(age)

*--表单的Unload事件:
Use In BOTO1

Grid的AfterRowColChange事件:
Lparameters nColIndex
Thisform.Text1.Value=Alltrim(Name)
Thisform.Text2.Value=Alltrim(sex)
Thisform.Text3.Value=Alltrim(age)
Thisform.Refresh

*--添加按钮的Click事件:
If Messagebox('是否使用当前值?',4+32+256,'信息提示')=7
Thisform.text1.Value=''
Thisform.text2.Value=''
Thisform.text3.Value=''
Endif
Store .T. To Thisform.text1.Enabled,Thisform.text2.Enabled,Thisform.text3.Enabled,Thisform.Command4.Enabled,Thisform.Command5.Enabled
Store .F. To Thisform.Command1.Enabled,Thisform.Command2.Enabled,Thisform.Command3.Enabled,Thisform.Command6.Enabled,Thisform.Grid1.Enabled
Thisform.Text1.SetFocus
Thisform.Tag='Add'

*--修改按钮的Click事件:
If Reccount('Boto1')>0 And !Empty(Thisform.Text1.Value)
Store .T. To Thisform.Text1.Enabled,Thisform.Text2.Enabled,Thisform.Text3.Enabled
thisform.Text1.SetFocus
Thisform.Tag='Modify'
Store .T. To Thisform.text1.Enabled,Thisform.text2.Enabled,Thisform.text3.Enabled,Thisform.Command4.Enabled,Thisform.Command5.Enabled
Store .F. To Thisform.Command1.Enabled,Thisform.Command2.Enabled,Thisform.Command3.Enabled,Thisform.Command6.Enabled,Thisform.Grid1.Enabled
Endif

*--删除按钮的Click事件:
If Messagebox('是否删除此条记录?',4+32+256,'信息提示')=7 Or Reccount('BOTO1')=0
Return
Endif
Select BOTO1
Delete
Thisform.GRID1.RecordSource=Null
Pack
Thisform.GRID1.RecordSource='BOTO1'
Go Top
Thisform.GRID1.Refresh

*--保存按钮的Click事件:
If Thisform.Tag='Add'
Append Blank
Endif
Replace Name With Alltrim(Thisform.text1.Value)
Replace sex With Alltrim(Thisform.text2.Value)
Replace age With Alltrim(Thisform.text3.Value)
Thisform.text1.Enabled= .F.
Thisform.text2.Enabled= .F.
Thisform.text3.Enabled= .F.
Thisform.grid1.Refresh
Store .F. To Thisform.text1.Enabled,Thisform.text2.Enabled,Thisform.text3.Enabled,Thisform.Command4.Enabled,Thisform.Command5.Enabled
Store .T. To Thisform.Command1.Enabled,Thisform.Command2.Enabled,Thisform.Command3.Enabled,Thisform.Command6.Enabled,Thisform.Grid1.Enabled

*--取消按钮的Click事件:
Store .F. To Thisform.text1.Enabled,Thisform.text2.Enabled,Thisform.text3.Enabled,Thisform.Command4.Enabled,Thisform.Command5.Enabled
Store .T. To Thisform.Command1.Enabled,Thisform.Command2.Enabled,Thisform.Command3.Enabled,Thisform.Command6.Enabled,Thisform.Grid1.Enabled
Thisform.Grid1.AfterRowColChange()

*--退出按钮的Click事件:
Thisform.Release

2,723

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧