号,器件名,器件号,;
RIGHT(订单号,1)+器件号 AS newnum; FROM od_bak; GROUP BY newnum;
ORDER BY 新订单号,器件号; INTO CURSOR curtable DO WHILE NOT EOF() && 得到单价和数量
SELECT MIN(单价) AS 最低价,SUM(数量) AS数量合计; FROM od_bak;
WHERE RIGHT(订单号,1)=curtable.新订单号 AND 器件号=curtable.器件号;
INTO ARRAY AFieldsValue INSERT INTO od_new VALUES; 【操作步骤】
(1)在命令窗口输入命令:CREATE QUERY,打开查询设计器。
打开查询设计器,系统先要求选择需要查询的表或视图,分别将student、sc和course三个数据表文件添加到查询设计器中,添加数据表文件后,系统自动查找数据表中匹配的字段进行内部联接。
在查询设计器中可以看到\字段\选项的\可用字段\列表框中包含了3个数据表中的字段,将student.学号、student.姓名、course.课程名和sc.成绩4个字段通过\添加\命令按钮,添加到右边的\选定字段\列表框中,如图22-1所示,在\排序依据\选项卡中,HAVING COUNT(课程号)>3; ORDER BY 平均成绩 DESC
**************************** 在命令窗口执行命令:DO t1执行程序。 在工具栏中单击\新建\图标按钮,在对话框中选择\报表\选项,单击\向导\图标按钮,在\向导选取\对话框中选择\报表向导\,单击\确定\按钮进入报表向导设计界面,根据题意,选中视图文件sview,通过选项卡中的\全部添加\图标按钮,将\可用字段\列表框中的所有字段全部添加到\选定字段\列表框中。继续单击\下一步\命令按钮,依次在\选择报表样式\向导界面的\样式\列表框中选择\随意式\,在\排序记录\向导界面中添加\学号\语句行。
2.建立一个名称为menu1的菜单,菜单栏有\文件\和\编辑浏览\两个菜单。\文件\菜单下有\打开\、\关闭退出\两个子菜单;\编辑浏览\菜单下有\雇员编辑\、\部门编辑\和\雇员浏览\个子菜单。 【操作步骤】
(1)在命令窗口输入命令:MODIFY FORM form1,打开表单文件form1。 右击表单空白处,选择 \数据环境\快捷菜单命令,打开表单的数据环境,然后在\打开\对话框中选择数据表文件\雇员\表,单击\添加\命令按钮,将\雇员\表加入到数据环境中。 选中表单,然后在属性面板中修改表 (curtable.新订单号,curtable.器件号,; curtable.器件名,AFieldsValue(1,1),AFieldsValue(1,2)) SKIP ENDDO CLOSE ALL
SET SAFETY ON SET TALK ON
*************************
保存设计结果,在命令窗口输入命令:DO prog1,执行程序文件。
◆◆◆◆◆◆宏图教育◆◆◆◆◆ 1.创建一个新的项目sdb_p,并在该项目中创建数据库sdb。
2.将考生文件夹下的自由表student和sc添加到sdb数据库中。
3.在sdb数据库中建立表course,表结构如下:
字段名 类型 宽度 课程号 字符型 2 课程名 字符型 20 学时 数值型 2
随后向表中输入6条记录,记录内容如下(注意大小写):
课程号 课程名 学时 c1 C++ 60 c2 Visual FoxPro 80 c3 数据结构 50 c4 JAVA 40 c5 Visual BASIC 40 c6 OS 60 4.为course表创建一个主索引,索引名为cno、索引表达式为\课程号\。 【操作步骤】
(1)在命令窗口输入命令:CREATE PROJECT sdb_p,建立一个新的项目管理器。单击\数据\选项卡,然后选中列表框中的\数据库\,单击选项卡右边的\新建\命令按钮,系统弹出\新建数据库\对话框,在对话框中单击\新建数据库\图标按钮,系统接着弹出\创建\对话框,在数据库名文本框内输入新的数据库名称\,单击\保存\命令按钮。
(2)新建数据库后,系统弹出数据库设计器,在设计器中右击鼠标,选择\添加表\快捷菜单命令,系统弹出\打开\对话框,将student和sc两个数据表依次添加到数据库中。
(3)右击数据库设计器,选择\新建表\快捷菜单命令,在弹出的对话框中单击\新建表\图标按钮,系统弹出\创建\对话框,在对话框的\输入表名\文本框中输入course文件名,保存在考生文件夹下,进入表设计器。根据题意,在表设计器的\字段\选项卡中,依次输入每个字段的字段名、类型和宽度,保存表结构设计,系统会出现\现在输入数据记录吗?\的提示框,单击\是\按钮,进入表记录输入窗口为表添加6条记录。
(4)在course的表设计器\字段\选项卡中,为\课程号\字段选择一个索引排序,然后单击\索引\选项卡,在此选项卡中,将字段索引名修改为\,在\索引\下拉框中选择索引类型为\主索引\,为course表建立主索引。
在考生文件夹下完成如下简单应用: 1.根据sdb数据库中的表用SQL SELECT命令查询学生的学号、姓名、课程名和成绩,结果按\课程名\升序排序,\课程名\相同时按\成绩\降序排序,并将查询结果存储到sclist表中。 2.使用表单向导选择student表生成一个名为form1的表单。要求选择student 表中所有字段,表单样式为\阴影式\;按钮类型为\图片按钮\;排序字段选择 \学号\(升序);表单标题为\学生基本数据输入维护\。
先将\课程名\字段添加到\排序条件\列表框中,在\排序选项\中选择\升序\,然后添加\成绩\字段到\排序条件\列表框中,在\排序选项\中选择\降序\。最后选择菜单命令\查询\查询去向\,在对话框中选择\表\,输入表名sclist,关闭对话框完成查询设置。
执行菜单名\查询\运行查询\,查询结果将自动保存到sclist数据表中(如需要查看数据表中查询结果,可直接在命令窗口输入BROWSE命令浏览sclist表中的记录)。
(2)利用菜单命令\文件\新建\,或从常用工具栏中单击新建图标按钮,在弹出的\新建\对话框中选择\表单\单选项,再单击\向导\图标按钮,系统弹出\向导选取\对话框,在列表框中选择\表单向导\,单击\确定\按钮。
选择\表单向导\后,系统首先弹出\字段选取\界面,选择数据表中的字段,加入考生文件夹下的数据库文件sdb后,向导界面中显示数据库中所包含的数据表以及表中字段,根据题意,单击数据表student选中该表,通过选项卡中的\全部添加\图标按钮,将\可用字段\列表框中的所有字段全部添加到\选定字段\列表框中。
单击\下一步\进入\选择表单样式\的界面,在\样式\列表框中选择\阴影式\,在\按钮类型\选项组中选择\图片按钮\选项。
单击\下一步\进入\排序次序\方式的设计界面,将\可用字段或索引标识\列表框中的\学号\字段添加到右边的\选定字段\列表框中,并选择\升序\单选项。
单击\下一步\,进入最后的\完成\设计界面,在\标题\文本框中输入\学生基本数据输入维护\为表单添加标题,单击\完成\命令按钮,在系统弹出的\另存为\对话框中,将表单以form1保存在考生目录下,退出表单设计向导。 (1)打开基本操作中建立的数据库sdb,使用SQL的CREATE VIEW命令定义一个名称为sview的视图,该视图的SELECT语句完成查询:选课数是3门以上(不包括3门)的每个学生的学号、姓名、平均成绩、最低分和选课数,并按\平均成绩\降序排序。最后将定义视图的命令代码存放到命令文件t1.prg中并执行该文件。接着利用报表向导制作一个报表。要求选择sview视图中所有字段;记录不分组;报表样式为\随意式\;排序字段为\学号\(升序);报表标题为\学生成绩统计一览表\;报表文件名为pstudent。 (2)设计一个名称为form2的表单,表单上有\浏览\(名称为Command1)和\打印\(Command2)两个命令按钮。鼠标单击\浏览\命令按钮时,先打开数据库sdb,然后执行SELECT语句查询前面定义的 sview视图中的记录(两条命令不可以有多余命令),鼠标单击\打印\命令按钮时,调用报表文件pstudent浏览报表的内容(一条命令,不可以有多余命令)。 【操作步骤】
(1)在命令窗口输入命令:MODIFY COMMAND t1,打开程序文件编辑窗口,输入如下程序段:
**********t1.prg文件的程序段**********
OPEN DATABASE sdb CREATE VIEW sview AS;
SELECT sc.学号,姓名,AVG(成绩) AS 平均成绩,MIN(成绩) AS 最低分,; COUNT(课程号) AS 选课数; FROM sc,student;
WHERE sc.学号=student.学号; GROUP BY student.学号;
字段到\选定字段\列表框中,在\完成\界面中输入报表标题\学生成绩统计一览表\,单击\完成\命令按钮,将报表以\名保存在考生文件夹下。
(2)在命令窗口输入命令:CREATE FORM form2,打开表单设计器,根据题意,通过\表单控件\工具栏,在表单中添加两个命令按钮,在属性面板中,分别修改两个命令按钮的Caption属性值为\浏览\和\打印\。
双击\浏览\(Command1)命令按钮,进入事件编辑窗口,在Click事件中编写如下代码:
****\浏览\命令按钮的Click事件代码****
OPEN DATABASE sdb SELECT * FROM sview
****************************** 以同样的方法为\打印\命令按钮编写Click事件代码:
****\打印\命令按钮的Click事件代码****
REPORT FORM pstudent.frx PREVIEW ****************************** 保存表单完成设计。
◆◆◆◆◆◆宏图教育◆◆◆◆◆ 在考生文件夹下的\雇员管理\数据库中完成如下操作:
1.为\雇员\表增加一个字段,字段名为EMAIL、类型为\字符\、宽度为20的字段。
2.设置\雇员\表中\性别\字段的有效性规则,性别取\男\或\女\,默认值为\女\。 3.在\雇员\表中,将所有记录的EMAIL字段值使用\部门号\的字段值加上\雇员号\的字段值再加上\进行替换。
4.通过\部门号\字段建立\雇员\表和\部门\表间的永久联系。 【操作步骤】
(1)启动Visual FoxPro后,在命令窗口输入两条命令: USE 雇员 && 打开\雇员\数据表
MODIFY STRUCTURE && 打开表设计器修改表结构 在弹出的表设计器中,根据题意,在\日期\字段后增加一个新的字段,字段名为\、类型为\字符型\、宽度为\。
(2)继续1小题操作,在表设计的\字段\选项卡中,选中\性别\字段,然后在下面的\字段有效性\区域内,输入\规则\文本框内输入的内容为\性别=\男\性别=\女\, \默认值\文本框内输入的内容为\女\。
(3)在命令窗口执行如下命令: UPDATE 雇员 SET EMAIL=部门号+雇员号+\
系统自动更新数据表\雇员\中\字段的内容。
(4)在命令窗口输入命令:MODIFY DATABASE 雇员管理,打开数据库设计器,将\部门\表中\索引\下面的\部门号\主索引字段拖到\雇员\表中\索引\下面的\部门号\索引字段上,这样便建立了部门表和雇员表之间的永久性联系。
1.请修改并执行名称为form1的表单,要求如下:
(1)为表单建立数据环境,并将\雇员\表添加到数据环境中。
(2)将表单标题修改为\公司雇员信息维护\。
(3)修改命令按钮\刷新日期\的Click事件下的语句,使用SQL的更新命令,将\雇员\表中\日期\字段值更换成当前计算机的日期值。注意:只能在原语句上进行修改,不可以增加
单(Form1)的Caption属性值为\公司雇员信息维护\。
双击表单中的\刷新日期\命令按钮,修改该控件的Click事件代码:
****\刷新日期\命令按钮的Click事件的源代码****
UPDATE ALL 日期 WITH DATE() ***************************** **修改后的\刷新日期\命令按钮的Click事件代码**
UPDATE 雇员 SET 日期=DATE() && 语法错误
***************************** 保存表单修改,关闭表单。
(2)在命令窗口输入命令:CREATE MENU menu1,系统弹出一个\新建\对话框,在对话框中单击\菜单\图形按钮,进入菜单设计器环境。根据题目要求,首先输入两个主菜单名称\文件\和\编辑浏览\,在\结果\下拉列表中全部选择\子菜单\。
在主菜单设计界面中,单击\文件\行中的\创建\按钮进入下级菜单的设计界面,此设计窗口与主窗口大致相同,然后输入子菜单项的名称\打开\和\关闭退出\,在\结果\对话框中选择\命令\或\过程\(本题没有要求程序设计),然后选择菜单设计器右边的\菜单级\下拉框中的\菜单栏\项,返回主菜单设计窗口。按照同样的方法完成\编辑浏览\的子菜单设计。
选择菜单命令\菜单\-\生成\,生成一个菜单文件\,关闭设计窗口。
在考生文件夹下,对\雇员管理\数据库完成如下综合应用:
(1)建立一个名称为view1的视图,查询每个雇员的部门号、部门名、雇员号、姓名、性别、年龄和EMAIL。 (2)设计一个名称为form2的表单,表单上设计一个页框,页框有\部门\和\雇员\两个选项卡,在表单的右下角有一个\退出\命令按钮。要求如下: ① 表单的标题名称为\商品销售数据输入\。
② 单击选项卡\雇员\时,在选项卡\雇员\中使用\表格\方式显示view1视图中的记录(表格名称为grdview1)。 ③ 单击选项卡\部门\时,在选项卡\部门\中使用\表格\方式显示\部门\表中的记录(表格名称为\部门\)。
④ 单击\退出\命令按钮时,关闭表单。
【操作步骤】
(1)打开\新建\对话框,在对话框中选择\视图\单选按钮(注意,首先应该打开相应数据库文件,否则该对话框中的\视图\单选项将不可选),然后单击\新建文件\图标按钮,系统首先弹出\添加表或视图\的对话框,在\数据库中的表\列表框中选择数据表文件\部门\,然后单击\添加\命令按钮,将\部门\表添加到视图设计器中,接着将\雇员\表也添加到视图中关闭对话框进入视图设计器中。根据题意,在\字段\选项卡的\可用字段\列表框中,选取字段:部门.部门号、部门.部门名、雇员.雇员号、雇员.姓名、雇员.性别、雇员.年龄和雇员.Email字段逐个添加到右边的\选定字段\列表框中,将视图以\名保存在考生文件夹下。
(2)在命令窗口输入命令:CREATE FORM form2,新建表单,打开表单设计器。
利用表单控件工具栏在表单中添加一个页框控件和一个命令按钮,选中表单(form1),在属性面板中修改表单的Caption(标题)属性值为\商品销售数据输入\,然后在属性面板顶部的
下拉框选择命令按钮(Command1),修改其Caption属性值为\退出\。以同样的方法修改页框中两个页面(Page1和Page2)的Caption属性值为\雇员\和\部门\。
右击表单空白处,选择\数据环境\快捷菜单命令,在\添加表或视图\对话框中将视图文件view1和数据表文件\部门\分别添加到表单的数据环境中。 在表单设计器中,右击页框控件(Pageframe1),选择\编辑\菜单命令,可以看到页框四周出现蓝色边框,表示处于编辑状态下,然后在\雇员\页面中(Page1)添加一个表格控件,设置表格控件的RecordSource属性值为视图文件\,RecordSourceType属性值为\别名\(用来指定显示视图中的数据),Name属性值为\。然后在页框编辑状态下选择\部门\页面(Page2),以同样的方法在该页面中添加一个表格控件,并设置RecordSource属性值为\部门\表,RecordSourceType属性ThisForm.Release,保存对表单的修改。
(2)在命令窗口输入命令:CREATE FORM MYFORM4,新建表单。 在表单设计器中,通过表单控件工具栏,向表单添加两个命令按钮Command1和Command2,将两个按钮的Caption属性值分别改为\查询\和\退出\。双击命令按钮Command1(查询),在打开的代码编辑器窗口中输入以下代码:
******命令按钮Command1(查询)的Click事件代码*******
SELECT Authors.作者姓名, Authors.所在城市;
FROM authors,books ;
WHERE Authors.作者编号 = Books.作者编号;
GROUP BY Authors.作者姓名 HAVING COUNT(Books.图书编号) >= 3; ORDER BY Authors.作者姓名; INTO TABLE NEWVIEW
******************************* 用同样的方法,编写Command2(退出)currency_sl表中\索引\下面的\外币代码\索引字段上,建立rate_exchange和currency_sl两个表之间的永久性联系。
(4)在命令窗口输入命令:MODIFY FORM test_form,打开表单设计器,按下Shift键的同时选中标签\用户名\和\口令\后,在\属性\对话框中将标签\用户名\和\口令\的FontName值置为\黑体\,保存表单修改。
在考生文件夹下完成如下简单应用: 1.rate_pro.prg中的程序功能是计算出\林诗因\所持有的全部外币相当于人民币的价值数量,summ中存放的是结果。注意:某种外币相当于人民币数量的计算公式:人民币价值数量= 该种外币的\现钞买入价\该种外币的\持有数量\。请在指定位置修改程序的语句,不得增加或删除程序行,并保存所做的修改。
2.建立一个名为menu_rate的菜单,菜单中有两个菜单项\查询\和\退出\。\查询\项中还有一个子菜单,子菜个命令按钮\统计\(command1)和\退出\(command2)。其中,选项组控件有3个按钮\日元\、\美元\和\欧元\。 运行表单时首先在选项组控件中选择\日元\、\美元\或\欧元\单击\统计\命令按钮后,根据选项组控件的选择将持有相应外币的人的姓名和持有数量分别存入rate_ry.dbf(日元)和rate_my.dbf(美元)和rate_oy(欧元)中。
单击\退出\按钮时关闭表单。
表单建成后,要求运行表单,并分别统计\日元\、\美元\和\欧元\的持有数量。
【操作步骤】
在命令窗口输入命令:CREATE FORM myrate,打开表单设计器,通过\表单控件工具栏\向表单添加一个选项组按钮和两个命令按钮。 选中表单(Form1),在属性面板中修改Name的属性值为myrate,将Caption的属性值改为\外汇持有情况\。然后在属性面板顶端的下拉框中选择值为\表\,Name属性值为\部门\。
最后双击\退出\命令按钮,在Click事件中编写程序命令ThisForm.Release,用来关闭表单。保存表单设计,退出表单设计器。
◆◆◆◆◆◆宏图教育◆◆◆◆◆ 1.建立数据库BOOKAUTH.DBC,把表BOOKS.DBF和AUTHORS.DBF添加到该数据库。
2.为AUTHORS表建立主索引,索引名\,索引表达式\作者编号\。 3.为BOOKS表分别建立两个普通索引,其一索引名为\,索引表达式为\图书编号\;其二索引名和索引表达式均为\作者编号\。 4.建立AUTHORS表和BOOKS表之间的联系。
【操作步骤】
(1)在命令窗口输入命令:MODIFY DATABASE BOOKAUTH,新建数据库。右击数据库设计器,选择\添加表\快捷菜单命令,将考生文件夹下的BOOKS.DBF和AUTHORS.DBF自由表分别添加到数据库中。
(2)在数据库设计器中,右键单击数据库表AUTHORS,选择\修改\快捷菜单命令,进入表设计器,在\字段\选项卡中为\作者编号\字段选择一个索引排序,然后单击\索引\选项卡,此选项卡中,将索引名改为\,索引类型改为\主索引\。
(3)在数据库设计器中,右键单击数据库表BOOKS,选择\修改\快捷菜单命令,进入表设计器,在\字段\选项卡中为\图书编号\字段选择一个索引排序,然后单击\索引\选项卡,将索引名该为\。以同样的方法为\作者编号\建立普通索引。
(4)在数据库设计器中,将AUTHORS表中\索引\下面的\主索引字段拖到BOOKS表中\索引\下面的\作者编号\索引字段上,建立AUTHORS和BOOKS两个表之间的永久性联系。
在考生文件夹下完成如下简单应用: 1.打开表单MYFORM44,把表(名称为Form1)的标题改为\欢迎您\将文本\欢迎您访问系统\(名称为Label1的标签)的字号改为25,字体改为隶书。再在表单上添加\关闭\(名称为Command1)命令按钮,单击此按钮关闭表单。
最后保存并运行表单。
2.设计一个表单MYFORM4,表单中有两个命令按钮\查询\(名称为Command1)和\退出\(名称为Command2)。
(1)单击\查询\按钮,查询BOOKAUTH数据库中出版过3本以上(含3本)图书的作者信息,查询信息包括:作者姓名,所在城市;查询结果按作者姓名升序保存在表NEWVIEW中。 (2)单击\退出\按钮关闭表单。 最后保存并运行表单。 【操作步骤】
(1)在命令窗口输入命令:MODIFY FORM MYFORM44,打开表单文件。 选中表单,在属性面板中修改该表单(Form1)的Caption属性为\欢迎您\,选中Lable1标签,在属性框内更改FontSize为25,FontName为\隶书\。 通过表单控件工具栏,向表单添加一个命令按钮,修改命令按钮的Caption属性值为\关闭\。双击该按钮,在Click事件中输入代码:
的Click的事件代码:ThisForm.Release。保存表单在考生文件夹下。
在考生文件夹下完成如下综合应用: (1)首先将BOOKS.DBF中所有书名中含有\计算机\个字的图书复制到表BOOKSBAK中,以下操作均在BOOKSBAK表中完成;
(2)复制后的图书价格在原价格基础上降价5%;
(3)从图书均价高于25元(含25)的出版社中,查询并显示图书均价最低的出版社名称以及均价,查询结果保存在表newtable中(字段名为出版单位和均价)。 【操作步骤】
在命令窗口输入命令:MODIFY COMMAND junjia,打开程序编辑窗口,编写如下程序:
***********文件junjia.prg的程序段**********
OPEN DATABASE BOOKAUTH
&& 将books中的所有书名中含有计算机3个字的图书复制到表BOOKSBAK中 SELECT * FROM books WHERE AT(\计算机\书名)>0;
INTO TABLE BOOKSBAK
&& 价格在原价格基础上降价5%
UPDATE BOOKSBAK SET 价格=价格*0.95
&& 查询出各个图书的均价放到临时表中
SELECT 出版单位,AVG(价格) AS 均价;
FROM BOOKSBAK INTO CURSOR CURSOR1 ;
GROUP BY 出版单位ORDER BY均价 && 在临时表中查询均价高于25的图书中价格最低的出版社名称和均价 SELECT * TOP 1 FROM CURSOR1 WHERE 均价>=25 INTO TABLE newtable; ORDER BY 均价
***********************
保存文件,在命令窗口输入命令:DO junjia,运行程序。
◆◆◆◆◆◆宏图教育◆◆◆◆◆ 1.新建一个名称为\外汇数据\的数据库。
2.将自由表rate_exchange和currency_sl添加到数据库中。
3.通过\外币代码\字段为rate_exchange 和currency_sl 建立永久联系(如果有必要请建立相关索引)。
4.打开表单文件test_form,请将标签\用户名\和\口令\的字体都改为\黑体\。
【操作步骤】
(1)在命令窗口输入命令:MODIFY DATABASE 外汇数据,新建数据库。 (2)右击数据库设计器,选择\添加表\快捷菜单命令,将考生文件夹下的rate_exchange和currency_sl两个自由表分别添加到数据库中。
(3)在数据库设计器中,右击rate_exchange数据表,选择\修改\快捷菜单命令,打开表设计器,在\字段\选项卡中为\外币代码\字段选择一个索引排序,然后单击\索引\选项卡,在\索引\下拉框中选择索引类型为\主索引\。以同样的方法为currency_sl表的\外币代码\字段建立一个普通索引。然后在数据库设计器中,将rate_exchange表中\索引\下面的\外币代码\主索引字段拖到
单有\日元\、\欧元\、\美元\个选项。在\退出\菜单项下创建过程,该过程用于返回系统菜单。 【操作步骤】
在命令窗口输入命令:MODIFY COMMAND rate_pro.prg,打开程序文件编辑窗口,文件中程序段如下:
****下面是rate_pro.prg文件的源程序内容****
OPEN DATABASE 外汇数据 USE currency_sl
&&*****Error********* FIND FOR 姓名=\林诗因\summ=0
&&*****Error********* WHILE NOT EOF()
SELECT 现钞买入价 FROM rate_exchange;
WHERE rate_exchange.外币代码=currency_sl.外币代码 INTO array a
&&*****Error*********
summ=summ+a[1] * rate_exchange.持有数量 CONTINUE ENDDO ?summ
****************************** 根据源程序中提示的3处错误,修改后的程序段如下所示:
****下面是修改后的rate_pro.prg文件内容****
OPEN DATABASE 外汇数据 USE currency_sl
LOCATE FOR 姓名=\林诗因\summ=0
DO WHILE NOT EOF()
SELECT 现钞买入价 FROM rate_exchange;
WHERE rate_exchange.外币代码=currency_sl.外币代码 INTO array a
summ=summ+a[1]*currency_sl.持有数量
CONTINUE ENDDO ?summ
****************************** (1)在命令窗口输入命令:CREATE MENU menu_rate,系统弹出一个\新建菜单\对话框,在对话框中单击\菜单\图形按钮,进入菜单设计器环境。根据题目要求,首先输入两个主菜单名称\查询\和\退出\,在\结果\下拉列表中分别选择\子菜单\和\命令\。 在主菜单设计界面中,单击\查询\行中的\创建\按钮进入下级菜单的设计界面,然后输入3个子菜单项的名称\日元\、\欧元\和\美元\,在\结果\下拉框中全部选择\命令\。返回主菜单设计界面,在菜单项\退出\的\命令\文本框中编写程序代码:SET SYSMENU TO DEFAULT。(要返回上级菜单,只要从菜单设计器窗口的\菜单级\下拉列表中选择\菜单栏\即可回到上级菜单)
选择菜单命令\菜单\-\生成\,生成一个可执行菜单文件\,关闭设计窗口,保存菜单。
设计一个文件名和表单名均为myrate的表单,所有控件的属性必须在表单设计器的属性窗口中设置。表单的标题为\外汇持有情况\。表单中有一个选项组控件(命名为myOption)和两
OptionGroup1,修改该命令按钮控件的Name属性值为\,修改ButtonCount的属性值为3,为该选项组增加一个单选项。然后在属性面板顶端的下拉框中选择Option1单选项,修改该控件的Caption属性值为\日元\,根据题意,以同样的方法为其他两个单选按钮和命令按钮设置Caption属性值。
在表单设计器中,右击空白表单,选择\数据环境\快捷菜单命令,打开表单的数据环境,首先要求选择添加的数据表,在弹出的\打开\对话框中选择要加入到数据环境中的数据表文件dept和salarys,关闭对话框,将表添加到表单的数据环境中。 双击命令按钮(Command1),编写该控件的Click(单击)事件:
*************命令按钮(Command1)的Click事件代码************* DO CASE CASE
ThisForm.myOption.option1.value=1
SELECT Currency_sl.姓名, Currency_sl.持有数量;
FROM 外汇数据!rate_exchange INNER JOIN 外汇数据!Currency_sl ; ON rate_exchange.外币代码 = Currency_sl.外币代码;
WHERE rate_exchange.外币名称 = \日元\
INTO TABLE rate_ry.DBF CASE
ThisForm.myOption.option2.value=1
SELECT Currency_sl.姓名, Currency_sl.持有数量;
FROM 外汇数据!rate_exchange INNER JOIN 外汇数据!Currency_sl ;
ON rate_exchange.外币代码 = Currency_sl.外币代码;
WHERE rate_exchange.外币名称 = \美元\
INTO TABLE rate_my.DBF CASE
ThisForm.myOption.option3.value=1
SELECT Currency_sl.姓名, Currency_sl.持有数量;
FROM 外汇数据!rate_exchange INNER JOIN 外汇数据!Currency_sl ; ON rate_exchange.外币代码 = Currency_sl.外币代码;
WHERE rate_exchange.外币名称 = \欧元\
INTO TABLE rate_oy.DBF ENDCASE
******************************** 双击命令按钮(Command2),编写该控件的Click(单击)事件: *******命令按钮(Command2)的Click事件代码******* ThisForm.Release
******************************** 保存表单到考生文件夹下,然后在命令窗口输入命令:DO FORM myrate运行表单。
◆◆◆◆◆◆宏图教育◆◆◆◆◆ 在考生文件夹下完成如下操作: 1.新建一个名为\学生管理\的项目文件。
2.将\学生\数据库加入到新建的项目文件中。
3.将\教师\表从\学生\数据库中移
出,使其成为自由表。
4.通过\学号\字段为\学生\和\选课\表建立永久联系(如果有必要请先建立有关索引)。 【操作步骤】
(1)在命令窗口输入命令:CREATE PROJECT学生管理,建立一个新的项目文件。
(2)在新建的项目管理器中,单击\数据\选项卡,然后选中列表框中的\数据库\,单击选项卡右边的\添加\按钮,将考生文件下的\学生\数据库文件添加到项目管理器中。
(3)在\数据库\分支下,选中\教师\数据表文件,单击项目管理器上的\移去\命令按钮,在弹出的对话框中选择\移去\,将\教师\表从数据库中移出。 (4)在\数据库\分支下,选中\学生\数据表文件,单击项目管理器上的\修改\命令按钮,打开表设计器,在\字段\选项卡中为\学号\字段选择一个索引排序,然后单击\索引\选项卡,在\索引\下拉框中选择索引类型为\主索引\。以同样的方法为\选课\表的\学号\字段建立一个普通索引。 选中\学生\数据库,单击项目管理器上的\修改\命令按钮,打开数据库设计器,将\学生\表中\索引\下面的\学号\主索引字段拖到\选课\表中\索引\下面的\学号\索引字段上,建立\学生\和\选课\两个表之间的永久性联系。
在考生文件夹下完成如下简单应用: 1.用SQL语句对自由表\教师\完成下列操作:将职称为\教授\的教师新工资一项设置为原工资的120%,其他教师的新工资与原工资相等;插入一条新记录,该教师的信息:姓名\林红\,职称\讲师\,原工资\,新工资\,同时将SQL语句存放于新建的文本文件teacher.txt中(两条更新语句,一条插入语句,按顺序每条语句占一行)。
2.使用查询设计器建立一个查询文件stud.qpr查询要求:选修了\英语\并且成绩大于等于70的学生的姓名和年龄,查询结果按年龄升序存放于stud_temp.dbf表中。 【操作步骤】
(1)根据题意,在命令窗口依次输入如下语句,完成数据表记录的更新和插入。
UPDATE 教师 SET 新工资=原工资*1.2 WHERE 职称=\教授\
UPDATE 教师 SET 新工资=原工资 WHERE 职称!=\教授\
INSERT INTO 教师 VALUES(\林红\讲师\
在考生文件夹下新建一个teacher.txt文件,将上列语句复制到该文件中。
(2)在命令窗口输入命令:CREATE QUERY stud,打开查询设计器。 系统首先要求选择需要查询的表或视图,将\学生\、\选课\和\课程\表依次添加到查询设计器中。添加3个数据表文件后,系统自动查找两个数据表中匹配的字段进行内部联接。
在查询设计器中可以看到\字段\选项的\可用字段\列表框中包含了3个数据表中的字段,将\学生.姓名\和\学生.年龄\两个字段通过\添加\命令按钮,添加到右边的\选定字段\列表框中。
在筛选选项卡中设置查询条件:首先选择字段名称\课程.课程名称\,条件为\,在实例文本框中输入\英语\,选择\逻辑\下拉框中的\;接着设置第二个查询条件,字段名称\选课.成绩\,条件为\,在实例文本框中输入\。
然后在\排序依据\选项卡中,选择字段\学生.年龄\添加到\排序条件\列表框中,选择排序方式为\升序\。最后设置查询去向,选择菜单命令\查询\查询去向\,在弹出的\查询去向\对话框中,单击\表\图标按钮,输入表名stud_temp,关闭对话框,运行查询,系统将查询结果自动保存到表stud_temp中。
设计名为mystu的表单(文件名为mystu,表单名为form1),所有控件的属性必须在表单设计器的属性窗口中设置。表单的标题为\计算机系学生选课情况\。表单中有一个表格控件(Grid1),该控件的RecordSourceType的属性设置为4(SQL说明)和两个命令按钮\查询\
(command1)和\退出\(command2)。 运行表单时,单击\查询\命令按钮后,表格控件中显示4系(系字段值等于字符4)的所有学生的姓名、选修的课程名和成绩。
单击\退出\按钮关闭表单。 【操作步骤】
在命令窗口输入命令:CREATE FORM mystu,打开表单设计器,通过\常用工具栏\向表单添加一个表格和两个命令按钮。
选中表单(Form1),在属性面板中修改Caption的属性值为\计算机系学生选课情况\,然后在属性面板顶端的下拉框中选择Command1,修改该命令按钮控件的Caption属性值为\查询\,以同样的方法将第二个命令按钮Command2设置Caption属性值设置为\退出\,设置表格grid1的RecordSourceType属性值为4。 双击命令按钮Command1(查询),编写该控件的Click事件,程序代码如下: ****\查询\命令按钮的Click事件代码****
ThisForm.Grid1.RecordSource=;
\学生.姓名, 课程.课程名称, 选课.成绩;
FROM 学生!课程 INNER JOIN 学生!选课;
INNER JOIN 学生!学生; ON 学生.学号 = 选课.学号; ON 课程.课程号 = 选课.课程号; WHERE 学生.系 = '4';
◆◆◆◆◆◆宏图教育◆◆◆◆◆ INTO CURSOR temp\在考生文件夹下完成如下操作: 1.用SQL语句从rate_exchange.dbf表中提取外币名称、现钞买入价和卖出价3个字段的值并将结果存入rate_ex.dbf表(字段顺序为外币名称、现钞买入价、卖出价,字段类型和宽度与原表相同,记录顺序与原表相同),并将相应的SQL语句保存为文本文件one.txt。
2.用SQL语句将 rate_exchange.dbf 表中外币名称为\美元\的卖出价修改为829.01,并将相应的SQL语句保存为文本文件two.txt。
3.利用报表向导根据rate_exchange.dbf表生成一个外币汇率报表,报表按顺序包含外币名称、现钞买入价和卖出价3列数据,报表的标题为\外币汇率\(其他使用默认设置),生成的报表文件保存为rate_exchange。
4.打开生成的报表文件rate_exchange进行修改,使显示在标题区域的日期改在每页的注脚区显示。
【操作步骤】
(1)在命令窗口输入如下语句,查询记录:
SELECT 外币名称,现钞买入价,卖出价 FROM rate_exchange INTO TABLE rate_ex
并在考生文件夹下新建文本文件one.txt将上述语句复制到其中并保存。
(2)在命令窗口输入如下语句,更新记录:
update rate_exchange set 卖出价=829.01 where 外币名称=\美元\并在考生文件夹下新建文本文件two.txt将上述语句复制到其中并保存。
(3)单击工具栏上的\新建\按钮,打开\新建\对话框,文件类型选择报表,单击向导按钮,在\向导选取\对话框中选择\报表向导\,然后根据向导提示,在\字段选取\界面中,按顺序添加rate_exchange表中的外币名称、现钞买入价和卖出价3个字段到\选定字段\列表框中,在\完成\向导界面中修改报表标题为\外币汇率\,完成报表设计,生成的报表文件保存为rate_exchange。
(4)在命令窗口输入命令:MODIFY REPORT rate_exchange,打开报表设计器,在报表设计器中,将显示在\标题\区域的日期拖到\页注脚\区,保存报表文件即可。
1.设计一个时钟应用程序,具体描述如下:
表单名和表单文件名均为timer,表单标题为\时钟\,表单运行时自动显示系统的当前时间;
(1)显示时间的为标签控件Label1(要求在表单中居中,标签文本对齐
方式为居中); (2)单击\暂停\命令按钮(Command1)时,时钟停止; (3)单击\继续\命令按钮(Command2)时,时钟继续显示系统的当前时间; (4)单击\退出\命令按钮(Command3)时,关闭表单。
提示:使用计时器控件,将该控件的Interval属性设置为500,即每500毫秒触发一次计时器控件的timer事件(显示一次系统时间);将计时器控件的interval属性设置为0将停止触发timer事件;在设计表单时将timer控件的interval属性设置为500。 2.使用查询设计器设计一个查询,要求如下:
(1)基于自由表currency_sl.DBF和rate_exchange.DBF;
(2)按顺序含有字段\姓名\、\外币名称\、\持有数量\、\现钞买入价\及表达式\现钞买入价*持有数量\; (3)先按\姓名\升序排序、再按\持有数量\降序排序;
(4)查询去向为表results.dbf; (5)完成设计后将查询保存为query文件,并运行该查询。 【操作步骤】
(1)本题的主要考核点是简单应用程序的建立。
在命令窗口输入命令:CREATE FORM form1,新建表单文件。打开表单设计器后,修改表单的Caption属性值为\时钟\,修改Name属性值为\,然后通过表单控件工具栏,在表单上放置3个按钮控件,命令按钮的Caption属性值分别修改为\暂停\、\继续\、\退出\;单击\标签控件\,在表单中央放置1个标签控件,修改其Alignment属性为\中央\;单击\计时器控件\,在表单上放置一个计时器控件,修改其Interval属性为500。 修改各个控件的事件代码,内容如下: command1(暂停)按钮的click事件为:ThisForm.Timer1.Interval=0
command2((继续)按钮的click事件为:ThisForm.Timer1.Interval=500 command3(退出)按钮的click事件为:ThisForm.Release
timer1的timer事件为:ThisForm.Label1.Caption=time() 保存表单设计到考生文件夹下。
(2)在命令窗口输入命令:CREATE QUERY,打开查询设计器。
打开查询设计器,系统首先要求选择需要查询的表或视图,将自由表currency_sl.DBF和rate_exchange.DBF添加到查询设计器中,添加两个数据表文件后,系统自动查找两个数据表中匹配的字段进行内部联接。
在查询设计器中可以看到\字段\选项卡的\可用字段\列表框中包含了两个数据表中的字段,将currency_sl.姓名、rate_exchange.外币名称、currency_sl.持有数量、rate_exchange.现钞买入价4个字段通过\添加\命令按钮,添加到右边的\选定字段\列表框中,然后单击底部的\表达式生成器\命令按钮\…\,系统弹出\表达式生成器\对话框,在对话框的\表达式\文本框中输入\现钞买入价* currency_sl.持有数量\,如图36-3所示。单击确定按钮回到查询设计器中,然后单击 \添加\命令按钮,将该表达式添加到\可用字段\中。
接着在\排序依据\选项卡中,将\姓名\字段添加到\排序条件\列表框中,选择排序方式为\升序\,再将\持有数量\字段添加到\排序条件\列表框中,选择排序方式为\降序\。最后设置查询去向,选择菜单命令\查询\查询去向\,在弹出的\查询去向\对话框中,单击\表\图标按钮,输入表名results.dbf,关闭对话框,运行查询,保存查询文件名为query到考生文件下,系统将查询结果自动保存到表results.dbf中。
设计一个满足如下要求的应用程序,所有控件的属性必须在表单设计器的属性窗口中设置:
建立一个表单,表单文件名和表单名均为form1,表单标题为\外汇\; 表单中含有一个页框控件(PageFrame1)和一个\退出\命令按钮(Command1);
页框控件(PageFrame1)中含有3个页
面,每个页面都通过一个表格控件显示有关信息:
(1)第一个页面Page1上的标题为\持有人\,其中的表格控件名为grdCurrency_sl,记录源的类型(RecordSourceType)为\表\,显示自由表currency_sl中的内容;
(2)第二个页面Page2上的标题为\外汇汇率\,其中的表格控件名为grdRate_exchange,记录源的类型(RecordSourceType)为\表\,显示自由表rate_exchange中的内容; (3)第三个页面Page3上的标题为\持有量及价值\,其中的表格控件名为Grid1,记录源的类型(RecordSourceType)为\查询\,记录源(RecordSource)为\简单应用\题目中建立的查询文件query。 (4)单击\退出\命令按钮(Command1)关闭表单。 【操作步骤】
在命令窗口输入命令:CREATE FORM form1,新建表单,打开表单设计器。 利用表单控件工具栏在表单中添加1个页框控件和1个命令按钮,选中表单(form1),在属性面板中修改表单的Caption(标题)属性值为\外汇\,然后在属性面板顶部的下拉框选择命令按钮(Command1),修改Caption属性值为\退出\,打开表单数据环境,将表文件currency_sl.DBF和rate_exchange.DBF添加到数据环境中。
选定页框,修改PageCount的属性值为3,增加一个页面,右击页框控件(Pageframe1),选择\编辑\菜单命令,可以看到页框四周出现蓝色边框,表示处于编辑状态下,选定页面(Page1),修改页面标题Caption属性值为\持有人\,添加1个表格控件,设置表格控件的RecordSource属性值为视图文件\,RecordSourceType属性值为\表\(用来指定显示视图中的数据),Name属性值为\。然后在页框编辑状态下,根据题意,以同样的方法设置其他两个页面。
最后双击\退出\命令按钮,在Click事件中编写程序命令:ThisForm.Release,用来关闭表单。保存表单设计,退出表单设计器。 ◆◆◆◆◆◆宏图教育◆◆◆◆◆ 在考生文件夹下完成如下操作: 1.用SQL INSERT语句插入元组(\)到\零件信息\表(注意不要重复执行插入操作),并将相应的SQL语句存放在文件one.prg中。
2.用SQL DELETE语句从\零件信息\表中删除单价小于1000的所有记录,并将相应的SQL语句存放在文件two.prg中。
3.用SQL UPDATE语句将\零件信息\表中零件号为\的零件的单价更改为1090,并将相应的SQL语句存放在文件three.prg中。
4.打开菜单文件mymenu.mnx,然后生成可执行的菜单程序mymenu.mpr。 【操作步骤】
(1)在命令窗口输入命令:MODIFY COMMAND one,打开文件编辑器,输入如下语句:
INSERT INTO 零件信息 VALUES (\
在命令窗口输入命令:do one,执行文件。
(2)在命令窗口输入命令:MODIFY COMMAND two,打开文件编辑器,输入如下语句:
DELETE FROM 零件信息 WHERE 单价<1000
在命令窗口输入命令:DO two,执行文件。
(3)在命令窗口输入命令:MODIFY COMMAND three,打开文件编辑器,输入如下语句:
UPDATE 零件信息 SET 单价=1090 WHERE 零件号=\
在命令窗口输入命令:DO three,执行文件。
(4)在命令窗口输入命令:MODIFY MENU mymenu,打开菜单设计器,选择菜单命令\菜单\-\生成\命令,生成一个可执行菜单文件,保存到考生文件夹下。
在考生文件夹下完成如下简单应用: 1.modi1.prg 程序文件中 SQL SELECT语句的功能是查询哪些零件(零件名
称)目前用于3个项目, 并将结果按升序存入文本文件 results.txt。 给出的SQL SELECT 语句中在第 1、3、5 行各有一处错误,请改正并运行程序(不可以增、删语句或短语,也不可以改变语句行)。
2.根据项目信息(一方)和使用零件立的查询chaxun;然后在表格控件下面添加一个\退出\命令按钮Command1,要求命令按钮与表格控件左对齐、并且宽度相同,单击该按钮时关闭表单。 【操作步骤】
在命令窗口输入命令:CREATE QUERY 限制\,在\插入规则\中选择\限制\,单击\确定\保存所编辑的参照完整性。
在考生文件夹下完成如下简单应用: 1.建立查询qq,查询会员的会员号(来自Customer表)、姓名(来自Customer表)、会员所购买的商品名(来自Caption属性值为\退出\,打开表单数
据环境,将表文件Article、Customer和OrderItem按顺序添加到数据环境中。
选定页框,修改PageCount属性为3,增加一个页面,右击页框控件(Pageframe1),选择\编辑\菜单命(多方)两个表,利用一对多报表向导建立一个报表,报表中包含项目号、项目名、项目负责人、(联系)电话、(使用的)零件号和数量等6个字段,报表按项目号升序排序,报表样式为经营式,在总结区域(细节及总结)包含零件使用数量的合计,报表标题为\项目使用零件信息\,报表文件名为report。 【操作步骤】
(1)在命令窗口输入命令:MODIFY COMMAND modi1.prg,打开程序文件编辑窗口,文件中程序段如下:
****下面是modi1.prg文件的源程序内容****
SELECT 零件名称 FROM 零件信息 WHERE 零件号 = ;
(SELECT 零件号 FROM 使用零件; GROUP BY 项目号 HAVING COUNT(项目号) = 3) ;
ORDER BY 零件名称 ; IN FILE results
****************************** 根据源程序中提示的3处错误,修改后的程序段如下:
****下面是修改后的modi1.prg文件内容****
SELECT 零件名称 FROM 零件信息 WHERE 零件号 IN ; && 运算谓词错误
(SELECT 零件号 FROM 使用零件; GROUP BY 零件号 HAVING COUNT(项目号) = 3) ; && 分组依据错误 ORDER BY 零件名称 ; TO FILE results && 查询输出错误
****************************** (2)利用菜单命令\文件\新建\,或从常用工具栏中单击新建图标按钮,在弹出的\新建\对话框中选择\报表\单选项,再单击\向导\图标按钮,系统弹出\向导选取\对话框,在列表框中选择\一对多报表向导\,单击\确定\按钮。
选择\一对多报导表向导\后,系统首先要求选择一对多报表中作为父表的数据表文件,根据题意,选择\项目信息\表作为父表。从\可用字段\列表框中将所有字段添加到右边的\选定字段\列表框中,用做父表的可用字段。 单击\下一步\设计子表的可用字段,操作方法与父表选取字段的方法一样,将\使用零件\表中的\零件号\和\数量\字段添加到\选定字段\列表框中。
单击\下一步\进入\建立表关联\的设计界面,在此处系统已经默认设置好进行关联的字段:父表的\项目号\和子表的\项目号\字段。
单击\下一步\进入\选择排序方式\方式的设计界面,将\可用字段或索引标识\列表框中的\项目号\字段添加到右边的\选定字段\列表框中,并选择\升序\单选项。
单击\下一步\进入\选择报表样式\的界面,在\样式\列表框中选择 \经营式\,单击\总结选项(S)…\命令按钮,在弹出的\总结选项\对话框,勾选\数量\行中的\求和\复选框。单击\确定\按钮,返回向导界面。
单击\下一步\,进入最后的\完成\设计界面,在\标题\文本框中输入\项目使用零件信息\为报表添加标题,单击\完成\命令按钮,在系统弹出的\另存为\对话框中,将报表以report文件名保存在考生文件夹下,退出报表设计向导。
按如下要求完成综合应用(所有控件的属性必须在表单设计器的属性窗口中设置):
根据\项目信息\、\零件信息\和\使用零件\个表建立一个查询(注意表之间的连接字段),该查询包含项目号、项目名、零件名称和(使用)数量4个字段,并要求先按项目号升序排序、再按零件名称降序排序,保存的查询文件名为chaxun。
建立一个表单,表单名和文件名均为myform,表单中含有一个表格控件Grid1,该表格控件的数据源是前面建
chaxun,打开查询设计器。
打开查询设计器,系统首先要求选择需要查询的表或视图,将自由表\项目信息\、\零件信息\和\使用零件\添加到查询设计器中,添加3个数据表文件后,系统自动查找每两个数据表中匹配的字段进行内部联接。
在查询设计器中可以看到\字段\选项卡的\可用字段\列表框中包含了3个数据表中的字段,将项目信息.项目号、 项目信息.项目名、零件信息.零件名称和使用零件.数量4个字段通过\添加\命令按钮,添加到右边的\选定字段\列表框中。
接着在\排序依据\选项卡中,将\项目信息.项目号\字段添加到\排序条件\列表框中,选择排序方式为\升序\,再将\零件信息.零件名称\字段添加到\排序条件\列表框中,选择排序方式为\降序\。保存查询设计,关闭查询设计器。
在命令窗口中输入 CREATE FORM myform,打开表单设计器,新建表单。从\表单控件工具栏\中,选中表格控件,在表单设计器中拖动鼠标,这样在表单上得到一个表格控件Grid1,用类似的方法为表单再加入一个命令按钮控件command1。
在属性面板中修改各个控件的相关属性值,修改表单Form1的Name属性值为\,命令按钮Command1的Caption属性值为\退出\,表格Grid1的RecordSourceType属性值为\查询\,RecordSource属性值为\。
双击命令按钮command1(退出),编写Click事件代码为ThisForm.Release。
最后,同时选中命令按钮与表格控件(按住Shift键不放),单击主菜单栏中的\格式\大小\调整到最宽\;\格式\对齐\左边对齐\。运行表单,保存表单设计。
◆◆◆◆◆◆宏图教育◆◆◆◆◆ 在考生文件夹下,打开Ecommerce数据库,完成如下操作:
1.打开Ecommerce数据库,并将考生文件夹下的自由表OrderItem添加到该数据库。
2.为OrderItem表创建一个主索引,索引名为PK,索引表达式为\会员号+商品号\;再为OrderItem表创建两个普通索引(升序),其中一个索引名和索引表达式均是\会员号\;另一个索引名和索引表达式均是\商品号\。 3.通过\会员号\字段建立客户表Customer和订单表OrderItem之间的永久联系(注意不要建立多余的联系)。
4.为以上建立的联系设置参照完整性约束:更新规则为\级联\;删除规则为\限制\;插入规则为\限制\。 【操作步骤】
(1)在命令窗口输入命令:MODIFY DATABASE Ecommerce,打开数据库设计器,右击数据库设计器,选择\添加表\快捷菜单命令,将考生文件夹下的Orderitem表添加到数据库中。
(2)右击数据库设计器中的表Orderitem,选择\修改\快捷菜单命令,弹出表设计器,选择表设计器\索引\标签,在索引名列中填入\在索引类型列中选择\主索引\,在索引表达式列中填入\会员号+商品号\,用同样的方法再为OrderItem创建两个普通索引(升序),一个索引名和索引表达式均是\会员号\;另一个索引名和索引表达式均是\商品号\,点击\确定\按钮,保存表结构。
(3)在数据库设计器中,选中Customer表中的索引\会员号\并拖动到表OrderItem的\会员号\索引上,这样两个表之间就建立起了永久性联系。
(4)建立好永久性联系之后,单击表示两个表之间连线,线会加粗,此时在主菜单中选择\数据库\中的\编辑参照完整性(I)\(系统首先要求清理数据库),系统弹出\参照完整性生成器\对话框,在\更新规则\标签中,选择\级联\规则,在\删除\规则中选择\
Article表)、单价(来自OrderItem表)、数量(来自OrderItem表)和金额(OrderItem.单价 * OrderItem.数量),结果不要进行排序,查询去向是表ss。查询保存为qq.qpr,并运行该查询。
2.使用表单向导选择客户表Customer生成一个文件名为myform的表单。要求选择客户表Customer中的所有字段,表单样式为\阴影式\;按钮类型为\图片按钮\;排序字段选择会员号(升序);表单标题为\客户基本数据输入维护\。 【操作步骤】
(1)在命令窗口输入命令:CREATE QUERY,打开查询设计器。
系统首先要求选择作为查询数据的来源,将Customer表、Article表和OrderItem表添加到查询设计器中,系统自动建立3个数据表之间的联系。进入查询设计器后,在查询设计器下方的\字段\选项卡中,根据题意,从可用字段列表框中选择Customer.会员号、Customer.姓名、Article.商品名、OrderItem.单价和OrderItem.数量5个字段添加到可用字段中,在\函数和表达式处\输入\单价 * OrderItem.数量 as 金额\,并添加到选定字段列表框中。选择菜单命令\查询\-\查询去向\,在弹出的\查询去向\对话框中选择\表\,并在表名处输入表名ss。
单击工具栏上的运行按钮,保存查询文件名为qq到考生文件夹下,查询结果自动保存到新表中。
(2)在\新建\对话框中选择\表单\单选项,再单击\向导\图标按钮,系统弹出\向导选取\对话框,在列表框中选择\表单向导\,单击\确定\按钮。 选择\表单向导\后,系统首先弹出\字段选取\界面,选择数据表Customer,通过选项卡中的\全部添加\图标按钮,将\可用字段\列表框中的所有字段全部添加到\选定字段\列表框中。 单击\下一步\进入\选择表单样式\的界面,在\样式\列表框中选择 \阴影式\,在\按钮类型\选项组中选择\图片按钮\选项。
单击\下一步\进入\排序次序\的设计界面,将\可用字段或索引标识\列表框中的\会员号\字段添加到右边的\选定字段\列表框中,并选择\升序\单选项。
单击\下一步\,进入最后的\完成\设计界面,在\标题\文本框中输入\客户基本数据输入维护\为表单添加标题,单击\完成\命令按钮,在系统弹出的\另存为\对话框中,将表单以myform名保存在考生文件夹下,退出表单设计向导。
在考生文件夹下,打开Ecommerce数据库,完成如下综合应用(所有控件的属性必须在表单设计器的属性窗口中设置):
设计一个名称为myforma的表单(文件名和表单名均为myforma),表单的标题为\客户商品订单基本信息浏览\。表单上设计一个包含3个选项卡的页框(pageframe1)和一个\退出\命令按钮(command1)。要求如下: 为表单建立数据环境,按顺序向数据环境添加Article表、Customer表和OrderItem表。
按从左至右的顺序,3个选项卡的标签(标题)的名称分别为\客户表\、\商品表\和\订单表\,每个选项卡上均有一个表格控件,分别显示对应表的内容(从数据环境中添加,客户表为Customer、商品表为Article、订单表为OrderItem)。
单击\退出\按钮关闭表单。 【操作步骤】
在命令窗口输入命令:CREATE FORM myforma,新建表单,打开表单设计器。 利用表单控件工具栏在表单中添加1个页框控件和1个命令按钮,选中表单(form1),在属性面板中修改表单的Caption(标题)属性值为\客户商品订单基本信息浏览\,修改Name属性值为myforma,然后在属性面板顶部的下拉框选择命令按钮(Command1),修改
令,可以看到页框四周出现蓝色边框,表示处于编辑状态下,选定页面(Page1),修改页面标题Caption属性值为\客户表\,添加1个表格控件,设置表格控件Grid1的RecordSource属性值为表文件\,RecordSourceType属性值为\表\(用来指定显示视图中的数据),然后在页框编辑状态下,根据题意,以同样的方法设置其他两个页面,其中表格控件Grid2和Grid3的RecordSource属性值分别为表文件Article和OrderItem。
最后双击\退出\命令按钮,在Click事件中编写程序命令:ThisForm.Release,用来关闭表单。保存并运行表单。
◆◆◆◆◆◆宏图教育◆◆◆◆◆ 在考生文件夹下完成如下基本操作: 1.新建一个名为\学生\的数据库。 2.将\学生\、\选课\、\课程\个自由表添加到新建的数据库\学生\中。 3.通过\学号\字段为\学生\表和\选课\表建立永久联系。
4.为上面建立的联系设置参照完整性约束:更新和删除规则为\级联\,插入规则为\限制\。 【操作步骤】
(1)在命令窗口输入命令:MODIFY DATABASE 学生,新建数据库并打开数据库设计器。
(2)右击数据库设计器的空白处,选择\添加表\快捷菜单命令,在弹出的\打开\对话框中,将考生文件夹下\学生\、\选课\、\课程\个自由表分别添加到新建的数据库中。
(3)在数据库设计器中,右击表\学生\,选择快捷菜单命令\修改\,弹出表设计器,选择表设计器\索引\标签,在索引名列中填入\学号\,在索引类型列中选择\主索引\,在索引表达式列中填入\学号\,点击\确定\按钮以保存表结构。用同样的方法,为\选课\表建立必要的索引,索引项为\学号\。在数据库设计器中,选中\学生\表中的索引\学号\主索引字段,将其拖动到表\选课\的\学号\的索引上,建立起两表的永久联系。
(4)建立好永久联系之后,在\学生\表和\选课\表的\学号\索引之间有一条线,单击两个表之间的连线,选择菜单命令\数据库\-\编辑参照完整性(I)\(系统首先要求清理数据库),系统弹出\参照完整性生成器\对话框,在\更新规则\标签中,选择\级联\规则,在\删除\规则中选择\级联\,在\插入规则\中选择\限制\,单击\确定\保存所编辑的参照完整性。
在考生文件夹下完成如下简单应用: 1.用SQL语句完成下列操作:将选课在3门课程以上(包括3门)的学生的学号、姓名、平均分和选课门数按平均分降序排序,并将结果存放于数据库表stu_temp(字段名为学号、姓名、平均分和选课门数)。
2.建立一个名为menu_lin的下拉式菜单,菜单中有两个菜单项\查询\和\退出\。\查询\项下还有一个子菜单,子菜单有\按姓名\和\按学号\两个选项。在\退出\菜单项下创建过程,该过程负责使程序返回到系统菜单。 【操作步骤】
(1)在命令窗口输入命令:MODIFY Command query1,打开文件编辑器,输入如下程序:
*****文件query1.prg文件中的程序段*****
SELECT 学生.学号, 学生.姓名, AVG(选课.成绩) as 平均分,;
COUNT(选课.课程号) AS 选课门数; FROM 学生!学生 INNER JOIN 学生!选课;
INNER JOIN 学生!课程;
ON 课程.课程号 = 选课.课程号;
ON 学生.学号 = 选课.学号; GROUP BY 学生.姓名;
HAVING COUNT(选课.课程号)>=3; ORDER BY 3 DESC;
INTO TABLE stu_temp.dbf ****************************
在命令窗口输入命令:DO query1,执行程序,查询结果自动保存到新表中。 (2)在命令窗口输入命令:CREATE MENU menu_lin,在弹出的\新建菜单\对话框中,单击\菜单\图标按钮,打开菜单设计器。
在主菜单设计界面中,分别输入菜单名称\查询\、\退出\,在\查询\的\结果\下拉框中选择\子菜单\,在\退出\的\结果\下拉框中选择\命令\。单击\查询\菜单行中的\编辑\命令按钮,在子菜单的菜单名称中输入\按姓名\、\按学号\,选择两个子菜单项的\结果\为\命令\或\过程\,然后选择\菜单级\下拉框中的\菜单栏\。返回主菜单设计界面,在\退出\菜单行的\命令\文本框中输入命令:SET SYSMENU TO DEFAULT,保存菜单设计。
选择菜单命令\菜单\-\生成\,生成一个可执行的菜单程序,保存到考生文件夹下。
设计名为mystu的表单(控件名为form1,文件名为mystu)。表单的标题为\学生学习情况统计\。 表单中有一个选项组控件(名为myOption)两个命令按钮\计算\(名称为Command1)和\退出\(名称为Command2)。其中, 选项组控件有两个按钮\升序\(名称为Option1)和\降序\(名称为Option2)。
运行表单时,首先在选项组控件中选择\升序\或\降序\单击\计算\命令按钮后,按照成绩\升序\或\降序\(根据选项组控件)将选修了\语言\的学生学号和成绩分别存入stu_sort1.dbf和stu_sort2.dbf文件中。
单击\退出\按钮关闭表单。 【操作步骤】
在命令窗口中输入命令:CREATE FORM mystu,打开表单设计器,新建表单。 从表单控件工具栏中,向表单添加2个命令按钮(Command1和Command2)和1个选项按钮组(Optiongroup1)。根据题意,在属性面板中,修改表单(Form1)的Caption属性值为\学生学习情况统计\,修改命令按钮Command1的Caption属性值为\计算\,修改命令按钮Command2的Caption属性值为\退出\,修改选项按钮组(Optiongroup1)的Name属性值为\,然后右击选项按钮组,选择\编辑\快捷菜单命令,在此状态下(编辑状态下,控件四周出现蓝色框线),分别修改两个单选项的Caption属性值为\升序\和\降序\。
双击\计算\命令按钮(Command1),编写Click事件代码,内容如下: ***命令按钮command1(计算)的Click事件代码如下**** DO CASE
CASE THISFORM.myOption.VALUE=1 SELECT 学生.学号, 选课.成绩; FROM 学生!课程 INNER JOIN 学生!选课;
INNER JOIN 学生!学生;
ON 学生.学号 = 选课.学号; ON 课程.课程号 = 选课.课程号; WHERE AT(\语言\课程.课程名称) > 0;
ORDER BY 选课.成绩; INTO TABLE stu_sort1
CASE THISFORM.myOption.VALUE=2 SELECT 学生.学号, 选课.成绩; FROM 学生!课程 INNER JOIN 学生!选课;
INNER JOIN 学生!学生; ON 学生.学号 = 选课.学号; ON 课程.课程号 = 选课.课程号; WHERE AT(\语言\课程.课程名称) > 0;
ORDER BY 选课.成绩 DESC; INTO TABLE stu_sort2 ENDCASE
**************************** 同样在\退出\命令按钮(Command2)的Click事件中输入:ThisForm.Release。
运行表单,保存表单设计到考生文件夹下。
◆◆◆◆◆◆宏图教育◆◆◆◆◆ 在考生文件夹下完成如下操作: 1.打开数据库score_manager,该数据库中含3个有联系的表student、score1和course,根据已经建立好的索引, 建立表之间的联系。
2.为course表增加字段:开课学期(N,2,0)。
3.为score1表\成绩\字段设置字段有效性规则:成绩>=0,出错提示信息是:\成绩必须大于或等于零\。
4.将score1表\成绩\字段的默认值设置为空值(NULL)。 【操作步骤】
(1)在命令窗口输入命令:MODIFY DATABASE score_manager,打开数据库设计器,将表student中\索引\下面的\学号\主索引字段拖到score1表中\索引\下面的\学号\上,建立两表的永久性联系,用同样的方法建立表course和score1之间的永久性联系,关联字段为\课程号\。
(2)右击数据库设计器中的course表,选择\修改\快捷菜单命令,打开表设计器,在\字段\选项卡中插入一个字段后的空字段格中,输入新的字段名、字段类型及宽度。
(3)根据2小题的操作步骤,打开score1的表设计器中,选中\成绩\字段,在\字段有效性\中的\规则\文本框中输入:成绩>=0,在\信息\文本框中输入\成绩必须大于或等于零\。 (4)紧接3小题操作,在表设计器对话框中,选定\成绩\字段,点击NULL列下的按钮(表示此列允许空值),然后再在\字段有效性\的默认值中填入\,单击确定。
在考生文件夹下完成如下简单应用: 1.在score_manager数据库中查询学生的姓名和年龄(计算年龄的公式是:2004-Year(出生日期),年龄作为字段名),结果保存在一个新表NEW_TABLE1中。使用报表向导建立报表new_report1,用报表显示new_table1的内容。报表中数据按年龄升序排列,报表标题是\姓名-年龄\,其余参数使用缺省参数。 2.在score_manager数据库中查询没有选修任何课程的学生信息,查询结果包括\学号\、\姓名\和\系部\字段,查询结果按学号升序保存在一个新表NEW_TABLE2中。 【操作步骤】
(1)在命令窗口输入命令:MODIFY COMMAND query1,打开文件编辑器,输入如下程序段:
**下面是文件\中的程序段** SELECT 姓名, 2003-Year(出生日期) as 年龄;
FROM student;
INTO TABLE new_table1.dbf ****************************** 在命令窗口输入命令:DO query1,执行文件,将查询结果保存到new_table1.dbf表中。
单击工具栏中的\新建\图标按钮,打开\新建\对话框,选择文件类型\报表\,单击向导按钮。选择\报表向导\后,进入报表向导设计界面,首先进行字段选取,选择数据表new_table1作为报表数据源,通过\全部添加\图标按钮,将\可用字段\列表框中的所有字段添加到\选定字段\列表框中。 单击\下一步\按钮进入\分组记录\设计界面,跳过此步骤,单击\下一步\命令按钮,进入\选择报表样式\设计界面,保持默认值,单击\下一步\命令按钮,进入\定义报表布局\设计界面,保持默认值,单击\下一步\进入\排序记录\的设计界面,将列表框中的\年龄\字段添加到右边的\选定字段\列表框中,并选择\升序\单选项。单击\下一步\,进入最后的\完成\设计界面,在\标题\文本框中输入\姓名-年龄\为报表添加标题,单击\完成\命令按钮,在系统弹出的\另存为\对话框中,将报表以new_report1文件名保存在考生文件夹下,退出报表设计向导。
(2)在命令窗口输入命令:MODIFY COMMAND query2,打开文件编辑器,输入如下程序段:
*****下面是文件\中的程序段*****
SELECT Student.学号, Student.姓名, Student.系部;
FROM course right OUTER JOIN score1;
right OUTER JOIN student ;
ON Student.学号 = Score1.学号 ; ON Course.课程号 = Score1.课程号;
WHERE Student.学号 != Score1.学号 ;
ORDER BY Student.学号; INTO TABLE new_table2.dbf
****************************** 在命令窗口输入命令:DO query2,执行文件,将查询结果保存到new_table2.dbf表中。
score_manager数据库中含有3个数据库表student、score1和course。为了对score_manager数据库数据进行查询。
设计一个如图所示的表单Myform1(控件名为form1,表单文件名Myform1.scx)。表单的标题为\成绩查询\。表单左侧有文本\输入学号(名称为Label1的标签)\和用于输入学号的文本框(名称为Text1)以及\查询\(名称为Command1)和\退出\(名称为Command2)两个命令按钮以及1个表格控件。
表单运行时,用户首先在文本框中输入学号,然后单击\查询\按钮,如果输入学号正确,在表单右侧以表格(名称为Grid1)形式显示该生所选课程名和成绩,否则提示\学号不存在,请重新输入学号\。
单击\退出\按钮,关闭表单。 【操作步骤】
在命令窗口输入命令:CREATE FORM Myform1,打开表单设计器,新建表单。 从表单控件工具栏中选择1个标签、1个表格、1个文本框和两个按钮放置在表单上,根据题意,调整控件大小及位置。然后选中标签控件Label1,在属性面板中设置标签的Caption属性值为\输入学号\,以同样的方法,在属性面板中修改表单和命令按钮的Caption属性值。最后将表格(grid1)的ColumnCount 属性值设置为2(共两列)、RecordSourceType属性值设置为\说明\,将表格内两列标头的Caption属性分别设置为\课程名\和\成绩\,并适当调整两列的宽度。 双击表单(Form1),设置表单的Load事件代码: ******表单(Form1)的Load事件***** CLOSE ALL USE student
*************************
双击命令按钮\查询\(Command1),在Click事件中编写如下代码。
******命令按钮\查询\(Command1)的Click事件***** GO TOP
LOCATE FOR student.学号 ==ALLTRIM(Thisform.Text1.Value) IF student.学号 ==ALLTRIM(Thisform.Text1.Value) Thisform.Grid1.RecordSource=\ECT course.课程名, score1.成绩; FROM course INNER JOIN score1; INNER JOIN student ;
ON student.学号 = score1.学号 ; ON course.课程号 = score1.课程号;
WHERE student.学号 = ALLTRIM(Thisform.Texit1.Value); INTO CURSOR TEMP\ELSE
MESSAGEBOX(\学号不存在,请重新输入学号\
Thisform.Grid1.RecordSource='' ENDIF
***********************
同样在命令按钮\退出\(Command2)的Click事件中输入代码:ThisForm.Release。
运行表单,保存表单设计到考生文件夹下。
◆◆◆◆◆◆宏图教育◆◆◆◆◆ 在考生文件夹下完成如下基本操作: 1.建立菜单query_menu。该菜单只有\查询\和\退出\两个主菜单项(条形菜单),其中单击菜单项\退出\时,返回到Visual FoxPro系统菜单(相应命令写在命令框中,不要写在过程中)。
2.将course表的\开课系部\字段名改为\开课单位\,其余不变。
3.从数据库score_manager中移去表temp2.dbf(不是删除)。
4.将score1表中记录按学号从低到高排序,在学号相同的情况下再按成绩从高到低排序,排序结果存入表new_order。 【操作步骤】
(1)在命令窗口输入命令:CREATE MENU query_menu,打开菜单设计器。在菜单名称中填入\查询\、\退出\,\退出\的\结果\为命令,在文本框中输入:SET SYSMENU TO DEFAULT,选择
菜单命令\菜单\-\生成\,生成一个可执行菜单文件。
(2)在命令窗口输入命令:MODIFY DATABASE score_manager,打开数据库设计器,选中\表,点击主菜单\数据库\下的\修改\,打开course表设计器,选定\开课系部\字段,将字段名改为\开课单位\。 (3)在数据库设计器中,选中\表,点击主菜单\数据库\下的\移去\,在弹出的对话框中点击\移去\按钮,将表temp2从数据库score_manager中移去。
(4)在命令窗口输入如下命令,完成查询,并将结果保存到新表中。 SELECT * FROM score1 ORDER BY 学号,成绩 DESC;
INTO TABLE new_order
在考生文件夹下完成如下简单应用: 1.在score_manager数据库中统计选修了课程的学生人数(选修多门时,只计算1次),统计结果保存在一个新表new_table中, 表中只有一个字段,字段名为学生人数。
2.在score_manager数据库中查询没有学生选修的课程,查询结果含\课程名\和\开课单位\字段,结果按课程名升序保存在一个新表new_table2中(注意:字段名\开课单位\是在基本操作题中根据\开课系部\修改后的字段名)。
【操作步骤】
(1)在命令窗口输入命令:MODIFY COMMAND query1,打开文件编辑器,输入如下程序段:
**下面是文件\中的程序段**
SELECT student.姓名;
FROM course INNER JOIN score1; INNER JOIN student ;
ON student.学号 = score1.学号 ; ON course.课程号 = score1.课程号;
WHERE course.课程号 = score1.课程号;
GROUP BY Student.姓名; INTO CURSOR temp
SELECT COUNT(姓名) AS 学生人数 FROM temp;
INTO TABLE new_table
**************************
在命令窗口输入命令:DO query1,执行文件,查询结果将自动保存到新表中。
(2)在命令窗口输入命令:MODIFY COMMAND query2,打开文件编辑器,输入如下程序段:
*****下面是文件\中的程序段*****
SELECT course.课程名, course.开课单位; FROM course LEFT OUTER JOIN score1; LEFT OUTER JOIN student ;
ON student.学号 = score1.学号 ; ON course.课程号 = score1.课程号;
WHERE course.课程号 !=score1.课程号;
ORDER BY course.课程名; INTO TABLE new_table2.dbf **************************
在命令窗口输入命令:DO query2,执行文件,查询结果将自动保存到新表中。
score_manager数据库中含有3个数据库表student、score1和course。为了对score_manager数据库数据进行查询,设计一个表单Myform3(控件名为form1,表单文件名为Myform3)。表单标题为\成绩查询\;表单有\查询\(名称为Command1)和\退出\(名称为Command2)两个命令按钮。表单运行时,单击\查询\按钮,查询每门课程的最高分,查询结果中含\课程名\和\最高分\字段,结果按课程名升序保存在表new_table3。
单击\退出\按钮,关闭表单。 【操作步骤】
在命令窗口中输入 CREATE FORM Myform3,打开表单设计器,新建表单。 通过表单控件工具栏,向表单添加两个命令(Command1和Command2),在属性面板中,修改表单的Caption属性值为\成绩查询\,修改两个命令按钮的Caption属性值分别为\查询\和\退出\。
双击\查询\命令按钮(Command1),编写该控件的Click事件,程序代码如