《管理信息系统》实验指导书 或者《信息系统分析与设计》
编者:苏贵影
适用专业:工商管理
中北大学经济与管理学院
2008年3月1日
目 录
序 言............................................................................................................................ 3 第一部分 实验概述.................................................................................................... 4 第二部分 实验目的与说明........................................................................................ 4 第三部分 实验准备.................................................................................................... 4 第四部分 VFP基本知识介绍 ................................................................................... 5
第一节 常用命令(数据库与表的建立与使用)................................................... 5 第二节 常用函数................................................................................................. 12 第三节 表单设计................................................................................................. 18 第四节 查询设计................................................................................................. 22 第五节 报表设计................................................................................................. 25 第六节 菜单设计................................................................................................. 28 第七节 项目设计................................................................................................. 30 第五部分 实验内容与操作指南.............................................................................. 32
实验一:常用命令分类与用法........................................................................... 32 实验二:常用函数的分类与用法....................................................................... 43 实验三:表单设计............................................................................................... 46 实验四:查询设计............................................................................................... 51 实验五:报表设计............................................................................................... 54 实验六:菜单设计与项目设计........................................................................... 57 第六部分 参考资料..................................................................................................
序 言
根据华北工学院的教学计划与教学任务,工商管理专业开设管理信息系统课程并安排有配套的Visual FoxPro数据库设计实验,为了满足教学配套的需要,特编写了本指导书。
众所周知,VFP是美国Microsoft公司开发的Visual Studio中的重要成员,其方便易用的可视化开发工具,使原已受到微机用户青睐的FoxPro如鱼得水,但也因此增大了软件的规模,是我国各界常用的重要的管理信息系统开发工具。作为新世纪的工商管理专业大学生来说,应对此重要易学的管理工具进行掌握。为了提高学生的实践效果,编者根据教学要求、编者的教学经验积累和反复上机操作,编写了这份指导书。
指导书共分五个部分,其中第四部分是重点,详细介绍了VFP中常用命令的用法、常用函数的用法、表单设计、查询设计、报表设计、菜单设计、项目设计的实验指导,对其中的关键环节、难点、注意事项进行重点说明,基本涵盖了VFP的主要内容,提供了用VFP进行面向对象设计的思想与技巧,这将有助于读者提高应用VFP来解决实际问题的能力。
但是,毕竟不是编程实例,对于程序的实际设计编者没有详细地给出程序代码,同时对方法的介绍也只是从简要步骤或要点上阐述,不能很详细地进行说明;由于实验学时有限,仅能对比较重要的部分进行实验,本指导书没有包括VFP的全部方法的操作介绍。因此,对其中不满意的内容望读者见谅。
编者 2008年3月
第一部分 实验概述
实验名称:《管理信息系统》实验
适用专业:工商管理专业
实验时数:16学时
先修课程:计算机文化基础、管理学
第二部分 实验目的与说明
网络经济环境下,只懂经济与管理而不懂计算机的人是不能对企业实行高效率的管理的。作为工商管理专业的本科生来说,为适应社会与企业的发展需求,应该掌握一种提高管理效率和决策科学性的计算机管理方法,本课程的开设正是要满足这种要求的。而Visual FoxPro(简称VFP)是我国常用的数据库管理软件,因此本课程实验是以VFP为基础进行简单管理系统的开发与设计,通过实验,能够使学生对所学的MIS的开发思想与方法、使用VFP设计与管理MIS有更深刻的体会,能够真正地实现对实际管理问题的现代化管理。
本部分的实验是一个综合性的实验内容,学生需要将书本上的内容灵活地运用到实验之中,需要利用VFP语言来完成教师指定的管理系统的开发与设计任务,并且需要将VFP的实现方法、技巧与MIS的理论与方法相结合,才能较好地掌握管理信息系统的有关内容,达到掌握高效信息管理手段的目的。
第三部分 实验准备
实验是以Visual FoxPro中文版(如6.0版或更高版本)为基本软件,因此在计算机系统中要有相应的软件支持。
注意:学生每次开机后,需要在硬盘系统(包括局域网、校园网)上查找Visual FoxPro相应软件,若找到,则运行该软件即可进入VFP状态。否则,如果可以安装软件的话,则按照屏幕提示安装VFP到相应的目录下。在确信Visual FoxPro找到后,就可以运行Visual FoxPro程序,进入Visual FoxPro系统了。
学生在每次实验前,应首先明确并详细分析每次实验的目的与实验内容,充分做好预习与准备工作,列出本次实验可能要用到的语句及其相关算法与用法,实验时可先对课堂上可教材中的实例进行练习,熟练后再按照计划进行操作和设计。
实验员:每次实验前,应对学生拟用的计算机进行检修,配备所需的Visual FoxPro软件系统。
第四部分 VFP基本知识介绍
第一节 常用命令(数据库与表的建立与使用)
一、VFP的进入与退出
首先应了解如何进入与退出VFP系统,了解VFP的工作环境,了解VFP的命令窗口的打开与关闭。
进入VFP系统方式:找到VFP相应的软件后,运行该启动程序,或者单击“开始”→“程序”→Microsoft Visual Studio→选择Microsoft Visual FoxPro(可包括版本号,如6.0)”即可启动VFP,打开VFP窗口;退出VFP系统,可以按窗口右上角的“”或者选择在“文件”菜单下的退出命令。命令窗口的启动方式可从菜单“窗口”中选择“命令窗口”或者使用快捷键CTRL+F2;关闭命令窗口可通过命令窗口的关闭按扭或者命令窗口的“”或者用快捷键CTRL+F4。
图1-1为VFP的操作窗口。在VFP窗口,仔细观察VFP各菜单的功能与使用方法,在此就不一一介绍了。
图1-1 VFP操作窗口图例
二、设计与建立数据库的步骤 李P112
1、确定建立数据库的目的,明确需要保存哪些信息;
2、将所涉及的信息分成几个的表;VFP的表可以隶属于一个数据库,也可以存在,称自由表。
3、确定每个表的列(即字段),确定字段的步骤如下:
A)先要收集与表有关的、所需的全部信息;以最小的逻辑单位存储信息;
B)一般不包含可以通过推导或计算得到的数据项;
C)确定字段的类型:这可以在建表的类型一栏中选择恰当的类型,如字符型、数值型、整型、逻辑型、备注型,或者日期时间型等,一般地,存储长度不定的字段,如受奖励情况、照片或者工作经历情况,可以选择备注型。
D)确定主关键字段,一般地主关键字段的值是唯一的。
4、确定表间关系。通过主关键字段建立表间关系,表间关系有一对多、多对多和一对一等。
具体地建立数据库的方法是:“文件”→“新建”→“数据库”→“向导”→按照提示选择数据库表与字段,并保存文件。同时可以通过数据库设计器,如图1-2所示,图中下部的则中数据库设计器的工具控件,可以实现新建表、添加表、本地视图、远程视图等功能。
图1-2 数据库设计器图例
数据库工具栏 三、数据库表结构的操作 1、新建数据库表的命令是: CREATE 表名1.dbf
其中“”代表回车键。注意:为方便起见,文中没有将数据库或表或文件所在的位置考虑进去,在操作时,可以选择要操作的工作区即文件路径。
之后,按照屏幕提示依次输入表的各个字段的名字、类型、宽度和小数位数,输完后按“”或“确定”按扭,系统提示“现在录入数据记录吗?”,选择“是”,进入表编辑窗口,依次输入记录内容,存盘退出,即将表建立完成。
2、浏览表的结构的命令:
USE 表名1.dbf
LIST STRU [FIELDS 字段1,字段2„„] 或者 DISP STRU [FIELDS 字段1,字段2„„]] 3、修改表的结构的命令: 李P83 USE表名1.dbf MODIFY STRU
注意:数据库表的结构修改后,原数据库文件有些数据库会丢失。 四、数据库的打开与关闭
1、数据库表的打开的命令: 李P82 [SELECT 工作区号] USE 数据库表的名字
或者,依次选择“文件”→“打开”→“表”或“数据库”命令。 2、数据库表的关闭命令: 李P82 [SELECT 工作区号] USE 或者 CLOSE ALL
3、数据库的打开的命令: 李P112 OPEN DATABASE 数据库名 MODIFY DATABASE 4、数据库的关闭: CLOSE DATABASE 或者COLSE ALL
或者在已打开的数据库窗口上按关闭按钮“”。如图1-3。
图1-3 数据库设计器图例
数据库关闭按钮
五、数据库的维护操作 1、增加数据库表的记录 李P87
USE 表名
APPED [BLANK] 或者
APPEND FROM 文件名 [FIELDS 字段名][FOR 条件] 或者 APPEND FROM ARRAY 数组名[FOR 条件][FIELDS 字段表] 或 INSERT INTO 表名 [字段系列] VALUES [表达式系列] INSERT INTO 表名FROM ARRAY 数组名|FROM MEMVAR 2、修改与编辑数据库表的记录 李P95 USE 表名
BROWSE [FIELDS 字段表] [FOR 条件][NODELETE] [NOAPPEND] [NOEDIT]
或者CHANGE [FIELDS 字段表] [FOR 条件] [NOMODIFY] [NODELETE] [NOAPPEND]
或者EDIT [FIELDS 字段表] [FOR 条件] [NOMODIFY] [NODELETE] [NOAPPEND]
或者 REPLACE [范围] <字段名1> WITH <表达式1>[<字段名1> WITH <表达式1>„„][FOR 条件]
3、删除数据库表的记录 李P99 USE 表名
DELETE [SCOPE] [FOR 条件] [WHILE 条件] [IN 工作区号] PACK (表示删除有删除标记的记录)
其中,SCOPE 可以是ALL,RECORD N(第N条记录), NEXT N(当前记录以下N条记录),或者REST(剩余记录)。
RECALL [SCOP] [FOR 条件] [WHILE 条件] (表示恢复作了删除标记的记录,即去掉删除标记)
ZAP [IN 工作区号或别名] (表示删除所有打开的数据库记录,因此该命令要谨慎使用!)
六、数据库表的浏览、查询与统计 1、浏览表记录 李P87 USE 表名
DISPLAY [FIELDS 字段表] [SCOPE] [FOR 条件][WHILE 条件] [TO FILE 文件名] (注意:不设范围时,默认为显示一条记录)
或者 LIST [FIELDS 字段表] [SCOPE] [FOR 条件][WHILE 条件] [TO FILE 文件名] (注意:不设范围时,默认为显示全部记录,这是与DISPLAY命令的区别)
例如: use book
display fields 书本名称,书本代号,出版社,作者,定价 all to myr.txt 2、数据库表的定位、查询 李P 定位命令1: USE 表名
GO N(注:N为记录)
SKIP NN (注:NN为向前或向后跳跃的记录数) DISP
定位命令2或顺序查询命令: USE 表名
LOCATE FOR 条件 [SCOPE] [WHILE 条件] CONTINUE
例如:以下程序实现查找两本姓“谭”的作者编写的图书 use book
Locate all for substr(作者)=”谭”
Display fields 书本名称,出版社,作者,定价 Continue
Display fields 书本名称,出版社,作者,定价 Continue
索引查询命令: 李P123
注意:以下两个命令要求先和打开与查询内容相关的索引文件,然后先访问索引文件,再根据索引关键字的指针访问表文件中的记录,确定当前记录,实现记录的定位。
USE 表名
SEEK 表达式 [ORDER 索引文件名] [ASCENDING| DESCENDING] (注意:该命令如果找到相应的记录,则FOUND()=.T.;使用该命令,记录必须已排序 )
或者SCAN 表达式
或者 FIND 字符串/常数;?FOUND();DISPLAY 3、数据库表的统计 USE 表名
COUNT [SCOPE] [FOR|WHILE 条件](该命令是求满足条件的记录数) TOTAL [SCOPE] [FOR|WHILE 条件](该命令是对满足条件的记录分类汇总)
SUM [SCOPE] [FILEDS 字段表] [FOR|WHILE 条件] [TO 变量名表](该命令是对满足条件的记录的数值字段求和)
AVERAGE [SCOPE] [FILEDS 字段表] [FOR|WHILE 条件] [TO 变量名
表] (该命令是对满足条件的记录求平均数)
CALCULATE(该命令是进行多功能计算) 例如: use book
sum 定价,页数,印数to tprice,tpage,tpublish average 定价,页数 to aprice,apage
calculate avg(定价),min定价),max(定价),std(定价),var(定价); to a1,a2,a3,a4,a5 &&求定价的平均值、最小、最大、方差、误差值 4、数据库表的索引与排序
一般索引文件的建立与使用: 李P118 USE 表名
INDEX ON 字段表达式 TO 文件名 [FOR|WHILE 条件] [ASCENDING|DESCENDING]
SET INDEX TO 索引文件名 排序: USE 表名
SORT TO 排序表名 ON 关键字段 [FOR 条件] [FIELDS 字段表]/A|D|C
USE 排序表名 LIST 例如: use book
sort to booktemp on 分类/d,定价/a fields 书本名称,分类,定价 use booktemp brow
注意:在本部分的实验操作时,应注意灵活运用每个命令的各种参数,多做相应的练习。学生应按照教师布置的作业要求进行操作,完成建立一个数据库(表),并对其完成结构修改、记录的插、删、改、统计、索引和排列等操作任务。
七、其它操作
1、对数组、内存变量的操作练习 1)VFP对数组的定义方式:
DIMENSION 数组名(代表行数的表达式,代表列数的表达式) 2)数组的使用,直接调用数组名[(行数,列数)] 3)内存变量的赋值方式:
变量名=表达式;或者用STORE 表达式 TO 变量名
4)内存变量的显示:
LIST|DISPLAY MEMORY LIKE * 5)内存变量的保存
SAVE TO 内存变量文件名 [ALL LIKE|EXCEPT *] 6)删除内存变量
RELEASE 内存变量名表 或者 CLEAR MEMORY 7)恢复内存变量
RESTORE FROM 内存变量文件 2、VFP命令文件的建立与编辑: 命令文件的建立:
方法1:MODIFY COMMAND 文件名 方法2:菜单:“文件”→“新建”→“程序”
方法3:项目管理器:选择代码中的程序,点击“新建” 新建命令文件的窗口如图1-4所示。
图1-4 程序文件窗口图例
命令文件的执行:
命令:DO 文件名 [WITH 参数表]
菜单:“程序”→“执行”,或者,菜单窗口的“!”,如图1-5所示。
图1-5
注意:以上仅谈到了VFP程序设计基础知识当中的一部分内容,由于篇幅有限,对未涉及到的内容,教师也可以作为实验内容,让学生进行实验操作。
点击“!”
第二节 常用函数
一、常用的字符串处理函数 李P54
1)AT函数→返回字符串在另一个字符串中第一次出现的位置 AT( <字符串表达式1>,<字符串表达式2>)
2)LEFT|RIGHT函数→从给定字符串的最左(右)开始返回给定数值长度的一个子串。
LEFT|RIGHT(<字符串表达式>,<数值表达式>) 3)SUBSTR函数→从一个字符串返回指定数目的字符 SUBSTR(<字符串表达式1>,<起始位置>[,<字符个数>]) 4)CTOD函数→将字符类型数据转换为日期型数据 CTOD(<符合日期数据要求的字符串表达式>) 5)ALLTRIM函数→删除字符串中前面和后面的空格 ALLTRIM(<字符串表达式>) 6)TRIM函数→删除字符串的尾随空格 TRIM(<字符串表达式>)
7)SPACE函数→生成指定长度的空格字符串 SPACE(<数值表达式>)
8)STR函数→将数字表达式转换成字符串 STR(<数值表达式>)
9)UPPER函数→将字符串转换为大写形式 UPPER(<字符串表达式>)
10)LOWER函数→将字符串转换为小写形式 LOWER(<字符串表达式>) 二、常用的数值处理函数 李P53
1)ABC函数→求绝对值,格式:ABC(<数值表达式>) 2)INT函数→取整数,格式:INT(<数值表达式>) 3)ROUND函数→在给定的位置处四舍五入,格式: ROUND(<数值表达式1>,<数值表达式2>) 4)MAX|MIN函数→取最大或最小值,格式: MAX|MIN(<数值表达式1>,<数值表达式2>) 5)MOD函数→数值取模,格式:
MOD(<数值表达式1>,<数值表达式2>)
6)EXP()函数、LOG()函数、SQRT()函数、VAL()函数等可类似操作
三、常用的日期和时间函数 李P57
1)DATE函数→返回系统日期,格式:DATE() 2)TIME函数→返回系统时间,格式:TIME() 3)DAY函数→求给定的日期是该月的第几天,格式: DAY(<日期表达式>)
4)DTOC函数→将日期转换为字符串型的日期,格式: DTOC(<日期表达式> [,1])
5)DOW函数→以数字表示日期是星期几,格式: DOW(<日期表达式>)
6)CDOW函数→以英文形式返回日期是星期几,格式: CDOW(<日期表达式>)
7)MONTH函数→用数字表示给定日期的月份,格式: MONTH(<日期表达式>)
8)CMONTH函数→用英文形式返回给定日期的月份。格式: CMONTH(<日期表达式>)
9)YEAR函数→根据给定的日期返回年,格式: YEAR(<日期表达式>)
10) DATETIME函数→返回系统日期时间,格式:DATETIME() 11)MDY()函数→返回给定日期的月日年格式的日期,格式: MDY(<日期表达式>)
如:?MDY({^2002-03-08}),则系统显示:March 8,2006 四、常用的数据库函数 李P58
1)DBF函数→返回指定工作区的数据库名,格式: DBF([<数值表达式>])
2)FCOUNT函数→返回指定工作区的数据库字段的个数,格式: FCOUNT([<数值表达式>])
3)EOF函数→判断记录指针向下是否越界,格式: EOF([<数值表达式>])
4)BOF函数→判断记录指针向上是否越界,格式: BOF([<数值表达式>])
5)RECCOUNT函数→返回数据库的记录数,格式: RECCOUNT([<数值表达式>])
6)FIELD函数→返回第几个字段的名称,格式: FIELD(<数值表达式>)
7)RECNO函数→返回指定工作区当前的记录号,格式: RECNO([<数值表达式>])
8)USED函数→判断数据库是否在指定的工作区打开,格式: USED([<数值表达式>])
9)FOUND函数→在指定工作区中所需的库文件是否找到,格式: FOUND([<数值表达式>]) 五、其它函数
1)FILE()函数→判断一个指定文件名的文件是否存在
2)IIF函数→类似IF语句的函数,根据一个逻辑表达式取两个值之一,格式:
IIF(<逻辑表达式>,<表达式1>,<表达式2>) 3)PCOL()函数→返回打印机当前的列位置 4)PROW()函数→返回打印机当前的行位置 5)TYPE()函数→返回给定表达式的类型,格式: TYPE(<字符串表达式>)
注意,若测试字符串或变量的类型,则要对字符串表达式及变量名加上引号,否则将返回未定义类型(U)。
6)COL()函数→返回屏幕当前的列位置 7)ROW()函数→返回屏幕当前的行位置 8)INKEY()函数→返回用户击入键的ASCII码值 9)MESSAGE()函数→返回提示信息
MESSAGEBOX( 要显示的提示信息 [,对话框类型 [,对话框标题] ] ) ,其中对话框类型可由三个数字用“+”连接,第1个数字表示按钮值,第2个数字表示图标值,第3个数字表示默认按钮。
0只有“确定”按钮 16停止图标 X 0 第一个按钮为焦点 1“确定”和“取消” 32问号 ? 256 第二个按钮得焦点 2“终止”、“重试”和“忽略” 48惊叹号 ! 512 第三个按钮得焦点 3“是”、“否”和“取消” 信息图标 i 4“是”和“否” 5“重试”和“取消”
举例: MESSAGEBOX (\"大家都看明白了吗?\老师的担心\") 结果如图2-1:
图2-1
10)SYS()函数→返回系统配置的相关值,它属于多功能函数 11)SET()函数→返回SET ON/OFF或SET TO任选项的状态 六、程序设计
(一)屏幕输入命令 李P184
1、INPUT语句:功能等待用户从键盘上输入数值型数据。 格式:INPUT [<提示信息> TO <内存变量表>
2、ACCEPT语句:功能是等待用户从键盘上输入字符型数据。 格式:ACCEPT [<提示信息> TO <内存变量表> 3、WAIT语句:功能是等待用户从键盘上输入一个字符。
格式:WAIT [<提示信息> TO <内存变量表> [window at <行>,<列>][timeout<数值表达式>]
注意:以上三个语句对变量无须赋初值。
4、@„„SAY、READ语句:功能是按指定格式输入或输出变量值。 输入格式: 内存变量=初值
@ <行>,<列> [SAY <提示信息>]GET <内存变量> [PICTURE <格式描述符>]
READ 输出格式:
@ <行>,<列> SAY <表达式> [PICTURE <格式描述符>] (二)程序结构 李P184 1、顺序结构:
指在程序执行时,根据程序中语句的书写顺序依次执行的命令序列。 2、分支结构
条件判断命令:IF„„ELSE„„ENDIF 分支选择命令:DO CASE„„ENDDO IF表达式[THEN]
执行命令集Commands [ELSE
Commands] ENDIF DO CASE
CASE 表达式1
执行命令集Commands [CASE 表达式2 Commands
„„
CASE 表达式N
Commands ]
[OTHERWISE
Commands] ENDCASE
3、循环结构
在程序设计中经常会遇到重复性的操作。重复次数不知用DO WHILE: DO WHILE 1Expression
执行命令集Commands [LOOP] [EXIT] ENDDO
FOR„„ENDFOR (主要用于操作次数已知的循环) FOR 变量名 = 初始值 TO 终止值 [STEP 步长] 执行命令集Commands [EXIT] ENDFOR | NEXT
(三)自定义函数
自定义函数是一个的命令文件,其扩展名为.PRG文件,它与命令文件的区别在于:函数命令文件中最后通过RETURN语句返回一个函数值。
一般地,自定义函数由三部分组成:
1、用FUNCTION 自定义函数名表示自定义函数的开始,另外,用PARAMETER语句定义函数的输入参数,对无参数时该语句可省略;
2、函数体,在其中完成各种运算,一般是由若干条语句构成;
3、通过RETURN语句返回函数的结果值,并输入ENDFUNC表示自定义函数的结束。
即:
FUNCTION 函数名.PRG
PARAMETER 参数列表1 若干条函数命令行语句 RETURN 参数列表2 ENDFUNC
自定义函数的调用格式: 函数名 ( <参数列表1>) (四)过程的定义与使用 李P197 1、过程的定义:
一般可单独作一个命令文件,扩展名.PRG,其格式为: PROCEDURE 过程名.PRG
PARAMETER 参数列表1 若干条过程命令行语句
RETURN 参数列表2
ENDPROC
2、过程的调用:
[SET PROCEDURE TO 过程名.PRG] DO 过程名.PRG WITH 参数列表1 或者:过程名(参数列表1)
注意:过程的定义与调用能够提高程序设计的效率,请同学们多做实验并予以掌握,能够在面向对象程序设计中灵活使用。
注意:以上仅谈到了VFP当中的一部分函数内容,由于篇幅有限,对未涉及到的内容,学生可以自己进行实验操作。
第三节 表单设计
一、建立表单的方法
1)使用表单向导创建表单;
2)在系统菜单“表单”中选择“快速表单”创建简单表单;
3)使用表单设计器创建新表单或修改已有的表单,对于此种方法应作重点掌握。
二、使用表单向导和表单设计器制作表单 1、启动表单向导,如图3-1:
方法一:通过系统菜单“文件”→“新建”→“表单”→“向导”→“向导选取”→“表单向导”或者“一对多表单向导” 方法二:系统菜单“工具”→“向导”→“表单”
图3-1
2、在表单向导的指引下,依次完成以下操作:
步骤1:选择在表单中出现的字段(若是多表操作则先选择父表字段再选择子表字段);
步骤2:选择表单样式;
步骤3:选择最多三个字段或一个索引标识来排序记录; 步骤4:预览,完成,保存表单。 3、用表单生成器作表单,如图3-2:
1)打开表单生成器:通过菜单中的“文件”→“新建”→“表单”→“新建表单”。
2)启动快速表单:执行菜单中的“表单”→“快速表单”,打开表单生成器。 3)选择数据表及表单中的字段:在表单生成器中先进行“字段选取”,即在表单中添加哪些字段。
4)选择表单样式:在表单生成器中为要添加的控件选择一种样式。 5)生成表单:确定,完成。
图3-2
4、用表单设计器制作表单,表单向导制作表单是比较简单的事,但由于自动化程度太高,不能设计复杂的有个性的表单,因此常使用表单生成器来设计丰富的表单。如图3-3。
图3-3
1)启动表单设计器的三种方法: 命令:CREATE FORM 表单名
菜单:系统菜单“文件”→“新建”→“表单” 项目管理器:选择“文档”→“表单”→“新建”
2)给表单中加入控件的方法:选择想要加入的各类控件,然后单击控件工具栏中相应的控件,再在表单的适当位置单 击,就在生成了一个该类型的控件。表单上的各种控件还可以用鼠标进行托动以改变位置和大小,当然还可以用布局工具调整控件在表单的位置。
应对“标签”、“文本框”、“编辑框”、“命令按钮、“命令按钮组”、“复选框”、“组合框”、“表格”、“记时器”等控件进行灵活运用。
3)为控件设置各种属性的方法:布置好表单上的各种控件后,可以设置表单及表单各个控件的属性。设置的方法是先选定对象,通过系统菜单“显示”中的“属性”命令可以打开属性窗口进行设置,也可以右击在快捷菜单中选择“属性”。常用的属性有:
Autocenter:指定表单对象第一次显示时,是否自动居中放置 Autosize:指定控件是否自动依据其内容自动调节大小
Backcolor或Forecolor:指定用于显示中文本和图形的背景色或前景色 Backstyle:指定一个对象的背景是否透明 Borderstyle:指定一个对象的边框样式 Caption:指定在对象标题中显示的文本 Controlsource:指定与对象联系的数据源
Display value:指定在一个列表框或组合框中选定项的第一列的内容 Enabled:指定对象能否响应用户引发事件 Fontname:指定显示文本的字体名称 Fontsize:指定显示文本的字体大小
Format:指定某个控件的VALUE属性的输入或输出格式 Height:指定对象在屏幕上的高度
Inputmask:指定控件中数据的输入格式和输出格式 Left或者Right:指定对象的左边界或右边界 Name:指定在代码中引用对象时所用的名称 Rowsource:指定组合框或表明表框控件中值的来源 Rowsourcetype:指定控件中值的来源类型 Sizable:指定对象的大小是否可以改变 Style:指定控件的样式 Top:指定对象的上边界 Value:指定控件的当前状态
Visible:指定对象是否可见的还是隐蔽的
Windowstate:指定表单窗口在运行时是否可以最大化或最小化
Windowtype:在执行DO FORM命令时,指定表单集或表单对象的动作。一般选1(模式),表示其他表单和菜单对象不能成为活动。
4)设置数据环境:打开数据环境窗口的方法与打开属性窗口相同,只要选择“数据环境”即可。在执行表单时数据环境中的所有表将自动打开,释放表单时,又自动关闭所打开的表。
5)建立事件和方法,编写代码:就是为屏幕对象可能发生的各种事件或方法添加相应的程序代码,以实现相应的功能。方法是:双击对象,即可打开代码窗口,也可以通过菜单或快捷菜单打开对象的代码窗口,然后选择相应的过程,输入代码。
5、修改表单:
命令:MODIFY FORM 表单名 菜单:“文件”→“打开”→“表单”
项目管理器:选择要表单名,单击“修改”按钮 6、表单的执行: 命令:DO FORM 表单名 菜单:“表单“→”运行表单“
项目管理器:选择表单,单击“运行“按钮
第四节 查询设计
一、为数据库建立复合索引文件
普通索引文件的建立:
USE 表名 EXCLUSIVE (注意:结构复合索引文件的建立,表必须以独占方式打开)
INDEX ON 字段名 TO TAG 字段别名 OF 文件名 主索引文件的建立:
ALTER TABLE ADD 表名2 PRIMARY KEY 主关键字段名 TAG 主关键字段名
候选索引文件的建立:
ALTER TABLE 表名2 ADD UNIQUE 字段名 TAG 字段名 二、查询文件的建立
查询就是在数据库表中查找指定的记录和字段。在很多情况下都需要建立查询,例如为报表组织数据,显示表中的数据。
VFP主要有四种查询实现方法:基本命令查询、SQL查询、查询设计器和视图。命令查询在第一部分已经介绍了,在此不再叙述。视图查询的方法与查询相似,请同学们自己了解与练习。现在主要介绍另外两种方法。
1、使用查询设计器与向导建立查询文件
使用查询设计器和查询向导进行查询的方法是:当指定了要查找哪些信息和这些信息存储在哪些表和视图中后,就可以通过以下步骤建立查询:
1)使用“查询向导”或“查询设计器”开始建立查询,如图4-1,图4-2;
图4-1
图4-2
2、选择出现在查询结果中的字段; 3)设置查找条件;
4)设置排序或分组选项来组织查询结果; 5)选择查询结果的输出类型:表或报表或浏览; 6)运行查询。
2、SELECT—SQL查询:
SELECT是SQL的核心语句,它能完成强大的查询功能。SELECT命令的格式为:
SELECT <字段表>
FROM 子句 WHERE 子句 GROUP BY 子句 ORDER BY 子句 INTO|TO 子句
SELECT 命令格式比较复杂,主要分三部分,其中前二者是必要的,第三项是可选的:
查询内容:由SELECT列出需要查询的数据项; 查询对象:由FROM列出被查询的数据表名;
查询结果去向:由选项INTO或TO指定查询结果的去向,如屏幕、打印机、数据表、数组、文本文件等。
编辑产生的SELECT—SQL语句: MODIFY COMMAND 文件名.QPR MODIFY FILE 文件名.QPR
三、在程序和表单中使用查询
使用查询设计器创建的查询实际上是可视地编写SELECT—SQL语句。在使用查询设计器创建查询后,若准备在程序或表单中进行查询,应将SELECT—SQL语句保存在扩展名为.QPR文件中。可以在命令口程序或表单中通过DO命令直接执行SQL。但是,在运行SQL前必须做一些准备工作:
从包含数据库或表的目录运行查询; 执行SET DEFAUT TO 命令设置路径; 修改查询使查询包含驱动器或路径的信息。 四、利用表单设计灵活的查询文件
根据数据库或表的内容、查询条件、查询输出的内容设计表单;
在表单中灵活使用组合框、复选框、命令按钮或命令按钮组、文本框、标签、表格等控件;
在表单设计中的表格内容应与查询文件对应起来,同时应将查询文件设计成动态查询文件,能够根据表单的输入决定查询的条件及查询的结果等有关内容,同时在表单设计中应将之前的函数、表达式等结合运用,以丰富查询文件。
第五节 报表设计
一、报表简介
报表是数据管理信息系统的最终结果,报表提供了对输出数据进行组织和设定显示与打印的方法。报表包括两部分:数据源与布局。数据源通常是数据库中的表,也可以是视图、查询等,而布局则定义报表的打印格式。建立报表的过程即是定义报表的样式,报表文件的扩展名为.FRX,每个报表还有一个同名的扩展名为.FRT的备注文件。在VFP中可以通过自动报表、报表向导与报表设计器等多种方法设计报表,一般采用自动报表或报表向导生成报表后,再用报表设计器进行修改。
二、快速报表的生成
打开报表数据源——表文件;
单击菜单“文件”→“新建”→“报表”→“新建文件”,则能打开报表设计器;
从系统菜单“报表”→“快速报表”→在对话框中选择报表的字段布局; 在“快速报表”对话框中选择报表中的字段,单击“确定”按钮,生成报表布局;
右击报表设计器空白处,在快捷菜单中选择执行“浏览”命令,浏览报表的结果;
退出报表设计器,保存报表文件。 如图5-1。
图5-1
点击快速报表 三、使用报表向导设计报表 报表向导设计报表的步骤:
1)单击菜单“工具”→“向导”→“报表”→“向导选取”对话框; 2)选择要使用的向导:
报表向导:用一个单一的表创建一个带格式的报表;
分组/总计报表向导:创建一个总结报表,可以提供每组数据的总计值; 一对多报表向导:创建一个报表,其中的内容包含了一组父表的记录及其相关子表的记录。
若选择报表向导,则出现“报表向导”对话框。 如图5-2。
图5-2
3)选择字段,即选择数据源——数据库、表和字段; 选择报表的样式,即经营式、帐务式和报表式; 定义报表的布局; 指定排序方式;
预览报表,报表制作完成。
四、使用报表设计器设计美观实用的报表
打开报表设计器:单击菜单“文件”→“新建”→“报表”→“新建文件”,则已打开报表设计器,如图5-3。
图5-3
定义报表的数据源:即为报表建立数据环境和在报表的激活事件代码中指定数据源。若选择同一数据源,则可以在数据环境或报表的init事件指定。选择不同数据源,则在click事件代码中用use或do query 语句指定。当把表作为数据源时,记录按照在表中的顺序被动处理,当使用查询作为数据源时,不能在使用别名;
带区 列标头 列标脚 组标头 组注脚 标题 总结
打印 每列一次 每列一次 每组一交 每组一次 每一报表一次 每个报表一次
典型内容
列标题 总结、总计 数据前面的文本 组数据的计算结果值
标题日期或页码、公司徽标、标题周围的框 总结“grand totals”文本
在报表设计器中对页标头、细节和页注脚进行设计。细节带区一般包含来自表的一行或多行记录,这时可通过菜单“显示”→“报表控件”工具栏将报表控件加入报表中。报表带区可包含文本、来自表字段中的数据、计算值、用户自定义函数及图片、线条和框等,报表上可以有各种不同类型的带区,这是最能反映用户报表特点的地方。可以在报表中增加的带区如表。
五、报表的使用
报表完成后,可通过菜单进行预览和打印,但更常用的是通过命令在预览或打印报表:
预览报表的命令:REPQORT FORM 报表名 PREVIEW
打印报表的命令:REPORT FORM 报表名 TO PRINTER NOCONSOLE
第六节 菜单设计
一、菜单的介绍
图6-1
分组线 此即为菜单栏 此为子菜单与次一级菜单 菜单如图6-1所示。主要包括主菜单、子菜单、次级菜单等。在菜单中可以对相关项目进行分组,如图中标示。
二、菜单系统的规划
在设计菜单之前要先进行菜单的规划:一般应根据用户的要求、系统拟实现的功能来设计菜单,一般应包括数据的初始化(建立各种数据表);数据的录入、增加、修改与删除;查询文件系统;报表设计与打印系统;退出等内容。
三、使用菜单设计器设计菜单 1、启动菜单设计器的方法
用CREATE MENU或MODIFY MENU命令可以启动菜单设计器来建立或修改菜单文件;
通过菜单“文件”→“新建”→“菜单”可启动菜单设计器,或通过菜单“文件”→“打开”来编辑已有的菜单文件;
利用项目管理器也可以新建或修改菜单。 2、菜单设计器的使用
按规划内容依次输入各级菜单的名称,选定菜单结果,编写菜单选项即可定义好菜单。对应于每一菜单项,可以选择子菜单,定义下一级菜单,然后再选择子菜单进行定义,选择命令或过程,直接输入要调用的命令或过程。其中的关键是过程或命令的编写。另外,可以添加使用菜单选项的热键。
3、菜单文件
菜单文件的扩展名为.MNX,是一个数据结构固定的数据表文件,相应备注
文件的扩展名为.MNT。在VFP目录下有一个程序文件夹GENMENU.PRG。当用户建立菜单并要求生成程序代码时,菜单生成器便会调用这段程序,根据菜单文件的内容自动生成扩展名为.MPR的屏幕程序文件,该文件可以用DO命令执行。通过系统菜单“菜单”中的“生成”命令可以调用GENMENU.PRG,将菜单文件生成屏幕程序文件。
4、测试与调试菜单:
使用SET SYSMENU命令可以管理VFP的菜单,如SET SYSMENU ON|OFF,可以实现在程序运行过程中显示或隐藏系统菜单。
四、创建快捷菜单
快捷菜单可以方便、快速地生成菜单,主要是设计点击右键时的菜单项目,方法是:
“文件”→“新建”→“菜单”→“新建文件”→新建菜单中选择“快捷菜单”。之后就可以在插入点右击使用快捷菜单了。如图6-2。
快速菜单其实主要是将系统中常用的菜单生成右击时的菜单。
图6-2
点击生成快速菜单
五、利用命令方式生成菜单 可以使用其它命令生成菜单:
利用@„„menu与read menu相对应的命令组设计菜单; 利用menu与read menu相对应的命令组来编写菜单; 利用@„„prompt与menu to相对应的命令组来编写菜单。
第七节 项目设计
一、项目管理器介绍
项目管理器是VFP中处理数据和对象的主要组织工具,项目是文件、数据、文档和VFP的集合,被保存在扩展名为.pjx的文档中,即项目管理器是VFP的控制中心,当个复杂的应用系统时,可以使用项目管理器来跟踪所有有关的文件。项目管理器人员把一个应用程序中所有文件合并到单一的文件中。经过编译生成一个用VFP命令可以运行的.APP文件,或者是一个的扩展名为.EXE的Windows应用程序,这给软件制作、馐提供了很大的方便。
二、启动项目管理器的方法 命令:CREATE PROJECT
菜单:在系统菜单下,依次选择“文件”→“新建”→“项目”→“新建文件”→“创建”
三、创建项目文件
1、了解项目菜单的基本操作(使用鼠标右键)
2、创建过程:在系统菜单下选择“文件”→“新建”→“创建”→“新建”,然后指定项目→保存文件
3、向项目中添加资源(修改类似): 1)添加(修改)数据:
单击项目管理器菜单栏中的“数据”或者单击“数据”之前的“+”→选择“数据库”或“自由表”或“查询”→“添加(或者修改)”,打开数据库或表或查询文件→“确定”,可以实现向项目中添加(或者修改)数据库、自由表,或者本地视图、远地视图、连接、查询文件等等内容。
2)添加(修改)文档:单击项目管理器菜单栏中的“文档”或者单击“文档”之前的“+”→选择“报表”或“表单”或“标签”→“添加(修改)”,选择相应的报表、表单、标签→“确定”,可以实现向项目添加(或者修改)报表、表单、标签。
3)添加(修改)代码:单击项目管理器菜单栏中的“代码”或者单击“代码”之前的“+”→选择“程序”、“API库”、“应用程序”→“添加(或者修改)”,选择相应的程序、API库、应用程序→“确定”,就可以实现向项目添加(或者修改)程序、API库、应用程序等内容。
4)添加(修改)其它内容:单击项目管理器菜单栏中的“其他”或者单击“其他”之前的“+”→选择“菜单”、“文本文件”、“其他文件”→“添加(或者修改)”,选择相应的菜单、文本文件、其他文件→“确定”,就可以实现向项目添加(或者修改)菜单、文本文件、其他文件内容。
4、从项目中移去内容或运行选定的内容:在项目中选择一种数据,或者文
档、代码、其他内容,再选择“移去”,即可实现将项目内容从项目中删除的目的。对于选择了可运行的项目内容,如表单、程序、查询文件、报表等,选择“运行”,就可以运行该文件。
5、项目连编:
连编项目和制作应用程序安装盘对于用户使用软件是有利的,同学们应该予以掌握。但建议将实验的各种文件复制到另一张盘后再进行连编和制作安装盘。使用另外一张盘来存储连编后的项目及将安装盘(文件)另置一张盘中,否则对于初学者来说可能造成今后不便修改与阅读的问题,同时对于教师也不易检查本次学生实验的情况。
项目的连编过程:
1)编写主程序,即系统第一个执行的程序,并且通过这个程序的运行来调用其它各个功能模块。主程序可以是一个命令文件,也可以是一个菜单文件。
2)设置主文件:主文件是一个程序或表单,该文件作为一个已编译应用程序的执行开始点,在该文件中可以调用应用程序中的其他文件。通常主文件设置了应用程序的可选环境、运行菜单程序或表单,以显示应用程序的界面,并且使用READ EVENTS命令建立应用程序的事件循环。在连编应用程序之前在“项目管理器”中指定一个主文件,VFP默认第一个加入到项目中的程序(命令文件、表单文件或菜单文件)为主文件。一般将主程序设置为主文件。设置或取消的方法:先选择要设置的文件,从系统菜单“项目”中执行设计主文件“,可以将已设置的主文件变为非主文件,也可将非主文件设为主文件。在项目管理器中主文件的文件名黑体字显示。
3)设置包含和排除文件:系统可包含除用户可修改的数据库、表和索引文件以外的任何文件。设置排除的文件左侧有一个带圈的“-”的标志。在默认情况下,VFP将从.APP或.EXE文件中排除自由表和数据库。可以通过系统菜单“项目”中的“排除”或“包含”进行设置。
4)连编选项:包含有四种动作——重新连编所有项目、连编应用程序、连编可执行程序、连编OLE DLL动态连接为库;包含以下三个选项——重新编译所有文件、显示错误信息、建立后即执行;还有“版本”按钮显示“EXE版本”对话框,允许指定版本号及版本类型,方法是从“连编选项”→“连编可执行文件”或“连编OLE DLL”时,该按钮会出现。
5)建立安装程序:通过VFP的安装引导,可以比较方便地建立安装程序。方法是,通过系统菜单“工具”→“向导”→“安装”,即可以执行VFP的安装向导程序,按照提示进行即可完成。
第五部分 实验内容与操作指南 实验一:常用命令分类与用法
一、实验目的
通过本部分实验,能使学生熟悉VFP使用环境与系统界面,熟悉利用VFP设计数据库、使用数据库、维护数据库的方法、主要命令与语法要求,为以后数据库的管理与应用提供支持,因此本部分实验是进行后续实验的基础与关键,学生应通过此部分的操作,了解VFP的工作原理与基础,熟悉VFP的有关操作。 二、实验准备
教师:事先制定出实验内容与具体要求并向学生公布,告知学生本部分实验的关键与注意事项,制定本次实验的评分标准。
学生:对本部分的教学内容加以复习,了解本次实验的内容与要求,并作好实验计划,列出实验细节与拟采用的方法。 三、学时安排
本部分为上机实验,学时为4个学时。其中对VFP系统环境的熟悉、对数据库的建立、结构操作、数据库的打开与关闭、对数据库的输入、编辑、修改、增加为2个学时。对数据库的查询、浏览、统计、索引、排序为2个学时。
四、 实验步骤
1、熟悉VFP的启动与退出、窗口环境、命令窗口的打开与关闭 2、建立数据库,对数据库结构进行操作 3、数据库的打开与关闭
4、数据库的输入、编辑、修改、删除 5、数据库的浏览、查询、统计 6、数据库的索引和排序
五、实验任务:
1、以宿舍(不能少于6人)为单位,建立一个学生基本资料表XSJBB1(参考字段包括学号、姓名、性别(字符型 2)、出生年月(日期型)、民族、籍贯、党员否(逻辑型)、家庭住址、家庭电话、奖励(备注型)等字段);建立一个学生成绩表XSCJB1,参考字段包括学号及本学期所开的课程(课程为字段,每门课的名称要规范,可英文或中文)。
2、熟悉数据库表的操作:对XSJBB1进行结构修改、表的打开、关闭、修改、记录定位与浏览,有关操作命令保存在一个程序中,以备查看。
3、对XSJBB1进行记录的修改、记录的删除。各编一个程序实现记录的添加、记录的修改。
4、熟悉DB的查询与统计命令。编程实现:用locate语句对XSJBB1按姓名的查询;按班级和民族的联合查询;对XSCJB1按姓名进行课程的总成绩与平均成绩的统计。
5、对XSJBB1、XSCJB1按学号建立索引文件,并将其添加到数据库。
六、操作指导
(一)题1、以宿舍(不能少于6人)为单位,建立一个学生基本资料表XSJBB1(参考字段包括学号、姓名、性别(字符型 2)、出生年月(日期型)、民族、籍贯、党员否(逻辑型)、家庭住址、家庭电话、奖励(备注型)等字段);建立一个学生成绩表XSCJB1,参考字段包括学号及本学期所开的课程(课程为字段,每门课的名称要规范,可英文或中文)。 步骤如下:
Step1:在命令窗口输入:CREATE 表名1.dbf ,其中“”代表回车键。 Step2:按相应字段的类型与长度添加字段。
注意:为方便起见,文中没有将数据库或表或文件所在的位置考虑进去,在操作时,可以选择要操作的工作区即文件路径。之后,按照屏幕提示依次输入表的各个字段的名字、类型、宽度和小数位数。
表的字段结果如图51-1所示,你可以自己进行设计,同时也考虑一下为何要这样设计。
图51-1
输完后按“”或“确定”按扭。如图51-2所示。
系统提示“现在录入数据记录吗?”,如图51-3。选择“是”,进入表编辑窗口,依次在图51-4中输入相应的内容。输入完所有的记录内容,存盘退出。
图51-2 图51-3
图51-4
在命令窗口输入:BROWSE,得到类似图51-5的数据,注意表中的内容是你刚才输入的相关信息。
图51-5
依照刚才的方法,类似地建立XSCJBB1.DBF,结果如图51-6:
图51-6
此题以后各题实验时容易出现的问题及解决方法: 1、结构想修改怎么办?
修改表的结构的方法:MODIFY STRUCTURE。 2、如果遇到不能修改表结构怎么办? 在命令窗口输入: CLOSE ALL
USE XSJBB1 EXCLUSIVE MODIFY STRUCTURE
3、怎样查看表的内容(看不见刚才输入的信息怎么办?) BROWSE LAST 或EDIT 或CHANGE
4、不能增加记录怎么办?
APPEND或者在浏览窗口,将VIEW中选择APPENDMODE
5、在学号和电话号码中第1位的“0”被取消或者相关的数值显示在后面位置且办不进数据怎么办?
这是由于这个字段的类型设为数值型,就会出现“02”=“2”,因此修改的方法是将类型设为字符型。
6、备注字段如何输入?
在记录窗口memo上双击,在新窗口中输入相关内容。 7、出生日期不能正确输入?
系统默认的日期以月日年的方式输入。
8、如何保存记录:在浏览或添加窗口,关闭此文件即可 9、要设置系统操作的默认路径怎么办?
系统允许改变操作路径,系统默认的保存路径是C:\\Program Files\\Microsoft Visual Studio\\vfp98,若要改变文件的操作路径为d:\\lh,则可以在命令窗口输入:“set default to d:\\lh” 进行设置。
10、找不到表文件或其它文件?
在打开窗口中要将文件类型设为表(*.dbf)或表单等相应类型,并选择相应的
存取路径。
(二)题2、熟悉数据库表的操作:对XSJBB1进行结构修改、表的打开、关闭、修改、记录定位与浏览,有关操作命令保存在一个程序中,以备查看。
在命令窗口输入:
MODIFY COMMAND CX12
然后在程序窗口输入如图51-7或图51-8之类的内容,点击运行即可看到相应的结果,当然你可以自行进行练习。
图51-7
图51-8
(三)题3、对XSJBB1进行记录的修改、记录的删除。各编一个程序实现记录的添加、记录的修改。
与上题操作方法类似,输入相关的内容,将文件假设保存为CX13。修改如图51-9、图51-10,删除如图51-10,添加如图51-11所示。注意记录的删除操作时,表必须以独占方式打开,即:“use xsjbb1 exclusive”。
图51-9
图51-10
或者
图51-11
(四)题4:熟悉DB的查询与统计命令。编程实现:对XSJBB1按姓名的查询;
按班级和民族的联合查询;对XSCJB1按姓名进行课程的总成绩与平均成绩的统计。
查询程序代码可参考如图51-12。统计程序代码参考如图51-13。 或者
图51-12
或者
或者
或者
图51-13
(五)对XSJBB1按学号建立索引;XSCJB1按学号建立索引。 此题要求在数据库设计器中进行操作,步骤是:
先通过菜单窗口,选择“文件”→“新建”→“数据库”→“新建”,即可进入数据库设计器,然后通过如图51-14所示的控件添加表、修改表、设计索引与建立表间关系。点击XSJBB1的右键,选择“MODIFY”进入表设计器,选择“INDEX”,建立地索引标识。如图51-15。表XSCJB1的操作类似。然后按住XSJBB1不放,拖至XSCJB1,关系建立完成,退出数据库设计器。
工具栏
图51-15
建索引 图51-14
实验二:常用函数的分类与用法
一、实验目的
通过本部分的实验,主要是让学生了解VFP系统提供的丰富的函数的使用方法,这些函数类型多、功能各异,使用方便,不仅能简化运算,而且许多是命令无法实现的。学生对常用函数的熟练使用,是进行VFP程序设计的基础。
二、实验准备
教师:事先向学生公布本次进行练习实验的主要函数,告知学生本部分实验的关键与注意事项,向学生布置相应的实验任务,制定出实验评分标准。
学生:对本部分的函数的使用语法加以复习,了解本次实验的内容、要求与实验任务,列出主要函数的实验用语句(包括对课堂上不清楚的命令、容易出错的函数的用法)并思考可能出现的结果。
三、学时安排
本部分为上机实验,学时为2个学时。
四、实验步骤
2、首先对课本上本部分的实例进行练习操作; 3、对主要的函数进行实验; 4、完成教师指定的实验任务。
五、操作指导 (一)题1、编写程序实现由数组向数据库xsjbb1传送数据并显示相应的内容。 此题主要是定义数据并赋值,然后打开表传送数据即可,方便可以用INSERT、APPEND、GATHER实现。相应程序可参考如图52-1。
图52-1
反向操作(即由表向数组传送数据)如下:
图52-2
(二)题2、编程实现在屏幕显示“后天的这个时间是:——年——月——日 ——时——分——秒”。
此题的关键是对日期求出“年月日”再分别转化为字符后去掉尾随空格,进行字符的连接运算。参考程序如图52-3。
图52-3
(三)题3、定义函数或过程R,计算:当x=0.65, y=3.72, z=2.5时,R的值是多少?其中 R = (15-z-z2) / ((y-x) * z - z2)。
此题的关键是要掌握函数与过程的定义与使用的方法。同学们只要使用一种方法就可以了。这里将两种方法均介绍给同学们。 见图52-4,图52-5。
图52-4
或者
图52-5
4、其他三道课后题略(*号三角形;阶乘过程;成绩档次)。
实验三:表单设计
一、实验目的
通过实验,希望学生掌握表单的设计方法与技巧,尤其对于表单设计器、表单控件、表单属性有个较全面和感性的理解。 二、实验准备
教师:事先制定出表单设计的实验内容与具体要求,提前向学生公布,告知学生本部分实验的关键与注意事项,下达该部分实验的任务与考核方法。
学生:对本部分的教学内容加以复习,了解本次实验的内容与要求,制定表单设计的规划与布局,对于表单的属性和代码的编写提前拟好草稿。 三、学时安排
本部分为上机实验,学时为4个学时 四、实验步骤
1、了解表单设计的步骤;
2、了解进入表单设计状态的方式;
3、掌握表单的组成,掌握表单的设计方法与调整方法; 5、熟练使用表单的各种属性的功能与特点;会编写表单代码; 6、完成指定表单设计任务。 五、操作指导
(一)题1、使用表单向导设计反映XSJBB1、XJCJB1信息的表单。 启动表单向导:
方法一:通过系统菜单“文件”→“新建”→“表单”→“向导”→“向导选取”→“表单向导”或者“一对多表单向导” 方法二:系统菜单“工具”→“向导”→“表单” 在表单向导(如图53-1)的指引下,依次完成以下操作:
图53-1
S1、选择XSJBB1的相关字段; S2、选择XSCJB1的相关字段; S3、建立表间关系;
S4、选择表单样式; S5、选择排序记录;
S6、预览完成,保存表单。
运行结果如图53-2。注意:以后打不开此表单时根据提示到默认路径下的WIZARD文件夹找到相应的类文件就可运行。
图53-2
(二)题2、设计一个表单实现对XSJBB1和XSCJB1表显示第一条、下一条、上一条、最后一条信息和退出等功能。
图53-3
按照如图53-3,加入三个标签,其“CAPTION”值分别为:学号、姓名、
出生年月等;
三个文本框,用来显示学号、姓名、出生年月; 一个选项按钮组,“CAPTION”分别为“男”“女”; 一个复选框,“caption”为“党员”
加入一个表格,其标题等属性参照如图格式自己设计;
依次加入五个按钮(也可以是按钮组),其标题及字体等属性参照如图格式自己设计。
在数据环境data environment中加入数据库data1中的表xsjbb1,xscjb1(注意添加顺序要正确)。设置相关控件的属性,使得以上所提到的三个文本框的controlsouce分别对应xsjbb1的学号、姓名、出生年月、性别、党员否字段。表格中各列的TEXT1属性分别对应xscjb1的相关字段(可以手动设置表格的列数column count,以及相关的标题header和内容text1对应的controlsource;也可以打开数据环境窗口将成绩表选中后拖动到表单中,或者通过生成器完成。)
五个按钮的click代码分别如图53-4:
图53-4
设计完成,运行表单。 当然,以上可以加入命令按钮组,相应的代码适当修改,主要是对象要改为: Thisform.commandgroup1.command1„„ 注意:此题正确的结果是上面一条记录,下面对应显示该人的一条成绩记录,若不是的话,查看一下,上面设定的内容是否是xsjbb1的字段,另外也要看一下自己的数据库表正确与否,两个表的学号的字段类型、长度与值是否一样。同时,向表单中加表时是否按顺序加xsjbb1,xscjb1。
(三)题3、设计一个显示当前日期与时间含时钟按钮的表单。 按图53-5,加入三个标签,一个按钮,两个时钟。设置标签1 (label1)的caption属性为点击的表达式生成器Fx,输入以下内容:
alltrim(STR(YEAR(DATE()))) +' 年'+alltrim(STR(MONTH(DATE()))) +' 月' + alltrim(STR(DAY(DATE())))+ ' 日'
设置标签2(label2)的caption属性为:SUBSTR(TIME(),1,2)+'点'+SUBSTR(TIME(),4,2)+'分'+SUBSTR(TIME(),7,2)+'秒'
设置标签3(label3)的caption属性为:“现在是北京时间:”
设置timer1的interval属性为2000,time2的interval属性为1000,分别控制对日期与时间的显示时间。
图53-5
设置相应的代码。timer1的timer事件代码为如图53-6,53-7:
注意是timer 图53-6
图53-7
以上完成后将表单保存下来,并运行:do form 表单名。
注意:以上如果不设置label1,label2的属性,也能出来结果,但表单刚运行的时候,两个标签没有内容,所以还是设置为好。
实验四:查询设计
一、实验目的
能够建立各种复合结构索引文件;
掌握查询设计器和查询向导的使用方法,能够对表进行各种查询;掌握SELECT—SQL查询程序设计的方法;
结合表单设计制作丰富美观的查询表单文件。 二、实验准备
教师:事先制定出查询设计实验内容与查询文件的具体要求并向学生公布,告知学生本部分实验的关键是查询设计器的使用与查询表单的制作,应对SELECT语句有深刻的了解。
学生:对本部分的教学内容加以复习,了解本次实验的内容与要求,并作好实验计划,包括拟进行查询的数据库情况、数据库表的关系、字段的选取、准备查询的条件、查询文件的输出等内容的分析与规划。 三、学时安排
本部分为上机实验,学时为2个学时
四、实验步骤
1、对数据库建立相关的复合索引文件; 2、建立与修改数据库中表间的关系; 3、使用查询设计器、查询向导建立查询文件; 4、设计动态查询文件、设计查询表单文件; 5、完成指定的查询设计任务。
五、操作指导
(一)题1、设计一个按姓名查询某几门课程成绩,并反映学号、姓名、班级、专业、课程名称、成绩的查询文件。
注意此题仅是建立查询文件,因此可用查询设计器来完成。 新建-文件-QUERY-新建,进入查询设计器。
STEP1:加入学生基本表(XSJBB1)和成绩表(XSCJB1) STEP2:加入字段。选择“FIELDS”,依次向右侧的添加学号、姓名、各门功课的名称,用表达式生成“01101B2”、“工商管理”、“(xscjb1.技术经济学+xscjb1.财务管理+„+xscjb1.信息系统)/8”
STEP3:设置联接条件。选择“JOIN”,用xsjbb1. 学号=xscjb1.学号,或者xsjbb1. 姓名=xscjb1.姓名,用INNER JOIN联接方式。
Step4:设置查询条件。选择“FILLTER”,设置xsjbb1. 姓名=“张”(注:用你的姓)
Step5:设置排序条件。选择“ORDER BY”,设置按学号或姓名的升序排序。 STEP6:查看一下SQL语句的构成,查看查询去向,注意此时的去向是BROWSE、浏览。
STEP7:退出,保存查询文件QUERY1。
(二)题2、设计包含学号列表框;姓名文本框;性别单选框;党员复选框;反映课程名称、课程成绩、每个人的平均成绩的表格;开始查询、修改条件、退出查询三个命令按钮的表单。
步骤1:向表单如图54-1中加入表XSJBB1,XSCJB1。添加如下控件:两个标签、一个组合框、一个文本框、一个选项按钮组、一个复选框,一个表格、一个按钮组。有关属性设置如下,将COMBO1的ROWSOURCETYPE,设置为6-字段,ROWSOURCE设置为学号。GRID1的RECORDSORCETYPE设置为3-QUERY,设置其各列的HEADER1为各门功课的名称,并增设一个平均成绩列。
图54-1
步骤2:设置代码。有关的代码可参照图54-2设计。
步骤3、在命令窗口输入XH=“01101B201”或者23,并回车。
新建一个查询文件,字段为各门课程、及表达式平均成绩,筛选条件设置中学号=XH,去向设置为第二个按钮,CUROR,名称为QUERY4,保存为QUERY4.qpr。
步骤4、保存表单,并运行。
注意,此表单是实现表单与查询文件的结合运用。若有问题,可能是查询文件未设置,或者字段不匹配,如成绩字段不是数值型的;性别字段的长度不是2,复选框不是逻辑型的。
图54-2
实验五:报表设计
一、实验目的
掌握用报表设计器制作报表的方法; 掌握报表的使用方法;
能够将查询文件转换成报表输出。 二、实验准备
教师:事先制定出报表设计的实验内容与具体要求并向学生公布,告知学生报表设计实验的关键与注意事项。
学生:对本部分的教学内容加以复习,了解本次实验的内容与要求,并作好实验计划,拟定报表的格式与要求。
三、学时安排
本部分为上机实验,学时为2个学时
四、实验步骤 1、打开报表设计器;
2、使用报表设计器设计报表;
3、制作满意的报表布局,可添加修饰内容,修改完善报表; 4、预览报表或打印报表; 5、完成报表设计任务。 五、操作指导
设计按姓名分组的成绩报表,包括报表标题、编写报表人与日期;显示班级名称、专业、姓名;课程名称、成绩、平均成绩;各门课程的最高分、最低分、优秀人数和不及格人数。
此题先用报表向导生成一个报表,保存并在报表设计器中进行修改。 1)单击菜单“工具”→“向导”→“报表”→“向导选取”对话框; 2)选择一个表的报表向导,则出现“报表向导”对话框。 3)按以下步骤进行设计
选择xscjb1中的相应字段,即选择数据源——数据库、表和字段; 选择分组字段,注意要设置总结项,选中相应字段的平均、最大与最小复选框。如图55-1。
选择报表的样式,即经营式、帐务式和报表式; 定义报表的布局; 指定排序方式;
预览报表,保存并在报表设计器中进行修改。 4)使用报表设计器设计修改刚才的报表:
打开报表设计器:单击菜单“文件”→“新建”→“报表”→“新建文件”,则已打开报表设计器;
图55-1
点击 点击 在报表设计中添加相应的标签字段,如图55-2所示。
图55-2
对于上述平均成绩字段的求法是,添加一个文本框,其值按图55-3设置。最后通过“verify”,点击“ok”。选择预览,结果如图55-4。
点击 右击选择属性 则出现左侧的窗口,然后设置其值。 图55-3
图55-4
实验六:菜单设计与项目设计
一、实验目的
1、理解菜单在应用程序中的作用; 2、掌握用菜单设计器设计菜单的方法;
3、能够利用菜单将以上设计内容连接起来,方便使用; 4、了解一般管理系统的功能及主要菜单选项。 二、实验准备
教师:事先制定出菜单设计的实验内容与具体要求并向学生公布,告知学生菜单设计实验的关键是编写过程或事件代码将以上设计内容连接起来。
学生:对本部分的教学内容加以复习,了解本次实验的内容与要求,并作好实验计划,列出实验时设计菜单的方法与代码。
三、学时安排
本部分为上机实验,学时为2个学时
四、实验步骤 1、规划菜单系统; 2、创建菜单项; 3、为各菜单指定任务;
4、预览菜单并调试菜单,完成菜单设计; 5、设计与完善本部分的菜单设计任务。 6、将以上项目内容回到项目中。 五、操作指导
设计一个菜单包括以上设计的内容:数据库设计、表单设计、查询设计、报表设计、退出等,并包括相应的子菜单(运用有关命令将以上的模块连接起来)。
首先要对菜单进行规划,然后再依次进行设计。参考菜单如图56-1。
图56-1
其中,菜单中“表的设计”的子菜单设计如图56-2,主要目的是将相关表的运用通过菜单来实现。
图56-2
点击 表的设计 对于图56-2中的第一个项目“打开基本表”我们设置的是“procedure”,因此要点击后面的“edit”进行过程的编写,参照图56-3。
图56-3
对于图56-2中的“表的使用”,我们设置的是子菜单,因此需要进一步地进行菜单的设计,参照图56-4。
图56-4
对于图56-1中“表单设计”的子菜单的设计,可以参照图56-5。图中表示的是如何进行表单的调用,即“do form 要调用的表单名”。
图56-5
注意此处写法 其中菜单项目的设计,可以参照如上说明进行类似设计,在此不一一介绍。全部设计完成后,将主菜单生成sumenu1.mpr文件。
菜单设计完成后要设计一个表单来调用菜单,我们设计了如图56-6的菜单进行调用。
图56-6
图56-6中“进入系统”的“click”代码参照如下: clear events thisform.release close all
do form d:\\su1\\cx2.scx
图56-6中timer1的timer事件代码如图56-7。
图56-7
上面提及的表单CX2,如图56-8。
图56-8
对于此表单要先设计一个表,存储用户名和代码,此处不详细介绍。图56-8中“确定”按钮的click代码参照图56-9。
图56-9
调用设计好的菜单 设计完成后运行表单就可以执行菜单,进行相关的操作了。
完善以上内容,并将以上的表、查询、报表、表单、菜单、程序等内容加入到项目中。
1、启动项目管理器的方法:
命令:CREATE PROJECT,或者选择菜单:在系统菜单下,依次选择“文件”→“新建”→“项目”→“新建文件”→“创建”。如图57-1。
图57-1
2、向项目中添加资源(修改类似) 1)添加(修改)数据:
单击项目管理器菜单栏中的“数据”或者单击“数据”之前的“+”→选择“数据库”或“自由表”或“查询”→“添加(或者修改)”,打开数据库或表或查询文件→“确定”,可以实现向项目中添加(或者修改)数据库、自由表,或者本地视图、远地视图、连接、查询文件等等内容。如图57-2。
图57-2
2)添加(修改)文档:单击项目管理器菜单栏中的“文档”或者单击“文档”之前的“+”→选择“报表”或“表单”或“标签”→“添加(修改)”,选择相应的报表、表单、标签→“确定”,可以实现向项目添加(或者修改)报表、表单、标签。如图57-3。
图57-3
3)添加(修改)代码:单击项目管理器菜单栏中的“代码”或者单击“代码”之前的“+”→选择“程序”、“API库”、“应用程序”→“添加(或者修改)”,选择相应的程序、API库、应用程序→“确定”,就可以实现向项目添加(或者修改)程序、API库、应用程序等内容。如图57-4。
图57-4
4)添加(修改)其它内容:单击项目管理器菜单栏中的“其他”或者单击“其他”之前的“+”→选择“菜单”、“文本文件”、“其他文件”→“添加(或者修改)”,选择相应的菜单、文本文件、其他文件→“确定”,就可以实现向项目添加(或者修改)菜单、文本文件、其他文件内容。如图57-5。
图57-5
4、从项目中移去内容或运行选定的内容:在项目中选择一种数据,或者文档、代码、其他内容,再选择“移去”,即可实现将项目内容从项目中删除的目的。对于选择了可运行的项目内容,如表单、程序、查询文件、报表等,选择“运行”,就可以运行该文件。
第六部分 参考资料
1、李加福等编,《Visual FoxPro 6.0 中文版入门与提高》,清华大学出版
社,2001年。
2、邵洋等编,《Visual FoxPro 6.0 数据库开发实例导航》,人民邮电出版社,2001年。
3、薛华成编,《管理信息系统》,清华大学出版社,2000年。 4、黄梯云等,《管理信息系统》,高等教育出版社,2001年。
5、李雁翎,《Visual FoxPro 数据库应用技术》,高等教育出版社,2005年。 6、瓮正科,《Visual FoxPro 6数据库开发教程》,清华大学出版社,2004年。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务