




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、11.3 在表单中操作表,实用的VFP应用程序需要在表单中操作数据表,这就要编写事件代码来实现。 11.3.1 在表单中显示浏览窗口 【例11-4】在表单中使用命令方式来打开浏览窗口,显示并修改数据表的内容(如图11-16所示)。,设计步骤如下: 建立应用程序用户界面与设置对象属性。选择“新建”表单,进入表单设计器。增加两个命令按钮Command1、Command2,并按图11-17所示设置其属性。, 编写代码。 在表单的Load事件代码中打开数据表:USE xs 在表单的Destroy事件代码中关闭数据表:USE 在命令按钮Command1的Click事件代码中打开编辑窗口: GO TOP
2、EDIT 在命令按钮Command2的Click事件代码中打开浏览窗口:,GO TOP BROWSE 11.3.2 数据环境 虽然在表单中可以使用USE命令来打开和关闭数据表,但是在一些较为复杂的情况下,比如使用多表或数据库时,不易协调各表之间的关系。比较可靠的办法是使用“数据环境”。 数据环境是一个对象,它包含与表单相互作用的表或视图,以及表单所要求的表之间的关系。可以在“数据环境设计器”中直观地设置数据环境,并与表单一起保存。 在表单运行时,数据环境可以自动打开、关闭表和视图。 在表单创建了数据环境,就可以通过“属性”窗口来设置控件的ControlSource属性。,【例11-5】在上例的
3、表单中使用数据环境。 设计步骤如下: 创建“数据环境”。选择新建表单,进入表单设计器。在系统菜单的“显示”子菜单中选择“数据环境”,或在表单设计器中单击鼠标右键,从弹出的快捷菜单中选择“数据环境”,或单击表单设计器中“数据环境”按钮(如图11-18),均可打开“数据环境设计器”窗口。,在“数据环境”窗口中单击鼠标右键,在快捷菜单中选择“添加”,可添加表单所要控制的数据表:xs.dbf,如图11-19所示。 修改代码。删除上例表单中的Load事件代码与Destroy事件代码,改由数据环境来处理数据表的打开与关闭。 运行表单,结果完全相同。,11.3.3 在表单中操作数据表 用表单设计器设计一个可
4、以浏览和编辑数据表的程序。 【例11-6】设计一个操作数据表的表单,使之具有按记录浏览、编辑的功能。 例题:浏览数据表 设计步骤如下: 创建数据环境。选择新建表单,进入表单设计器。打开“数据环境设计器”窗口,在“数据环境”窗口中单击鼠标右键,在快捷菜单中选择“添加”,添加表单所要控制的数据表:xs.dbf,如图11-19所示。 建立应用程序用户界面与设置对象属性。依次将表中“xh”、“xm”、“xb”等字段用鼠标拖拉至表单中。表单上出现相应的标签和文本框,如图11-20左所示。 然后增加一个命令按钮组CommandGroup1和一个标签Label1。修改各对象属性如图11-20右所示。,11.
5、3.4 使用表格控件 虽然“浏览”窗口可以满足浏览数据的需要,但是缺乏对数据的有效控制。为了更好地控制数据的显示,可以使用表格(Grid)控件。 表格是一个容器对象,表格包含列。这些列除了包含列标题和控制外,每一个列还拥有自己的一组属性、事件和方法,即可以提供对表格单元的大量控制。 【例11-7】在例11-6的表单中增加一个浏览窗口。如图11-23所示。 设计步骤如下: 打开上例的表单文件,进入表单设计器。首先修改表单布局,并在表单上增加一个“表格”控件Grid1,如图11-24所示。, 用鼠标右键单击Grid1,在弹出的快捷菜单中选择“生成器”,打开“表格生成器”。用鼠标单击“数据库和表”右
6、边的命令按钮“.”,如图11-25左所示,可以选择数据表。 然后选择“可用字段”中的“学号”、“姓名”、“性别”和“总学分”等字段,按添加按钮,将其添加到“选定字段”列表中,如图11-25右所示。,在“布局”页中,用鼠标指向标题行的分隔线可以调整列标题的宽度,如图11-26。,按“确定”退出表格生成器。运行表单,发现表格中的记录和文本框中的记录不同步。为此,重新打开“表单设计器”,继续修改表单。 修改事件代码。 编写表格Grid1的AfterRowColCHange事件代码: LPARAMETERS nColIndex THISFORM.Refresh 其中第一行是原有的。第二行表示当光标在表
7、格中移动时,随时刷新表单。 在命令按钮组Command的Click事件代码最后增加一条命令: THISFORM.Grid1.SetFocus,修改后的数据表单运行时如图11-23所示。 11.3.5 使用页框 如果感觉表单界面太狭小,可以在设计时扩大表单,或者为表单添加页面。 【例11-8】在例11-7的表单中使用页面技术。如图11-27所示。,设计步骤如下: 在“文件”菜单中选择“打开”或直接用鼠标单击“常用工具栏”中的“打开”按钮,选择例11-6的表单文件,进入表单设计器。 增加页框。将表单中除标题和命令按钮组外的所有控件做“多重选定”(如图11-28)。, 编写代码。在例11-6的基础上
8、增加如下代码: 页框pageFrame1中第一页page1的Activate事件代码: THIS.txtxh.SetFocus 页框pageFrame1中第二页page2的Activate事件代码: THIS.grdxs.SetFocus 第二页page2中表格Grdxs的AfterRowColChange事件代码: LPARAMETERS nColIndex THIS.Parent.Parent.Page1.Refresh,另外修改命令按钮组CommandGroup1的Click事件代码: 在原代码后添加如下代码: IF THISFORM.PageFrame1.ActivePage = 2
9、THISFORM.PageFrame1.Page2.Grdxs.SetFocus ELSE THISFORM.Refresh ENDIF THISFORM.Refresh,11.3.7 编辑表单的设计 【例11-10】修改例11-9,使之具有增加、删除、编辑记录的功能(如图11-35),在例11-9的基础上进行修改,具体步骤如下:, 在表单上增加一个命令按钮组CommandGroup2,将其按钮个数属性ButtonCount改为:3,并依次修改各按钮的Caption属性,如图11-35所示。 修改第一页中各文本框、编辑框、选项按钮组的属性,见表11-5。, 在表单中增加一个自定义的方法disi
10、(),用来控制第一页中输入框的可用与否。 修改数据环境中数据表的Exclusive(独占)属性改为:.T. 真,BufferModeOverride属性改为:2 保守式行缓冲。 编写代码。 编写自定义方法disi()的代码:,LPARAMETERS L THIS.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.,
11、.F.),EditBox) THIS.CommandGroup1.Enabled=IIF(L,.F.,.T.) 编写命令按钮组CommandGroup2中各按钮的事件代码如下: Command1的Click事件代码: IF THIS.Caption = 添加 THIS.Caption = 保存 THIS.Parent.Command2.Caption = 取消 THISFORM.disi(.T.) THIS.Parent.Tag = STR(RECNO() APPEND BLANK ELSE THIS.Caption = 添加 THIS.Parent.Command2.Caption = 编辑
12、 THISFORM.disi(.F.) ENDIF THISFORM.PageFrame1.Refresh Command2的Click事件代码:,IF THIS.Caption = 编辑 THIS.Caption = 取消 THIS.Parent.Command1.Caption = 保存 THISFORM.disi(.T.) THIS.Parent.Tag = STR(RECNO() ELSE THIS.Caption = 编辑 THIS.Parent.Command1.Caption = 添加 TABLEREVERT() THISFORM.disi(.F.) THISFORM.PageF
13、rame1.Page1.Refresh ENDIF GO VAL(THIS.Parent.Tag) THISFORM.PageFrame1.Page1.Refresh Command3的Click事件代码: a = MESSAGEBOX(是否确定删除当前记录?,32+4+256,删除记录) IF a = 6 THIS.Tag = THISFORM.PageFrame1.Page2.grdxs.RecordSource DELETE NEXT 1 PACK THISFORM.PageFrame1.Page2.grdxs.RecordSource = THIS.Tag ENDIF,运行表单后,各输
14、入框禁用,只有当按下“添加”或“编辑”按钮后,各输入框才被启用。此时两按钮分别变为:“保存”和“取消”,按下“保存”,可以将添加的记录或对记录所作的修改存盘,按下“取消”,则取消所作的添加或修改。 说明: 方法SetAll()为容器对象中的所有控件或某类控件指定一个属性值。 函数TABLEREVERT()可以取消对当前记录的修改。 11.3.8 使用下拉列表框 【例11-11】修改例11-10,在数据环境中增加一个班级代码表,并且使用下拉列表框来输入班级编号“bjbh”(如图11-36所示)。 在例11-10的基础之上进行修改,具体步骤如下: 修改数据环境,增加班级代码表bj,在数据环境设计器
15、中,从xs表中拖动“bjbh”字段至bj表,按“bjbh”建立了两个表之间的关系,如图11-37所示。, 修改表单,删除第一页中输入班级编号的文本框“txtbjbh”,增加一个组合框Combo1。另外再将“照片”删除。 修改组合框的属性,见表11-6。, 修改自定义方法disi()的代码: LPARAMETERS L THIS.PageFrame1.Page1.SetAll(Enabled,IIF(L,.T.,.F.),TextBox) THIS.PageFrame1.Page1.SetAll(Enabled,IIF(L,.T.,.F.),Optiongroup) THIS.PageFrame
16、1.Page1.SetAll(Enabled,IIF(L,.T.,.F.),editbox) THIS.PageFrame1.Page1.SetAll(Enabled,IIF(L,.T.,.F.),Combobox) THIS.CommandGroup1.Enabled=IIF(L,.F.,.T.),表单中的控件可以分为两类:与表中数据绑定的控件和不与数据绑定的控件。当用户使用绑定型控件时,所输入或选择的值将保存在数据源中(数据源可以是表的字段、临时表的字段或内存变量)。要想绑定控件和数据,可以设置控件的ControlSource属性。如果要绑定“表格”和数据,则需要设置表格的RecordSo
17、urce属性,见表11-7。,如果没有设置控件的ControlSource属性,用户在控件中输入或选择的值只作为属性设置保存。在控件生存期之后,这个值并不保存在磁盘上,也不保存到内存变量中。 部分通过使用控件完成的任务需要将数据与控件绑定,其他任务则不需要。 在上面的例子中,因为直接从“数据环境”中将字段拖到表单上,系统自动将各字段与相应的控件绑定,无需另外操作。如果是先建立控件,就需要手工操作将控件与相应的字段绑定。,11.4 定制表,可以在表中设置一个过滤器来定制自己的表,有选择地显示某些记录。还可以通过设置字段过滤器,对表中的某些字段的访问进行限制,这样可以选择显示哪些字段。 11.4.
18、1 筛选表,如果只想查看某一类型的记录,可以通过设置过滤器对“浏览”窗口中显示的记录进行限制。在某些情况下,例如只想查看销售额高于某一数值的商品,或者在某段时间内雇用的职员,筛选就显得非常有用。 1. 使用“浏览”窗口 若要在表中建立过滤器,首先打开表,然后浏览要筛选的表。从“表”菜单中选择“属性”命令。在“工作区属性”,对话框中的“数据过滤器”框内输入筛选表达式,如图11-38所示。或者,选择“数据过滤器”框后面的对话按钮,在“表达式生成器”中创建一个表达式来选择要查看的记录,然后单击“确定”按钮。浏览表时则只显示经筛选表达式筛选过的记录。例如,在“数据筛选”对话框中输入显示所有女同学记录的表达式: NOT xs.xb,2. 使用命令 可用SET FILTER命令筛选数据。若要指定一个暂时的条件,使表中只有满足该条件的记录才能访问时,这个命令特别有用。SET FILTER命令的语法格式为: SET FILTER TO 逻辑表达式 【例11-12】修
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 5 风儿轻轻吹 教学设计-2023-2024学年道德与法治一年级下册统编版
- 2024-2025学年高中历史 第二单元 东西方的先哲 第3课 古希腊文化的集大成者亚里士多德(1)教学教学实录 新人教版选修4
- (语文版)初中语文七年级上册《如果人类也有尾巴》教学设计
- 9 那个星期天教学设计-2023-2024学年六年级下册语文统编版
- 11《一块奶酪》教学设计-2024-2025学年统编版语文三年级上册
- 2024年四年级英语上册 Unit 3 How many第四课时教学实录 牛津译林版
- 2024年届九年级历史上册 第5课 为争取“民主”“共和”而战教学实录2 北师大版
- 2024-2025学年高中历史 第四单元 无产阶级革命家 第14课 苏联社会主义国家的奠基人列宁教学教学实录 岳麓版选修4
- 2023-2024学年高中化学 4.1.2 醇和酚教学实录 苏教版选择性必修3
- 2《树之歌》(教学设计)-2024-2025学年语文二年级上册统编版
- 2025年孝感货运从业资格考试
- 防灾避险安全应急知识培训课件
- 2023年新高考全国Ⅱ卷语文真题(解析版)
- 2025年政府采购评审专家理论考试复习试指导题库(含答案)
- 2025届西北四省(山西、陕西、青海、宁夏)高三下学期第一次联考英语试题
- 高中主题班会 复盘-在思考中学习课件-高中上学期主题班会
- 中考生物总复习《用药、急救与健康地生活》专项测试题及答案
- 2.2学会管理情绪 课件 -2024-2025学年统编版道德与法治七年级下册
- 2024-2025学年第二学期教学教研工作安排表 第二版
- 2024年高州市人民医院广东医学院附属高州医院高层次卫技人才招聘笔试历年参考题库频考点附带答案
- 出租汽车行业安全监管与自律
评论
0/150
提交评论