论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 ASP Java Web .NET VB6.0 JAVA VC VF DELPHI PB 计算机网络 计算机科学与技术 PHP 安卓APP 其他 C# 代写论文
当前位置: > 计算机 > VF >

(C)资料信息管理系统(论文)

第四章 系统编码与实现

4.1 开发平台的选择 copyright paper51.com

   考虑到本系统的性能要求,和现有的条件,我们选择了WINDOWSXP中文版作为开发、测试和运行的平台。因为WINDOWS操作系统是目前应用最广的操作系统,它以全新的图形界面,简单快捷的操作方式,支持多媒体功能等特点而成为软件发展的流行趋势,选用它作为开发平台,易于功能的扩展和软件升级。 http://www.paper51.com

4.2 开发工具的选择 内容来自www.paper51.com

   针对目前世界上流行的大量软件和开发工具,经过认真分析其优缺点,结合学籍器具管理系统的需要和目前的硬件环境,我们选用微软WINDOWS平台下的Visual FoxPRO6.0(简写为VFP6.0)作为软件开发工具。选用该工具有发下几方面的优点: http://www.paper51.com

   (1)VFP6.0是目前微机上最优秀的关系型数据库管理系统软件,正如其名称中冠以的“Visual”一样,它采用了可视化、面向对象的程序设计方法,大大简化了应用系统的开发过程,并提高了系统工程的模块化和紧凑性。 http://www.paper51.com

   (2)VFP6.0版本中提供了大量的诸如“数据库设计器”、“表单设计器”、“菜单设计器”、“报表设计器”等开发设计工具和向导工具(Wizard),使以往费时费力的开发工作变得轻松自如。这些可视化的设计工具免除了开发者编写大量程序代码的工作。

copyright paper51.com

4.3 程序设计(部分逻辑及代码) 内容来自www.paper51.com

4.3 创建可视化按钮 paper51.com

paper51.com

4.3.1要使鼠标指针移动到按钮上方时鼠标指针发生变化,需要在按钮的“MouseMove”事件中添加代码。

paper51.com

*————修改控件上鼠标指针形状

内容来自www.paper51.com

LPARAMETERSnButton, nShift, nXCoord, nYCoord

http://www.paper51.com

This.MousePointer=  99                   &&————使用自定义的鼠标指针 内容来自论文无忧网 www.paper51.com

This.MouseIcon=  "h_point.cur"             &&————鼠标指针文件 内容来自论文无忧网 www.paper51.com

4.3.2 创建可视化类

http://www.paper51.com

单击【首记录】按钮时,只需要将记录指针移动到表的第一条记录即可,按钮的“Click”事件代码如下:

http://www.paper51.com

GO TOP             &&到首记录 copyright paper51.com

THISFORM.REFRESH   &&刷新表单

paper51.com

单击【上记录】按钮时,首先判断记录指针是否位于第一条记录,如果是,则弹出警告,否则将记录指针向前移动一个位置,该按钮的“click”事件代码如下:

http://www.paper51.com

*——如果到了数据表首部 http://www.paper51.com

IF BOF().OR. RECNO() = 1 copyright paper51.com

   MessageBox("已到首记录",48,"移动记录")

内容来自论文无忧网 www.paper51.com

ELSE

内容来自论文无忧网 www.paper51.com

*——如果数据指针不位于数据表首部

http://www.paper51.com

   SKIP-1 paper51.com

ENDIF

内容来自论文无忧网 www.paper51.com

*——刷新表单

copyright paper51.com

THISFORM.REFRESH

内容来自论文无忧网 www.paper51.com

单击【下记录】按钮代码:

http://www.paper51.com

*——如果记录指针位于数据表末尾

内容来自www.paper51.com

IF EOF() orRecNO() = RecCount()

内容来自www.paper51.com

   MessageBox("已到末记录",48,"移动记录")

http://www.paper51.com

*——如果记录指针不位于数据表末尾 http://www.paper51.com

ELSE 内容来自www.paper51.com

   *——记录指针下移                   

copyright paper51.com

   SKIP paper51.com

ENDIF

paper51.com

*——刷新表单 copyright paper51.com

THISFORM.REFRESH()

copyright paper51.com

单击【末记录】按钮代码: 内容来自www.paper51.com

GOBOTTOM               &&到数据表末尾 内容来自论文无忧网 www.paper51.com

THISFORM.REFRESH       &&刷新表单

内容来自www.paper51.com

“MyMove”类的“Refresh”事件代码如下:

paper51.com

*——如果数据表为空或者只有一条记录 内容来自论文无忧网 www.paper51.com

IF BOF().AND. EOF() .OR. RECCOUNT()<=1

http://www.paper51.com

   THIS.Cmdtop.ENABLED=.F.

paper51.com

   THIS.Cmdpre.ENABLED=.F.

内容来自www.paper51.com

   THIS.Cmdnxt.ENABLED=.F.

paper51.com

   THIS.Cmdbtm.ENABLED=.F. 内容来自www.paper51.com

ELSE paper51.com

   *——如果在记录指针在数据表的末尾 内容来自www.paper51.com

   IF RECNO()=RECCOUNT()  .OR. EOF()

内容来自论文无忧网 www.paper51.com

       THIS.Cmdtop.ENABLED=.T. 内容来自www.paper51.com

       THIS.Cmdpre.ENABLED=.T.

http://www.paper51.com

       THIS.Cmdnxt.ENABLED=.F.

copyright paper51.com

       THIS.Cmdbtm.ENABLED=.F.

http://www.paper51.com

   ELSE 内容来自论文无忧网 www.paper51.com

   *——如果记录指针在数据表的首部

http://www.paper51.com

       IFRECNO()=1 .OR. BOF() 内容来自www.paper51.com

           THIS.Cmdtop.ENABLED=.F. 内容来自www.paper51.com

           THIS.Cmdpre.ENABLED=.F. paper51.com

           THIS.Cmdnxt.ENABLED=.T. 内容来自论文无忧网 www.paper51.com

           THIS.Cmdbtm.ENABLED=.T. paper51.com

       ELSE

内容来自论文无忧网 www.paper51.com

           *——如果记录指针不在数据表的首部也不在尾部

内容来自www.paper51.com

           THIS.Cmdtop.ENABLED=.T.

http://www.paper51.com

           THIS.Cmdpre.ENABLED=.T. 内容来自www.paper51.com

           THIS.Cmdnxt.ENABLED=.T. http://www.paper51.com

           THIS.Cmdbtm.ENABLED=.T.

内容来自论文无忧网 www.paper51.com

       ENDIF

copyright paper51.com

   ENDIF http://www.paper51.com

ENDIF

http://www.paper51.com

4.3.3“命令按钮工具栏”类 内容来自论文无忧网 www.paper51.com

    【推出】按钮的“Click”事件代码:

paper51.com

LOCALYN

http://www.paper51.com

YN=Messagebox("确定退出",4+32,"资料管理系统") copyright paper51.com

IFYN=6

copyright paper51.com

THISFORM.Release

http://www.paper51.com

ENDIF

copyright paper51.com

6.2 创建系统主表单

copyright paper51.com

6.2.1 创建主程序

内容来自www.paper51.com

    *——系统环境设置 内容来自论文无忧网 www.paper51.com

CLEAR 内容来自论文无忧网 www.paper51.com

CLEAR ALL

内容来自www.paper51.com

SET ESCAPE OFF          &&  禁止运行的程序在按ESC键被中断

内容来自www.paper51.com

SET TALK OFF            &&  关闭命令显示

paper51.com

SET SAFETY OFF         &&  覆盖时不要确认 内容来自论文无忧网 www.paper51.com

SET STAT BAR OFF       &&  将状态栏关闭

内容来自www.paper51.com

SET SYSMENU OFF        &&  可关掉VFP系统菜单区域 内容来自论文无忧网 www.paper51.com

SET SYSMENU TO         &&  关闭系统菜单

http://www.paper51.com

SET CENTURY ON         &&  显示四位年代 内容来自论文无忧网 www.paper51.com

SET DATE ANSI           &&  指定日期表达式的显示格式为yy.mm.dd

内容来自www.paper51.com

*——避免多次运行程序

paper51.com

*——声明API函数“FindWindow”

内容来自www.paper51.com

DECLARE Integer FindWindow IN USER32.DLL StringlpClassName,String lpWindowName

内容来自论文无忧网 www.paper51.com

lpWindowName="资料管理系统"

http://www.paper51.com

IF .NOT. FindWindow(0,lpWindowName)==0 &&寻找窗口标题 内容来自www.paper51.com

  =MESSAGEBOX("程序已经运行了",48,"资料管理系统") copyright paper51.com

  QUIT

内容来自论文无忧网 www.paper51.com

ENDIF

内容来自www.paper51.com

_Screen.Caption=lpWindowName

copyright paper51.com

*——声明全局变量 paper51.com

PUBLIC cCurUser &&  声明全局变量,用来保存系统中的登录用户 内容来自www.paper51.com

PUBLICbDataAdmin,bDataBrow,bUserAdmin,bUserBrow,bLendAdmin,bLendBrow,bSysUser,bUserPurv,bAct

http://www.paper51.com

*——调用登录表单

http://www.paper51.com

DO FORM Logon           &&  显示登录表单

内容来自论文无忧网 www.paper51.com

*——进入事物处理 copyright paper51.com

READ EVENTS             &&  进入事务处理 内容来自www.paper51.com

6.2.2 创建“AutoAdd”程序 内容来自www.paper51.com

    *——作用:使“000000XX”形式的编号自动加1 copyright paper51.com

FUNCTION AUTOADD(nCode)

http://www.paper51.com

    *——获取字符串长度 内容来自论文无忧网 www.paper51.com

    nLen=Len(nCode) paper51.com

    *——将字符型转换为数值型,即获取非0部分的数值

内容来自www.paper51.com

    nCode= VAL(nCode)

paper51.com

    *——非0部分数字加1 内容来自www.paper51.com

    nCode= nCode + 1

copyright paper51.com

    *——转换为字符型

copyright paper51.com

    nCode= ALLTRIM(STR(nCode))

http://www.paper51.com

    *——获取转换后的字符串的长度 http://www.paper51.com

    nLength= LEN(nCode) 内容来自www.paper51.com

    *——在数字之前加上前置“0” http://www.paper51.com

    nZero="0000000000"

内容来自论文无忧网 www.paper51.com

    nCode= SUBSTR(nZero,1,nLen-nLength) + nCode

paper51.com

    *——返回结果 copyright paper51.com

    RETURNnCode

http://www.paper51.com

ENDFUNC http://www.paper51.com

6.2.3 创建“GetPurv”程序

内容来自www.paper51.com

    *——在数据库中读取登录的系统用户权限信息 paper51.com

*——选择“系统用户信息”表所在的工作区 内容来自论文无忧网 www.paper51.com

SELECT Sysuser copyright paper51.com

*——精确比较

copyright paper51.com

SET EXACT ON

内容来自论文无忧网 www.paper51.com

*——查找登录用户 http://www.paper51.com

LOCATE FOR ALLTRIM(用户名)=cCurUser http://www.paper51.com

*——如果找到

内容来自论文无忧网 www.paper51.com

IF FOUND()

内容来自论文无忧网 www.paper51.com

    *——读取用户权限信息全局变量中

copyright paper51.com

    bDataAdmin=SysUser.资料信息管理 paper51.com

    bDataBrow=SysUser.资料信息浏览

内容来自www.paper51.com

    bUserAdmin=SysUser.用户信息管理

内容来自论文无忧网 www.paper51.com

    bUserBrow=SysUser.用户信息浏览

内容来自论文无忧网 www.paper51.com

    bLendAdmin=SysUser.借阅信息管理 http://www.paper51.com

    bLendBrow=SysUser.借阅信息浏览 内容来自论文无忧网 www.paper51.com

    bSysUser=SysUser.系统用户管理

paper51.com

    bUserPurv=SysUser.用户权限管理

内容来自论文无忧网 www.paper51.com

    bAct=SysUser.资料借还操作

copyright paper51.com

ELSE paper51.com

*——如果登录的用户不在表中

copyright paper51.com

    *——结束事务处理 http://www.paper51.com

    CLEAREVENTS copyright paper51.com

    *——退出Visual FoxPro

内容来自www.paper51.com

    QUIT

内容来自www.paper51.com

ENDIF

copyright paper51.com

*——模糊比较 内容来自www.paper51.com

SET EXACT OFF 内容来自论文无忧网 www.paper51.com

6.2.4 创建系统主表单

内容来自论文无忧网 www.paper51.com

“Init”事件: 内容来自论文无忧网 www.paper51.com

*——调用系统主菜单 内容来自论文无忧网 www.paper51.com

DO MainMenu.MPR WITH This copyright paper51.com

*——显示当前登录用户

内容来自www.paper51.com

THISFORM.OLEcontrol1.Panels(2).Text=cCurUser

paper51.com

*——刷新表单 copyright paper51.com

THISFORM.Refresh

paper51.com

“Unload”事件:

内容来自论文无忧网 www.paper51.com

*——清除事件循环 paper51.com

Clear Events 内容来自论文无忧网 www.paper51.com

*——退出Visual FoxPro http://www.paper51.com

Quit 内容来自论文无忧网 www.paper51.com

6.3创建系统用户管理模块

内容来自www.paper51.com

6.3.1 创建“系统登录”表单

copyright paper51.com

【确定】按钮的“Click”事件代码

内容来自www.paper51.com

*——改为精确比较 内容来自www.paper51.com

SET EXACT ON      paper51.com

*——试图登录次数自动加1

copyright paper51.com

THISFORM.i=THISFORM.i+1 内容来自www.paper51.com

*——选择“系统用户信息”表所在的工作区

copyright paper51.com

SELECT SysUser copyright paper51.com

*——查找用户名

内容来自www.paper51.com

LOCATE FOR ALLTRIM(SysUser.用户名)=ALLTRIM(THISFORM.txt用户名.VALUE) copyright paper51.com

*——如果找到用户名 http://www.paper51.com

IF FOUND() paper51.com

    *——如果密码正确 paper51.com

    IFALLTRIM(密码)=ALLTRIM(THISFORM.txt密码.VALUE) 内容来自www.paper51.com

        *——将登录的用户名保存到全局变量中

内容来自www.paper51.com

        cCurUser=ALLTRIM(用户名) copyright paper51.com

        *——调用“GetPurv”程序获取登录的用户的权限信息 copyright paper51.com

        DO GetPurv.prg

http://www.paper51.com

        *——退出表单

http://www.paper51.com

        THISFORM.RELEASE 内容来自论文无忧网 www.paper51.com

        *——调用系统主表单

内容来自www.paper51.com

        DO FORM MainForm

paper51.com

   ELSE copyright paper51.com

   *——如果密码错误 内容来自论文无忧网 www.paper51.com

        *——如果次数小于3 paper51.com

        IF THISFORM.i<3

copyright paper51.com

            MESSAGEBOX("密码错误,请重新输入",48,"资料管理系统") 内容来自www.paper51.com

            THISFORM.txt用户名.VALUE="" 内容来自www.paper51.com

            THISFORM.txt密码.VALUE="" copyright paper51.com

            THISFORM.txt用户名.SETFOCUS 内容来自www.paper51.com

        copyright paper51.com

------分隔线----------------------------
联系方式