版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、11.3,在表单中操作表,实,用的,VFP,应用程序需要在表单中操作数据表,这就要编写事件代码来实现。,11.3.1,在表单中显示浏览窗口,【例,11-4,】在表单中使用命令方式来打开浏览窗口,显示并修改数据表的内容(如,图,11-16,所示)。,设计步骤如下:,建立应用程序用户界面与设置对象属性。选择“新建”表单,进入表单设计器。,增加两个命令按钮,Command1,、,Command2,,并按图,11-17,所示设置其属性。,编写代码。,在表单的,Load,事件代码中打开数据表:,USE xs,在表单的,Destroy,事件代码中关闭数据表:,USE,在命令按钮,Command1,的,Cl
2、ick,事件代码中打开编,辑窗口:,GO TOP,EDIT,在命令按钮,Command2,的,Click,事件代码中打开浏览,窗口:,GO TOP,BROWSE,11.3.2,数据环境,虽然在表单中可以使用,USE,命令来打开和关闭数据表,但是在一些较为复杂的情,况下,比如使用多表或数据库时,不易协调各表之间的关系。比较可靠的办法是使,用“数据环境”。,数据环境是一个对象,它包含与表单相互作用的表或视图,以及表单所要求的表,之间的关系。可以在“数据环境设计器”中直观地设置数据环境,并与表单一起保,存。,在表单运行时,数据环境可以自动打开、关闭表和视图。,在表单创建了数据环境,就可以通过“属性”
3、窗口来设置控件的,ControlSource,属,性,。,【例,11-5,】在上例的表单中使用数据环境。,设计步骤如下:,创建“数据环境”。选择新建表单,进入表单设计器。在系统菜单的“显示”,子菜单中选择“数据环境”,或在表单设计器中单击鼠标右键,从弹出的快捷菜,单中选择“数据环境”,或单击表单设计器中“数据环境”按钮(如图,11-18,),,均可打开“数据环境设计器”窗口。,在“数据环境”窗口中单击鼠标右键,在快捷菜单中选择“添加”,可添加表单所,要控制的数据表:,xs.dbf,,如图,11-19,所示。,修改代码。删除上例表单中的,Load,事件代码与,Destroy,事件代码,改由数据,
4、环境来处理数据表的打开与关闭。,运行表单,结果完全相同。,11.3.3,在表单中操作数据表,用表单设计器设计一个可以浏览和编辑数据表的程序。,【例,11-6,】设计一个操作数据表的表单,使之具有按记录浏览、编辑的功能。,例题:浏览数据表,设计步骤如下:,创建数据环境。选择新建表单,进入表单设计器。打开“数据环境设计器”,窗口,在“数据环境”窗口中单击鼠标右键,在快捷菜单中选择“添加”,添加,表单所要控制的数据表:,xs.dbf,,如图,11-19,所示。,建立应用程序用户界面与设置对象属性。依次将表中“,xh”,、“,xm”,、“,xb”,等字段用鼠标拖拉至表单中。表单上出现相应的标签和文本框
5、,如图,11-20,左所示。,然后增加一个命令按钮组,CommandGroup1,和一个标签,Label1,。修改各对象属,性如图,11-20,右所示。,11.3.4,使用表格控件,虽然“浏览”窗口可以满足浏览数据的需要,但是缺乏对数据的有效控制。为,了更好地控制数据的显示,可以使用表格(,Grid,)控件。,表格是一个容器对象,表格包含列。这些列除了包含列标题和控制外,每一个,列还拥有自己的一组属性、事件和方法,即可以提供对表格单元的大量控制。,【例,11-7,】在例,11-6,的表单中增加一个浏览窗口。如图,11-23,所示。,设计步骤如下:,打开上例的表单文件,进入表单设计器。首先修改表
6、单布局,并在表单上增,加一个“表格”控件,Grid1,,如图,11-24,所示。,用鼠标右键单击,Grid1,,在弹出的快捷菜单中选择“生成器”,打开“表格生,成器”。用鼠标单击“数据库和表”右边的命令按钮“,.”,,如图,11-25,左所示,,可以选择数据表。,然后选择“可用字段”中的“学号”、“姓名”、“性别”和“总学分”等,字段,按添加按钮,将其添加到“选定字段”列表中,如图,11-25,右所示。,在“布局”页中,用鼠标指向标题行的分隔线可以调整列标题的宽度,如图,11-,26,。,按“确定”退出表格生成器。运行表单,,发现表格中的记录和文本框中的记录不同,步。为此,重新打开“表单设计器
7、”,继,续修改表单。,修改事件代码。,编写表格,Grid1,的,AfterRowColCHange,事件代码:,LPARAMETERS nColIndex,THISFORM.Refresh,其中第一行是原有的。第二行表示当光,标在表格中移动时,随时刷新表单。,在命令按钮组,Command,的,Click,事件代,码最后增加一条命令:,THISFORM.Grid1.SetFocus,修改后的数据表单运行时如图,11-23,所示。,11.3.5,使用页框,如果感觉表单界面太狭小,可以在设计时扩大表单,或者为表单添加页面。,【例,11-8,】在例,11-7,的表单中使用页面技术。如图,11-27,所
8、示。,设计步骤如下:,在“文件”菜单中选择“打开”或直接用鼠标单击“常用工具栏”中的“打开”,按钮,选择例,11-6,的表单文件,进入表单设计器。,增加页框。将表单中除标题和命令按钮组外的所有控件做“多重选定”(如,图,11-28,)。,编写代码。在例,11-6,的基础上增加如下代,码:,页框,pageFrame1,中第一页,page1,的,Activate,事件代码:,THIS.txtxh.SetFocus,页框,pageFrame1,中第二页,page2,的,Activate,事件代码:,THIS.grdxs.SetFocus,第二页,page2,中表格,Grdxs,的,AfterRowC
9、olChange,事件代码:,LPARAMETERS nColIndex,THIS.Parent.Parent.Page1.Refresh,另外修改命令按钮组,CommandGroup1,的,Click,事件代码:,在原代码后添加如下代码,:,IF THISFORM.PageFrame1.ActivePage = 2,THISFORM.PageFrame1.Page2.Grdxs.SetFocus,ELSE,THISFORM.Refresh,ENDIF,THISFORM.Refresh,11.3.7,编辑表单的设计,【例,11-10,】修改例,11-9,,使之具有增加、删除、编辑记录的功能(如
10、图,11-35,),在例,11-9,的基础上进行修改,具体步骤如下:,在表单上增加一个命令按钮组,CommandGroup2,,将其按钮个数属性,ButtonCount,改为:,3,,并依次修改各按钮的,Caption,属性,如图,11-35,所示。,修改第一页中各文本框、编辑框、选项按钮组的属性,见表,11-5,。,对象,各文本框与编辑框,OptionGroup1,属性,属性值,说明,Enabled,DisibledBackColor,DisibledForeColor,Enabled,.F.,假,128,255,255,0, 0, 0,.F.,假,不可用,浅蓝色背景,黑字,不可用,在表单中
11、增加一个自定义的方法,disi(),,用来控制第一页中输入框的可用与,否。,修改数据,环境中数据表的,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
12、.SetAll(Enabled,IIF(L,.T.,.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 =,添加,TH
13、IS.Parent.Command2.Caption =,编辑,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()
14、,THISFORM.disi(.F.),THISFORM.PageFrame1.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.grdx
15、s.RecordSource = THIS.Tag,ENDIF,运行表单后,各输入框禁用,只有当按下“添加”或“编辑”按钮后,各输入框,才被启用。此时两按钮分别变为:“保存”和“取消”,按下“保存”,可以将,添加的记录或对记录所作的修改存盘,按下“取消”,则取消所作的添加或修改。,说明:,方法,SetAll(),为容器对象中的所有控件或某类控件指定一个属性值。,函数,TABLEREVERT(),可以取消对当前记录的修改。,11.3.8,使用下拉列表框,【例,11-11,】修改例,11-10,,在数据环境中增加一个班级代码表,并且使用下拉列,表框来输入班级编号“,bjbh”,(如图,11-36,
16、所示)。,在例,11-10,的基础之上进行修改,具体步骤如下:,修改数据环境,增加班级代码表,bj,,在数据环境设计器中,从,xs,表中拖动,“,bjbh”,字段至,bj,表,按“,bjbh”,建立了两个表之间的关系,如图,11-37,所示。,修改表单,删除第一页中输入班级编号的文本框“,txtbjbh”,,增加一个组合框,Combo1,。另外再将“照片”删除。,修改组合框的属性,见表,11-6,。,修改自定义方法,disi(),的代码:,LPARAMETERS L,THIS.PageFrame1.Page1,.SetAll(Enabled,IIF(L,.T,.,.F.),TextBox),T
17、HIS.PageFrame1.Page1,.SetAll(Enabled,IIF(L,.T,.,.F.),Optiongroup),THIS.PageFrame1.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.),对象,属性,属性值,说明,Enabled,.F.,假,不可用,ControlSource,xs.bjbh,数据绑定,Column
18、Count,2,2,列,ColumnWidth,50,70,各列宽度,Combo1,DisibledBackColo,128,255,255,浅蓝色背景,r,DisibledForeColor,0, 0, 0,黑字,RowSourceType,2,别名,RowSource,bj,数据来源,表单中的控件可以分为两类:与表中数据绑定的控件和不与数据绑定的控件。当,用户使用绑定型控件时,所输入或选择的值将保存在数据源中(数据源可以是表,的字段、临时表的字段或内存变量)。要想绑定控件和数据,可以设置控件的,ControlSource,属性。如果要绑定“表格”和数据,则需要设置表格的,RecordSou
19、rce,属性,见表,11-7,。,控件,复选框,作用,如果,ControlSource,是表中的字段,当记录指针在表中移动时,,ControlSource,字段中,的,NULL,值、逻辑值“真”,(.T.),或“假”,(.F.),或数值,0,,,1,或,2,将分别代表复选框被选,中、清除或灰色状态,如果,ControlSource,是表中的字段,当用户编辑列中的数值时,实际是在直接编辑字,段。要将整个表格和数据绑定,可设置表格的,RecordSource,属性,如果,ControlSource,是一个变量,用户在列表中选择的值也保存在变量中;如果,ControlSource,是表中的字段,值将
20、保存在记录指针所在的字段中。如果列表中一个,项和表中字段的值匹配,当记录指针在表中移动时,将选定列表中的这个项,如果,ControlSource,是一个数值字段,根据按钮是否被选中,在字段中写入,0,或,1,。如,果,ControlSource,是逻辑型的,则根据按钮是否被选中,在字段中写入“真”,(.T.),或,“假”,(.F.),。如果记录指针在表中移动,则更新选项按钮的值,以反映字段中的新值。,如果选项按钮的,OptionGroup,控件(不是选项按钮本身)的,ControlSource,是一个字符,型字段,当选择该选项按钮时,选项按钮的标题就保存在字段中。记住,一个选项按,钮(与,Op
21、tionGroup,控件明显不同)的控件源不能是一个字符型字段,否则当运行表,单时,Visual FoxPro,会报告数据类型不匹配,列,列表框与组合框,选项按钮,微调,文本框或编辑框,微调控件可以反映相应字段或变量的数值变化,并可以将值写回到相应字段或变量中,表字段中的值在文本框中显示,用户对这个值的改变将写回表中。移动记录指针将影,响文本框的,Value,属性,如果没有设置控件的,ControlSource,属性,用户在控件中输入或选择的值只作,为属性设置保存。在控件生存期之后,这个值并不保存在磁盘上,也不保存到,内存变量中。,部分通过使用控件完成的任务需要将数据与控件绑定,其他任务则不需要。,在上面的例子中,因为直接从“数据环境”中将字段拖到表单上,系统自动,将各字段与相应的控件绑定,无需另外操作。如果是先建立控件,就需要手工,操作将控件与相应的字段绑定。,11.4,定制表,可以在表中设置一个过滤器来定制自己的表,有选择地显示某些记录。还可,以通过设置字段过滤器,对表中的某些字段的访问进行限制,这样可以选择显示,哪些字段。,11.4.1,筛选表,如果只想查看某一类型的记录,可以通,过设置过滤器对“浏览”窗口中显示的,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年放火安全培训内容专项突破
- 2026年实地安全救援培训内容实操要点
- 2026年法制安全知识培训内容底层逻辑
- 宝鸡市千阳县2025-2026学年第二学期四年级语文期中考试卷(部编版含答案)
- 承德市平泉县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 永州市东安县2025-2026学年第二学期五年级语文第六单元测试卷(部编版含答案)
- 2026年工地反三违安全培训内容重点
- 株洲市炎陵县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 2026年6月份安全培训内容煤矿实战手册
- 马鞍山市当涂县2025-2026学年第二学期四年级语文第四单元测试卷(部编版含答案)
- 小学年报工作制度
- 人教版初中英语七至九年级单词汇总表(七年级至九年级全5册)
- 2022年1月福建省普通高中学业水平合格性考试英语真题试卷含详解
- 招标代理档案管理制度
- 生产命令单的模板
- (中图版)初中地理七年级上册:第一章-地球和地图-单元测试(含答案)
- 北师大版五年级数学下册 (确定位置(二))教学课件
- 2023年同等学力申请硕士学位图书馆、情报与档案管理学2010-2022历年真题选编带答案难题含解析
- 铁路通信视频监控系统施工方案
- 抗磷脂酶A受体(PLAR)抗体
- 公共行政学课件(新)
评论
0/150
提交评论