VFP串讲2+Microsoft+PowerPoint+演示文稿.ppt_第1页
VFP串讲2+Microsoft+PowerPoint+演示文稿.ppt_第2页
VFP串讲2+Microsoft+PowerPoint+演示文稿.ppt_第3页
VFP串讲2+Microsoft+PowerPoint+演示文稿.ppt_第4页
VFP串讲2+Microsoft+PowerPoint+演示文稿.ppt_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、常用控件类,综合1,综合2,综合3,通常与表中备注字段捆绑,(五),increment :微调控件向上和向下的微调量,默认值为1 spinnerlowvalue: 用户单击控制数值的下限值 spinnerhighvalue:用户单击控制数值的上限值 keyboardlowvalue:用户通过键盘输入数值的下限值 keyboardhighvalue :用户通过键盘输入数值的上限值 value:微调控件当前值,供编程使用,(六)微调控件,(七)命令按钮控件 1.命令按钮控件的名称、作用与特点 类名称:Command,添加的对象默认名为command1 作用:表示具备某功能的按钮。 特点:没有双击事

2、件。 2.命令按钮主要属性 Caption: 标题,即命令按钮上显示的文本。VFP允许 在标题上增加热键提示,如某个命令按钮的 Caption属性值是“帮助(H)”,则该按 钮的标题是 。 Enabled:定义能否选择此按钮(默认值为.T.)。,Default:默认值为.F.。当 该值为.T.时,则当按下回车 键时,执行命令按钮的Click事件代码。使用条 件是表单中只允许一个命令按钮为.T.。 Cancel: 默认值为.F.。当 该值为.T.时,该按钮称为 “取消”按钮,则当按下Esc键时,执行命令按 钮的Click事件代码。 Visible: 默认值为.T.,命令按钮可见,当该值为.F.时

3、, 命令按钮是隐藏。 Enabled、Default、Cancel、Visible四个属性见演示表单myform999.scx,表单的INIT EVENT代码程序: mand1.setfocus from 课程 join 考试成绩 ; on 课程.课程编号=考试成绩.课程编号 ; where 课程名=kcm ; into table into table thisform.list1.listthisform.list1.listindex,两种方法比较: 方法一:使用了两条命令和宏替换函数,利用列表框的VALUE属性保留选中条目的内容。命令书写简洁,但宏替换函数不好理解。 方法二:使用了一条

4、命令,利用列表框的listindex属性保存了被选列表框被选的序号和list数组保存列表框条目字符串,实现待查的课程名。命令书写麻烦,数组的下标不好理解。 数组的下标可以是常量:a2 数组的下标可以是变量:ai 变量可以是内存变量,字段变量和对象的属性,但必须是数值类型。 Into dbf thisform.list1.listthisform.list1.listindex,List是list1的属性(数组),List属性(数组)的下标,选项组控件,3.选项组各属性之间的关系,Optiongroup1 控件,Optiongroup1 控件层次关系,Optiongroup1控件的 button

5、s属性(数组),Buttons1,Buttons2,Buttons3,Buttons4,Value属性:1 buttoncount属性:4,假定Optiongroup1控件的上层为form1,判别哪个选项按钮被选中的方法 方法一:直接判别选项组的value属性值; 方法二:判别选项组各对象的value属性值; 方法三:判别选项组buttons数组,方法一:直接判别选项组的value属性值 Do case case thisform.optiongroup1.value=1 *选项组第1个按钮被选中,执行对应操作 case thisform.optiongroup1.value=2 *选项组第2

6、个按钮被选中,执行对应操作 case thisform.optiongroup1.value=3 *选项组第3个按钮被选中,执行对应操作 case thisform.optiongroup1.value=4 *选项组第4个按钮被选中,执行对应操作 Endcase *被推荐,易懂直观,方法二:判别选项组各对象的value属性值 Do case case thisform.optiongroup1.option1.value=1 *选项组第1个按钮被选中,执行对应操作 case thisform.optiongroup1.option2.value=1 *选项组第2个按钮被选中,执行对应操作 ca

7、se thisform.optiongroup1.option3.value=1 *选项组第3个按钮被选中,执行对应操作 case thisform.optiongroup1.option4.value=1 *选项组第4个按钮被选中,执行对应操作 Endcase *初学者使用,不推荐,方法三:判别选项组buttons数组 Do case case thisform.optiongroup1.buttons1.value=1 *选项组第1个按钮被选中,执行对应操作 case thisform.optiongroup1.buttons2.value=1 *选项组第2个按钮被选中,执行对应操作 ca

8、se thisform.optiongroup1.buttons3.value=1 *选项组第3个按钮被选中,执行对应操作 case thisform.optiongroup1.buttons4.value=1 *选项组第4个按钮被选中,执行对应操作 Endcase *不推荐,了解buttons属性数组的应用,应用1,上机第11套题,题意分析: 1.从输出的字段来看,涉及到两个表(教师表.dbf和学院表.dbf) ,查看两个表是否有共同字段。 2.“生成表”按钮的click event代码程序是主要重点,由题意要求分析:两个复选框共有4种状态,用到3种状态,每种状态又分生序与降序共6种情况。

9、两个复选框同时被选中 复选框1被选中,复选框2没选中 复选框1没选中,复选框2被选中 两个复选框同时不被选中(设计时不考虑),按职工号升序,按职工号降序,按职工号升序,按职工号降序,按职工号升序,按职工号降序,查看两个表的记录,设计步骤如下: 1.在命令窗口输入:create form myform 2.按上图要求加入控件 3.设置各对象的属性 1)myform属性设置 name: myform caption:教师情况 2)check1属性设置: caption:系名 3)check2属性设置: caption:工资 4)option1属性设置:caption:按职工号升序 5)option

10、2属性设置:caption:按职工号降序 6)command1属性设置:caption:生成表 7)command2属性设置:caption:退出 4.设置“退出”按钮click event代码程序 thisform.release 5.设置“生成表”按钮click event代码程序,a=thisform.check1.value b=thisform.check2.value c=thisform.optiongroup1.option1.value d=thisform.optiongroup1.option2.value if a=1 and b=1 order by 职工号 desc

11、 into table two endif endif endif,if a=1 and b=0 order by 职工号 desc into table one_x endif endif endif,if a=0 and b=1 order by 职工号 desc into table one_xx endif endif endif,6.运行程序:按提示的要求运行程序并查看生成的自由表的记录是否正确。,表格控件 1.表格控件的名称、作用与特点 类名称:Grid,添加的对象默认为grid1,grid2 作用:同时操作多行多列如浏览窗口。 特点:是一个容器对象,有生成器。 2.表格控件的主要

12、属性 ColumnCount:设置表格包含的列数。(默认值为-1,不能设置标头、行的高,列的宽)。 DeleteMark:是否包含删除列(默认值为.T.包含) RowHeight:表格每行的高度。 ReadOnly:表格记录是否为只读(默认值为.F.) RecordSourceType:指明表格的数据源的类型。 RecordSource:指明表格的数据源。,RecordSourceType类型及其说明,两者必须配合使用,上述两个属性要配合使用。 重点放在SQL语句上,例如: RecordSource=“sql查询的命令” RecordSourceType=4 又如: RecordSource=

13、“表别名” RecordSourceType=1,3.简单应用 设计一个表单文件名为简单应用.scx,其功能见下图。三个表的查询共一个表格。,设计步骤: 1. 在命令窗口输入命令: create form 简单应用 2. 在表单上拖入一个表格(grid1)和三个命令按钮 (commang1,command2,commang3) 3. 调整各个对象的大小与布局 4.设置各对象的属性 command1.caption=“歌手查询” command2.caption=“分数查询” command3.caption=“评委查询” grid1各属性取默认值 5.设置三个命令按钮的Click Event

14、程序代码,“歌手查询”按钮(command1) Click Event select * from 歌手 into table table_1 并将歌手最高分、最低分和最后平均分放置到各自文本框中。 最后平均分计算方法:去掉一个最高分,一个最低分,余下评委求均分作为歌手最后得分。 准备工作 在命令窗口,检查当前文件夹下是否有歌手.dbf和评分.dbf两个表,通过打开、浏览命令进行验证。 在命令窗口输入查询命令,即歌手刘其各评委给出的分数,并输出到临时表(LSB)中。 提示:两表连接查询,如能成功,将“刘其”常量换成文本框1的VALUE属性值,就是后面“查询”重要一步。,成功的命令如下: Sel

15、ect 歌手.歌手编号 , 成绩,评委编号 from 歌手 ; join 评分 on 歌手.歌手编号=评分.歌手编号 ; where 姓名=刘其 into cursor lsb 根据临时表(lsb)再查询该歌手的最搞分、最低分和最后得分并输出到数组aa中,在命令窗口输入: select max(成绩 ) zgf , ; min(成绩) zdf ,; (sum(成绩)-max(成绩)-min(成绩)/ ; (count(成绩)-2) zhdf from lsb into array aa 成功后,在命令窗口输入命令: ? aa1,1 , aa1,2 , aa1,3 验证结果是否正确。,表单设计如

16、下,在命令窗口输入以下的命令,打开表单设计器窗口 CREATE FORM 按姓名查询歌手得分 打开数据环境设计器窗口,添加歌手.dbf与评分.dbf 在表单中添加4个标签和4个文本框,命令按钮和表格各一个。 设置各标签、命令按钮和表格的Caption属性值 将表格的ColumnCount属性值设置为2(共2列),RecordSourceType属性值设置为“4SQL说明” 将表格内三列标头的Caption属性分别设置为“歌手编号”、“成绩”和“评委编号”,并适当调整三列的宽度。 设置“查询”按钮的Click的事件代码。,Thisform.grid1.RecordSource= ; Select

17、 歌手.歌手编号 , 成绩,评委编号 from 歌手 ; join 评分 on 歌手.歌手编号=评分.歌手编号 ; where 姓名=alltrim(thisform.Text1.Value) ; into cursor lsb“ (count(成绩)-2) zhdf from lsb into array aa Thisform.Text2.Value=aa1,1 from 歌手表 group by 1 into cursor lsb 这里为什么要加输出到临时表短语呢? 2)上述代码放在表单哪个事件中 -表单的LOAD EVENT中 -表单的INIT EVENT中 -“生成”按钮的CLICK

18、 EVENT中 放在表单的LOAD EVENT中,list1对象还没生成 放在“生成”按钮的CLICK EVENT中,用户没法选择条目,是逻辑上的错误。 放在表单的INIT EVENT中,对象list1已生成,又可供用户选择。,3)在列表框中选中的条目要做为字段名或者文件名必须使用宏替换函数。 完整设计步骤如下: 1.在命令窗口输入:CREATE FORM 应用3 2.添加对象到表单中并调整大小与布局 3.设置各对象的属性 1)表单对象的属性设置 autocenter:.T. 2)label1对象的属性设置 caption:选择组号 3)list1对象的属性设置 rowsource与rowso

19、urcetype放在表单init事件中,其它属性取默认值。,4)optiongroup1对象的属性设置 option1.caption: 升序 option2.caption: 降序 5)check1对象的属性设置 caption:存盘 6)grid1对象的属性设置 columncount:4 from 歌手表 group by 1 into cursor lsb 2) “生成”按钮的CLICK EVENT代码程序 *取列表框选中的条目内容字符串到内存变量zh zh=alltrim(thisform.list1.value) *取选项按钮1的状态值到内存变量sx(1选中,0没选中) sx=thisform.optiongroup1.option1.value *取选项按钮2的状态值到内存变量jx(1选中,0没选中) jx=thisform.optiongroup1.option2.value *取复选框1的状态值到内存变量cp(1选中,0没选中) cp=thisform.check1.value,do case case sx=1 and cp=1 order by 歌手编号 de

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论