小区物业管理系统的设计与实现 毕业设计论文.doc

上传人:西安人 文档编号:3928371 上传时间:2019-10-10 格式:DOC 页数:49 大小:2.09MB
返回 下载 相关 举报
小区物业管理系统的设计与实现 毕业设计论文.doc_第1页
第1页 / 共49页
小区物业管理系统的设计与实现 毕业设计论文.doc_第2页
第2页 / 共49页
小区物业管理系统的设计与实现 毕业设计论文.doc_第3页
第3页 / 共49页
小区物业管理系统的设计与实现 毕业设计论文.doc_第4页
第4页 / 共49页
小区物业管理系统的设计与实现 毕业设计论文.doc_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《小区物业管理系统的设计与实现 毕业设计论文.doc》由会员分享,可在线阅读,更多相关《小区物业管理系统的设计与实现 毕业设计论文.doc(49页珍藏版)》请在三一文库上搜索。

1、 摘 要本论文描述了小区物业管理系统的设计与实现。本软件的前台设计由PowerBuilder 8.0实现,后台管理是由Adaptive Server Enterprise实现。利用Sybase Central用户界面工具进行数据库的创建和管理。整个软件系统基于客户端/服务器模式,但现阶段只开发了单机版的软件。本系统界面设计大方、简洁、实用,操作简单方便,是一款完全适合普通小区物业日常事务管理的软件。软件设计综合了具有一定代表性的多家物业管理公司的业务模式和需求。能实现人事、房产、客户、会所、设备、仓库、保安、保洁、绿化、收费等小区的智能化管理,可以提高物业管理的效率。关键字:小区物管,物业管理

2、,物业管理系统,小区物业管理系统,PowerBuilder,Sybase Central,客户端/服务器模式AbstractThe paper describes the design and realization of Property Manage System(PMS) .The foreground of the software is carried out by PowerBuilder 8.0 and the background by Adaptive Server Enterprise. Using the Sybase Central customer interface

3、 tool to create and manage the database.The whole software system base on the client/server mode, but the present stage developped the software of the single machine version only.This interface of the system is generous, practical, with simple operational method, and it is also a software complete s

4、uiting the common Property business management.It synthesizes the requirement and business mode of many property management company in designing precess.It can realize the management of personnel, house property, customer, club, equipments, warehouse, public security, cleanliness,virescence, charges

5、 in a small area of inhabitancy. And increase the efficiency of the property management.Key word: Property Manage System, PMS, PowerBuilder, Sybase Central, the client/server mode目 录引 言1第一章 小区物业管理系统的开发工具21.1、开发软件PowerBuilder8.021.2、数据库应用初步6第二章 需求分析92.1、小区管理的要求92.2、本小区管理系统的目标9第三章 小区物业管理系统的设计103.1、小区物

6、业管理系统的开发工具的确定103.2、小区物业管理系统的结构图103.3、小区物业管理系统的安全策略103.4、小区物业管理系统的功能113.5、小区物业管理系统用于存储对象的库(Library)的管理113.6、小区物业管理系统数据库的设计12第四章 小区物业管理系统的实现134.1、主界面的建立134.2、程序与数据库的连接164.3、系统安全策略的实现174.4、人事管理功能的实现244.5、房产管理功能的实现264.6客户管理功能的实现264.7、会所管理功能的实现274.8、设备管理功能的实现284.9、仓库管理功能的实现284.10、保安管理功能的实现294.11、保洁管理功能的实

7、现294.12、绿化管理功能的实现304.13、收费管理功能的实现314.14、程序调试、编译与发行314.15、系统的发展方向32结 论33参考文献34致 谢34附 录35引 言现在的小区物业管理,大都采用传统的人工管理的模式,这对于规模较小的物业管理公司来说,是可以应付日常的管理需要的。但是,随着该行业竞争日益的激烈,提高物管的工作效率、为住户提供更好的服务,成为了物业管理公司当前必须考虑的问题。而解决这些问题的途径之一,就是将计算机引入到管理机制中来。利用本软件系统,可以实现对人事、房产、客户、会所、设备、仓库、保安、保洁、绿化、收费等小区的智能化管理,为住户提供更好的服务。对于这些资料

8、,可以设置不同的权限,以限制不同级别的工作人员所访问的内容,这在一定的程度上保障了信息的安全性。在此软件的设计过程中,我们调查了几家具有代表性的物业管理公司的管理模式,并参考了多个专门的物业管理软件的功能设置。在此基础上,编制出的软件,就更具有了可用性和实用性,更贴近于真实的物管的需要。在此,向那些接受我们访问的物业管理公司表示感谢。第一章 小区物业管理系统的开发工具1.1、开发软件PowerBuilder8.01.1.1、软件简介PowerBuilder 是一种可视化的面向对象的快速应用程序开发环境,它以其开放的体系结构,简洁高效的集成开发环境,强大的数据窗口技术,几乎无所不能的数据库访问能

9、力和友好的用户界面,已成为client/server模式应用和基于internet模式应用最优秀的开发工具之一。最新推出的8.0版更是通过诸多强大功能、创新特性以及与应用服务器的无缝集成,提供了基于客户机/服务器、web及多层结构的快速环境。它已经为许多数据库应用开发人员所熟悉和使用并获得了广泛的好评。PowerBuilder 8 全面改进了应用程序开发环境,它提供了耳目一新的用户界面增强了Web 功能数据窗口与EAServer ,更加紧密的集成功能提供了新的数据库连接和访问能力,进一步提高了易用性。新增的PowerScript 新特性让开发人员能够更加直接方便简单有效地控制应用程序的错误从而

10、开发出更加健壮的应用程序。1.1.2、PowerBuilder8.0的功能和特点1、专业的客户/服务器开发工具客户/服务器是一种将任务进行分解,然后协同解决的计算模式。客户端的应用程序负责提出任务需求,服务器端的应用程序则为客户提供服务,例如数据查询、打印等。用PowerBuilder8.0开发出的应用程序能够与数据库服务器完美地协同工作,构成客户/服务器计算模式2、面向对象的编程在PowerBuilder8.0中创建的窗口、菜单、数据窗口等都是对象。除了使用系统预先定义的对象外,开发人员可以自行构造新的对象(称作用户对象),扩展系统的预定义对象,将各种对象有机的组合起来就构成了PowerBu

11、ilder应用程序。3、支持多种关系数据库管理系统用PowerBuilder8.0开发的应用程序可以同时访问多个数据库系统(关系见图1.1),比如说,可以从Oracle中查询数据,然后将结果放入到Foxpro中。PowerBuilder8.0支持多种关系数据库管理系统(RDBMS),既包括注入Oracle、Sybase、Microsoft SQL Server、IBM DB2、Imformix等大型数据库,也包括Xbase、Foxpro、Paradox等个人数据库。对大型数据库来说,PowerBuilder提供了旨在充分发挥其性能的专用接口,而小型数据库则可通过ODBC接口灵活的访问。而且,P

12、owerBuilder8.0本身带有一个功能不凡的数据库Sybase SQL Anywhere,利用它可以脱离网络环境单机运行应用程序。PowerBuilder8.0应用ODBC接口Oracle接口Sybase接口Informix接口Oracle数据库Sybase数据库 Informix数据库其他大型数据库SQLAnywhere 数据库 FoxPro数据库 其他各种支持ODBC接口的数据库其他专用接口图1.1 PowerBuilder8.0应用程序与数据库管理系统的关系4、丰富的数据表现风格PowerBuilder8.0的数据窗口为展现数据的本质提供了丰富的手段,数据窗口能够从多种数据源中提取

13、数据,然后以多种风格展现在用户面前,这既包括文本显示方式,也包括统计图分析方式。利用数据窗口,用户可以直观的查询、修改、插入、删除、打印、浏览数据,而且,PowerBuilder的数据窗口还提供了组框对象和按钮对象,开发人员可以使用他们将数据窗口中的对象进行分组,并且将用户对数据窗口的操作界面集成在数据窗口内部。5、丰富的数据表现风格PowerBuilder8.0的数据窗口为展现数据的本质提供了丰富的手段,数据窗口能够从多种数据源中提取数据,然后以多种风格展现在用户面前,这既包括文本显示方式,也包括统计图分析方式。利用数据窗口,用户可以直观的查询、修改、插入、删除、打印、浏览数据,而且,Pow

14、erBuilder的数据窗口还提供了组框对象和按钮对象,开发人员可以使用他们将数据窗口中的对象进行分组,并且将用户对数据窗口的操作界面集成在数据窗口内部。6、灵活快捷的数据转移方法利用PowerBuilder8.0的数据道,开发人员和应用程序能够简单、方便、快捷地把数据库表中的数据从一个表复制到另一个表、从一个数据库复制到另一个数据库、从一个DBMS复制到另一个DBMS。在复制表的过程中,除了复制表中的数据和表结构外(当然也可以更改表结构),还可以复制相应表的扩展属性。7、功能强大的调试器和多种调试方法PowerBuilder8.0提供了一个全新的内置调试器,利用它,开发人员能够单步、断点跟踪

15、应用程序的执行,并在中断模式下查看或修改变量以及对象属性的取值。除了常规的断点设置方法外,开发人员还可以设置条件断点和变量断点,是应用程序在某种条件下进入中断模式。除了内置调试器外,开发人员还可以使用PowerBuilder8.0的PBDEBUG功能跟踪应用程序,并把执行过程记录到运行日志中。另外,PowerBuilder8.0还提供了专门跟踪嵌入式SQL语句的功能,从而可以找到与数据访问相关的性能瓶颈问题。1.1.3、PowerBuilder8.0的开发环境PowerBuilder8.0开发环境由一系列集成的画板(Painter)组成。所谓画板实际上就是完成一定功能的工具,比如窗口画板用于定

16、义窗口对象,用户对象画板定义用户对象,数据窗口画板定义数据窗口对象,库画板完成应用库的增、删、改等,应用开发人员通过简单的鼠标操作就能设计、建立、测试客户/服务器应用程序。PowerBuilder主窗口的界面如图1.2所示。PowerBuilder8.0各画板完成的工作是由众多的画板工具实现的,而画板工具又包含了一些小工具。画板、画板工具和小工具的有机组工作区域剪贴(Clip)窗口系统树(System Tree)窗口Power工具栏输出(Output)窗口图1.2 PowerBuilder的主窗口菜单栏合构成了PowerBuilder8.0强大而方便的应用开发环境。1.1.4、PowerScr

17、ipt 编程语言虽然可视化编程为开发人员提供了极大的方便,但无论采用哪种编程工具开发应用程序,编码总是其中必不可少的步骤之一。PowerBuilder使用的编程语言为PowerScript,是一种高级的、结构化的编程语言。PowerScript十分简单易学,它的语言成份与大多数语言相似。PowerBuilder中事件处理程序、用户自定义函数等都是使用PowerScript语言编写的书写PowerScript 程序时格式相当自由,每一行中的空格、缩进等均被编译器忽略,利用这个特性,我们可以编写出结构清晰、易于阅读和理解的应用程序。PowerScript 与众不同之处在于它提供了一套完整的嵌入式S

18、QL 语句,开发人员能够像使用其他语言成分比如赋值语句那样使用它们,而且需要的话也可以使用特定数据库管理系统专用的SQL 语句,这就大大增强了程序操纵和访问数据库的能力。需要嵌入式SQL 语句时,无须逐字键入,你可以利用PowerBuilder 提供的可视化工具生成嵌入式SQL语句、然后把它粘贴到程序中。丰富的数据类型和众多的函数进一步提高了PowerBuilder 8.0 的适应性和灵活性。PowerScript 不仅支持常规的数据类型,同时也支持用于处理多媒体数据的二进制大对象,当然它也完全支持对象类型,在代码编写方面PowerBuilder 8 提供了许多增强功能,比如开发人员期待已久的

19、自动代码补充功能,编程窗口中的上下文相关帮助功能,终于在这个版本中实现了。新的例外处理语句给开发人员提供了处理例外错误的新途径,此外PowerBuilder 8.0 还提供了拖放编写代码特性,进一步提高了应用程序的开发效率。总而言之熟练地掌握PowerScript 语言是灵活高效地开发高质量PowerBuilder 应用程序的基本要求。1.1.5、SQL语言SQL语言英文全称是Structure Query Language,意为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通用来执行各种各样的操作,例如更新数据库中的数据、从数据库中提取数据等。SQL已被ANSI(美国国

20、家标准协会)和国际标准化组织(ISO)定为关系型数据库语言的标准语言。目前绝大多数流行的关系型数据库管理系统,如Oracle、Sybase、MicroSoft Sql Server、DB2等都遵循SQL语言标准。SQL语句有很多,功能齐全,大致可以分为四大类: 数据定义:用于创建、删除、修改数据中的各类对象,如CREATE、DROP、ALTER。 数据查询:对数据库查询检索,命令有SELECT。 数据更新:插入、更新、删除数据库,如NSERT、UPDATE、DELETE。 数据控制:数据控制管理,如表加锁、授权、回收授权、提交事务、回滚事务,命令有:LOCK、GRANT、REVOKE、COMM

21、IT、ROLLBACK。1.2、数据库应用初步1.2.1、数据库系统的发展数据库系统是在文件系统的基础上发展而来的,经历了层次数据库网状数据库关系数据库三个阶段。由于关系数据库采用人们比较容易理解和接受的二维表格来组织数据,发展迅速,已成为数据库产品的主流。1.2.2、基本概念数据库(DataBase,简称DB)是按一定组织方式存储在计算机存储器中、相互关联的数据集合,数据库的建立独立于程序。所谓关系数据库就是将数据表示为表的集合,通过建立简单表之间的关系来定义结构的一种数据库。数据库管理系统(DBMS)是一个管理数据库的软件系统,为用户提供了描述数据库,操作数据库和维护数据库的方法和命令,并

22、且能自动控制数据库的安全以及数据完整。常见数据库管理系统有:Oracle、Sybase、MicroSoft SQL Server、IBM DB2等数据库系统(DBS)是一个具有管理数据库的计算机系统,它包括应用软件、数据库、数据库管理系统(DBMS)、数据库管理人员(DBA)几部分。如今所讲的数据库编程一般就是指开发数据库系统,即通过编制数据库应用程序来操纵数据库,实现数据有效管理。数据库应用程序数据库DateBase数据库管理人员DBA数据库管理系统DBMS图1.3 数据库应用的架构以上三者的关系见图1.3所示。表 一种按行与列排列的相关信息的逻辑组。字段 数据库表中的每一列称为一个字段。表

23、结构是由其包含的各种字段定义的,每个字段描述了它的一个属性值。字段可包含各种字符、数字甚至图形。记录 存放在表中的行,被称为记录。一般说来,数据表中任意两个记录不能相同。键 表中的某个(或多个)字段,键可以是唯一的,也可以是非唯一的。唯一键可以制定为主键,用来唯一标识表的每行。例如,在员工表中,员工号是表的主键,因为它唯一地标识了一个员工。关系 数据库可由多个表组成,表与表之间可以以不同的方式相互关联。例如,员工数据库还可以有一个包含某个员工其他信息的表,这些表通过员工号与员工表相关联。1.2.3、客户机/服务器结构客户/服务器(clinet/server)是应用非常广泛的一种结构,主要是指将

24、一个数据库应用系统分解为前台的客户端(或称前端,应用程序部分)和后台的服务器部分,通过网络连接应用程序和服务器。客户/服务器结构和一般数据库应用的原理基本一致,只不过它将数据库部分和应用部分分离开来,并通过网络连接。这种结构的核心是客户应用程序发送服务请求,一切由服务器完成,结果发回客户应用程序。而服务器所进行的工作对客户应用程序是不可见的。客户端client客户端client服务器server数据库DatabaseUnix,windows NT等Oracle,SybaseMicrosoft SQL Server等网 络返 回请 求图1.4 客户机/服务器结构图客户/服务器的典型结构如图1.4

25、所示。第二章 需求分析2.1、小区管理的要求 有效的管理住户资料和员工资料,并保证其安全性。 自动安排日常的管理事务。 及时处理住户的意见,并做好记录备案。 合理的管理公司财产,以达到更高的利用率。2.2、本小区管理系统的目标 确保准确、可靠的小区管理,保证数据的安全性,一致性,完整性,提高效率,防止漏洞。 按照登陆账号的不同给与用户不同的权限。如:普通住户guest对某些资料只有查询权限,并无资格修改数据;一般操作员opr能完全操作一部分的管理项目;而最高管理员admin就享有所有的权限。 所有的管理记录必须完整、准确、报表及时,满足普通住户和管理员管理的要求。第三章 小区物业管理系统的设计

26、3.1、小区物业管理系统的开发工具的确定本系统使用Powerbuilder作为系统界面的开发工具,Sybase作为数据库后台。其原因是:Powerbuilder强大的数据库界面开发功能以及与Sybase天衣无缝的合作,能达到使用方便,稳定性、安全性高的目的。3.2、小区物业管理系统的结构图小区管理者需要建立一个比较完善的系统来解决小区管理各方面的问题。数据库后台普通用户前台程序图3.1 系统操作结构图其他权限用户操作员管理员首先我们使用Sybase建立一个数据库,用来存储所有的管理信息,包括:楼盘楼宇信息,工作人员信息,住户信息,各种其他管理信息等。当运行由Powerbuilder建立的数据库

27、前台程序的时候,就会自动连接上后台的数据库。用户就能通过前台工具对后台进行相应的操作,其关系如图3.1所示。3.3、小区物业管理系统的安全策略3.3.1、权限的分配登陆时,系统会根据不同的权限组给予用户不同的权限,这个过程是通过功能的屏蔽来实现的,即使对应帐号不能使用的功能的菜单不显示。例如普通用户登陆后,系统自动屏蔽管理功能,使之只有查询的功能。而在使用中,能动态、快速的实现用户的更改。3.3.2、系统用户的划分在本系统中,初始状态只有一个管理员权限组,管理员可以任意设置不同的权限组,并给予不同的权限,使之具有不同的功能。在一个权限组下,可以添加多个具有相同功能,但不同名字的帐号。这样,就可

28、以实现系统的多人的安全访问。3.4、小区物业管理系统的功能小区物业管理系统大致上需要系统管理、人事管理、房产管理、客户管理、会所管理、设备管理、仓库管理、保安管理、保洁管理、绿化管理、收费管理等几个主要的功能。故本系统的模块的划分及功能如下:1、系统管理:对于帐号的管理,给予不同的帐号不同的权限,保证系统的安全性,并可由高权限的用户随意增加、删除低一级的权限组或用户。2、人事管理:详细管理公司员工的情况。3、房产管理:记录房产的详细信息,包括楼盘、区域等各方面。4、客户管理:管理具体的客户信息,如客户资料,客户所拥有房产的相关资料,客户要求等。5、会所管理:管理小区的会员服务。6、设备管理:详

29、细记录公司设备的情况,包括设备数目、种类,工作情况,维修情况等。7、仓库管理:管理小区仓库的库存数量、出入库状况等。8、保安管理:记录并随时查询小区保安的安排,包括人手分配、保安设备的情况、班次等等。9、保洁管理:安排小区的保洁工作,并提供工作质量和用具情况的查询。10、绿化管理:包括小区住户的户外与室内绿化工作的安排和实现情况。11、收费管理:小区的各种费用,如保洁费等的收费管理。3.5、小区物业管理系统用于存储对象的库(Library)的管理在PowerScript目标下工作时,建立的对象被存储在与当前应用关联的库(*.pbl)里面。为了便于管理、使用和查找这些对象,我们将具有相关功能的对

30、象保存在一个库文件中。根据3.5中的本管理系统的功能划分,我们共建立了13个库,具体库名与功能的对应关系,见表3.1所示。功能名称对应的库名(*.pbl)主界面:Pms系统:system人事管理:personnel房产管理:house客户管理:customer会所管理:club设备管理:equipment仓库管理:storage保安管理:bodyguard保洁管理:clear绿化管理:green收费管理:charge帮助:help表3.1 库的划分 3.6、小区物业管理系统数据库的设计在建立数据库的时候,我们选用了Sybase ASE数据库系统,以方便以后软件向网络版的移植。为了维护Sybas

31、e系统的安全性和稳定性,应避免在master、model等系统默认的系统数据库(Database)上进行读写的操作。所以,我们新建了本软件的专用数据库PMSRUN,在建立此数据库之前,应先建立这一数据库所使用的数据库设备(Database Devices),这里,我们将新建立的设备也命名为PMSRUN。在编制程序的时候,所创建的表格(table)都将建立在数据库PMSRUN中。第四章 小区物业管理系统的实现图4.1 系统主界面4.1、主界面的建立4.1.1、建立主界面窗口本系统主界面作为其他所有打开窗口的父窗口,其类型应该是多文档的窗口(MDI)。其建立过程为:新建一个空白窗口,命名为w_ma

32、in,将其WindowType属性设置为mdihelp!;窗口的色彩以个人的喜好来定义;再建立主窗口的菜单m_main;将菜单与窗口关联,即设置主窗口w_main的menuname属性为m_main。主窗口的界面如图4.1所示,主窗体的设计我也是参考别人的设计进行的主要就是http:/对我的协助。4.1.2、主菜单的设计根据“3.5 小区物业管理系统功能”的划分,我们设计的主菜单m_main包括了十二个菜单项,名称分别为:系统、人事管理、房产管理、客户管理、会所管理、设备管理、仓库管理、保安管理、保洁管理、绿化管理、收费管理、窗口、帮助。每个菜单项下又包括自己的子菜单项,详细的设置见表4.1。

33、I. 系统: 1.权限组维护2.系统用户管理3.权限分配4.参数设置:1)装修情况设置2)员工状态设置3)学历设置4)职务设置5)客户类型设置6)客户服务类型设置7)报修状态维护8)设备类型设置9)设备故障类型设置10)仓库物品类型设置11)保安时间类型设置12)保洁巡视结果设置13)绿化检查结果设置14)单元设备类型设置5.显示工具栏6.更改用户7.修改密码8.备份数据库9.还原数据库10.退出系统II.人事管理:1.部门配置2.人事资料管理3.人事规章制度管理III. 房产管理:1.楼盘资料管理2.区域管理3.楼宇资料管理4.房型管理5.单元资料管理6.单元户主管理7.租赁管理8.单元设备

34、管理IV.客户管理: 1.客户资料管理2.客户服务内容管理3.客户服务管理4.一对一私人助理管理5.装修管理6.客户单元报修管理7.客户投诉建议处理8.小区公告V.会所管理: 1.会所服务内容管理2.会员资料管理VI.设备管理: 1.设备管理2.设备维修管理3.设备维护管理4.设备维护保养计划管理VII.仓库管理: 1.出入库管理2.库存数量管理3.仓库历史记录查询4.仓库变动情况统计VIII.保安管理: 1.保安岗位设置2.值班班次设置3.保安排班管理4.保安事件管理5.保安用具管理6.保安用具维修管理7.保安用具使用记录查询IIX保洁管理: 1.保洁区域管理2.保洁工作安排3.日常保洁巡视

35、管理4.保洁用具管理5.保洁用具维修管理6.保洁用具使用记录查询7.保洁计划管理IX绿化管理: 1.室内绿化管理:1)室内绿化区域管理2)室内绿化计划管理3)室内绿化巡视管理2.室外绿化管理:1)室外绿化区域管理2)室外绿化计划管理3)室外绿化巡视管理X收费管理: 1.收费项目管理2.单元收费管理3.缴费管理4.缴费记录查询XI. 窗口: 1.层叠窗口2.按名称排列3.排列图标XII. 帮助: 1.软件帮助2.关于3.注册为表4.1 主菜单的详细设置为了实现菜单相应的功能(打开相应的子窗口),我们在对应的菜单的单击事件中写入如下代码:opensheet(windowname,w_main,0)

36、其中,windowname为将要打开的窗口,w_main为主窗口的名称。如,为了打开“权限组维护”窗口w_group_of_popedom,我们在菜单m_main.m_01.m_0101的单击(clicked)事件中写下如下代码:opensheet(w_group_of_popedom,w_main,0)其余的窗口的打开,以此类推,不再赘述。为了管理已经打开的窗口,在菜单项“窗口”中,有三个子菜单:“层叠窗口”、“按名称排列”、“排列图标”;它们的功能分别为:层叠所有已经打开的窗口、按名字排列已经打开的窗口、重新排列最小化的窗口图标;它们实现功能的单击(clicked)事件代码依次为:w_ma

37、in.ArrangeSheets(Cascade! )w_main.ArrangeSheets(Tile!)w_main.ArrangeSheets(Icons!)如需SQL没地方下载可以去http:/计算机毕业设计门户网站下载。4.2、程序与数据库的连接4.2.1、数据库中表格的建立根据本小区管理系统的功能划分,共建立了44个表格,具体的数据字典因篇幅较大,将在附录中详细列出。4.2.2、程序与数据库的连接在应用程序启动之前,应先打开数据库PMSRUN,其做法,可以手动在Sybase Central中启动,也可以设置为开机自动运行。为了使应用程序能操作数据库中的表(table),应该在应用程

38、序的初始化阶段建立与后台数据库的连接。连接的方法可以是使用数据库描述文件,也可以直接在程序中编写连接参数。在此程序中,因为只是用到一个数据库,不会出现在运行过程中连接另外的数据库的情况,随意我们使用了在程序中直接编写连接参数的方法。本小区物业管理系统与数据库的连接参数,写在程序的open时间中,其代码是:SQLCA.DBMS = SYC Adaptive Server EnterpriseSQLCA.Database = PMSRUN /说明数据库的名称SQLCA.ServerName = PMS /说明运行数据库后台的计算机名SQLCA.LogId = sa /登陆数据库的用户名SQLCA.

39、AutoCommit = False /关闭自动提交功能connect; /连接数据库if SQLCA.sqlCode0 thenMessageBox(连接数据库失败!,SQLCA.sqlerrtext)Halt /若数据库连接失败,就中止程序的运行else open(w_log) /若数据库连接成功,就打开登陆界面end if4.3、系统安全策略的实现4.3.1、登陆界面的设定4.3.1.1、界面的布局为了区分不同的用户,并赋予不同的权限,应建立完善的登陆机制。在本系统中,登陆界面w_log是最先启动的页面,其窗口类型(windowtype)为响应式窗口(response!)。它包含一个图片

40、控件(picture)p_back,用于显示背景画面;两个用于显示用户名和密码字样的静态文本控件(staticText)st_ogin_user、st_password;两个用于编辑用户名和密码的单行编辑框控件(singlelineedit)sle_login_user、sle_password;为了美观,在这里使用了两个静态文本控件(staticText)st_ok、st_cancel来作为实现按钮的作用,分别用于最输入的确定和取消。登陆界面的布局可以参看图4.2。这是一个无边框的页面,是从美观的角度来考虑的,为了实现这一目标,首先定义局部外部函数(Local External Functi

41、ons):FUNCTION ulong SetWindowRgn(ulong hWnd,ulong hRgn,boolean bRedraw)LIBRARY user32.dll静态文本控件st_ogin_user单行编辑框控件(singlelineedit)sle_cancel图片控件(picture)p_back单行编辑框控件sle_login_user静态文本控件st_password单行编辑框控件sle_password单行编辑框控件(singlelineedit)sle_ok图4.2 登陆界面布局FUNCTION ulong CreateRoundRectRgn( int nLeft

42、Rect, int nTopRect,int nRightRect, int nBottomRect, int nWidthEllipse,int nHeightEllipse)LIBRARY gdi32.dll再在w_log的open事件中添加以下代码:long hrgnlong lreshrgn=CreateRoundRectRgn(3,3,505,312,0,0)lres=SetWindowRgn(handle(this),hrgn,true)4.3.1.2、功能的实现为了传递参数,定义了一个全局变量(Global Variables)gs_password用于保存登陆密码,类型为字符串

43、类型(String);还有一个实例变量(Instance Variables)Log_time用于保存输入密码错误的次数,为整数类型(Integer),初始值是1。静态文本控件(staticText)st_ok的单击(clicked)代码为:string ls_login_user,ls_password /定义变量ls_login_user=sle_login_user.text /传输给变量ls_password=sle_password.textSELECT password /用SQL语句读取用户密码 INTO :gs_password FROM tb_user WHERE login

44、_user=:ls_login_user;if SQLCA.SQLCode0 thenif Log_time=3 then messagebox(警告,登录帐号错误,你无权使用本系统,本系统将关闭!,Exclamation!)HALT closeelseLog_time+messagebox(物业管理系统,登录帐号错误,请重新输入帐号,StopSign!) /若帐号错误,则计数器加1end ifsle_login_user.setfocus()elseif gs_password=ls_password then open(w_main)close(w_log) elseif Log_time

45、=3 then messagebox(警告,登录密码错误,你无权使用本系统,本系统将关闭!,Exclamation!) /若计数器值为3,将强制关闭系统 HALT close else Log_time+ messagebox(物业管理系统,登录密码错误,请重新输入密码,StopSign!) /若帐密码错误,则计数器加1 end ifsle_Password.setfocus() end ifend if静态文本控件(staticText)st_ok被鼠标单击后,触发clicked事件。其响应过程是:1. 首先,将单行编辑框控件(singlelineedit)sle_login_user、sle_password中的text值分别传递给变量ls_login_user,ls_password。2. 然后在表格(table)tb_user中查找与ls_login_user的值相同的login_user字段对应的同一条中的password字段的值,并将之传递给全局变量gs_password。3. 若第2步的查找不成功,即SQLCA.SQLCode不等于0,则说明登陆用户名不存在,就显示出错提示“登录帐号错误,请重新输入帐号!”,并将计数器Log_time的值加1。4. 若第2步的查找成功,再比较gs_password的值与l

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1