VFP应用程序设计实例.docx

上传人:b****5 文档编号:6186862 上传时间:2023-01-04 格式:DOCX 页数:30 大小:240.12KB
下载 相关 举报
VFP应用程序设计实例.docx_第1页
第1页 / 共30页
VFP应用程序设计实例.docx_第2页
第2页 / 共30页
VFP应用程序设计实例.docx_第3页
第3页 / 共30页
VFP应用程序设计实例.docx_第4页
第4页 / 共30页
VFP应用程序设计实例.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

VFP应用程序设计实例.docx

《VFP应用程序设计实例.docx》由会员分享,可在线阅读,更多相关《VFP应用程序设计实例.docx(30页珍藏版)》请在冰豆网上搜索。

VFP应用程序设计实例.docx

VFP应用程序设计实例

VFP应用程序设计实例--学生学籍管理系统

(1)

电脑笔记2007-10-2916:

43:

36阅读2795评论5字号:

大中小

    

图1

MIS是英文ManagementInformationSystem的英文缩写,意思是信息管理系统,该系统可用于

中小型企事业单位业务处理和信息交流,从而大大提高了企业运作的效率。

微软公司的Visual 

FoxPro可视化面向对象的编程软件是一个设计MIS系统即简单又快捷的好软件。

下面,就以VFP6.0

为开发环境,讲述设计学生学籍管理系统的详细设计过程,也为在看过了前面非表单设计的学生学

籍管理系统的朋友们继续了解并学习采用表单(Form)的方式设计MIS系统的方法。

    一、设计思路:

学生学籍管理系统的运行以封面表单开始,如图1所示,要求用户输入登录密码,

并设置三次检查功能,若三次输入的密码均有错,则自动退出系统;否则出现系统菜单,接收用户的

操作,操作完毕后用户可以从系统菜单中退出系统。

 二、系统功能:

系统的功能主要分成十个功能模块,它们是:

录入数据、修改数据、删除数据、查

询数据、统计数据、显示数据、打印数据、导出数据、导入数据和清空数据。

录入数据可以实现学生

信息的录入;修改数据可以实现学生信息的修改;删除数据可以实现学生数据的删除;查询数据可以

实现学生信息的查询;统计数据可以实现学生人数、党员人数、学生总平均成绩、高数平均成绩、英

语平均成绩和VFP平均成绩的统计;显示数据可以实现以字段分布和二维表两种方式显示学生信息;

打印数据可以实现用报表的形式打印学生的信息;导出数据可以实现学生数据的备份,防止数据丢

失;导入数据可以实现学生数据的还原,保证数据的正确性;清空数据可以实现学生数据的清空操

作。

 三、菜单结构框架图

 四、数据库结构:

(可定义表名为xj.dbf)

字段名

类型

宽度

小数位数

学号

字符型

2

 

姓名

字符型

6

 

性别

字符型

2

 

出生年月

字符型

10

 

邮编

字符型

6

 

高数

数值型

5

1

英语

数值型

5

1

VFP

数值型

5

1

是否党员

字符型

2

 

电话

字符型

8

 

通信地址

字符型

30

 

备注

备注型

4

 

 五、具体设计:

(给出源代码,表单属性可参照图示在VFP属性框中设置,所有程序文件和表单文件

均通过VFP项目管理器建立)

1、学生学籍管理系统主程序源代码(可定义程序名为main.prg)

_SCREEN.WINDOWSTATE=2 &&设置窗口规格为第2种系统窗口

_SCREEN.CAPTION="学生学籍管理系统" &&设置窗口标题为“学生学籍管理系统”

_SCREEN.CLOSABLE=.T. &&去掉关闭按钮

_SCREEN.CONTROLBOX=.F. &&去掉控制按钮

_SCREEN.MAXBUTTON=.F. &&去掉最大化按钮

_SCREEN.MINBUTTON=.F. &&去掉最小化按钮

_SCREEN.BACKCOLOR=RGB(50,100,128) &&设置窗口的背景色

CLOSEALL

CLEARALL

CLEAR

SETSYSMENUOFF

SETSYSMENUTO

SETTALKOFF

SETSAFETYOFF

SETSTATUSBAROFF &&关闭VisualFoxpro的状态栏

DOFORMA:

\封面.SCX &&调用系统登录“封面”表单

READEVENT &&响应用户输入

DOA:

\菜单.MPX &&运行系统菜单

READEVENT

SETSYSMENUTODEFAULT &&恢复VisualFoxpro的系统菜单的默认值

SETSYSMENUON &&显示VisualFoxpro的系统菜单

SETSTATUSBARON &&显示VisualFoxpro的状态栏

CLOSEALL &&关闭所有文件

CLEARALL

RETURN &&返回

2、封面表单源代码(A:

\封面.sct)

PROCEDUREClick &&确定按   钮的单击事件过程

SETEXACTON &&设置精确比较命令

IFTHISFORM.text1.VALUE="8888" &&如果文本框的值是8888

      THISFORM.RELEASE &&那么释放封面表单

      DOA:

\菜单.MPX &&运行菜单程序

ELSE &&否则

      THISFORM.NO=THISFORM.NO+1 &&将自定义属性NO的值由0加1

      IFTHISFORM.NO>=3 &&如果自定义属性NO的值为3

      =MESSAGEBOX("密码三次输错,您不能使用本系统!

",0+16+0,"学生学籍管理系统") &&那么弹出内容为“密码三次输错,您不能使用本系统!

”的对话框

      QUIT &&结束程序的运行

      ELSE &&否则

      =MESSAGEBOX("密码错误!

",48+0+0,"警告") &&弹出内容为“密码错误!

”的对话框

      THISFORM.text1.VALUE="" &&设置文本框的内容为空

      THISFORM.text1.SETFOCUS &&并将光标定位到文本框中

      THISFORM.REFRESH &&刷新封面表单

      ENDIF

ENDIF

SETEXACTOFF &&设置关闭精确比较命令

ENDPROC

PROCEDUREClick &&取消按钮的单击事件过程

THISFORM.RELEASE &&释放封面表单

CLOSEALL &&关闭所有文件

CLEAREVENT

quit

ENDPROC (未完)

VFP应用程序设计实例--学生学籍管理系统

(2)

电脑笔记2007-10-2916:

54:

06阅读3360评论0字号:

大中小

 

图2

3、录入数据表单源代码(A:

\录入.sct,如图2所示)

PROCEDUREInit &&录入数据表单的初始化事件过程

SETTALKOFF

THISFORMmand4.ENABLED=.f. &&设置第四个按钮为不可用状态

THISFORMmand5.ENABLED=.f. &&设置第五个按钮为不可用状态

THISFORM.txt学号.ENABLED=.f. &&设置学号文本框为不可用状态

THISFORM.txt姓名.ENABLED=.f. &&设置姓名文本框为不可用状态

THISFORM.combo1.ENABLED=.f. &&设置组合框1为不可用状态

THISFORM.combo2.ENABLED=.f. &&设置组合框2为不可用状态

THISFORM.combo3.ENABLED=.f. &&设置组合框3为不可用状态

THISFORM.combo4.ENABLED=.f. &&设置组合框4为不可用状态

THISFORM.txt邮编.ENABLED=.f. &&设置邮编文本框为不可用状态

THISFORM.txt高数.ENABLED=.f. &&设置高数文本框为不可用状态

THISFORM.txt英语.ENABLED=.f. &&设置英语文本框为不可用状态

THISFORM.txtVfp.ENABLED=.f. &&设置VFP文本框为不可用状态

THISFORM.combo5.ENABLED=.f. &&设置组合框5为不可用状态

THISFORM.txt电话.ENABLED=.f. &&设置电话文本框为不可用状态

THISFORM.txt通信地址.ENABLED=.f. &&设置通信地址文本框为不可用状态

THISFORM.edt备注.ENABLED=.f. &&设置备注编辑框为不可用状态

ENDPROC

PROCEDURELoad &&录入数据表单的加载事件过程

CLOSEDATA &&关闭所有数据库

USEA:

\XJ存&&打开A盘中的XJ.DBF表文件

SETMULTILOCKSON &&设置锁定一组记录

=CURSORSETPROP('buffering',5,'XJ') &&打开开放式表缓冲

ENDPROC

PROCEDUREInteractiveChange &&录入数据表单的交互改变事件过程

REPL出生年月WITHTHISFORM.combo2.displayvalue+"."+THISFORM.combo3.displayvalue+"."+

THISFORM.combo4.displayvalue &&用组合框的值替换出生年月字段

THISFORM.REFRESH &&刷新录入数据表单

ENDPROC

PROCEDURECommand1.Click &&单击命令按钮1的事件过程

APPENDBLANK &&添加一空白记录

THISFORM.REFRESH &&刷新录入数据表单

THISFORMmand1.ENABLED=.f. &&设置命令按钮1为不可用状态

THISFORMmand2.ENABLED=.f. &&设置命令按钮2为不可用状态

THISFORMmand3.ENABLED=.f. &&设置命令按钮3为不可用状态

THISFORMmand4.ENABLED=.t. &&设置命令按钮4为可用状态

THISFORMmand5.ENABLED=.t. &&设置命令按钮5为可用状态

THISFORMmand6.ENABLED=.f. &&设置命令按钮6为不可用状态

THISFORM.txt学号.ENABLED=.t.

THISFORM.txt姓名.ENABLED=.t.

THISFORM.combo1.ENABLED=.t.

THISFORM.combo2.ENABLED=.t.

THISFORM.combo3.ENABLED=.t.

THISFORM.combo4.ENABLED=.t.

THISFORM.txt邮编.ENABLED=.t.

THISFORM.txt高数.ENABLED=.t.

THISFORM.txt英语.ENABLED=.t.

THISFORM.txtVfp.ENABLED=.t.

THISFORM.combo5.ENABLED=.t.

THISFORM.txt电话.ENABLED=.t.

THISFORM.txt通信地址.ENABLED=.t.

THISFORM.edt备注.ENABLED=.t.

THISFORM.txt学号.SETFOCUS

ENDPROC

PROCEDURECommand2.Click &&单击命令按钮2的事件过程

SETDELETEON &&设置打开删除命令

DELETE &&删除当前记录

YN=MESSAGEBOX('确实要删除这条记录?

',4+32+256,'删除确认') &&弹出内容为“确实要删除这条记录?

”的对话框

DOCASE &&运行条件判断语句

CASEYN=6 &&当单击“是”按钮时

=TABLEUPDATE(.T.) &&执行更新表函数,删除当前记录

CASEYN=7 &&当单击“否”按钮时

RECALL &&恢复已作了删除标记的当前记录

ENDCASE

THISFORM.REFRESH

ENDPROC

PROCEDURECommand3.Click &&单击命令按钮3的事件过程

THISFORMmand1.ENABLED=.f.

THISFORMmand2.ENABLED=.f.

THISFORMmand3.ENABLED=.f.

THISFORMmand4.ENABLED=.t.

THISFORMmand5.ENABLED=.t.

THISFORMmand6.ENABLED=.f.

ENDPROC

PROCEDURECommand4.Click &&单击命令按钮4的事件过程

=TABLEUPDATE(.T.)

THISFORMmand1.ENABLED=.t.

THISFORMmand2.ENABLED=.t.

THISFORMmand3.ENABLED=.t.

THISFORMmand4.ENABLED=.f.

THISFORMmand5.ENABLED=.f.

THISFORMmand6.ENABLED=.t.

ENDPROC

PROCEDURECommand5.Click &&单击命令按钮5的事件过程

=TABLEREVERT(.T.)

THISFORMmand1.ENABLED=.t.

THISFORMmand2.ENABLED=.t.

THISFORMmand3.ENABLED=.t.

THISFORMmand4.ENABLED=.f.

THISFORMmand5.ENABLED=.f.

THISFORMmand6.ENABLED=.t.

ENDPROC

PROCEDURECommand6.Click &&单击命令按钮6的事件过程

SELE1 &&选择1号工作区

USEA:

\XJEXCLUSIVE 打开A盘中的XJ.DBF数据表

PACK &&彻底删除已作了删除标记的记录

THISFORM.RELEASE &&释放录入数据表单

ENDPROC

PROCEDUREInteractiveChange

REPL是否党员WITHTHISFORM.combo5.DISPLAYVALUE &&用组合框的值替换是否党员字段

THISFORM.REFRESH

ENDPROC

4、修改数据表单源代码(A:

\修改.sct)

 

图3

PROCEDURECommand1.Click

IFNOTBOF() &&如果记录指针没有到记录的开头

SKIP–1 &&向上跳转一个记录

THISFORM.REFRESH

THISFORMmand2.ENABLED=.t.

ELSE

WAITWINDOW'已经是第一条记录了!

' &&系统给出内容为“已经是第一条记录了!

”提示窗口

ENDIF

ENDPROC

PROCEDURECommand2.Click

IFNOTEOF() &&如果记录指针没有到记录的结尾

SKIP &&向下跳转一个记录

THISFORM.REFRESH

THISFORMmand1.ENABLED=.t.

ELSE

WAITWINDOW'已经是最后一条记录了!

'

ENDIF

ENDPROC

PROCEDURECommand3.Click

GOTOP &&将记录指针移到记录的开头

THISFORM.REFRESH

THISFORMmand1.ENABLED=.f.

THISFORMmand2.ENABLED=.t.

ENDPROC

PROCEDURECommand4.Click

GOBOTTOM &&将记录指针移到记录的结尾

THISFORM.REFRESH

THISFORMmand1.ENABLED=.t.

THISFORMmand2.ENABLED=.f.

ENDPROC

PROCEDURECommand5.Click

=TABLEUPDATE(.T.)

THISFORMmand1.ENABLED=.t.

THISFORMmand2.ENABLED=.t.

THISFORMmand3.ENABLED=.t.

THISFORMmand4.ENABLED=.t.

THISFORMmand5.ENABLED=.f.

THISFORMmand6.ENABLED=.f.

THISFORMmand7.ENABLED=.t.

ENDPROC

PROCEDURECommand6.Click

=TABLEREVERT(.T.) &&启用表缓冲,放弃表中对所有记录所做的修改函数

THISFORMmand1.ENABLED=.t.

THISFORMmand2.ENABLED=.t.

THISFORMmand3.ENABLED=.t.

THISFORMmand4.ENABLED=.t.

THISFORMmand5.ENABLED=.f.

THISFORMmand6.ENABLED=.f.

THISFORMmand7.ENABLED=.t.

ENDPROC

PROCEDURECommand7.Click

USEA:

\XJEXCLUSIVE

PACK

THISFORM.RELEASE

ENDPROC

PROCEDUREClick

IFEMPTY(THISFORM.combo1.VALUE) &&如果组合框1的值为空

=MESSAGEBOX("请选择学号!

",48+0+0,"学生学籍管理系统") &&系统给出内容为“请选择学号!

”的对话框

ENDIF

AA=RECNO() &&用显示记录号的函数将记录号赋给变量AA

GOAA &&将记录指针移到当前记录号

THISFORM.txt学号.REFRESH &&刷新学号文本框的内容

THISFORM.txt姓名.REFRESH &&刷新姓名文本框的内容

THISFORM.txt性别.REFRESH &&刷新性别文本框的内容

THISFORM.txt出生年月.REFRESH &&刷新出生年月文本框的内容

THISFORM.txt邮编.REFRESH &&刷新邮编文本框的内容

THISFORM.txt高数.REFRESH &&刷新高数文本框的内容

THISFORM.txt英语.REFRESH &&刷新英语文本框的内容

THISFORM.txtVfp.REFRESH &&刷新VFP文本框的内容

THISFORM.txt是否党员.REFRESH &&刷新是否党员文本框的内容

THISFORM.txt电话.REFRESH &&刷新电话文本框的内容

THISFORM.txt通信地址.REFRESH &&刷新通信地址文本框的内容

THISFORM.edt备注.REFRESH &&刷新备注编辑框的内容

THISFORMmand5.ENABLED=.t.

THISFORMmand6.ENABLED=.t.

ENDPROC (未完)

VFP应用程序设计实例--学生学籍管理系统

(2)

电脑笔记2007-10-2916:

54:

06阅读3360评论0字号:

大中小

 

图2

3、录入数据表单源代码(A:

\录入.sct,如图2所示)

PROCEDUREInit &&录入数据表单的初始化事件过程

SETTALKOFF

THISFORMmand4.ENABLED=.f. &&设置第四个按钮为不可用状态

THISFORMmand5.ENABLED=.f. &&设置第五个按钮为不可用状态

THISFORM.txt学号.ENABLED=.f. &&设置学号文本框为不可用状态

THISFORM.txt姓名.ENABLED=.f. &&设置姓名文本框为不可用状态

THISFORM.combo1.ENABLED=.f. &&设置组合框1为不可用状态

THISFORM.combo2.ENABLED=.f. &&设置组合框2为不可用状态

THISFORM.combo3.ENABLED=.f. &&设置组合框3为不可用状态

THISFORM.combo4.ENABLED=.f. &&设置组合框4为不可用状态

THISFORM.txt邮编.ENABLED=.f. &&设置邮编文本框为不可用状态

THISFORM.txt高数.ENABLED=.f. &&设置高数文本框为不可用状态

THISFORM.txt英语.ENABLED=.f. &&设置英语文本框为不可用状态

THISFORM.txtVfp.ENABLED=.f. &&设置VFP文本框为不可用状态

THISFORM.combo5.ENABLED=.f. &&设置组合框5为不可用状态

THISFORM.txt电话.ENABLED=.f. &&设置电话文本框为不可用状态

THISFORM.txt通信地址.ENABLED=.f. &&设置通信地址文本框为不可用状态

THISFORM.edt备注

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1