VF表单编程例题详解.docx

上传人:b****6 文档编号:16145839 上传时间:2023-07-10 格式:DOCX 页数:21 大小:27.27KB
下载 相关 举报
VF表单编程例题详解.docx_第1页
第1页 / 共21页
VF表单编程例题详解.docx_第2页
第2页 / 共21页
VF表单编程例题详解.docx_第3页
第3页 / 共21页
VF表单编程例题详解.docx_第4页
第4页 / 共21页
VF表单编程例题详解.docx_第5页
第5页 / 共21页
VF表单编程例题详解.docx_第6页
第6页 / 共21页
VF表单编程例题详解.docx_第7页
第7页 / 共21页
VF表单编程例题详解.docx_第8页
第8页 / 共21页
VF表单编程例题详解.docx_第9页
第9页 / 共21页
VF表单编程例题详解.docx_第10页
第10页 / 共21页
VF表单编程例题详解.docx_第11页
第11页 / 共21页
VF表单编程例题详解.docx_第12页
第12页 / 共21页
VF表单编程例题详解.docx_第13页
第13页 / 共21页
VF表单编程例题详解.docx_第14页
第14页 / 共21页
VF表单编程例题详解.docx_第15页
第15页 / 共21页
VF表单编程例题详解.docx_第16页
第16页 / 共21页
VF表单编程例题详解.docx_第17页
第17页 / 共21页
VF表单编程例题详解.docx_第18页
第18页 / 共21页
VF表单编程例题详解.docx_第19页
第19页 / 共21页
VF表单编程例题详解.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

VF表单编程例题详解.docx

《VF表单编程例题详解.docx》由会员分享,可在线阅读,更多相关《VF表单编程例题详解.docx(21页珍藏版)》请在冰点文库上搜索。

VF表单编程例题详解.docx

VF表单编程例题详解

11.1表单的建立与运行

●创建表单的过程,就是定义控件的属性,确定事件或方法、代码的过程。

●表单就是一个容器,它可以容纳多个控件。

●11.1.2用表单设计器创建表单

●打开表单设计器:

●Createform

●文件/新建/表单/新建文件

11.1表单的建立与运行

●2.表单设计器环境

(1)属性窗口

●表单及其控件均称为对象,每个对象都有自己属性,事件和方法。

●有的属性值可以在设置框中输入,有的需要从系统所提供的一组属性值中指定

●有的属性是只读的,用户不能修改,斜体显示

●要为属性设置一个字符值,可以在设置框中直接输入,不要加定界符。

(2)表单控件工具栏

要求会使用的控件:

标签、文本框、编辑框、命令按钮、组合框、列表框和表格

(3)表单设计器工具栏

(4)表单菜单

表单中的对象设计过程:

向表单添加控件-->设置属性-->设计代码

11.1.3表单的运行

有2种方法可以运行表单:

(1)直接使用命令DOFORM〈表单名〉

(2)在表单设计器窗口,选择“表单”菜单中的“运

行”命令,或直接单击工具栏中的红色惊叹号。

保存表单时,表单将被保存为一个表单文件(扩展名是.scx)和一个表单备注文件(扩展名是.sct)(P196)

11.2表单的操作

11.2.1表单的属性

1.常用表单属性

表单属性很多,但绝大多数很少用到。

表11.3中列出了有关表单的一些重要属性,这些属性规定了表单的外观和行为,经常在表单设计时用到。

请大家参考表11.3。

11.2.2常用事件与方法

事件:

一种系统预先定义而由用户或系统发出的动作

2.表单事件

以下3个事件用于表单和表单集:

(1)Load事件:

该事件代码从表单装入内存至表单被释放期间仅被运行一次。

(2)UnLoad事件:

在表单被释放时发生,是释放表单或表单集的最后一个事件。

(3)Activate事件:

常用设置表单上控件的初值和初始属性。

3.鼠标事件

Click事件:

鼠标左键单击对象时发生的事件。

4.键盘事件

InteractiveChange事件。

7.常用方法

Release方法:

从内存中释放表单

Refresh方法:

刷新表单数据

11.2.3控件的操作与布局

1.控件的基本操作

(1)选定控件:

要用鼠标单击该控件即可。

(2)移动控件:

先选定控件,然后用鼠标将控件

拖动到所需要的位置即可。

(3)调整控件大小

(4)复制控件

(5)删除控件

11.2.4表单的数据环境

●4.打开数据环境设计器

●单击表单设计器工具栏上的“数据环境”按钮

●选择“显示”菜单中的“数据环境”命令

●5.向数据环境添加表或视图

●6.从数据环境移去表或视图

●7.在数据环境中设置关系

●8.在数据环境中编辑关系

●9.向表单添加字段

11.3常用表单控件

11.3.1添加表单控件

表单中添加什么样的控件是根据需求决定的,一旦确定了控件的类型,就要定义控件的属性、确定事件和方法代码。

11.3.2表单控件及其属性

1.标签控件(Lable)

“标签”控件是按一定格式显示在表单上的文本信息,用来显示表单中各种说明和提示信息。

一旦“标签”控件的属性、事件和方法被定义,输出信息将根据这些定义,按指定的格式输出。

“标签”控件的属性主要包括:

Caption,Name,FontName,FontSize

例子11.3

表单中有3个标签。

当鼠标单击任何一个标签时,其他两个标签的标题文本互换。

T=thisform.label2.caption

Thisform.label.caption=thisform.label3.caption

Thisform.label.captio=T

11.3.2命令按钮控件

“命令按钮”控件主要用来控制程序的执行过程,以及对表中数据的操作等。

“命令按钮”控件的属性主要包括:

caption,name

“命令按钮”控件的事件:

click

11.3.3文本框控件

“文本框”控件主要用于表中非备注型和通用型字段值的输入、输出,以及内存变量赋值和输出等操作。

“文本框”控件与“标签”控件最主要的区别在于它们使用的数据源是不同的。

常用属性:

Value,ControlSource

“标签”控件的数据源来自于其“Caption”属性,“文本框”控件的数据源来自于其“ControlSource”属性,可以是表中的非备注型、通用型字段和内存变量。

“文本框”控件的属性主要包括:

“文本框”的大小,“文本框”中输入、输出信息字体的大小、风格和颜色等。

11.3.3编辑框控件

和文本框相似,也是用来输入用户的数据,但编辑框的内容只能是文本数据。

例子11.4求100到1000间能被37整除的数。

要求在编辑框中显示输出结果,并通过命令按钮来控制输出。

k=0

forx=100to1000

ifx%37=0

thisform.edit1.value=thisform.edit1.value+str(x,5)

k=k+1

ifk%5=0

thisform.edit1.value=thisform.edit1.value+chr(13)

endif

endif

endfor

11.3.6列表框与组合框控件

列表框(listbox)控件提供一组选项,用户可以从中选择一个或者多个选项。

列表框显示其中的若干选项,用户可以通过滚动条浏览其他选项。

要求掌握的属性:

ControlSource、RowSource、RowSourceType

任意时刻用户都能看到多个项

11.3.6列表框与组合框控件

“组合框”控件由一个列表框和一个编辑框组成。

两种类型:

1、下拉组合框style属性为0的组合框

可以通过滚动条查看也可以在框中直接输入查看

2、下拉列表框style属性为2的组合框

只能通过滚动条查看,任意时刻只能看见一项

11.3.7表格控件(Grid)

表格是一个容器对象,包含列(Column)。

每个列对象包含一个标头(Header)和若干控件。

“表格”控件的主要属性是:

Columncount,用来定义表格的列数。

标头的主要属性:

Caption

C2-类型1-例子1

设计表单form1,表单中有命令按钮command1和编辑框edit1,单击命令按钮时将计算下面数列前n项(设n=50)中偶数项的和(结果取4位小数),并将结果显示在edit1中。

1/(1×2×3),1/(2×3×4),1/(3×4×5),……,1/(n×(n+1)×(n+2)),……

结果:

0.0568

C2-类型2-例2

设计表单form1,表单中有命令按钮command1、一个编辑框edit1和一个文本框text1,在edit1中输入下面内容:

“TheauthorswouldliketosincerelythankserieseditorDavidChappellforhisinvaluableassistanceinreviewingseveralearlydraftsofthemanuscriptandprovidingunwaveringclarityandvisionduringmajorrewritestoguidethebooktowarditscurrentform.WewouldalsoliketothankRichBonneauforhishelpduringtheinitialplanningstages.”,

单击命令按钮统计满足下面条件的字符的ASCII码值的和:

字符的ASCII码值能被3整除;并将结果显示在text1中。

注意:

内容中不包含任意回车换行符。

C2-类型2-例3

设计表单form1,表单中有命令按钮command1、两个编辑框edit1和edit2,在edit1中输内容:

"546363463424214398439583252341243452350932059549786546845684509345348

3683468034665893498954343894394346832894387233849683496783486306830669343954359309346834893436438683496346346348765324234234235459487634534345345324

345634634631513534534634323867867846474",单击按钮分别统计出1、2和3在上面字符串中出现的次数,并将统计结果分三行显示在edit2中。

结果:

41560

C2-类型2-例4

设计表单form1,表单中有命令按钮command1和两个文本框text1及text2,在text1中输入字符串"HowandwhyWebservicesprovidetheidealfoundationforSOA",单击命令按钮计算该字符串奇数位置中每个字符的ASCII码值的和,即H、W、a等,并将结果显示在text2框中。

结果:

2906

●有关日期的函数

●Ctod将字符串转换成日期

●Dtoc将日期转换为字符串

●setcenturyon

●Setdatetoymd

●Setstrito0

●Dow(日期表达式):

返回每周的第几天,即星期几

●Cdow(日期表达式):

返回英文星期几

●将数值转换成字符串函数:

str

●STR(数值型表达式1,数值型表达式2,数值型表达式3)

●功能:

将表达式1的值转换成字符串,转换成字符串的长度

●由表达式2决定,保留的小数位数由表达式3决定。

●省略表达式3时,转换后无小数部分;省略表达式2和表达式3时,字符串长度为10,无小数部分

几点有用的规律

1.文本框的value属性可以是文本也可以是数值

2.编辑框的value属性只能是文本

3.向列表框list或者组合框combo添加一项的格式:

Thisform.list1.additem(添加内容)

Tbo1.additem(添加内容)

其中,添加内容必须是文本格式,若不是请进行转换

4.将结果现在文本框或者是编辑框中,可以表示为:

Thisform.text1.value=内容

Thisform.edit1.value=内容(必须是文本)

5.将结果显示在标签label中,可以表示为:

Thisform.label1.caption=内容(必须是文本)

6.单击命令按钮退出,使用如下代码:

thisform.release

C2-类型3-日期

设计表单form1,表单中有命令按钮command1、一个文本框text1和一个组合框combo1,单击命令按钮将1910年到2254年间的国庆节添加到combo1中,然后计算出1910年到2254年间的每个国庆节是星期日的次数,并将计算结果显示在text1中。

参考答案:

49

●setcenton

●setdatetoymd

●setstrito0

●n=0

●fori=1910to2254

●d=str(i)+"/10/01"

●bo1.additem(alltrim(d))

●t=ctod(alltrim(d))

●xq=cdow(t)

●ifxq="Sunday"||ifcdow(ctod(alltrim(d)))=“Sunday”

●n=n+1

●endif

●Endfor

●thisform.text1.value=n

c2-类型3-日期

设计表单form1,表单中有命令按钮command1、一个文本框text1和一个列表框list1,单击命令按钮将1800年到1900年间的元旦日添加到list1中,然后利用函数计算出1800年到1900年间的每个元旦日是星期几,并将该函数值累加,将计算结果显示在text1中。

参考答案:

403

●setcenturyon

●setdatetoymd

●Setstrito0(p37)

●n=0

●fori=1800to1900

●d=str(i)+"/1/1"

●thisform.list1.additem(alltrim(d))

●dd=ctod(d)

●n=n+dow(dd)||n=n+dow(ctod(d))

●endfor

●thisform.text1.value=

在做题之前,应对题中所用到表有所熟悉:

自由表t3.dbf

包含如下字段:

bianhao字符型,宽度8

xingming字符型,宽度8

mima字符型,宽度6

chusny日期型,宽度8

gongzsj日期型,宽度8

hunfo逻辑型,宽度1

jiangjin数值型,宽度7,小数位数2

gongzi数值型,宽度7,小数位数2

C3-例题1查找姓名或编号类

请将自由表{}下载到你的考试文件夹中,并按下面的要求完成程序设计:

1.设计一个表单,表单的标题为“最大年龄人数和编号查询”,名称为tjform,表单中有三个命令按钮和三个编辑框edit1、edit2和edit3,三个按钮的标题分别为“编号查询”,“最大年龄人数”和“退出”。

2.在edit1中输入编号(bianhao),单击“编号查询”按钮将在文本框edit2中显示该编号的姓名(xingming)。

如果没有找到该编号,将在edit2中显示"NOFOUND"。

3.单击“最大年龄人数”按钮统计出年龄等于所有记录最大年龄的记录个数,并将它显示在文本框edit3中。

(注:

年龄=2005-出生年份+1,出生年月字段为chusny)。

4.单击“退出”按钮将关闭表单。

C3-例2处理密码类

现有自由表{},按下面要求完成程序设计:

1.设计一个表单,表单的标题为“密码处理”,名称为tjform,表单中有三个命令按钮和两个标签,三个按钮的标题分别为“处理密码”,“最高位统计”和“退出”。

2.单击“处理密码”按钮将每个记录的密码(mima)最左边的位加1(如果加1后大于9,则取9),其它位不变,并将处理后密码写入表中。

updatet3setmima=;

str(val(substr(mima,1,1))+1,1)+substr(mima,2,5);

wheresubstr(mima,1,1)!

="9“

(注意:

在调试之前必须将t3.DBF文件备份,因为每次调试可能要改变原始表中的数据)。

结果:

6679

3.单击“最高位统计”按钮将统计所有记录的密码中最左边数字的和以及它们中的最大值,并将结果分别显示在两个标签中。

selectsum(val(substr(mima,1,1)))ashe,max(val(substr(mima,1,1)))aszuidafromt3intocursort31

thisform.label1.caption=str(he,10)

thisform.label2.caption=str(zuida,1)

4.单击“退出”按钮将关闭表单。

thisform.release

C3-例3所有记录添加组合框或者列表框

1.设计一个表单,表单的标题为“显示姓名和统计”,名称为tjform,表单中有三个命令按钮、两个列表框list1和list2,一个文本框text1,三个按钮的标题分别为“显示姓名”,“统计”和“退出”。

2.单击“显示姓名”按钮将所有记录的姓名(xingming)添加到list1中。

uset3

dowhile.not.eof()

thisform.list1.additem(t3.xingming)

skip

enddo

use

●3.单击“统计”按钮统计出参加工作时间(gongzsj与出生日期(chusny)均为星期一的人数,将人数显示在text1中,并将他们的记录号分别显示在list2中。

●selectcount(*)asrenshufromt3;

●wherecdow(gongzsj)="Monday"andcdow(chusny)="Monday"intocursort31

●thisform.text1.value=t31.renshu

●selectrecno()asrecfromt3;

●wherecdow(gongzsj)="Monday"andcdow(chusny)="Monday"intocursort32

●dowhile.not.eof()

●thisform.list2.additem(str(t32.rec))

●skip

●enddo

●closeall

C3-例4数据更新类

现有自由表{},按下面要求完成程序设计:

1.设计一个表单,表单的标题为“统计和减少工资”,名称为tjform,表单中有三个命令按钮和一个列表框,三个按钮的标题分别为“减少工资”,“千元统计”和“退出”。

2.单击“减少工资”按钮将每个记录的工资(gongzi)减少原工资的10.67%。

updatet3setgongzi=gongzi-gongzi*0.1067

3.单击“千元统计”按钮将统计所有记录减少后的工资(gongzi)中的千位数字的和及千位数字中的最大值,并将统计的两个数值分两行显示在列表框中。

只计算千位中值,没有千位按0计算。

selectsum(int(gongzi/1000))ashe,max(int(gongzi/1000))aszuidafromt3intocursort31

thisform.list1.additem(str(he))

thisform.list1.additem(chr(13))

thisform.list1.additem(str(zuida))

4.单击“退出”按钮将关闭表单。

C-13单击增加一项类

请将自由表{}下载到你的考试文件夹中,并按下面的要求完成程序设计:

1.设计一个表单,表单的标题为“等于平均人数和浏览”,名称为tjform,表单中有三个按钮、一个组合框和一个文本框,三个按钮的标题分别为“下一个”,“等于平均”和“退出”。

2.单击“下一个”按钮将在组合框中添加下一个记录的姓名(xingming)。

如果到表尾,将添加第一个记录中的姓名。

设置表单的load事件:

uset3

bo1.additem(t3.xingming)

skip

ifeof()

gotop

endif

3.单击“等于平均”按钮统计出年龄等于所有记录平均年龄的记录个数,并将它显示在文本框中。

selectcount(*)asgsfromt3where2005-year(chusny)+1=;(selectavg(2005-year(chusny)+1)aspingjunfromt3)intocursort32

thisform.text1.value=gs

(注:

年龄=2005-出生年份+1,出生年月字段为chusny)。

4.单击“退出”按钮将关闭表单。

thisform.release

C-35表格类

1.设计一个表单,表单的标题为“调整工资和查询”,名称为tzform,表单中有三个命令按钮、一个文本框和一个窗格(grid),三个按钮的标题分别为“查询”,“调整工资”和“退出”。

2.单击“查询”按钮将在窗格中显示所有奖金(jiangjin)不小于230的记录,窗格中显示编号(bianhao)、姓名(xingming)、奖金(jiangjin)和出生年月(chusny)。

设置grid的属性:

ColumnCount=4

RecordSourceType=4-SQL说明

thisform.grid1.recordsource="selectbianhao,xingming,jiangjin,chusnyfromt3wherejiangjin>=230intocursort31"

3.单击“调整工资”按钮将按下面方法修改每个记录的工资(gongzi)数:

1970年(不包括1970)以后出生的工资增加155.10,否则工资增加215.20。

然后将调整前后工资总数之差显示在文本框中。

selectsum(gongzi)asqianhefromt3intocursort32

updatet3setgongzi=gongzi+155.10whereyear(chusny)>1970

updatet3setgongzi=gongzi+215.20whereyear(chusny)<=1970

selectsum(gongzi)ashouhefromt3intocursort33

thisform.text1.value=t33.houhe-t32.qianhe

4.单击“退出”按钮将关闭表单。

Thisform.release

C3-31

请将自由表{}下载到你的考试文件夹中,并按下面的要求完成程序设计:

1.设计一个表单,表单的标题为“已婚最小年龄和浏览”,名称为tjform,表单中有三个命令按钮和两个编辑框,三个按钮的标题分别为“上一个”,“最小年龄”和“退出”。

2.单击“上一个”按钮将在一个编辑框中显示上一个记录的姓名(xingming)。

如果到表首,将显示最后一个记录。

(1)设置表单的load事件:

uset3

(2)thisform.edit1.value=xingming

skip-1

ifbof()

gobottom

endif

3.单击“最小年龄”按钮计算已婚(hunfo为真)的最小年龄,并将最小年龄显示在另一个编辑框中。

(注:

年龄=2005-出生年份+1,出生年月字段为chusny)。

selectmin(2005-year(chusny)+1)aszuixiaofromt3wherehunfo=.t.intocursort31

thisform.edit2.value=str(zuixiao)

4.单击“退出”按钮将关闭表单。

thisform.release

C3-20记录增加一项类

请将自由表{}下载到你的考试文件夹中,并按下面的要求完成程序设计:

1.设计一个表单,表单的标题为“最大

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2