第章在表单中使用数据表.ppt
《第章在表单中使用数据表.ppt》由会员分享,可在线阅读,更多相关《第章在表单中使用数据表.ppt(20页珍藏版)》请在冰豆网上搜索。
11.3在表单中操作表在表单中操作表实用的用的VFP应用程序需要在表单中操作数据表,这就要编写事件代码来实现。
应用程序需要在表单中操作数据表,这就要编写事件代码来实现。
11.3.1在表单中显示浏览窗口在表单中显示浏览窗口【例【例11-4】在表单中使用命令方式来打开浏览窗口,显示并修改数据表的内容(如】在表单中使用命令方式来打开浏览窗口,显示并修改数据表的内容(如图图11-16所示)。
所示)。
设计步骤如下:
设计步骤如下:
建立应用程序用户界面与设置对象属性。
选择建立应用程序用户界面与设置对象属性。
选择“新建新建”表单,进入表单设计器。
表单,进入表单设计器。
增加两个命令按钮增加两个命令按钮Command1、Command2,并按图,并按图11-17所示设置其属性。
所示设置其属性。
编写代码。
编写代码。
在表单的在表单的Load事件代码中打开数据表:
事件代码中打开数据表:
USExs在表单的在表单的Destroy事件代码中关闭数据表:
事件代码中关闭数据表:
USE在命令按钮在命令按钮Command1的的Click事件代码中打开编事件代码中打开编辑窗口:
辑窗口:
GOTOPEDIT在命令按钮在命令按钮Command2的的Click事件代码中打开浏览事件代码中打开浏览窗口:
窗口:
GOTOPBROWSE11.3.2数据环境数据环境虽然在表单中可以使用虽然在表单中可以使用USE命令来打开和关闭数据表,但是在一些较为复杂的情命令来打开和关闭数据表,但是在一些较为复杂的情况下,比如使用多表或数据库时,不易协调各表之间的关系。
比较可靠的办法是使况下,比如使用多表或数据库时,不易协调各表之间的关系。
比较可靠的办法是使用用“数据环境数据环境”。
数据环境是一个对象,它包含与表单相互作用的表或视图,以及表单所要求的表数据环境是一个对象,它包含与表单相互作用的表或视图,以及表单所要求的表之间的关系。
可以在之间的关系。
可以在“数据环境设计器数据环境设计器”中直观地设置数据环境,并与表单一起保中直观地设置数据环境,并与表单一起保存。
存。
在表单运行时,数据环境可以自动打开、关闭表和视图。
在表单运行时,数据环境可以自动打开、关闭表和视图。
在表单创建了数据环境,就可以通过在表单创建了数据环境,就可以通过“属性属性”窗口来设置控件的窗口来设置控件的ControlSource属属性性。
【例【例11-5】在上例的表单中使用数据环境。
】在上例的表单中使用数据环境。
设计步骤如下:
设计步骤如下:
创建创建“数据环境数据环境”。
选择新建表单,进入表单设计器。
在系统菜单的。
选择新建表单,进入表单设计器。
在系统菜单的“显示显示”子菜单中选择子菜单中选择“数据环境数据环境”,或在表单设计器中单击鼠标右键,从弹出的快捷菜,或在表单设计器中单击鼠标右键,从弹出的快捷菜单中选择单中选择“数据环境数据环境”,或单击表单设计器中,或单击表单设计器中“数据环境数据环境”按钮(如图按钮(如图11-18),),均可打开均可打开“数据环境设计器数据环境设计器”窗口。
窗口。
在在“数据环境数据环境”窗口中单击鼠标右键,在快捷菜单中选择窗口中单击鼠标右键,在快捷菜单中选择“添加添加”,可添加表单所,可添加表单所要控制的数据表:
要控制的数据表:
xs.dbf,如图,如图11-19所示。
所示。
修改代码。
删除上例表单中的修改代码。
删除上例表单中的Load事件代码与事件代码与Destroy事件代码,改由数据环事件代码,改由数据环境来处理数据表的打开与关闭。
境来处理数据表的打开与关闭。
运行表单,结果完全相同。
运行表单,结果完全相同。
11.3.3在表单中操作数据表在表单中操作数据表用表单设计器设计一个可以浏览和编辑数据表的程序。
用表单设计器设计一个可以浏览和编辑数据表的程序。
【例【例11-6】设计一个操作数据表的表单,使之具有按记录浏览、编辑的功能。
】设计一个操作数据表的表单,使之具有按记录浏览、编辑的功能。
例题:
浏览数据表例题:
浏览数据表设计步骤如下:
设计步骤如下:
创建数据环境。
选择新建表单,进入表单设计器。
打开创建数据环境。
选择新建表单,进入表单设计器。
打开“数据环境设计器数据环境设计器”窗口,在窗口,在“数据环境数据环境”窗口中单击鼠标右键,在快捷菜单中选择窗口中单击鼠标右键,在快捷菜单中选择“添加添加”,添加表,添加表单所要控制的数据表:
单所要控制的数据表:
xs.dbf,如图,如图11-19所示。
所示。
建立应用程序用户界面与设置对象属性。
依次将表中建立应用程序用户界面与设置对象属性。
依次将表中“xh”、“xm”、“xb”等字段用鼠标拖拉至表单中。
表单上出现相应的标签和文本框,如图等字段用鼠标拖拉至表单中。
表单上出现相应的标签和文本框,如图11-20左所示。
左所示。
然后增加一个命令按钮组然后增加一个命令按钮组CommandGroup1和一个标签和一个标签Label1。
修改各对象属。
修改各对象属性如图性如图11-20右所示。
右所示。
11.3.4使用表格控件使用表格控件虽然虽然“浏览浏览”窗口可以满足浏览数据的需要,但是缺乏对数据的有效控制。
为窗口可以满足浏览数据的需要,但是缺乏对数据的有效控制。
为了更好地控制数据的显示,可以使用表格(了更好地控制数据的显示,可以使用表格(Grid)控件。
)控件。
表格是一个容器对象,表格包含列。
这些列除了包含列标题和控制外,每一个表格是一个容器对象,表格包含列。
这些列除了包含列标题和控制外,每一个列还拥有自己的一组属性、事件和方法,即可以提供对表格单元的大量控制。
列还拥有自己的一组属性、事件和方法,即可以提供对表格单元的大量控制。
【例【例11-7】在例】在例11-6的表单中增加一个浏览窗口。
如图的表单中增加一个浏览窗口。
如图11-23所示。
所示。
设计步骤如下:
设计步骤如下:
打开上例的表单文件,进入表单设计器。
首先修改表单布局,并在表单上增打开上例的表单文件,进入表单设计器。
首先修改表单布局,并在表单上增加一个加一个“表格表格”控件控件Grid1,如图,如图11-24所示。
所示。
用鼠标右键单击用鼠标右键单击Grid1,在弹出的快捷菜单中选择,在弹出的快捷菜单中选择“生成器生成器”,打开,打开“表格生表格生成器成器”。
用鼠标单击。
用鼠标单击“数据库和表数据库和表”右边的命令按钮右边的命令按钮“.”,如图,如图11-25左所示,左所示,可以选择数据表。
可以选择数据表。
然后选择然后选择“可用字段可用字段”中的中的“学号学号”、“姓名姓名”、“性别性别”和和“总学分总学分”等字等字段,按添加按钮,将其添加到段,按添加按钮,将其添加到“选定字段选定字段”列表中,如图列表中,如图11-25右所示。
右所示。
在在“布局布局”页中,用鼠标指向标题行的分隔线可以调整列标题的宽度,如图页中,用鼠标指向标题行的分隔线可以调整列标题的宽度,如图11-26。
按按“确定确定”退出表格生成器。
运行表单,退出表格生成器。
运行表单,发现表格中的记录和文本框中的记录不同发现表格中的记录和文本框中的记录不同步。
为此,重新打开步。
为此,重新打开“表单设计器表单设计器”,继,继续修改表单。
续修改表单。
修改事件代码。
修改事件代码。
编写表格编写表格Grid1的的AfterRowColCHange事件代码:
事件代码:
LPARAMETERSnColIndexTHISFORM.Refresh其中第一行是原有的。
第二行表示当光其中第一行是原有的。
第二行表示当光标在表格中移动时,随时刷新表单。
标在表格中移动时,随时刷新表单。
在命令按钮组在命令按钮组Command的的Click事件代事件代码最后增加一条命令:
码最后增加一条命令:
THISFORM.Grid1.SetFocus修改后的数据表单运行时如图修改后的数据表单运行时如图11-23所示。
所示。
11.3.5使用页框使用页框如果感觉表单界面太狭小,可以在设计时扩大表单,或者为表单添加页面。
如果感觉表单界面太狭小,可以在设计时扩大表单,或者为表单添加页面。
【例【例11-8】在例】在例11-7的表单中使用页面技术。
如图的表单中使用页面技术。
如图11-27所示。
所示。
设计步骤如下:
设计步骤如下:
在在“文件文件”菜单中选择菜单中选择“打开打开”或直接用鼠标单击或直接用鼠标单击“常用工具栏常用工具栏”中的中的“打开打开”按钮,选择例按钮,选择例11-6的表单文件,进入表单设计器。
的表单文件,进入表单设计器。
增加页框。
将表单中除标题和命令按钮组外的所有控件做增加页框。
将表单中除标题和命令按钮组外的所有控件做“多重选定多重选定”(如图(如图11-28)。
)。
编写代码。
在例编写代码。
在例11-6的基础上增加如下代的基础上增加如下代码:
码:
页框页框pageFrame1中第一页中第一页page1的的Activate事件代码:
事件代码:
THIS.txtxh.SetFocus页框页框pageFrame1中第二页中第二页page2的的Activate事件代码:
事件代码:
THIS.grdxs.SetFocus第二页第二页page2中表格中表格Grdxs的的AfterRowColChange事件代码:
事件代码:
LPARAMETERSnColIndexTHIS.Parent.Parent.Page1.Refresh另外修改命令按钮组另外修改命令按钮组CommandGroup1的的Click事件代码:
事件代码:
在原代码后添加如下代码在原代码后添加如下代码:
IFTHISFORM.PageFrame1.ActivePage=2THISFORM.PageFrame1.Page2.Grdxs.SetFocusELSETHISFORM.RefreshENDIFTHISFORM.Refresh11.3.7编辑表单的设计编辑表单的设计【例【例11-10】修改例】修改例11-9,使之具有增加、删除、编辑记录的功能(如图,使之具有增加、删除、编辑记录的功能(如图11-35)在例在例11-9的基础上进行修改,具体步骤如下:
的基础上进行修改,具体步骤如下:
在表单上增加一个命令按钮组在表单上增加一个命令按钮组CommandGroup2,将其按钮个数属性,将其按钮个数属性ButtonCount改为:
改为:
3,并依次修改各按钮的,并依次修改各按钮的Caption属性,如图属性,如图11-35所示。
所示。
修改第一页中各文本框、编辑框、选项按钮组的属性,见表修改第一页中各文本框、编辑框、选项按钮组的属性,见表11-5。
对象对象属性属性属性值属性值说明说明各文本框与各文本框与编辑框框Enabled.F.假假不可用不可用DisibledBackColor128,255,255浅浅蓝色背景色背景DisibledForeColor0,0,0黑字黑字OptionGroup1Enabled.F.假假不可用不可用在表单中增加一个自定义的方法在表单中增加一个自定义的方法disi(),用来控制第一页中输入框的可用与,用来控制第一页中输入框的可用与否。
否。
修改数据修改数据环境中数据表的环境中数据表的Exclusive(独占)属性改为:
(独占)属性改为:
.T.真,真,BufferModeOverride属性改为:
属性改为:
2保守式行缓冲。
保守式行缓冲。
编写代码。
编写代码。
编写自定义方法编写自定义方法disi()的代码:
的代码:
LPARAMETERSLTHIS.PageFrame1.Page1.SetAll(Enabled,IIF(L,.T.,.F.),TextBox)THIS.PageFrame1.Page1.SetAll(Enabled,IIF(L,.T.,.F.),OptionGroup)THIS.PageFrame1.Page1.SetAll(Enabled,IIF(L,.T.,.F.),EditBox)THIS.CommandGroup1.Enabled=IIF(L,.F.,.T.)编写命令按钮组编写命令按钮组CommandGroup2中各按钮的事件代码如下:
中各按钮的事件代码如下:
Command1的的Click