VF教程-表单设计
- 格式:doc
- 大小:159.50 KB
- 文档页数:4
表单设计1) 表格应用A、第一种情况表格数据源类型(recordsourcetype)为0-表方法1步:sele **** into table 表名2步:thisform.grid1.recordsource="表名"机试试题:1 926(别名) .9套答案:a=ALL TRIM(THISFORM.text1.V ALUE)SELECT Rate_exchange.外币名称, Currency_sl.持有数量;FROM rate_exchange,currency_sl;WHERE Rate_exchange.外币代码= Currency_sl.外币代码;AND Currency_sl.姓名= a;ORDER BY Currency_sl.持有数量;INTO TABLE (a)\THISFORM.Grid1.RECORDSOURCE="(a)"26.a=alltrim(thisform.text1.value)SELECT Sell.年度, sum(Sell.销售额) as 销售额,;sum(Sell.销售额-Sell.工资额) as 利润;FROM test_db!sell;WHERE Sell.部门号in (select 部门号from dept where 部门名=a);group by 年度order by 年度into table (a)myform.grid1.recordsource="(a)"1A= alltrim(thisform.text1.value).select 零件名,颜色,重量from 零件, 供应;where零件.零件号=供应.零件号and工程号=aorder by 零件.零件名into table pp.dbfthisform.grid1.recordsource="pp"B、第二种情况表格数据源类型(recordsourcetype)为4-SQL方法thisform.grid1.recordsource="sele **** into cursor 临时表名"机试试题:7 1363 7225 30 34 37 387套THISFORM.GRID1.RECORDSOURCE="SELECT 学生.姓名, 课程.课程名称, 选课.成绩;FROM 课程,选课,学生;where 学生.学号= 选课.学号;and 课程.课程号= 选课.课程号;and 学生.系= '6';INTO CURSOR temp"13套答案:GO TOPLOCAL FOR 学号==ALL TRIM(THISFORM.TEXT1.V ALUE)IF Student.学号==ALL TRIM(THISFORM.TEXT1.V ALUE)THISFORM.GRID1.RECORDSOURCE="SELECT Course.课程名, Score1.成绩; FROM student,course,score1;WHERE Course.课程号= Score1.课程号and student.学号=score1.学号;AND Student.学号= ALL TRIM(THISFORM.TEXT1.V ALUE);INTO CURSOR TEMP"ELSE?"学号不存在,请重新输入学号"THISFORM.GRID1.RECORDSOURCE=" "ENDIF63套ThisForm.Grid1.RecordSource="select * from S_T where 年度=alltrim(thisform.spinner1.value) into cursor temp"55套机试答案ThisForm.Grid1.RecordSource="select student.学号,student.姓名,student.年龄,student.性别from student,class where student.班级号=class.班级号and class.班级号=bo1.list(bo1.listindex) into cursor a"37套机试答案SELE 顾客序号,顾客姓名,单位,消费金额FROM 结帐表WHERE 结帐日期=CTOD(ALLTR(THISFORM.TEXT1.VALUE)) ORDER BY 消费金额 DESC INTO TABLE TABCTHISFORM.GRID1.RECORDSOURCE="SELE 顾客序号,顾客姓名,单位,消费金额 FROM 结帐表 WHERE 结帐日期=CTOD(THISFORM.TEXT1.VALUE) ORDER BY 消费金额 DESC INTO TABLE TABC"38套机试答案delete from tabepackselect 学号 as 学号,姓名 as 姓名,年龄 as 年龄,性别 as 性别,班级 as 班级,注册日期 as 注册日期 from 学生表 where 注册日期= ctod(thisform.Text1.text) order by 年龄 desc into arra dd use tabeappe from arra ddthisform.grid1.recordsource="select 学号 as 学号,姓名 as 姓名,年龄 as 年龄,性别 as 性别,班级 as 班级,注册日期 as 注册日期 from 学生表 where 注册日期= ctod(thisform.Text1.text) into cursor tmp order by 年龄 desc"3 结果通过文本框显示(数组)sele *** into array tpthisform.text1.value=tpthisform.text2.value=tp(2)5 6031套机试答案:SELECT Rate_exchange.现钞买入价* Currency_sl.持有数量FROM Currency_sl,Rate_exchange WHERE Currency_sl.外币代码 = Rate_exchange.外币代码 AND Currency_sl.姓名 =ALLTRIM(THISFORM.text1.VALUE) GROUP BY Currency_sl.姓名INTO ARRAY slTHISFORM.text2.VALUE=sl4 组合框、列表框3) 组合框与列表框数据源(RowsourceType)为1- 值: (在Rowsource)直接输入值2- SQL (在Rowsource)直接输入sele 字段from 表3-数组(在Rowsource) 输入数组名在表单Load事件中定义Public 数组名数组(1)=值……4-字段(在Rowsource) 选择表.字段(先添加数据环境)5-结构(在Rowsource) 选择表名(先添加数据环境)6-文件(在Rowsource) 输入目录(文件夹)第三大题中bo1.value组合框内容可以表示为:表单.组合框.value等价于: bo1.list(bo1.listindex)列表框内容可以表示为:表单.列表框.value等价于: thisform.list1.list(thisform.list1.listindex)28 14 6773 1822 52 28332套机试答案:SELE COUNT(图书登记号) FROM BOOK WHERE 出版社=BO1.VALUE INTO ARRAY A THISFORM.TEXT1.VALUE=A8套机试答案:SELE SUM(单价*数量) AS 金额 FROM 零件信息,使用零件,项目信息 WHERE 零件信息.零件号=使用零件.零件号 AND 使用零件.项目号=项目信息.项目号AND 项目信息.项目号= BO1.VALUE GROUP BY 项目信息.项目号INTO ARRAY ATHISFORM.TEXT1.VALUE=A67套机试答案:SELE * FROM 外汇汇率WHERE 币种1=ALLTR(BO1.VALUE) AND 币种2=ALLTR(BO2.VALUE) INTO TABLE TEMP_RATE73套机试答案:SELE COUNT(学号) AS 人数 FROM 课程,考试成绩 WHERE 课程.课程编号=考试成绩.课程编号AND 课程名=ALLTR(THISFORM.LIST1.VALUE) INTO TABLE ALLTR(THISFORM.LIST1.VALUE)18套机试答案:SELE 国家名称,COUNT(名次) AS 奖牌总数 FROM 国家,获奖牌情况 WHERE 国家.国家代码=获奖牌情况.国家代码 GROUP BY 国家.国家代码 ORDER BY 奖牌总数 DESC,国家名称 INTO TABLE 假奖牌榜27套SELECT Student.姓名, Course.课程名称, Score.考试成绩FROM student,score,course WHERE Score.课程编号= Course.课程编号ANDStudent.学号 = Score.学号 AND (&cn) ORDER BY Course.课程名称, Score.考试成绩 DESC INTO TABLE zonghe.dbfRemoveitem additem28套A=THISFORM.LIST1.VALUESELE 职工号,姓名,工资 FROM 学院表,教师表 WHERE 学院表.系号=教师表.系号 AND 系名=A INTO TABLE (A)33套GM=THISFORM.LIST1.VALUESELE 运动员名称,项目名称,名次 FROM 国家,获奖牌情况 WHERE 国家.国家代码=获奖牌情况.国家代码 AND 国家名称=GM ORDER BY 名次 INTO TABLE (GM)5、do case 用做选项按钮组题的方法一、设计表表单(用生成器设计好选项按钮组)二、在代码中输入(一般在click事件)do casecase thisform.选项按钮组.value=1sql语句1case thisform.选项按钮组.value=2sql语句2case thisform.选项按钮组.value=3sql语句3……endcase作业(第三大题)Case:56,6,64,61,65,69,71,19(难),23 5164套DO CASECASE THISFORM.MYOPTION.V ALUE=1THISFORM.GRID1.RECORDSOURCE="SELE * FROM 外汇账户WHERE 钞汇标志='现汇' INTO CURSOR A"CASE THISFORM. MYOPTION.V ALUE=2THISFORM.GRID1.RECORDSOURCE="SELE 外汇代码,金额FROM 外汇账户WHERE 钞汇标志='现钞' INTO CURSOR A"ENDCASEDO CASECASE THISFORM.OPTIONGROUP1.V ALUE=1SELE 商品.* FROM 商品,分类WHERE 商品.分类编码=分类.分类编码AND 分类名称="饮料"CASE THISFORM.OPTIONGROUP1.V ALUE=2SELE 商品.* FROM 商品,分类WHERE 商品.分类编码=分类.分类编码AND 分类名称="调味品" CASE THISFORM.OPTIONGROUP1.V ALUE=3SELE 商品.* FROM 商品,分类WHERE 商品.分类编码=分类.分类编码AND 分类名称="酒类"CASE THISFORM.OPTIONGROUP1.V ALUE=4SELE 商品.* FROM 商品,分类WHERE 商品.分类编码=分类.分类编码AND 分类名称="小家电" ENDCASE69套DO CASECASE THISFORM.CHECK1.V ALUE=1DO CASECASE THISFORM.OPTIONGROUP1.V ALUE=1SELE * FROM EMPLOYEE INTO TABLE TEMPCASE THISFORM.OPTIONGROUP1.V ALUE=2SELE * FROM ORDERS INTO TABLE TEMPENDCASECASE THISFORM.CHECK1.V ALUE=0DO CASECASE THISFORM.OPTIONGROUP1.V ALUE=1SELE * FROM EMPLOYEECASE THISFORM.OPTIONGROUP1.V ALUE=2SELE * FROM ORDERSENDCASEENDCASE19A=THISFORM.CHECK1.V ALUEB=THISFORM.CHECK2.V ALUEC=THISFORM.OPTIONGROUP1.OPTION1.V ALUED=THISFORM.OPTIONGROUP1.OPTION2.V ALUEDO CASECASE C=1DO CASECASE A=1 AND B=1SELE 职工号,姓名,系名,工资,课程号FROM 学院表,教师表WHERE 学院表.系号=教师表.系号ORDER BY职工号INTO TABLE TWOCASE A=1 AND B=0SELE 职工号,姓名,系名,课程号FROM 学院表,教师表WHERE 学院表.系号=教师表.系号ORDER BY职工号INTO TABLE ONE_XCASE A=0 AND B=1SELE 职工号,姓名,工资,课程号FROM 教师表ORDER BY职工号INTO TABLE ONE_XX ENDCASECASE D=1DO CASECASE A=1 AND B=1SELE 职工号,姓名,系名,工资,课程号FROM 学院表,教师表WHERE 学院表.系号=教师表.系号ORDER BY职工号DESC INTO TABLE TWOCASE A=1 AND B=0SELE 职工号,姓名,系名,课程号FROM 学院表,教师表WHERE 学院表.系号=教师表.系号ORDER BY职工号DESC INTO TABLE ONE_XCASE A=0 AND B=1SELE 职工号,姓名,工资,课程号FROM 教师表ORDER BY职工号DESC INTO TABLE ONE_XX ENDCASEENDCASE6 选项卡10 42 625 顶层表单与菜单1 设计菜单(设计完——显示“常规选项”(顶层表单)——生成菜单)2 设计表单1) Showwindows 2) Init 事件(Load事件)do 菜单.mpr with this66 68 3166套myform.grid1.recordsource="SELE * FROM PRODUCTS,CATEGORY WHERE PRODUCTS.分类编码=CATEGORY.分类编码 AND 分类名称='小家电'"myform.grid1.recordsource="SELE * FROM PRODUCTS,CATEGORY WHERE PRODUCTS.分类编码=CATEGORY.分类编码 AND 分类名称='饮料'"myform.grid1.recordsource="SELE * FROM PRODUCTS,CATEGORY WHERE PRODUCTS.分类编码=CATEGORY.分类编码 AND 分类名称='酒类'"51套MYFORM.grid1.recordsource="sele * from 课程"MYFORM.grid1.recordsource="sview"report form creport previewmyform.releaseDO MYMENU.MPR WITH THIS。
vfp6表单设计实例VFP (Visual FoxPro) 是一种关系数据库管理系统,由微软公司开发。
表单(Form)是 VFP 中用于创建用户界面的重要工具。
以下是一个简单的 VFP 6 表单设计的实例:1. 创建表单首先,打开 VFP 6,选择 "File" -> "New" -> "Form"。
这将打开表单设计器。
2. 添加控件在表单设计器中,你可以从工具箱(Toolbox)中拖放各种控件,如标签(Label)、文本框(TextBox)、命令按钮(CommandButton)等。
例如,你可以添加一个标签(Label)和一个文本框(TextBox),用于用户输入数据。
3. 设置属性选中控件后,可以在属性窗口(Properties Window)中设置各种属性,如名称、位置、大小、字体等。
例如,你可以设置标签的 `Caption` 属性为 "姓名",设置文本框的 `Name` 属性为 "txtName"。
4. 编写事件代码在 VFP 中,你可以为控件的特定事件编写代码。
例如,你可以为命令按钮的 `Click` 事件编写代码,以便在用户点击按钮时执行某些操作。
在代码窗口中输入以下代码:```vfpDO SomeProcedure```其中 `SomeProcedure` 是你要执行的过程的名称。
5. 保存表单最后,保存表单。
选择 "File" -> "Save As",并输入表单的名称和位置。
以上是一个简单的 VFP 表单设计实例。
你可以根据需要添加更多的控件和事件代码,以创建更复杂的用户界面。
VFP表单设计1、表单设计一、实验目的1、掌握表单设计器的使用2、掌握表单设计的基本方法3、掌握常用控件属性的基本设置,事件和方法程序的设计二、实验内容及任务1、编写一个表单程序,其功能是给数据表添加记录并给各字段输入数据,输入的记录条数不定,单击“添加”按钮,将数据添加到数据库,单击“退出”按钮,结束程序运行,所需的数据表ST.DBF在文件夹VFPEX中。
数据表的结构如下:字段名类型宽度小数说明KH 字符型8 考号XM 字符型8 姓名XB 字符型 2 性别SX 数值型 3 数学YW 数值型 3 语文ZF 数值型 3 总分其中:总分=数学+语文表单界面如下:最后表单以文件名SR.SCX保存。
三、实验环境和实验材料1、Visual FoxPro 6.0中文版;2、VFPEX中的数据表ST.DBF。
四、实验方法和步骤1、进入Visual FoxPro 6.0环境。
2、选择“文件/新建”命令,显示“新建”对话框,选择“表单”并单击“新建文件”,显示表单设计器窗口,如图5-1。
图5-13、按设计界面的要求,依次从“表单控件”工具栏处单击所需的控件,然后在所设计表单上添加该控件,同时,在属性窗口内设置该控件的属性,具体如下:表单Form1需要设置的属性:Caption=成绩输入标签Label1需要设置的属性:Caption=考号:,FontSize=12“考号”对应的文本框Text1需要设置的属性:FontSize=12标签Label2需要设置的属性:Caption=姓名:,FontSize=12“姓名”对应的文本框Text2需要设置的属性:FontSize=12标签Label3需要设置的属性:Caption=性别:,FontSize=12“性别”对应的选项按钮Option1需要设置的属性:Caption=男,FontSize=12“性别”对应的选项按钮Option2需要设置的属性:Caption=女,FontSize=12标签Label4需要设置的属性:Caption=数学:,FontSize=12“数学”对应的文本框Text3需要设置的属性:FontSize=12标签Label1需要设置的属性:Caption=语文:,FontSize=12“语文”对应的文本框Text4需要设置的属性:FontSize=12命令按钮Command1需要设置的属性:Caption=添加,FontSize=12命令按钮Command2需要设置的属性:Caption=退出,FontSize=12除上述需要设置的属性以外,其他属性保持缺省值。
1. 表单设计:请设计一个表单,如图,有三个标签,三个文本框,一个命令按钮。
在前两
要求设置下列属性:表单的标题(Caption)、表单运行时自动居中(AutoCenter);三个标签的标题(Caption)、字体大小(FontSize)和粗体
(ReadOnly)2. 3. 设计下面的表单。
要求修改:表单标题,表单运行时自动居中;上面的标签的标题、字
体大小、字体加粗、并设置其WordWrap 【自动分行】为.t.;下面两个标签的字体、字体大小、字体加粗、字体斜体、自动调整大小、forecolor ;添加两个文本框;命令按钮中标题、字体大小、并添加图片【picture 属性、图片内容自定】。
命令按钮中click 事件的代码为:【直接从这里复制】
x=thisform.text1.value
y=thisform.text2.value
if x="abc" and y="123"
messagebox("西华大学欢迎您!",0+64,"您好!")
else
messagebox("用户名或密码错误",2+48+256,"错误!")
endif
4. 按照下面的表单设计一个表单界面:(学生表的显示)
注意: 修改每个文本框的controlscource 属性以及使用文本框的生成器!【两种方法都要灵活掌握!】
点击上一条,显示上一条的记录,点击下一条,显示下一条的记录【忽略文件指针到文件头和文件末尾的出错】,点击退出,则退出表单。
5. 将上题中的标签和文本框删除。
使用设置数据环境,再从数据环境中的字段拖动到表
单中的方法来设置控件:【这种方法简单实用】
6. 多表的显示:
显示学生表、成绩、课程表中的不同字段:【注意:数据环境中三个表文件建立关联】
7. 命令按钮组:将第5题中的三个命令按钮删除,修改为一个命令按钮组,并在命令按钮
组的click 事件中添加程序代码,实现相应的操作【使用Do Case 语句】。
8. 使用生成器,编辑一个选项按钮组,并修改其value 属性为0【不选中任何值】【该题为
练习,不保存成文件】
9.列表框和组合框:1)设计一个组合框,组合框中显示姓名【使用生成器】,当选择一
个姓名后,点击“查询”按钮,在各控件中分别显示其数据。
2)将上面的组合框修改为列表框,显示学号和姓名,并设置返回值为姓名字段。
【使用生成器,修改显示字段和值】
该作业完成后,请完成表单PPT上提到的未来教育模拟系统中提到的题目。
上课的PPT文档请在//10.36.1.9下载。