VFP表单设计案例.doc

上传人:xin****828 文档编号:6708222 上传时间:2020-03-02 格式:DOC 页数:20 大小:1.27MB
返回 下载 相关 举报
VFP表单设计案例.doc_第1页
第1页 / 共20页
VFP表单设计案例.doc_第2页
第2页 / 共20页
VFP表单设计案例.doc_第3页
第3页 / 共20页
点击查看更多>>
资源描述
VFP表单控件应用设计与案例表单控件的应用要点:1.条件语句在表单中应用:IF语句和do case语句2.循环语句在表单中应用:for语句和do while语句3.计时器的应用4.数据表在表单中应用:skip5.SQL语句的应用6.列表框的应用难点:SQL的应用表单控件对象有: 表单 表单集 文本框 编辑框 列表框 组合框 表格复选框 选项按钮组(单选框) 页框 Container容器 命令按钮 命令按钮组标签 线条 形状 图像计时器 微调控件 ActiveX绑定控件 超级链接控件对象分为:控件对象和容器控件。控件对象是基本对象:命令按钮、文本框、标签、线条、形状、复选框、组合框。容器控件包含其他对象的对象:表单、表单集、Container容器、命令按钮组、微调控件、选项按钮组(单选框)、页框、页面、表格、表格列从功能上分为:输出类: 标签、图像、线条、形状输出类:文本框、编辑框、列表框、组合框、微调控件控制类:命令按钮、命令按钮组、复选框 选项按钮组(单选框)、计时器多重容器类:表格、页框、Container容器、表单集连接类:ActiveX绑定控件 超级链接控件1、条件语句在表单中应用单分支语句: if . Else. Endif多分支语句: do case endcaseIfendif语句一般都是与Forendfor配合应用。案例1多分支0901参考答案:“计算”按钮的click event代码:x=thisform.text1.valuedo case case x-10 y=2*(sin(x)+1) case x=0 and k60 m=不合格 case k85 m=合格 case k=a and n=300 m=m*0.9endifthisform.text5.value=round(m,0)thisform.refresh3.计时器的应用属性:Interval:计时时间间隔,单位毫秒。1秒=1000毫秒Enabled:计时启用与停止事件:Timer1:interval设置计时点运行事件代码。计时器启用条件: interval0 and enabled=.t.计时器停止条件: interval=0 or enabled=.f.案例1【要点解答】“开始”按钮的click事件如下:thisform.command1.enabled=.f.thisform.timer1.enabled=.t.Timer1事件的timer代码如下:if thisform.text1.value=0 thisform.command1.enabled=.t. thisform.timer1.enabled=.f.else thisform.text1.value=thisform.text1.value-1endifthisform.refresh案例2(1006)在开始计时按钮的click代码:thisform.timer1.enabled=.t.thisform.text1.value=0计时器的timer代码:thisform.text1.value=thisform.text1.value+1if mod(thisform.text1.value,2)=0 thisform.backcolor=rgb(0,0,255)else thisform.backcolor=rgb(0,255,0)endifthisform.refresh3案例0406【要点解答】“开始”按钮的click事件如下:if this.caption=开始 this.caption=停止 thisform.timer1.enabled=.t.else this.caption=开始 thisform.timer1.enabled=.f.endifthisform.refreshTimer1事件的timer代码如下:if .not.eof() skipelse go 1endifthisform.text1.value=号码thisform.refresh4案例1012“开始”按钮的click事件:if this.caption=开始 this.caption=停 thisform.timer1.enabled=.t.else this.caption=开始 thisform.timer1.enabled=.f.endif计时器的timer事件:if thisform.optiongroup1.value=8 thisform.optiongroup1.value=1else thisform.optiongroup1.value=thisform.optiongroup1.value+1endifthisform.refresh4.数据表在表单中应用数据环境:添加表Control source属性Skip命令Recno()函数1案例0906按钮的click事件编码:If recno()1 Skip -1Else This.enabled=.f.EndifThisform.command2.enabled=.t.Thisform.refresh“下一条”按钮的click事件编码:If recno()recount() Skip Else This.enabled=.f.EndifThisform.command1.enabled=.t.Thisform.refresh2案例1106“上一条”的cilckthis.parent.command1.enabled=.t.if recno()reccount() skipelse this.enabled=.f.endifthisform.refresh“下一条”的clickthis.parent.command2.enabled=.t.if recno()=1 this.enabled=.f.else skip -1endifthisform.refresh5. SQL语句的应用1)查询产生SQL2)哪个对象?什么事件发生代码?3)查询结果显示在哪个对象?查数据源属性。4)表格、组合框等配合应用5)查询结果有多条记录、统计数等类型1案例0901thisform.grid1.recordsourcetype=4thisform.grid1.recordsource=SELECT Pfb.评委编号, Pfb.分数; FROM pfb INNER JOIN gsb ; ON Pfb.歌手编号 = Gsb.歌手编号; WHERE gsb.歌手姓名 = thisform.combo1.value INTO CURSOR tmpSELECT AVG(Pfb.分数); FROM pfb INNER JOIN gsb ; ON Pfb.歌手编号 = Gsb.歌手编号; WHERE gsb.歌手姓名 =thisform.combo1.value; GROUP BY Pfb.歌手编号 INTO array athisform.text1.value=a(1)thisform.refresh2案例0901if this.value=1 SELECT AVG(Book1.单价); FROM book1; WHERE Book1.种类 =thisform.combo1.value; GROUP BY Book1.种类 into array a thisform.text1.value=a(1)endifif this.value=2SELECT SUM(Book1.数量); FROM book1; WHERE Book1.种类 =thisform.combo1.value; GROUP BY Book1.种类 into array a thisform.text1.value=a(1)endifthisform.refresh3案例0901参考答案:1)text1对象的value属性中写:= date()2) 在“查询”command1对象的click event中代码:thisform.grid1.recordsourcetype=4thisform.grid1.recordsource=SELECT Orders.订单号, Orders.签订日期, Orders.金额; FROM orders; WHERE Orders.签订日期= thisform.text1.value; INTO CURSOR tmp thisform.refresh4案例1012SELECT Fshangpf.售价(万), Fshangpf.地址; FROM fshangpf; WHERE Fshangpf.房型 =thisform.combo1.value; INTO cursor bb thisform.grid1.recordsourcetype=1 thisform.grid1.recordsource=bbSELECT AVG(Fshangpf.售价(万)); FROM fshangpf; WHERE Fshangpf.房型 =thisform.combo1.value into array a thisform.text1.value=a(1) thisform.refresh5案例1106b=thisform.optiongroup1.valuedo case case b=1 kk=1房 case b=2 kk=2房 case b=3 kk=3房endcaseSELECT COUNT(*), AVG(Housexs.售价); FROM housexs; WHERE Housexs.房型 =kk into array y thisform.text1.value=y(1) thisform.text2.value=y(2) thisform.refresh6. 列表框的应用1案例0706参考答案:“添加并计算”按钮的click event代码如下:thisform.list1.additem(thisform.text1.value)thisform.list2.additem(str(len(thisform.text1.value)thisform.refresh2案例0901thisform.list1.additem(thisform.text1.value+ +alltrim(str(len(thisform.text1.value)thisform.text1.setfocusthisform.refresh3案例1006 P206Thisform.list2.clearfor i=1 to thisform.list1.listcount if thisform.list1.selected(i) thisform.list2.additem(thisform.list1.list(i) endifendforthisform.refresh娣踿漀8岄帆怈岄俾儀漀(梇粄岄帆粄怋岄俾儀漀(梇岄帆怎岄俾儀漀(梇岄帆怃岄俾儀漀(梇還岄帆還怆岄俾儀漀(梇岄帆怉岄俾儀漀(梇岄帆怍岄俾儀漀(梇!),.:;?”、。】!),:;?(“【(¥翿翿翿翿翿翿翿査SummaryInformationDocumentSummaryInformation
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 中学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!