VFP课程设计指导文件全.docx
《VFP课程设计指导文件全.docx》由会员分享,可在线阅读,更多相关《VFP课程设计指导文件全.docx(12页珍藏版)》请在冰豆网上搜索。
![VFP课程设计指导文件全.docx](https://file1.bdocx.com/fileroot1/2022-10/11/304bf89c-5f0b-4bc3-9ab4-f5fc10c535e8/304bf89c-5f0b-4bc3-9ab4-f5fc10c535e81.gif)
VFP课程设计指导文件全
Vfp课程设计辅导
一、课程设计性质:
1学分的考查课。
〔正常教学环节,提高重视程度〕
●端正态度,认真对待。
●遵纪守时。
二、设计环节
●程序设计〔考查点〕
1、人员分组
2、选择设计题目
3、分析题目〔系统的数据库设计、功能分解,划出框图。
〕
*对系统的存放目录及各种文件统一命名。
4、划分设计任务
5、具体设计〔编码〕
6、连编应用程序
●书写并打印报告〔考查点〕
7、按照模板书写word文档(B5黑白纸打印)
8、打印上交一份/人
三、Vfp课程设计注意的问题
1、工作目录的设定〔必会,不然可能丧失文件!
〕
2、设计成果保存
●注意设计成果的阶段性保存〔至少保留前2天的设计结果〕
软盘〔不可靠〕或U盘/服务器〔局域网网络环境〕
3、问题列表:
你所遇到的错误?
原因及解决方法?
4、帮助文件的使用〔提高能力〕:
学会使用MSDN帮助文档,来解决你所遇到的问题。
四、用VFP编写管理系统的一般模式如下列图所示:
主程序(main.prg)调用密码验证表单(顶层表单)调用主控表单(顶层表单)调用菜单(xtcd.mpr)—调用其他功能表单(showwindow属性设置为1:
在顶层表单中)
注:
顶层表单:
showwindow属性设置为2:
作为顶层表单
五、VFP课程设计流程
1、前期工作
Ø在e盘建立一个文件夹gzglxt(小组统一),设置工作目录为e:
\gzglxt。
〔工具/选项/文件位置...〕
Ø建一个项目文件,如:
“工资管理系统.pjx”(小组统一命名各种文件),在项目中建数据库和表(小组统一,由一个同学建好,大家复制后再进行下一步的设计)。
2、小组分组做各个功能表单
Ø参照教材9.6例子在项目中新建一个密码验证表单fm.scx,在表单的“确定”按钮的click事件中,假设密码正确,则执行主控表单zkbd.scx。
●核心代码:
doformzkbd.scxthisform.release
●设置密码验证表单fm.scx为顶层表单:
showwindows属性为2-作为顶层表单。
Ø数据的浏览〔教材例子10.3〕、增加、删除、查询〔教材例子10.6〕及打印功能表单也分别做好。
Ø在项目中新建一个顶层表单:
zkbd.scx
●设置为顶层:
showwindows属性为2-作为顶层表单。
●表单的load或init事件中调用xtcd.mpr,在init事件输入:
doxtcd.mprwiththis,.t.
3、新建一个菜单:
xtcd.mnx〔注:
具体的系统可能与下面的菜单不同〕
Ø操作步骤:
项目管理器/“代码”选项卡/选中“程序”类别项,单击“新建”按钮。
Ø〔项目管理器状态〕选中“其他”选项卡/选中“菜单”类别项,单击“新建”按钮,打开菜单设计器。
Ø设计菜单栏类似下列图:
Ø“工资管理”菜单项的子菜单类似如下列图:
Ø“退出”项的过程代码:
clearevents
closeall
quit
Ø菜单栏中“退出”项的子菜单类似下列图所示:
Ø设置菜单:
〔设置菜单可被一个顶层表单调用〕
在“显示”菜单中选择“常规选项”命令,打开下列图所示的对话框,并选择“顶层表单”复选框。
Ø保存菜单文件:
文件/保存/输入文件名xtcd.mnx
Ø生成菜单文件:
〔菜单设计器状态下〕点击下面的命令项,按提示操作即可将.MNX文件生成.MPR的菜单程序文件。
4、连编项目
Ø编写主程序main.prg,代码参考“实验指导书课程设计部分”。
操作步骤:
项目管理器/“代码”选项卡/选中“程序”类别项,单击“新建”按钮。
代码如下:
_screen.visible=.f.&&隐藏VFP主屏幕
doformfm.scx&&调用密码验证表单fm.scx
readevents&&开始事件循环
closeall
quit
Ø将main.prg设置为主文件,即本工资管理系统从main.prg开始执行。
操作步骤:
〔项目管理器状态〕选中main.prg/右击/设置主文件
Ø由每个小组成员分别做出菜单中要调用的其他功能的表单(showwindow属性设置为1:
在顶层表单中)。
最后都拷到组长的e:
\gzglxt文件夹中来连进行联编。
Ø联编项目:
〔项目管理器状态〕/选中“代码”选项卡下面的main.prg/单击“联编”按钮,选择如下图的选项后,单击“确定”按钮。
Ø成功联编后,打开e:
\gzglxt文件夹,双击”工资管理系统.exe”即可执行。
●小组如何协同工作来完成一个设计题目?
Ø命名统一各种文件:
集体协商定好所选设计题目的数据表、数据库、菜单、报表、项目文件和其他表单文件的名称。
Ø数据表要统一:
表的结构由小组集体决定,确定下来后不要更改,如有变动要通知所有组员知道,否则最后不能联编在一起。
Ø统一文件存放路径。
如:
都存在f:
\xxx文件夹中。
●如何备份阶段性成果文件?
Ø退出VFP,再备份文件,注意文件备份要全面,不要遗漏文件。
如:
表单形成两个文件:
scx表单文件和.sct表单备注文件,两个都要备份,否则表单打不开。
Ø解决方法:
请备份整个设计文件夹。
●如何设计系统的数据表?
Ø为了防止信息的重复存储(信息冗余),表设计的原则是:
一个主题的信息形成一个表。
Ø如学生成绩管理系统:
学生信息表〔学号,,性别等〕、课程表〔课程号,课程名称〕、成绩表〔学号,课程号,成绩〕
●为什么文件找不到了?
Ø原因:
当前工作目录下没有这个名称的文件。
Ø请在做设计之前设置好你的工作目录。
●怎样更改表单的最大设计区域〔640*480800*6001024*768〕?
Ø工具/选项/表单/最大设计区域/选择合适的分辨率:
如800*600或1024*768。
●如何给表单填加背景图片?
Ø不要直接用表单的picture来填加背景图片,图片的大小不可控制。
Ø解决方法:
用图像控件:
image,来显示背景图片〔缩放方式为:
变比填充〕,并在表单的activate事件中用代码方式对image控件的位置〔top=0、left=0〕和大小〔height、width〕属性做适当的设置,让image控件的大小等于表单的大小。
Ø假设想实现表单的尺寸大小改变时,背景图片同步改变大小,请在表单的resize事件中做上述同样的代码设置即可。
●为什么回不到设计状态?
Ø程序挂起了,参看教材12章:
程序的调试部分---挂起suspend命令。
Ø解决方法:
在命令窗口中输入命令:
cancel回车;或者单击“程序”菜单中的“取消”命令。
●怎样快速找到出错的命令行代码?
Ø出错时,点“挂起”来打开调试器,看到出错的行,找到原因;
Ø在调试器中单击,“跳出”工具按钮,来回到错误状态;
Ø单击“取消”按钮,回到设计状态修改错误代码。
●为什么数据类型不匹配?
Ø请注意表中字段的数据类型与你写的表达式的数据类型一致,数据类型不一致不能运算。
如表达式:
123>”1000”
Ø解决方法:
用转换函数〔推荐用前者〕或者改表中的字段类型。
●如何在一个顶层表单中调用一般菜单(具体操作可参考下册书的菜单实训部分)
1、建立一般菜单
Ø文件/新建/菜单-----存成菜单定义文件.MNX
Ø显示/常规选项/选中“顶层表单”(告诉系统将来这个菜单要在一个顶层表单中调用)
Ø生成.MPR菜单程序文件
2、在一个“顶层表单”的表单文件中调用上面的菜单
Ø将表单设置为顶层表单:
将表单的showwindow设置为2。
Ø顶层表单的init事件代码如下:
DOxx.MPRWITHTHIS,.T.
●如何在一个表单中调用快捷菜单?
Ø新建/菜单/快捷菜单〔同一般菜单〕
Ø保存文件MNX→生成文件MPR
Ø在表单(控件)的右击事件(Rightclick)来调用,输入代码:
DoXX.mpr
●如何书写主程序?
**main.prg**
_screen.visible=.f.
doformxx.scx
readevents
quit
●浏览功能表单的设计思路?
(教材例子10.3)
是一个数据表单,表单上可以有相应的控件(从数据环境中直接拖入即可),要求控件只读,还要有一些按钮来移动记录指针。
还可以增加简单的查询功能,来实现按查询的条件来浏览表中的记录信息。
注:
假设用到表格(grid)控件,请去掉表格控件的删除列,即修改deletemark属性:
deletemark=.f.
●查询功能表单的设计思路?
Ø用setfilterto实现:
(教材例子10.6)
是一个数据表单,表单上有相应的表格(grid)控件,(表格控件要求只读),用文本框来接收用户的查询关键字段的值,再用setfilterto命令来对表格控件的数据源表进行条件过滤,来模拟查询的效果。
假设是多关键字查询,请用选项按钮组来让用户选择要查询的关键字类别,如:
按或按学号等。
Ø用SQL语句Select实现:
是一个数据表单,表单上有相应的表格(grid)控件,(表格控件要求只读),用文本框来接收用户的查询条件,填加一个“查询”按钮,单击该按钮时,执行select查询语句,查询语句的结果放到表格(grid)控件中显示〔该表格控件的数据源用代码方式设置为:
thisform.grid1.recordsourcetype=4,即SQL说明;thisform.gird1.recordsource=“select*from表where条件intocursortemp”。
〕
注:
假设用到表格(grid)控件,请去掉表格控件的删除列,即修改deletemark属性:
deletemark=.f.
●打印功能表单的设计思路?
Ø先做有关数据表的报表格式文件(frx)。
Ø做一个表单,上有按钮控件,单击该按钮,执行预览报表的命令:
reportformxx.frxpreview
Ø假设想实现条件打印预览,只需在上面的命令中加上for条件语句:
reportformxx.frxpreviewfor<条件>
●修改功能表单的设计思路?
实质是一个数据表单,表单上有相应的表格(grid)控件(表格控件要求只读),或相应的ole绑定控件(从数据环境中直接拖入表单中产生的控件,控件要求只读),还有“修改”按钮,单击该按钮,去掉上述控件的只读属性,允许用户来修改表单中显示的记录数据。
还有一个“确定”按钮,单击该按钮,设置相应控件的只读属性为真,不允许用户修改数据,表示数据修改结束。
注:
假设用到表格(grid)控件,请去掉表格控件的删除列,即修改deletemark属性:
deletemark=.f.
●删除功能表单的设计思路?
Ø假删除方法:
建一个数据表单,表单上有相应的表格(grid)控件(表格控件要求只读)显示数据表中的记录,并且去掉表格(grid)控件的删除列,即修改deletemark属性:
deletemark=.f.;由用户在表格中选择一个要删除的记录,单击“删除”按钮,给记录加上删除标记,即逻辑删除记录;然后执行setdeletedon命令来屏蔽(不显示)有删除标记的记录,来模拟删除的效果。
最后,在“退出”按钮中,执行物理删除命令:
pack,来真正删除表中的记录。
注:
表必须以独占方式打开(可用命令:
use表exclusive;也可在设置表单数据环境的属性:
exclusive=.t.),否则会删除失败。
●删除表单中的恢复删除功能实现?
表单中增加一个接收“记录号”的文本框和一个“恢复删除”按扭,单击该按钮,首先不屏蔽(显示)有删除标记的记录,然后执行recall命令来恢复相应的记录,最后再设置系统状态为:
屏蔽(不显示)有删除标记的记录。
●增加记录功能表单的设