ON Course.课程编号 = Score.课程编号; ORDER BY Student.学号; into table results
步骤2:在\保存\命令按钮中输入:select * from abc into table results 步骤3:在命令按钮退出中写入:ThisForm.Release。 步骤4:保存并按题目要求运行表单。 第三十五套———基本操作 简单应用:
1. 利用查询设计器创建查询,从xuesheng和chengji表中查询数学、英语和信息技术三门课都在85分以上(含),或者数学、英语都在90分以上(含)而信息技术在75分以上(含)的学生记录。查询结果包含学号、姓名、数学、英语和信息技术5个字段;各记录按学号降序排序;查询去向为表table1。 最后将查询保存在query1.qpr文件中,并运行该查询。
答案:(1)【操作步骤】
步骤1:通过\新建\对话框新建查询文件,将xuesheng和chengji表添加到查询中。 步骤2:从字段选项卡中添加学号、姓名、数学、英语和信息技术5个字段到选定字段中。 步骤3:切换到\筛选\选项卡,在其中进行设置。
步骤4:切换到\排序依据\中选择字段\学号\,在\排序选项\处选择\降序\。
步骤5:单击查询菜单下的查询去向,选择表,输入表名table1,最后将查询保存在query1.qpr文件中,并运行该查询。
2. 首先创建数据库cj_m,并向其中添加xuesheng表和chengji表。然后在数据库中创建视图view1:利用该视图只能查询20001001班(学号的前8位数字串为班号)的学生记录;查询结果包含学号、姓名、数学、英语和信息技术5个字段;各记录按学号降序排序。最后利用刚创建的视图view1查询视图中的全部信息,并将查询结果存放在表table2中。
步骤4:切换到\筛选\选项卡,在其中进行如下设置。 字段名 条件 实例 LEFT(Chengji.学号,8) = \综合应用
在考生文件夹下创建一个下拉式菜单mymenu.mnx,并生成菜单程序mymenu.mpr。运行该菜单程序时会在当前vfp系统菜单的末尾追加一个\考试\子菜单,如下图所示。
菜单命令\计算\和\返回\的功能都通过执行过程完成。 菜单命令\计算\的功能如下:
1) 先用SQL-SELECT语句完成查询:按学号降序列出所有学生在学号、姓名、数学、英语和信息技术5个字段上的数据,查询结果存放在表table3中。
2) 用ALTER TABLE语句在表table3中添加一个\等级\字段,该字段为字符型,宽度为4。
3) 最后根据数学、英语和信息技术的成绩为所有学生计算等级:三门课程都及格(大于等于60分)且平均分大于等于90分的填为\优\,三门课程都及格且平均分大于等于80分、小于90分的填为\良\;三门课程都及格且平均分大于等于70分、小于80分的填为\中\;三门课程都及格且平均分小于70分的填为\及格\;其他的填为\差\。 菜单命令\返回\的功能是恢复标准的系统菜单。
菜单程序生成后,运行菜单程序并依次执行\计算\和\返回\菜单命令。
答案:通过\新建\对话框新建菜单,打开菜单设计器。打开\显示\菜单下的\常规选项\命令,在\常规选项\对话框的\位置\处选择追加,则新建立的子菜单会在当前vfp系统菜单后显示。\计算\菜单项的“过程”代码为: SELECT Xuesheng.学号, Xuesheng.姓名, Chengji.数学, Chengji.英语,; Chengji.信息技术; FROM chengji,xuesheng ;
WHERE Chengji.学号 = Xuesheng.学号; ORDER BY Xuesheng.学号 DESC; INTO TABLE table3.dbf
ALTER TABLE table3 ADD 等级 c(4)
UPDATE table3 SET 等级=\优\数学>=60 AND table3.英语>=60 AND table3.信息技术>=60 AND (table3.数学+table3.英语+table3.信息技术)>=270
UPDATE table3 SET 等级=\良\数学>=60 AND table3.英语>=60 AND table3.信息技术>=60 AND (table3.数学+table3.英语+table3.信息技术)>=240 AND (table3.数学+table3.英语+table3.信息技术)<270
UPDATE table3 SET 等级=\中\数学>=60 AND table3.英语>=60 AND table3.信息技术>=60 AND (table3.数学+table3.英语
+table3.信息技术)>=210 AND (table3.数学+table3.英语+table3.信息技术)<240
UPDATE table3 SET 等级=\及格\数学>=60 AND table3.英语>=60 AND table3.信息技术>=60 AND (table3.数学+table3.英语+table3.信息技术)>=180 AND (table3.数学+table3.英语+table3.信息技术)<210 UPDATE table3 SET 等级=\差\等级=\
注意:在这用了5个update更新;还有一点需要注意的地方,最后一个update更新在写条件时等级=” ”(两个双引号之间必须至少要有一个空格)
在菜单名称中填入\返回\,结果为过程,在过程中输入:SET SYSMENU TO DEFAULT。
步骤3:最后保存菜单mymenu.mnx,并生成菜单程序mymenu.mpr,运行菜单程序并依次执行\计算\和\返回\菜单命令。 第三十六套—————基本操作 简单应用:
1. 打开“点菜”数据库,使用查询设计器设计一个名称为THREE的查询,根据顾客点菜表和菜单表,查询顾客的“顾客号”和“消费金额合计”,消费金额由数量*单价得出。查询结果按“消费金额合计”降序排序,并将查询结果输出到表TABB中。表TABB的两个字段名分别为:顾客号,消费金额合计。设计完成后,运行该查询。
答案:(1)【操作步骤】
步骤1:通过\打开\命令按钮打开考生文件夹下的\点菜\数据库。
步骤2:通过\新建\对话框新建一个查询,按要求将\顾客点菜表\和\菜单表\两个表添加到查询设计器中。
步骤3:在\字段\选项卡中将字段\顾客点菜表.顾客号\和表达式:SUM(数量*单价) AS消费金额合计,添加到\选定字段\列表框中。 步骤4:在\排序依据\选项卡中将表达式\SUM(数量*单价) AS消费金额合计\添加到\排序条件\列表框中,并选择\降序\排序。 步骤5:在\分组依据\选项卡中将将\顾客点菜表.顾客号\添加到\分组条件\列表框中。
步骤6:选择\查询\菜单下的\查询去向\命令,在\查询去向\对话框中选择\表\,在\表名\处输入:TABB,单击\确定\按钮。 步骤7:将查询保存为\three.qpr\,并运行查询。
2. 创建设计一个文件名为“testA”的表单,如下图所示。表单的标题名为“选择磁盘文件”,表单名为“Form1”。该表单完成如下功能:每当在选项按钮组中选择一个文件类型,列表框(List1)立即显示该文件类型的文件目录。列表框的列数为1。“退出”按钮的功能是“关闭和释放表单”。
注意:选择的三种文件类型分别为Word、Excel和TXT文本文件。
答案:步骤1:通过\新建\对话框新建表单,文件名为:testA
步骤2:在表单设计器的属性窗口中,设计表单的Caption属性为\选择磁盘文件\。
步骤3:在表单设计器中,通过表单控件工具栏向表单添加一个选项按钮组控件Optiongroup1,在属性窗口中设置其ButtonCount属性为3。 步骤4:选中选项按钮组控件并单击鼠标右键,在弹出的菜单中选择\编辑\命令,再单击选中其中的\,在属性窗口中设置其Caption属性为\;单击选中其中的\,在属性窗口中设置其Caption属性为\;单击选中其中的\,在属性窗口中设置其Caption属性为\。
步骤5:为表单添加一个列表框控件(List1),在属性窗口中设置其ColumnCount属性为1,RowSourceType属性为\-文件\。 步骤6: 双击选项按钮组,在选项按钮组的click事件中编写代码: do case
case thisform.optiongroup1.value=1 thisform.list1.rowsource=\case thisform.optiongroup1.value=2 thisform.list1.rowsource=\case thisform.optiongroup1.value=3 thisform.list1.rowsource=\endcase
步骤7:为表单添加一个命令按钮控件(Command1),在属性窗口中设置其Caption属性为\退出\。 步骤8:双击\退出\按钮,编写其Click事件代码 Thisform.Release 并关闭代码编写窗口。
步骤9:保存修改后的表单并运行。 综合应用
在考生文件夹下,先打开“点菜”数据库,然后创建设计一个标题名为“查询”、文件名为“testB”的表单,如下图所示。 表单要求如下:
在该表单中设计一个标签(Label1)、一个文本框(Text1)、一个表格(Grid1)和三个命令按钮。
标签对象标题文本为\结帐日期\;文本框用于输入结帐日期(Text1);表格控件用于显示结果。
三个命令按钮的功能如下:
(1) “查询”(Command1)按钮:在该按钮的“Click”事件中使用SQL的SELECT命令查询结帐日期等于从文本框输入日期的顾客序号、顾客姓名、单位和消费金额,查询结果按消费金额降序排序,并将查询结果存储到表TABC中。
(2) “显示”(Command2)按钮:在该按钮的“Click”事件中使用命令将表TABC中记录在表格控件中显示。注意,表格控件中所有属性和事件均为默认。
(3) “退出”(Command3)按钮的功能是“关闭和释放表单”。
表单设计完成后,运行该表单,查询结帐日期等于2005-10-01的顾客信息。
答案:首先新建表单,做成如题目所示的样子,在这需要注意的一点是:标签的caption属性为“结账日期”,一定要看清“结账日期”的“账”是怎么写的,应该是“贝”字旁,若写错了,会出不来结果。然后在“查询”按钮的单击事件中编写代码为: SELECT 结账表.顾客序号, 结账表.顾客姓名, 结账表.单位, 结账表.消费金额; FROM 点菜!结账表;
WHERE 结账表.结账日期 = ctod(thisform.text1.value); ORDER BY 结账表.消费金额 DESC; INTO TABLE tabc.dbf
再在“显示”按钮的单击事件中编写代码(注意,先把表格控件的recordsourcetype属性改为4-SQL说明): thisform.grid1.recordsource=\最后在“退出”按钮的单击事件中编写:thisform.release
注意:运行表单时文本框中的日期不能输:2005-10-01这样的日期格式,因为系统默认的日期格式是美语,也就是月日年的格式,而且年份是两位的,大家可以从“工具”——“选项”——区域选项卡,看一下日期格式,因此咱们必须写成:10-01-05这样的日期格式才能出来结果。 第三十八套————基本操作
简单应用:
1. 打开“TEST_DB”数据库,根据表DEPT和表SELL并使用查询设计器设计一个名称为THREE的查询,按年度统计各部门的月平均销售(通过销售额计算)、月平均工资(通过工资额计算)和月平均利润(通过\月平均销售-月平均工资\计算)。查询统计结果按部门号、年度升序排序,并将查询结果输出到表TABB中。表TABB的字段名依次为:部门号、部门名、年度、月平均销售、月平均工资、月平均利润。设计完成后,运行该查询。
答案:(1)【操作步骤】
步骤3:在查询设计器下方的\字段\选项卡中选中并添加字段\部门号\、\部门名\和\年度\,在\函数和表达式\的\表达式\中输入\销售额) AS 月平均销售\、 \工资额) AS 月平均工资\和\销售额-Sell.工资额) AS 月平均利润\并添加这些表达式。 2. 打开文件名为“testA”的表单。该表单完成如下功能:每当用户输入用户名和口令并按“确认”按钮后,利用表PASS中记录检查其输入是否正确,若正确,就显示“欢迎使用本系统!”字样,并关闭表单;若不正确,则显示\用户名或口令不对,请重输入!\字样;如果三次输入不正确,就显示“用户名或口令不对,登录失败!”字样,并关闭表单。 (1) 修改口令输入文本框,使输入的口令显示为“*”。
(2) 修改该表单“确认”按钮的Click事件中的程序。请将第2、3、4、7和12行语句修改正确。修改时不允许增加或删除行,只能在错误行上进行修改。
(2)【操作步骤】
步骤1:打开表单,修改Text2的PasswordChar属性赋值为\,使用户在输入口令时显示\。 步骤2:修改该表单\确认\按钮的Click事件中的程序如下。 第3行处的错误修改为:Key2 = ALLTRIM(ThisForm.text2.value) 第4行处的错误修改为:LOCATE ALL FOR USER = Key1 第12行处的错误修改为:THISFORM.RELEASE 综合应用
建立一个文件名和表单名均为myform的表单文件,表单上有: . 表格控件grid1(RecordSourceType属性手工设置为“别名”) . 文本框控件Text1
. 命令按钮控件Command1(文本为“确定”)
程序运行时在文本框中输入部门名,然后单击“确定”命令按钮计算该部门各年度的销售额(合计)和利润(合计)(利润为“销售额-工资额”),按年度升序将结果(含年度、销售额和利润3个字段)保存在以部门名命名的dbf文件的同时,在Grid1控件中显示计算的结果。 要求:程序完成后必须运行,并分别计算\笔记本产品部\和\计算机产品部\按年度的销售额和利润情况。
答案:通过\新建\对话框新建一个表单,文件名为myform,按题目的要求为表单添加一个表格控件、一个文本框控件和一个命令按钮控
件,并修改控件的相关属性值,做好表单后,在“确定”按钮的单击事件中编写如下代码: x=thisform.text1.value
SELECT Sell.年度, SUM(Sell.销售额) as 销售额,; SUM(Sell.销售额-Sell.工资额) as 利润; FROM test_db!dept INNER JOIN test_db!sell ; ON Dept.部门号 = Sell.部门号;
WHERE Dept.部门名 = thisform.text1.value; GROUP BY Sell.年度; ORDER BY Sell.年度; into table &x
thisform.grid1.recordsource=\
最后一定记得运行表单,在文本框中分别输入“笔记本产品部”和“计算机产品部”,结果会生成分别以这两个部门命名的表中。 第三十九套——基本操作
UPDATE 学生 SET 出生日期={^1983/05/01} WHERE 姓名='王三风' 简单应用
1. 用SQL语句查询至少有三门的课程成绩在70分以上(包括70分)的学生姓名,并将结果按升序存入表文件results.dbf,然后将该SQL语句粘贴在SQL.TXT文件的 第二行(只占一行)。
答案:这道题可以用查询设计器做,首先新建一个查询,将学生和选课两个表添加进去,在“字段”选项卡把姓名字段添加到选定字段中;在“筛选”选项卡中,字段名选成绩,条件为>=,实例为70;“排序依据”选项卡式按照姓名升序;“分组依据”按姓名分组,“满足条件”下字段名为:count(课程号),条件为>=,实例为3,然后单击“确定”按钮;再在查询设计器空白处右击——“输出设置”,选表,输入表名results,最后运行查询,但不用保存。在查询设计器空白处右击——查看SQL,把SQL语句复制下来,新建一个文本文件,将光标定位在文件中的第2行,将复制的SQL语句粘贴进去。注意:需删除每一行语句后面的分号,并在原分号的位置空一英文状态下的空格(因为题目要求只占一行)。最后保存文本文件名为:SQL.TXT(注意扩展名必须要加上)
答案:第一处错误:MODIFY TABLE 学生 ADD 平均成绩 N(6,2) 改为:ALTER TABLE 学生 ADD 平均成绩 N(6,2) 第二处错误:DO WHILE EOF() 改为: DO WHILE NOT EOF()
第三处错误:REPLACE 平均成绩 = cj[1] 改为:REPLACE 平均成绩 WITH cj[1] 综合应用:
(2) 建立一个表单grade_list(控件名为form1,文件名为grade_list),表单中含有一个表格(名称为grdView_grade)控件, 该表格控件的数据源是前面建立的视图view_grade(直接使用拖拽的方法);然后在表格控件下面添加一个命令按钮(名称为Command1),该命令按钮的标题为\退出\,要求单击按钮时关闭表单。
注意:完成表单设计后要运行表单的所有功能。
(2)【操作步骤】
步骤1:单击常用工具栏中的\新建\按钮,文件类型选择\表单\,打开表单设计器。
步骤2:在表单设计器中单击右键,选择快捷菜单中的\数据环境\命令。将视图view_grade添加到数据环境中。 步骤3:从表单数据环境中拖动视图view_grade到表单中,在表单中自动生成表格对象。 第四十套——基本操作
2. 为表order的\订单日期\字段定义默认值为系统的当前日期。
(2)在数据库设计器中右键单击\表,选择\修改\命令,在打开的表设计器中选中\订单日期\字段,在\字段有效性\框的\默认值\文本框中输入date()。 简单应用:
1. 请按要求修改modi1.prg程序文件中的错误并使之能够正确运行(具体修改要求在程序文件中)。注意:不可以增加或删除程序行。 答案:(1)【操作步骤】
打开modi1.prg,修改其中的错误如下。
① 删除\此处空行)\,然后填写:use customer ② 把 \改为\。
2. 在考生目录下有表customer(客户)和order(订单),用SQL SELECT语句查询所有客户的订单信息,要求在结果中包括公司名称、订单编号、金额和送货方式四个字段的信息,并先按公司名称升序排序、再按订单编号升序排序,查询结果存放在results.dbf文件中,并要求将完整的SQL SELECT语句保存在SQL.PRG文件中。
(2)【操作步骤】
新建一个程序sql.prg,写入如下SQL语句:
SELECT Customer.公司名称, Order.订单编号, Order.金额, Order.送货方式; FROM customer,order;
WHERE Customer.客户编号 = Order.客户编号; ORDER BY Customer.公司名称, Order.订单编号; INTO TABLE results 保存并运行程序。 综合应用
建立满足如下要求的应用并运行,所有控件的属性必须在表单设计器的属性窗口中设置:
1. 建立一个表单myform(文件名和表单名均为myform),其中包含两个表格控件,第一个表格控件名称是grd1,用于显示表customer中的记录,第二个表格控件名称是grd2,用于显示与表customer中当前记录对应的order表中的记录。要求两个表格尺寸相同、左右布局、顶边对齐。
2. 建立一个菜单mymenu,该菜单只有一个菜单项\退出\,该菜单项对应于一个过程,并且含有两条语句,第一条语句是关闭表单myform,第二条语句是将菜单恢复为默认的系统菜单。
3. 在myform的Load事件中执行生成的菜单程序mymenu.mpr。 注意:程序完成后要运行所有功能。
答案:【操作步骤】
步骤1:通过\新建\对话框新建一个表单,然后设置表单的Name属性为:myform。
步骤2:右击表单空白处,选择\数据环境\命令,将考生文件夹下的\和\两个表依次添加到表单的数据环境中。 步骤3:为表单添加两个表格控件,分别修改它们的Name属性为grd1和grd2,RecordSource属性为:customer和order。
步骤4:适当调整每个表格的宽度和位置。按住SHIFT键的同时选中两个表格,在“显示”菜单—\布局\工具栏中分别单击\相同大小\和\顶边对齐\命令按钮。
步骤5:以\为文件对表单进行保存,并运行保存后的表单。
步骤6:通过\新建\对话框新建一个菜单,输入菜单名称为\退出\,选择结果为\过程\,然后单击后面的\创建\按钮,在其中编写如下的命令语句。
MYFORM.RELEASE
SET SYSMENU TO DEFAULT
步骤7:保存菜单名称为\,选择\菜单\菜单下的\生成\命令,生成可执行菜单文件,关闭菜单设计器。 步骤8:回到表单设计器中,双击表单空白处,编写表单的load事件代码:DO mymenu.mpr。
步骤9:运行表单,依次单击customer表对应表格中的所有记录,查看运行情况,最后单击\退出\菜单命令。 第四十二套——基本操作 简单应用:
1. 在SCORE_MANAGER数据库中统计选修了课程的学生人数(选修多门时,只计算1次),统计结果保存在一个新表NEW_TABLE中, 表中只有一个字段,字段名为学生人数。
(1)【操作步骤】 在命令窗口输入命令:
Select count(distinct 学号) as 学生人数 from score1 into table new_table 然后按回车键,执行命令窗口中的命令。
2. 使用一对多报表向导建立报表。要求:父表为“学生”,子表为“课程”,从父表中选择“姓名”字段,从子表中选择全部字段,两个表通过“学号”建立联系;按“学号”降序排序;生成的报表名为student_report。 答案:(2)【操作步骤】
步骤1:通过\新建\对话框新建一个报表,选择\向导\→\一对多报表向导\。
步骤2:在父表中选择\学生\表,并将其中的\姓名\字段添加到\选定字段\列表框中。
步骤3:在子表中选择\课程\表,并将全部字段添加到\选定字段\列表框中。并通过\学号\建立两个表之间的联系。 步骤4:在\排序记录\对话框中,选择按\学号\降序排序。其他步骤按默认值进行设置。 步骤5:最后将报表保存为\并预览。 综合应用