网站导航网学 原创论文 网站设计 最新系统 最新研究 原创论文 获取论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计下载 > VFP毕业设计 > 正文

基于VFP资料管理系统的设计与实现

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/05/10

网学网为广大网友收集整理了,基于VFP资料管理系统的设计与实现,希望对大家有所帮助!

QQ交谈客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn

 

第四章系统编码与实现
4.1 开发平台的选择
    考虑到本系统的性能要求,和现有的条件,我们选择了WINDOWSXP中文版作为开发、测试和运行的平台。因为WINDOWS操作系统是目前应用最广的操作系统,它以全新的图形界面,简单快捷的操作方式,支持多媒体功能等特点而成为软件发展的流行趋势,选用它作为开发平台,易于功能的扩展和软件升级。
4.2 开发工具的选择
    针对目前世界上流行的大量软件和开发工具,经过认真分析其优缺点,结合学籍器具管理系统的需要和目前的硬件环境,我们选用微软WINDOWS平台下的Visual FoxPRO6.0(简写为VFP6.0)作为软件开发工具。选用该工具有发下几方面的优点:
   (1)VFP6.0是目前微机上最优秀的关系型数据库管理系统软件,正如其名称中冠以的“Visual”一样,它采用了可视化、面向对象的程序设计方法,大大简化了应用系统的开发过程,并提高了系统工程的模块化和紧凑性。
   (2)VFP6.0版本中提供了大量的诸如“数据库设计器”、“表单设计器”、“菜单设计器”、“报表设计器”等开发设计工具和向导工具(Wizard),使以往费时费力的开发工作变得轻松自如。这些可视化的设计工具免除了开发者编写大量程序代码的工作。
 
 
4.3 程序设计(部分逻辑及代码)
4.3 创建可视化按钮
4.3.1要使鼠标指针移动到按钮上方时鼠标指针发生变化,需要在按钮的“MouseMove”事件中添加代码。
*————修改控件上鼠标指针形状
LPARAMETERS nButton, nShift, nXCoord, nYCoord
This.MousePointer = 99                    &&————使用自定义的鼠标指针
This.MouseIcon = "h_point.cur"             &&————鼠标指针文件
4.3.2 创建可视化类
单击【首记录】按钮时,只需要将记录指针移动到表的第一条记录即可,按钮的“Click”事件代码如下:
GO TOP             &&到首记录
THISFORM.REFRESH   &&刷新表单
单击【上记录】按钮时,首先判断记录指针是否位于第一条记录,如果是,则弹出警告,否则将记录指针向前移动一个位置,该按钮的“click”事件代码如下:
*——如果到了数据表首部
IF BOF() .OR. RECNO() = 1
   MessageBox("已到首记录",48,"移动记录")
ELSE
*——如果数据指针不位于数据表首部
   SKIP-1
ENDIF
*——刷新表单
THISFORM.REFRESH
单击【下记录】按钮代码:
*——如果记录指针位于数据表末尾
IF EOF() or RecNO() = RecCount()
   MessageBox("已到末记录",48,"移动记录")
*——如果记录指针不位于数据表末尾
ELSE
   *——记录指针下移                   
   SKIP
ENDIF
*——刷新表单
THISFORM.REFRESH()
单击【末记录】按钮代码:
GO BOTTOM               &&到数据表末尾
THISFORM.REFRESH       &&刷新表单
“MyMove”类的“Refresh”事件代码如下:
*——如果数据表为空或者只有一条记录
IF BOF() .AND. EOF() .OR. RECCOUNT()<=1
   THIS.Cmdtop.ENABLED=.F.
   THIS.Cmdpre.ENABLED=.F.
   THIS.Cmdnxt.ENABLED=.F.
   THIS.Cmdbtm.ENABLED=.F.
ELSE
   *——如果在记录指针在数据表的末尾
   IF RECNO()=RECCOUNT() .OR. EOF()
       THIS.Cmdtop.ENABLED=.T.
       THIS.Cmdpre.ENABLED=.T.
       THIS.Cmdnxt.ENABLED=.F.
       THIS.Cmdbtm.ENABLED=.F.
   ELSE
   *——如果记录指针在数据表的首部
       IF RECNO()=1 .OR. BOF()
           THIS.Cmdtop.ENABLED=.F.
           THIS.Cmdpre.ENABLED=.F.
           THIS.Cmdnxt.ENABLED=.T.
           THIS.Cmdbtm.ENABLED=.T.
       ELSE
           *——如果记录指针不在数据表的首部也不在尾部
           THIS.Cmdtop.ENABLED=.T.
           THIS.Cmdpre.ENABLED=.T.
           THIS.Cmdnxt.ENABLED=.T.
           THIS.Cmdbtm.ENABLED=.T.
       ENDIF
   ENDIF
ENDIF
4.3.3“命令按钮工具栏”类
    【推出】按钮的“Click”事件代码:
LOCAL YN
YN=Messagebox("确定退出",4+32,"资料管理系统")
IF YN=6
THISFORM.Release
ENDIF
6.2 创建系统主表单
6.2.1 创建主程序
    *——系统环境设置
CLEAR
CLEAR ALL
SET ESCAPE OFF          && 禁止运行的程序在按ESC键被中断
SET TALK OFF            && 关闭命令显示
SET SAFETY OFF          && 覆盖时不要确认
SET STAT BAR OFF        && 将状态栏关闭
SET SYSMENU OFF         && 可关掉VFP系统菜单区域
SET SYSMENU TO          && 关闭系统菜单
SET CENTURY ON          && 显示四位年代
SET DATE ANSI           && 指定日期表达式的显示格式为yy.mm.dd
*——避免多次运行程序
*——声明API函数“FindWindow”
DECLARE Integer FindWindow IN USER32.DLL String lpClassName,String lpWindowName
lpWindowName="资料管理系统"
IF .NOT. FindWindow(0,lpWindowName)==0 &&寻找窗口标题
   =MESSAGEBOX("程序已经运行了",48,"资料管理系统")
   QUIT
ENDIF
_Screen.Caption=lpWindowName
*——声明全局变量
PUBLIC cCurUser && 声明全局变量,用来保存系统中的登录用户
PUBLIC bDataAdmin,bDataBrow,bUserAdmin,bUserBrow,bLendAdmin,bLendBrow,bSysUser,bUserPurv,bAct
*——调用登录表单
DO FORM Logon           && 显示登录表单
*——进入事物处理
READ EVENTS             &&  进入事务处理
6.2.2 创建“AutoAdd”程序
    *——作用:使“000000XX”形式的编号自动加1
FUNCTION AUTOADD(nCode)
    *——获取字符串长度
    nLen=Len(nCode)
    *——将字符型转换为数值型,即获取非0部分的数值
    nCode = VAL(nCode)
    *——非0部分数字加1
    nCode = nCode + 1
    *——转换为字符型
    nCode = ALLTRIM(STR(nCode))
    *——获取转换后的字符串的长度
    nLength = LEN(nCode)
    *——在数字之前加上前置“0”
    nZero="0000000000"
    nCode = SUBSTR(nZero,1,nLen-nLength) + nCode
    *——返回结果
    RETURN nCode
ENDFUNC
6.2.3 创建“GetPurv”程序
    *——在数据库中读取登录的系统用户权限信息
*——选择“系统用户信息”表所在的工作区
SELECT Sysuser
*——精确比较
SET EXACT ON
*——查找登录用户
LOCATE FOR ALLTRIM(用户名)=cCurUser
*——如果找到
IF FOUND()
    *——读取用户权限信息全局变量中
    bDataAdmin=SysUser.资料信息管理
    bDataBrow=SysUser.资料信息浏览
    bUserAdmin=SysUser.用户信息管理
    bUserBrow=SysUser.用户信息浏览
    bLendAdmin=SysUser.借阅信息管理
    bLendBrow=SysUser.借阅信息浏览
    bSysUser=SysUser.系统用户管理
    bUserPurv=SysUser.用户权限管理
    bAct=SysUser.资料借还操作
ELSE
*——如果登录的用户不在表中
    *——结束事务处理
    CLEAR EVENTS
    *——退出Visual FoxPro
    QUIT
ENDIF
*——模糊比较
SET EXACT OFF
6.2.4 创建系统主表单
Init”事件:
*——调用系统主菜单
DO MainMenu.MPR WITH This
*——显示当前登录用户
THISFORM.OLEcontrol1.Panels(2).Text=cCurUser
*——刷新表单
THISFORM.Refresh
Unload”事件:
*——清除事件循环
Clear Events
*——退出Visual FoxPro
Quit
6.3创建系统用户管理模块
6.3.1 创建“系统登录”表单
【确定】按钮的“Click”事件代码
*——改为精确比较
SET EXACT ON     
*——试图登录次数自动加1
THISFORM.i=THISFORM.i+1
*——选择“系统用户信息”表所在的工作区
SELECT SysUser
*——查找用户名
LOCATE FOR ALLTRIM(SysUser.用户名)=ALLTRIM(THISFORM.txt用户名.VALUE)
*——如果找到用户名
本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT

本文选自计算机毕业设计http://myeducs.cn
论文文章部分只是部分简介,如需了解更多详情请咨询本站客服!QQ交谈QQ3710167

原创论文

设为首页 | 加入收藏 | 论文首页 |原创论文 |
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师