还剩8页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
大学高等教育自学考试毕业论文(设计)计算机领用管理系统开发专业名称助学单位学生姓名准考证号指导教师完成时间大学高等教育自学考试办公室制中文摘要企业的发展过程中,计算机日益成为日常工作的重要工具在IT技术高速发展的今天,计算机的更新换代更加频繁,计算机的管理也逐渐成为设备管理部门在管理过程中的一个繁琐而单调的过程原始的手工卡片管理由于牵涉到很多具体的问题,越来越不适应现代化管理的趋势为了减轻固定资产管理过程中由于各种原因造成管理人员的负担,强化计算机设备管理的力度,提高设备管理过程中的信息变更速度,需要设计一套适应目前公司计算机设备管理的管理系统,能够快速地做到对计算机设备的采购情况、领用情况等的查询和修改,以加强对计算机设备的现代化管理固定资产管系统主要针对企业内部的需求,解决固定资产管理中计算机资产的管理问题,从计算机采购信息的增加、修改以及删除到计算机领用信息的增加、修改及删除等问题的处理,另外还涉及职员的变动处理以及用户权限的管理等系统主要采用PowerBuilder集成开发环境和相关数据库系统,利用其功能强大的数据窗口,完成系统所需要的功能,并提供友好的用户界面和适宜的过程控制,以达到企业相关管理人员对计算机资产的管理要求,能够满足目前企业对相关领域的需求关键词固定资产管理系统;PowerBuilder;数据库;数据窗口目录TOC\o1-3\h\z\u中文摘要I1绪论
11.1系统产生的背景
11.2系统产生的条件
11.3开发工具的主要特点22需求分析
32.1系统介绍
32.2用户需求分析
32.3业务流程图33系统设计
43.1数据库设计原则
43.2概念结构设计
53.3逻辑结构设计
63.4物理结构设计64系统实施
84.1建立数据库
84.2系统实现
84.
2.1建立工作空间及应用程序对象
84.
2.2建立数据窗口对象
134.
2.3创建三个全局函数
154.
2.4创建操作窗口165系统测试与分析
295.1系统试运行
295.2系统运行分析
305.3系统存在的不足316结论32致谢33参考文献341绪论
1.1系统产生的背景现代科学技术的发展日新月异,摩尔定律揭示了信息技术进步的速度现代企业的管理手段也朝着现代化管理的方向高速发展现代企业都在以先进的信息技术为手段,对信息进行采集、整理、加工、传播、存贮和利用的过程,对企业的信息活动过程进行战略规划,对信息活动中的要素进行计划、组织、领导和控制,力求资源有效配置、共享管理、协调运作,以最少的消耗创造最大的效益信息管理逐渐成为企业管理的重要组成部分和手段为了适应信息化发展的需要,通常一些有条件的企业都要求开发或者购买一套能够适应本企业需要的信息系统,从人力资源系统、生产系统、供应链系统、技术研发等各方面大力加快现代化信息化的步伐面对企业规模的日益扩大,企业内部计算机的使用数量急剧增加,计算机的新旧更替也逐步加快传统的手工作业的卡片式固定资产管理在面对数目庞大资产,不仅效率低下,而且极易出现错误,完全不适应现阶段信息化管理的高速环境举一个例子原来某部门一台计算机的卡片因为管理人员不慎弄坏而未及时补上,导致后来在清理资产的时候该计算机成为盘盈项目,而财务部门却又盘亏一台计算机,出现信息的不对称,费好大劲才将该资产规入正确的栏目所以企业急于需要一套能够满足现阶段固定资产管理的信息系统,解决管理人员在管理过程中出现的各种弊端
1.2系统产生的条件企业领导从其他渠道的反馈信息中认真作出比较,认为目前企业的需求还不太高,完全无必要购买一套多功能的信息系统,只需要开发一个能够解决目前固定资产中计算机的简单的管理系统,待成熟后再添加一些其他的功能,逐步形成信息化管理的雏形鉴于该系统要求较低,功能较简单,使用一般的数据库开发系统都完全能够满足领导的要求,决定采用PowerBuilder开发工具完成该系统
1.3开发工具的主要特点PowerBuilder美国Sybase公司研制的一种新型、快速开发工具,是客户机/服务器结构下,基于Windows
3.x、Windows95和WindowsNT的一个集成化开发工具它包含一个直观的图形界面和可扩展的面向对象的编程语言PowerScript,提供与当前流行的大型数据库的接口,并通过ODBC与单机数据库相连其主要特别有1可视化、多特性的开发工具全面支持Windows或WindowsNT所提供的控制、事件和函数PowerScript语言提供了几百个内部函数,并且具有一个面向对象的编译器和调试器,可以随时编译新增加的代码,带有完整的在线帮助和编程实例2功能强大的面向对象技术支持通过对类的定义来建立可视或不可视对象模型,同时支持所有面向对象编程技术,如继承、数据封装和函数多态性等这些特性确保了应用程序的可靠性,提高了软件的可维护性3支持高效的复杂应用程序对基于Windows环境的应用程序提供了完备的支持,这些环境包括Windows、WindowsNT和WinOS/2开发人员可以使用PowerBuilder内置的WatcomC/C++来定义、编译和调试一个类4企业数据库的连接能力PowerBuilder的主要特色是DataWindow(数据窗口),通过DataWindow可以方便地对数据库进行各种操作,也可以处理各种报表,而无需编写SQL语句,可以直接与Sybase、SQLServer、Informix、Oracle等大型数据库连接5强大的查询、报表和图形功能PowerBuilder提供的可视化查询生成器和多个表的快速选择器可以建立查询对象,并把查询结果作为各种报表的数据来源PowerBuilder主要适用于管理信息系统的开发,特别是客户机/服务器结构2需求分析
2.1系统介绍固定资产管理系统目前主要针对计算机资产的管理,待成熟后再增加其他资产管理的功能拥有快捷、高效、处理及时、查询方便等特点,它改变了传统的手工方式的卡片管理观念,充分体现了信息化管理系统给企业的快速发展带来的好处开发本系统的总体任务是实现计算机采购信息的建立和维护、计算机领用信息的建立和维护,另外还涉及人员的变动情况以及管理权限的设置
2.2用户需求分析本系统的总目标是为管理人员提供迅速、高效的服务,减免手工处理的繁琐与误差,及时、准确地反映计算机资产的采购情况和领用情况,从而提高计算机资产的管理水平,获得更好的经济效益其具体目标包括1快速完成计算机采购信息的录入和修改2准确无误地记录每台计算机的领用情况3对职员的变动情况进行相应的处理4方便查询计算机采购信息及领用情况信息
2.3业务流程图图2-1系统业务流程图3系统设计
3.1数据库设计原则对于后台的数据库设计,首先要整理销售业务部门的数据,分析数据的来源和流向,通过E-R图的逐步分析,最终确定出在计算机中存储的信息,从而确定数据库的模式,在这个环节中一定要规范化数据库,防止不必要的数据重复和数据的不一致性,在进行完逻辑数据库的设计后,进行其物理实现,创建数据库时应尽量加入数据完整性和业务规则的约束,这样可以降低应用程序编码的复杂性,提高维护程序的效率,拒绝非法数据进入数据库应用数据库的设计本着以下原则进行
①索引的使用索引一般用与快速访问表中数据,但并不是所有的索引都可以提高性能,因为索引会降低插入,更新,删除操作的性能,浪费系统资源
②命名标准化不同的数据库产品对对象的命名有不同的要求,因此数据库中的各种对象的命名,后台程序的代码编写应采用字母形式,各种对象命名不要超过30个字符,这样便于应用系统适用不同的数据库
③慎重使用游标使用游标尽管很方便,但是对于表和大表定义的游标(大的数据集合)循环很容易使程序进入等待甚至死机,因此应慎重使用
④数据库性能调整随着计算机技术的不断变化,应用系统会不断地进行调整,所涉及到的类型在不断的增加,这就要求数据库系统应具有适应动态变化的柔性,因而在设计应用数据库时,应充分考虑到可能的数据变化,采用通用的数据结构(如各种编码等)技术,以保证系统的不断升级与发展
⑤尽量使用事务保证数据的完整性为了保证数据库的一致性和完整性,设计人员往往会设计很多表中关联,尽可能降低数据的,从而保证数据完整性,但却增加了表间连接查询的操作,因此,为了提高系统的响应时间,合理的数据用语是必要的,至于数据间的一致性,可使用事物来保证事务是必须一次性完成的一组操作,数据库系统能保证这组操作要么全部都完成,要么一点都不做,使得数据的完整性得到了极大的保证在本计算机领用管理系统数据库设计中,我选择了PowerBuilder自带的Sysbase公司的ASA数据库,该数据库系统在安全性、准确性、运行速度方面有绝对的优势,处理数据库量适中,效率高;界面友善非常便于操作
3.2概念结构设计概念结构设计是将分析得到的用户需求抽象为概念模型的过程,即在需求分析的基础上,设计出能够满足用户需求的各种实体以及它们之间的相互关系的模型概念结构的主要特点是能真实、充分地反映现实世界,易于理解,易于更改,易于向关系、网状、层次等各种数据模型转换描述概念模型的有力工具是E-R模型基于数据库管理系统的计算机领用管理系统的E-R图如图3-1所示图3-1计算机领用管理系统数据库E-R图
3.3逻辑结构设计逻辑结构设计的任务就是把概念模型结构转换成某个具体的DBMS所支持的数据模型设计逻辑结构时,首先是将概念结构转换为一般的关系、网状、层次模型,其次是将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换,最后是对数据模型进行优化将计算机领用管理系统的E-R图转换成关系数据模型关系模式如下职员(工号,姓名,性别,年龄,部门);计算机(采购批号,生产厂商,CPU型号,内存型号,硬盘型号,显示器型号,价格,采购日期,采购数量);领用(固定资产编号,职员工号,计算机采购批号,领用日期);用户(用户标志,登录口令,用户描述,使用权限);
3.4物理结构设计数据库的物理结构设计是对于给定的逻辑数据模型,选取一个最合适应用环境的物理结构数据库的物理结构指的是数据库在物理设备上的存储结构与存取方法,它依赖于给定的计算机系统,是在数据库逻辑结构的基础上设计出一组能够满足实际需求的关系、约束、和索引等信息计算机领用管理系统的数据库表结构如下1职员信息基本表表
3.1职员信息基本表employee属性中文名称属性名类型长度说明职员工号e_nochar6统一顺序编号,具有唯一性职员姓名e_namechar20职员名称职员性别e_sexchar2职员性别职员年龄e_ageinteger年龄所属部门e_depchar20所在部门2计算机采购信息基本表表
3.2计算机采购信息基本表computer属性中文名称属性名类型长度说明采购批号c_nochar5统一编号,具有唯一性生产厂商c_ppchar20计算机生产厂商CPU型号c_cpuchar20内存型号c_memchar20硬盘型号c_diskchar20显示器型号c_dispchar20价格c_pricenumeric19采购日期c_datedate采购数量c_numinteger本批次采购数量其中批号通过计算机计算得出,用年月表示前4位,当月采购流水号作第5位,如09102表示2009年10月第2批购买3计算机领用信息基本表表
3.3计算机领用信息基本表ec属性中文名称属性名类型长度说明固定资产编号f_nochar10统一编号,具有唯一性领用人工号e_nochar6计算机采购批号c_nochar5领用日期ec_datedate其中固定资产编号通过计算机计算得出,前6位用当前日期表示,后4位从0001开始顺序编号,该编号可以表示到目前为止的总设备数量例如1204280009表示2012年4月28日领用,当前领用序号为0009,也可理解为到目前为止共领用了9台计算机4用户基本表表
3.4用户基本表users属性中文名称属性名类型长度说明用户标志useridchar10具有唯一性登录口令passwordchar10进入系统的口令用户描述usernamechar20用户类型权限privelegechar6权限属性4系统实施经过系统需求采集、分析,功能的设定;系统数据库的设计,数据流程的设计,一个计算机领用管理系统的基本框架已经出现在我的脑海里剩下的工作就是将各个功能模块通过在开发环境中逐一实现
4.1建立数据库首先根据PowerBuilder开发环境在D\bysj文件夹下建立bysj.db数据库文件,同时建立基本表,并设置相关主键及外键,其中三张表的相互关系图如下图图4-1基本表的关系图
4.2系统实现
4.
2.1建立工作空间及应用程序对象
①建立应用程序对象bysj,然后创建登录w_login窗口,窗口类型为response!,窗口状态为最大化,并定义全局变量stringgs_userid定义窗口局部变量integerii_count=3//设置错误输入次数为3次图4-2w_login窗口设计思路定义两个变量接收用户输入的用户名称和登录口令,在用户基本表中查找与之匹配的记录,查找成功则进入主界面,否则清除输入框内容,返回重新输入“确定”按钮的clicked!脚本为stringls_useridstringls_passwordintegerli_countls_userid=trimsle_userid.textls_password=trimsle_password.textselectcount*into:li_count//从users表中查表fromuserswhereuserid=:ls_useridandpassword=:ls_password;ifli_count0then//输入用户及口令与users表中数据匹配gs_userid=ls_userid//保存当前用户标志,以备退出屏保时匹配closewithreturnparentok//返回参数elseii_count=ii_count-1//输入次数-1ifii_count=0thenhaltclose;//错误输入3次,退出程序messagebox提示用户名或口令错误,请重新输入!sle_userid.text=sle_password.text=sle_userid.setfocusendif
②创建w_main主窗口,窗口类型为mdihelp!,状态为最大化图4-3主窗口w_main设计思路初始化用户界面并设置用户的权限根据成功登录的用户名称查询其用户权限字段,左起第一位表示是否拥有数据录入权限,第二位表示是否拥有数据修改权限,第三位表示是否拥有数据查询权限,根据对应位的值设置对应菜单的”enabled”值;如果用户是系统管理员还拥有对一般用户的权限设置功能,而一般用户除了拥有系统管理员授予的功能外,则只能修改自己的登录口令为窗口定义ue_open事件stringls_tempopenw_login//打开用户登录窗口ls_temp=message.stringparm//接受登录窗口的返回信息ifls_tempokthen//如果没有登录成功haltclose;else//登录成功,根据用户权限初始化用户界面并设置用户的权限selectprivelegeinto:ls_tempfromuserswhereuserid=:gs_userid;ifmidls_temp11=0then//没有录入权限m_menu.m_
1.m_computer_input.enabled=false//电脑采购录入菜单不可用m_menu.m_
1.m_employee_input.enabled=false//职员信息录入菜单不可用m_menu.m_
1.m_ec_input.enabled=false//电脑领用信息录入菜单不可用endififmidls_temp21=0then//没有修改权限m_menu.m_
2.m_computer_modify.enabled=falsem_menu.m_
2.m_employee_modify.enabled=falsem_menu.m_
2.m_ec_modify.enabled=falseendififmidls_temp31=0then//没有查询权限m_menu.m_
3.m_employee_query.enabled=falsem_menu.m_
3.m_ec_query.enabled=falsem_menu.m_
3.m_computer_query.enabled=falseendififlowergs_useridsathen//如果不是系统管理员m_menu.m_
4.m_users.text=修改口令//只能修改自己的口令endifidle100//100秒未动作进入屏保窗口endif应用程序bysj的open事件添加脚本,连接数据库SQLCA.DBMS=ODBCSQLCA.AutoCommit=FalseSQLCA.DBParm=ConnectString=DSN=bysjCONNECT;ifsqlca.sqlcode=0thenopenw_main//如果连接成功,则打开主窗口elsemessagebox错误不能和数据库建立连接按任意键关闭系统......stopsign!haltclose;endif
③创建屏保窗口w_screensaver,窗口类型为response!,设置为窗口最大化,如下图图4-4w_screensaver屏保窗口设计思路1在该窗口没有关闭之前,不能操作应用软件中的任何功能;2必须输入当前用户标志和登录口令,才能进入到软件中;3屏幕保护窗口关闭后不破坏原来的工作状态其中,“确定”按钮的事件脚本为stringls_useridstringls_passwordintegerli_countls_userid=sle_userid.textls_password=sle_password.textifls_useridgs_useridthen//如果不是当前用户则重新输入sle_userid.text=sle_password.text=sle_userid.setfocusreturnendif//判断数据库中是否存在同名、同口令的用户如果存在,则退出屏保窗口selectcount*into:li_countfromuserswhereuserid=:ls_useridandpassword=:ls_password;ifli_count0thenclosew_screensaverelsesle_userid.text=sle_password.text=sle_userid.setfocusendif
4.
2.2建立数据窗口对象创建10个数据窗口对象,分别对应职员信息录入、职员信息修改、职员信息查询、计算机采购信息录入、计算机采购信息修改、计算机采购信息查询、领用信息录入、领用信息修改、领用信息查询和用户管理,并进行相应设置最终结构分别为图4-5职员信息录入数据窗口图4-6职员信息修改数据窗口图4-7职员信息查询数据窗口图4-8计算机领用信息录入数据窗口图4-9计算机领用信息查询数据窗口图4-10用户管理数据窗口
4.
2.3创建三个全局函数
① 创建全局函数gf_getgh,设计思路如果当前数据库中没有员工则初始化工号为000001,否则查询数据库中最大工号并递增1生成新工号代码如下//函数作用根据数据库中的最大工号按序生成一个工号//返回值string类型,工号stringls_dbsn//数据库中当前的最大工号stringls_sn//新生成的工号//从数据库中选择当前最大的工号selectMAXe_nointo:ls_dbsnfromemplyee;ifisnullls_dbsnorls_dbsn=thenls_sn=000001//如果当前没有员工则初始化工号为000001elsels_sn=right000000+stringintegerls_dbsn+16//否则工号递增endifreturnls_sn
② 创建全局函数gf_getbh,设计思路固定资产编号由6位日期和4位领取序号生成该序号也可以看成是到目前为止共领用的数量利用函数取当前日期yyyymmdd,并截取后六位作为固定资产编号的前6位,然后查询数据库中当前的最大编号,如果查询失败则初始化顺序号为0001,若查询成功则将顺序号递增1,并转换成4位字符串型附加在固定资产编号的后面作后4位编号例如当前编号为1207230011表示2012年7月23日领取的总序号为11的资产代码如下stringls_part1//当前日期stringls_dbsn//当前数据库中的最大编号stringls_sn//新生成的编号integerls_templs_part1=rightstringtodayyyyymmdd6//从数据库中选择当前最大的编号selectMAXf_nointo:ls_dbsnfromec;ifls_dbsnthenls_temp=integerrightls_dbsn4//取最大编号中的后4位即顺序号ls_temp++elsels_temp=1//初始化序号endifls_sn=ls_part1+right0000+stringls_temp4returnls_sn
③ 创建全局函数gf_getph,设计思路大致同gf_getbh函数代码如下//函数作用生成一个计算机采购批号,例如09102表示2009年1月第2批//返回值string类型,四位年月份mmdd加一位流水号,共5位stringls_dbsn//数据库中当前的最大批号intls_agrsn//参数中的的流水号,通常一月内采购次数不会超过9次stringls_sn//新生成的批号stringls_part1//当前日期的年月作为批号前4位ls_part1=leftrightstringtodayyyyymmdd64//取当前日期的一部分作为编号的前4位selectMAXc_nointo:ls_dbsnfromcomputer;//从数据库中选择最近一次采购的批号ifls_part1leftls_dbsn4thenls_agrsn=1//本月第一次采购elsels_agrsn=integerrightls_dbsn1+1//本月采购序号加1endifls_sn=ls_part1+stringls_agrsnreturnls_sn
4.
2.4创建操作窗口
① 创建职员信息录入窗口w_employee_input图4-11w_employee_input窗口设计思路插入一空白行,调用全局函数gf_getgh获取一个合法的职员工号,调用数据窗口函数dw.setitem对工号项进行赋值,利用数据窗口对象的itemchanged事件设置数据输入允许开关,同时设置数据输入限制利用函数dw.update更新数据库内容“插入”按钮的click!事件的脚本为;longll_currow//用来保存当前要操作的数据行stringls_gh=//用来保存工号ifib_modifiedthenll_currow=dw_
1.insertrow0//插入一行空白数据dw_
1.scrolltorowll_currow//滚动到新插入的行中dw_
1.setcolumn2ls_gh=gf_getgh//调用全局函数,获取一个合法工号ifib_modifiedthendw_
1.setitemll_currowe_nols_ghib_modified=false//设置开关状态ifdw_
1.update=1thencommit;return0elseifmessagebox提示数据错误,不能保存是否继续关闭?question!yesno!2=1thenreturn0elserollback;return0endifendifendifendif数据窗口对象dw_1的itemchanged事件脚本为ib_modified=true//设置开关状态//以下为输入限制ifdwo.name=e_sexthenifnotmatchdata^[男女]then//性别只能输入男或女messagebox输入错误性别必须为男或女!return2endifendififdwo.name=e_agethenifintegerdata16orintegerdata100then//年龄不能小于16或大于100messagebox输入错误企业不收童工或超老年人!return2endifendif
② 创建w_employee_modify_filter过滤窗口图4-12w_employee_modify_filter窗口设计思路接收用户在过滤条件中输入的内容,利用字符串合成语句生成相应的SQL语句,作为数据窗口检索函数dw.setsqlselect的参数“重输”按钮表示清除当前输入的条件,重新输入,其clicked!事件脚本为dw_
1.resetdw_
1.insertrow0“确定”按钮的clicked!事件脚本为stringls_data//保存用户输入的数据stringls_colname//保存列名integerli_index//循环变量stringls_sql=//对应的SQL语句dw_
1.accepttext//避免dw_1中最后输入的内容被遗漏forli_index=1tointegerdw_
1.object.datawindow.column.countifli_index=4then//第4列为非字符型,要单独处理ls_data=stringdw_
1.getitemnumber1li_indexelsels_data=dw_
1.getitemstring1li_index//获取第li_index列中的数据endififlenls_data0then//如果输入了内容ls_colname=dw_
1.describe#+stringli_index+.dbnamels_sql=ls_sql+and+ls_colname+like%+ls_data+%endifnextiflenls_sql1thenls_sql=trimrightls_sqllenls_sql-6endifclosewithreturnparentls_sql
③ 创建w_employee_modify职员信息修改窗口图4-13w_employee_modify窗口设计思路利用数据窗口对象函数dw.modifiedcount和dw.deletedcount判断数据窗口内容是否经过修改来确定是否更新数据库内容其中窗口的open事件脚本为dw_
1.settransobjectsqlcadw_
1.retrievedw_
1.setcolumn3//定焦在第3列,因为工号和姓名不能被改动窗口的closequery事件的脚本为integerli_flagifdw_
1.modifiedcount+dw_
1.deletedcount0thenli_flag=messagebox提示数据已经修改,是否保存?question!yesnocancel!1choosecaseli_flagcase1//保存ifdw_
1.update=1thencommit;return0elseifmessagebox提示数据错误,不能保存是否继续关闭?question!yesno!2=1thenreturn0elserollback;return1endifendifcase2rollback;return0case3//取消return1endchooseelsereturn0endif“过滤”按钮的clicked!事件的脚本为stringls_temp//保存原始SQL语句stringls_rtn=//保存过滤条件窗口中的返回值stringls_sql=//保存数据窗口dw_1对应的SQL语句openw_employee_modify_filter//打开过滤条件窗口ls_rtn=message.stringparm//保存返回的过滤条件ls_sql=dw_
1.getsqlselect//获取老的SQL语句ifposlowerls_sqlwhere0thenls_sql=leftls_sqlposlowerls_sqlwhere-1endifls_temp=ls_sql//保留无where部分SQL语句iflenls_rtn0then//返回了过滤条件ls_sql=ls_sql+where+ls_rtndw_
1.setsqlselectls_sql//启用新的SQL语句dw_
1.retrieveelsedw_
1.setsqlselectls_temp//清除SQL语句条件部分dw_
1.retrieveendif“删除”按钮的clicked!事件脚本为longll_currowll_currow=dw_
1.getrow//获取当前数据行号ifll_currow1thenreturnifmessagebox提示确实要删除当前数据吗?question!yesno!2=1thendw_
1.deleterowll_currowendif“保存”按钮的clicked!事件脚本为stringls_errmsglongll_rowsdw_
1.accepttextll_rows=dw_
1.modifiedcount+dw_
1.deletedcountifll_rows0thenifdw_
1.update=1thencommit;messagebox提示数据已经保存成功保存了+stringll_rows+条数据elsels_errmsg=sqlca.sqlerrtextrollback;iflenls_errmsg0thenmessagebox错误数据不能正确保存~r~n错误代码+stringsqlca.sqldbcode+错误信息+ls_errmsgelsemessagebox错误数据不能正确保存endifendifendif另外在数据窗口对象上借鉴了两个窗口函数来完成鼠标单击列标题排序的功能
④创建职员信息查询窗口图4-14职员信息查询窗口设计思路利用函数dw.setsqlselect和dw.retrieve来进行数据检索“过滤”按钮的clicked!事件脚本为stringls_temp//保存原始SQL语句stringls_rtn=//保存过滤条件窗口中的返回值stringls_sql=//保存数据窗口dw_1对应的SQL语句openw_employee_modify_filter//打开过滤条件输入窗口ls_rtn=message.stringparm//保存返回的过滤条件ls_sql=dw_
1.getsqlselect//获取老的SQL语句ifposlowerls_sqlwhere0thenls_sql=leftls_sqlposlowerls_sqlwhere-1endifls_temp=ls_sql//保留无where部分SQL语句iflenls_rtn0then//返回了过滤条件ls_sql=ls_sql+where+ls_rtndw_
1.setsqlselectls_sql//启用新的SQL语句dw_
1.retrieveelsedw_
1.setsqlselectls_temp//清除SQL语句条件部分dw_
1.retrieveendif“另存”按钮的clicked!事件脚本为ifdw_
1.rowcount0thendw_
1.saveaselsemessagebox提示没有数据,没必要保存exclamation!endif“打印”按钮的clicked!事件脚本为ifdw_
1.rowcount0thendw_
1.printelsemessagebox提示没有数据,没必要打印exclamation!endif
⑤创建计算机采购信息录入w_computer_input窗口、w_computer_modify修改窗口、w_computer_query查询窗口,并编写相应程序代码
⑥创建计算机领用信息录入w_ec_input窗口、w_ec_modify修改窗口、w_ec_query查询窗口图4-15w_ec_input窗口其中数据窗口对象dw_1的itemchanged事件脚本为ib_modified=true//设置开关//*DDW程序段Stringls_deptidls_sqlDataWindowChildfld_childfld_child.SetTransObjectSQLCA//设置事务对象ls_sql=Lowerfld_child.GetSQLSelect//获得DDDW的SQL语句ls_deptid=dw_
1.Object.e_no[GetRow]//取得当前选定值fld_child.SetSQLSelectls_sqlfld_child.Retrieve//取得满足条件的数据
⑦ 创建w_about版权信息窗口图4-16w_about窗口
⑧ 创建w_privelege权限管理窗口图4-17w_privelege窗口设计思路根据勾选的内容设置权限字段的对应位的值,并设置相应按钮和菜单的enabled属性窗口的open事件脚本为stringls_qxstringls_useridls_userid=message.stringparmiflowerls_userid=sathencbx_input.enabled=falsecbx_input.checked=truecbx_modify.enabled=falsecbx_modify.checked=truecbx_query.enabled=falsecbx_query.checked=trueelse//从数据库中取出该用户的权限selectprivelegeinto:ls_qxfromuserswhereuserid=:ls_userid;ifsqlca.sqlcode=0then//最数据操作正确ls_qx=trimls_qx//删除数据两侧的空格ifmidls_qx11=1thencbx_input.checked=true//具有录入权限ifmidls_qx21=1thencbx_modify.checked=true//具有修改权限ifmidls_qx31=1thencbx_query.checked=true//具有查询权限endifendif“确定”按钮的clicked!事件脚本为stringls_qx=0000//录入、修改、查询ifcbx_input.checkedthenls_qx=replacels_qx111ifcbx_modify.checkedthenls_qx=replacels_qx211ifcbx_query.checkedthenls_qx=replacels_qx311closewithreturnparentls_qx
⑨ 创建w_users用户管理窗口图4-18w_users窗口窗口的open事件脚本为dw_
1.settransobjectsqlcadw_
1.retrieveiflowergs_useridsathen//只有sa用户才能拥有用户增加、用户删除和用户权限设置功能cb_insert.enabled=falsecb_del.enabled=falsecb_pri.enabled=falsedw_
1.setfilteruserid=+gs_userid+dw_
1.filterendif“插入”按钮的clicked!事件脚本为dw_
1.scrolltorowdw_
1.insertrow0“删除”按钮的clicked!事件脚本为longll_currowstringls_useridll_currow=dw_
1.getrow//获取数据行ifll_currow1thenreturn//如果没有数据行,则返回ls_userid=dw_
1.getitemstringll_currowuserid//获取当前行中的ueridiflowerls_useridsathen//如果不是删除sa用户ifmessagebox提示确定删除用户+ls_userid+吗?question!yesno!2=1thendw_
1.deleterowll_currow//删除数据endifelsemessagebox提示不能删除系统管理员stopsign!endif“权限”按钮的clicked!事件脚本为stringls_useridlongll_currowstringls_rtnll_currow=dw_
1.getrowifll_currow1thenreturnls_userid=dw_
1.getitemstringll_currowuseridopenwithparmw_privelegels_userid//带参数打开权限设置窗口ls_rtn=message.stringparmifls_rtnthendw_
1.setitemll_currowprivelegels_rtnendif
4.
2.5创建菜单图4-19m_menu菜单编辑窗口添加相应脚本,程序输入完毕5系统测试与分析
5.1系统试运行按Ctrl+R运行系统,输入用户标志和登录口令,进入系统主界面,添加职员信息图5-1系统试运行职员录入窗口测试计算机领用信息修改模块图5-2测试领用信息修改模块界面测试领用信息查询模块图5-3测试领用信息查询模块界面测试用户管理模块图5-4测试用户管理模块界面
5.2系统运行分析经过使用多组数据对该系统的反复测试,总体上能够满足企业对于固定资产方面特别是计算机领用管理的要求,能够将传统的手工方式转变为快捷方便且易于维护的信息化管理作为一个信息化系统,具备初步的系统的功能模块,能够在该系统上加以逐步细化,添加其他功能部件,以进一步完善系统的功能,改进后肯定能够满足企业对于固定资产管理功能方面的要求
5.3系统存在的不足和现阶段大量信息化系统相比,本系统只是极为简单的一个小软件,功能单一,算法不够精细,而且流程没有达到最优,另外从安全角度考虑,本系统还有更多需要加以改进的地方希望能在以后的工作和学习中更加提高自己的各方面的能力,以便把以后的系统设计得更好!6结论随着IT技术的高速发展,信息化系统得到了广泛的应用以后的社会一定是现代化、信息化的社会,信息化管理系统是一个发展潜力巨大的市场具有诱人的发展前景本设计论文主要讲述建立一个简单的管理系统的过程它涉及到软件开发工具PowerBuilder以及相关数据库系统,以及制作步骤,重点讲述了利用PowerBuilder工具开发系统的方法和过程经过一个多月的摸索,系统的功能基本都实现了系统的功能包括用户登录,信息的增加、修改、删除和查询,用户的管理,权限的设置等经过调试运行和不断的改善,系统的功能和界面都得到了很大程度的提高但是系统同时也有一些缺点,比如系统交互界面美观性不是很好,一些差错处理后没有错误提示信息等从最开始收集资料,学习技术,到需求分析,再到软件的概要设计、详细设计,最后代码实现系统功能,并不断的运行调试和修改,最后得到了现在的版本用户在使用时看到的都是一些单一的数据,但是通过参数的传递最终实现了对数据库的操作具体的操作包括数据库的查询、插入、更新等,这些操作我都一一实现了它们的实现,使我较全面的了解了软件开发工具的使用和数据库的使用方法和软件工程的理论,更能深刻的了解PowerBuilder的特点,特别是PowerBuilder的数据窗口的强大功能,同时使我更加深刻的理解了面向对象的编程风格通过本次毕业设计和论文,熟悉了利用PowerBuilder来设计软件系统的方法和步骤,了解了数据库的优势期间遇到很多困难,通过自己反复研究实验,向老师和同学请教,不断在网上查阅资料,解决了很多问题,这样的经历,是我学习生涯中的重要部分,使得我明白,只有孜孜不倦的学习,才会有所收获,这也是我做这次毕业设计过程中最深刻的体会致谢值此论文完成之际,首先要感谢指导导师在繁忙的工作中对我的工作和学习进行指导,感谢老师对我的帮助、关心和教诲老师渊博的知识、敏锐的洞察力以及忘我的敬业精神成为我学习的榜样学习是一个不断积累的过程,在这里还要感谢导师给我一个机会来考验自己对知识的掌握程度,她的指导是完成本论文的基础最后,衷心感谢在百忙之中评阅论文和参加答辩的各位专家、教授!参考文献
[1]殷红先、张为民著.PowerBuilder实用教程电子工业出版社.2011年
[2]陈桂友著.PowerBuilder数据库开发技术.机械工业出版社.2005年
[3]李华等编著.PowerBuilder程序设计教程.清华大学出版社.2011年
[4]王能斌编著.数据库系统教程.电子工业出版社出版社.2003年
[5]曾一等编著.软件工程讲义.重庆大学计算机学院2005年6月
[6]樊金生编著.PowerBuilder
10.0实用教程.科学出版社.2009年
[7]王楠编著.数据库系统概论.高等教育出版社.2008年用户登录验证合法性进入主界面权限设置信息查询信息修改信息录入退出用户描述权限口令标志姓名工号部门职员年龄性别M领用资产编号职员工号电脑批号领用日期N采购数量采购批号采购日期计算机生产厂家价格硬盘CPU显示器内存。