

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 摘 要</b></p><p> 本論文描述了《小區(qū)物業(yè)管理系統(tǒng)》的設(shè)計(jì)與實(shí)現(xiàn)。</p><p> 本軟件的前臺(tái)設(shè)計(jì)由PowerBuilder 8.0實(shí)現(xiàn),后臺(tái)管理是由Adaptive Server Enterprise實(shí)現(xiàn)。利用Sybase Central用戶界面工具進(jìn)行數(shù)據(jù)庫(kù)的創(chuàng)建和管理。整個(gè)軟件系統(tǒng)基于客戶端/服務(wù)器模式,但
2、現(xiàn)階段只開(kāi)發(fā)了單機(jī)版的軟件。</p><p> 本系統(tǒng)界面設(shè)計(jì)大方、簡(jiǎn)潔、實(shí)用,操作簡(jiǎn)單方便,是一款完全適合普通小區(qū)物業(yè)日常事務(wù)管理的軟件。軟件設(shè)計(jì)綜合了具有一定代表性的多家物業(yè)管理公司的業(yè)務(wù)模式和需求。能實(shí)現(xiàn)人事、房產(chǎn)、客戶、會(huì)所、設(shè)備、倉(cāng)庫(kù)、保安、保潔、綠化、收費(fèi)等小區(qū)的智能化管理,可以提高物業(yè)管理的效率。</p><p> 關(guān)鍵字:小區(qū)物管,物業(yè)管理,物業(yè)管理系統(tǒng),小區(qū)物業(yè)管理系
3、統(tǒng),PowerBuilder,Sybase Central,客戶端/服務(wù)器模式</p><p><b> Abstract</b></p><p> The paper describes the design and realization of Property Manage System(PMS) .</p><p> The fo
4、reground of the software is carried out by PowerBuilder 8.0 and the background by Adaptive Server Enterprise. Using the Sybase Central customer interface tool to create and manage the database.The whole software system b
5、ase on the client/server mode, but the present stage developped the software of the single machine version only.</p><p> This interface of the system is generous, practical, with simple operational method,
6、and it is also a software complete suiting 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 o
7、f personnel, house property, customer, club, equipments, warehouse, public security, cleanliness,virescence, charges in a small area of inhabitancy. And increase the efficiency of the property m</p><p> Ke
8、y word: Property Manage System, PMS, PowerBuilder, Sybase Central, the client/server mode</p><p><b> 目 錄</b></p><p><b> 引 言1</b></p><p> 第一章 小區(qū)物業(yè)管理系統(tǒng)的開(kāi)
9、發(fā)工具2</p><p> 1.1、開(kāi)發(fā)軟件PowerBuilder8.02</p><p> 1.2、數(shù)據(jù)庫(kù)應(yīng)用初步6</p><p> 第二章 需求分析9</p><p> 2.1、小區(qū)管理的要求9</p><p> 2.2、本小區(qū)管理系統(tǒng)的目標(biāo)9</p><p>
10、 第三章 小區(qū)物業(yè)管理系統(tǒng)的設(shè)計(jì)10</p><p> 3.1、小區(qū)物業(yè)管理系統(tǒng)的開(kāi)發(fā)工具的確定10</p><p> 3.2、小區(qū)物業(yè)管理系統(tǒng)的結(jié)構(gòu)圖10</p><p> 3.3、小區(qū)物業(yè)管理系統(tǒng)的安全策略10</p><p> 3.4、小區(qū)物業(yè)管理系統(tǒng)的功能11</p><p> 3.5、小
11、區(qū)物業(yè)管理系統(tǒng)用于存儲(chǔ)對(duì)象的庫(kù)(Library)的管理11</p><p> 3.6、小區(qū)物業(yè)管理系統(tǒng)數(shù)據(jù)庫(kù)的設(shè)計(jì)12</p><p> 第四章 小區(qū)物業(yè)管理系統(tǒng)的實(shí)現(xiàn)13</p><p> 4.1、主界面的建立13</p><p> 4.2、程序與數(shù)據(jù)庫(kù)的連接16</p><p> 4.3、系統(tǒng)
12、安全策略的實(shí)現(xiàn)17</p><p> 4.4、人事管理功能的實(shí)現(xiàn)24</p><p> 4.5、房產(chǎn)管理功能的實(shí)現(xiàn)26</p><p> 4.6.客戶管理功能的實(shí)現(xiàn)26</p><p> 4.7、會(huì)所管理功能的實(shí)現(xiàn)27</p><p> 4.8、設(shè)備管理功能的實(shí)現(xiàn)28</p><
13、;p> 4.9、倉(cāng)庫(kù)管理功能的實(shí)現(xiàn)28</p><p> 4.10、保安管理功能的實(shí)現(xiàn)29</p><p> 4.11、保潔管理功能的實(shí)現(xiàn)29</p><p> 4.12、綠化管理功能的實(shí)現(xiàn)30</p><p> 4.13、收費(fèi)管理功能的實(shí)現(xiàn)31</p><p> 4.14、程序調(diào)試、編譯與
14、發(fā)行31</p><p> 4.15、系統(tǒng)的發(fā)展方向32</p><p><b> 結(jié) 論33</b></p><p><b> 參考文獻(xiàn)34</b></p><p><b> 致 謝34</b></p><p><b>
15、 附 錄35</b></p><p><b> 引 言</b></p><p> 現(xiàn)在的小區(qū)物業(yè)管理,大都采用傳統(tǒng)的人工管理的模式,這對(duì)于規(guī)模較小的物業(yè)管理公司來(lái)說(shuō),是可以應(yīng)付日常的管理需要的。但是,隨著該行業(yè)競(jìng)爭(zhēng)日益的激烈,提高物管的工作效率、為住戶提供更好的服務(wù),成為了物業(yè)管理公司當(dāng)前必須考慮的問(wèn)題。而解決這些問(wèn)題的途徑之一,就是將計(jì)算機(jī)引入
16、到管理機(jī)制中來(lái)。</p><p> 利用本軟件系統(tǒng),可以實(shí)現(xiàn)對(duì)人事、房產(chǎn)、客戶、會(huì)所、設(shè)備、倉(cāng)庫(kù)、保安、保潔、綠化、收費(fèi)等小區(qū)的智能化管理,為住戶提供更好的服務(wù)。對(duì)于這些資料,可以設(shè)置不同的權(quán)限,以限制不同級(jí)別的工作人員所訪問(wèn)的內(nèi)容,這在一定的程度上保障了信息的安全性。</p><p> 在此軟件的設(shè)計(jì)過(guò)程中,我們調(diào)查了幾家具有代表性的物業(yè)管理公司的管理模式,并參考了多個(gè)專門的物業(yè)管理
17、軟件的功能設(shè)置。在此基礎(chǔ)上,編制出的軟件,就更具有了可用性和實(shí)用性,更貼近于真實(shí)的物管的需要。在此,向那些接受我們?cè)L問(wèn)的物業(yè)管理公司表示感謝。</p><p> 第一章 小區(qū)物業(yè)管理系統(tǒng)的開(kāi)發(fā)工具</p><p> 1.1、開(kāi)發(fā)軟件PowerBuilder8.0</p><p> 1.1.1、軟件簡(jiǎn)介</p><p> PowerB
18、uilder 是一種可視化的面向?qū)ο蟮目焖賾?yīng)用程序開(kāi)發(fā)環(huán)境,它以其開(kāi)放的體系結(jié)構(gòu),簡(jiǎn)潔高效的集成開(kāi)發(fā)環(huán)境,強(qiáng)大的數(shù)據(jù)窗口技術(shù),幾乎無(wú)所不能的數(shù)據(jù)庫(kù)訪問(wèn)能力和友好的用戶界面,已成為client/server模式應(yīng)用和基于internet模式應(yīng)用最優(yōu)秀的開(kāi)發(fā)工具之一。最新推出的8.0版更是通過(guò)諸多強(qiáng)大功能、創(chuàng)新特性以及與應(yīng)用服務(wù)器的無(wú)縫集成,提供了基于客戶機(jī)/服務(wù)器、web及多層結(jié)構(gòu)的快速環(huán)境。它已經(jīng)為許多數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)人員所熟悉和使用并獲
19、得了廣泛的好評(píng)。</p><p> PowerBuilder 8 全面改進(jìn)了應(yīng)用程序開(kāi)發(fā)環(huán)境,它提供了耳目一新的用戶界面增強(qiáng)了Web 功能數(shù)據(jù)窗口與EAServer ,更加緊密的集成功能提供了新的數(shù)據(jù)庫(kù)連接和訪問(wèn)能力,進(jìn)一步提高了易用性。新增的PowerScript 新特性讓開(kāi)發(fā)人員能夠更加直接方便簡(jiǎn)單有效地控制應(yīng)用程序的錯(cuò)誤從而開(kāi)發(fā)出更加健壯的應(yīng)用程序。</p><p> 1.1.2
20、、PowerBuilder8.0的功能和特點(diǎn)</p><p> 1、專業(yè)的客戶/服務(wù)器開(kāi)發(fā)工具</p><p> 客戶/服務(wù)器是一種將任務(wù)進(jìn)行分解,然后協(xié)同解決的計(jì)算模式。客戶端的應(yīng)用程序負(fù)責(zé)提出任務(wù)需求,服務(wù)器端的應(yīng)用程序則為客戶提供服務(wù),例如數(shù)據(jù)查詢、打印等。用PowerBuilder8.0開(kāi)發(fā)出的應(yīng)用程序能夠與數(shù)據(jù)庫(kù)服務(wù)器完美地協(xié)同工作,構(gòu)成客戶/服務(wù)器計(jì)算模式</p>
21、;<p><b> 2、面向?qū)ο蟮木幊?lt;/b></p><p> 在PowerBuilder8.0中創(chuàng)建的窗口、菜單、數(shù)據(jù)窗口等都是對(duì)象。除了使用系統(tǒng)預(yù)先定義的對(duì)象外,開(kāi)發(fā)人員可以自行構(gòu)造新的對(duì)象(稱作用戶對(duì)象),擴(kuò)展系統(tǒng)的預(yù)定義對(duì)象,將各種對(duì)象有機(jī)的組合起來(lái)就構(gòu)成了PowerBuilder應(yīng)用程序。</p><p> 3、支持多種關(guān)系數(shù)據(jù)庫(kù)管理系
22、統(tǒng)</p><p> 用PowerBuilder8.0開(kāi)發(fā)的應(yīng)用程序可以同時(shí)訪問(wèn)多個(gè)數(shù)據(jù)庫(kù)系統(tǒng)(關(guān)系見(jiàn)圖1.1),比如說(shuō),可以從Oracle中查詢數(shù)據(jù),然后將結(jié)果放入到Foxpro中。PowerBuilder8.0支持多種關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS),既包括注入Oracle、Sybase、Microsoft SQL Server、IBM DB2、Imformix等大型數(shù)據(jù)庫(kù),也包括Xbase、Foxpro
23、、Paradox等個(gè)人數(shù)據(jù)庫(kù)。對(duì)大型數(shù)據(jù)庫(kù)來(lái)說(shuō),PowerBuilder提供了旨在充分發(fā)揮其性能的專用接口,而小型數(shù)據(jù)庫(kù)則可通過(guò)ODBC接口靈活的訪問(wèn)。而且,PowerBuilder8.0本身帶有一個(gè)功能不凡的數(shù)據(jù)庫(kù)Sybase SQL Anywhere,利用它可以脫離網(wǎng)絡(luò)環(huán)境單機(jī)運(yùn)行應(yīng)用程序。</p><p> 4、豐富的數(shù)據(jù)表現(xiàn)風(fēng)格</p><p> PowerBuilder8.0
24、的數(shù)據(jù)窗口為展現(xiàn)數(shù)據(jù)的本質(zhì)提供了豐富的手段,數(shù)據(jù)窗口能夠從多種數(shù)據(jù)源中提取數(shù)據(jù),然后以多種風(fēng)格展現(xiàn)在用戶面前,這既包括文本顯示方式,也包括統(tǒng)計(jì)圖分析方式。利用數(shù)據(jù)窗口,用戶可以直觀的查詢、修改、插入、刪除、打印、瀏覽數(shù)據(jù),而且,PowerBuilder的數(shù)據(jù)窗口還提供了組框?qū)ο蠛桶粹o對(duì)象,開(kāi)發(fā)人員可以使用他們將數(shù)據(jù)窗口中的對(duì)象進(jìn)行分組,并且將用戶對(duì)數(shù)據(jù)窗口的操作界面集成在數(shù)據(jù)窗口內(nèi)部。</p><p> 5、豐
25、富的數(shù)據(jù)表現(xiàn)風(fēng)格</p><p> PowerBuilder8.0的數(shù)據(jù)窗口為展現(xiàn)數(shù)據(jù)的本質(zhì)提供了豐富的手段,數(shù)據(jù)窗口能夠從多種數(shù)據(jù)源中提取數(shù)據(jù),然后以多種風(fēng)格展現(xiàn)在用戶面前,這既包括文本顯示方式,也包括統(tǒng)計(jì)圖分析方式。利用數(shù)據(jù)窗口,用戶可以直觀的查詢、修改、插入、刪除、打印、瀏覽數(shù)據(jù),而且,PowerBuilder的數(shù)據(jù)窗口還提供了組框?qū)ο蠛桶粹o對(duì)象,開(kāi)發(fā)人員可以使用他們將數(shù)據(jù)窗口中的對(duì)象進(jìn)行分組,并且將用戶
26、對(duì)數(shù)據(jù)窗口的操作界面集成在數(shù)據(jù)窗口內(nèi)部。</p><p> 6、靈活快捷的數(shù)據(jù)轉(zhuǎn)移方法</p><p> 利用PowerBuilder8.0的數(shù)據(jù)道,開(kāi)發(fā)人員和應(yīng)用程序能夠簡(jiǎn)單、方便、快捷地把數(shù)據(jù)庫(kù)表中的數(shù)據(jù)從一個(gè)表復(fù)制到另一個(gè)表、從一個(gè)數(shù)據(jù)庫(kù)復(fù)制到另一個(gè)數(shù)據(jù)庫(kù)、從一個(gè)DBMS復(fù)制到另一個(gè)DBMS。在復(fù)制表的過(guò)程中,除了復(fù)制表中的數(shù)據(jù)和表結(jié)構(gòu)外(當(dāng)然也可以更改表結(jié)構(gòu)),還可以復(fù)制相應(yīng)表
27、的擴(kuò)展屬性。</p><p> 7、功能強(qiáng)大的調(diào)試器和多種調(diào)試方法</p><p> PowerBuilder8.0提供了一個(gè)全新的內(nèi)置調(diào)試器,利用它,開(kāi)發(fā)人員能夠單步、斷點(diǎn)跟蹤應(yīng)用程序的執(zhí)行,并在中斷模式下查看或修改變量以及對(duì)象屬性的取值。除了常規(guī)的斷點(diǎn)設(shè)置方法外,開(kāi)發(fā)人員還可以設(shè)置條件斷點(diǎn)和變量斷點(diǎn),是應(yīng)用程序在某種條件下進(jìn)入中斷模式。除了內(nèi)置調(diào)試器外,開(kāi)發(fā)人員還可以使用Power
28、Builder8.0的PBDEBUG功能跟蹤應(yīng)用程序,并把執(zhí)行過(guò)程記錄到運(yùn)行日志中。另外,PowerBuilder8.0還提供了專門跟蹤嵌入式SQL語(yǔ)句的功能,從而可以找到與數(shù)據(jù)訪問(wèn)相關(guān)的性能瓶頸問(wèn)題。</p><p> 1.1.3、PowerBuilder8.0的開(kāi)發(fā)環(huán)境</p><p> PowerBuilder8.0開(kāi)發(fā)環(huán)境由一系列集成的畫板(Painter)組成。所謂畫板實(shí)際上
29、就是完成一定功能的工具,比如窗口畫板用于定義窗口對(duì)象,用戶對(duì)象畫板定義用戶對(duì)象,數(shù)據(jù)窗口畫板定義數(shù)據(jù)窗口對(duì)象,庫(kù)畫板完成應(yīng)用庫(kù)的增、刪、改等,應(yīng)用開(kāi)發(fā)人員通過(guò)簡(jiǎn)單的鼠標(biāo)操作就能設(shè)計(jì)、建立、測(cè)試客戶/服務(wù)器應(yīng)用程序。PowerBuilder主窗口的界面如圖1.2所示。</p><p> PowerBuilder8.0各畫板完成的工作是由眾多的畫板工具實(shí)現(xiàn)的,而畫板工具又包含了一些小工具。畫板、畫板工具和小工具的有
30、機(jī)組合構(gòu)成了PowerBuilder8.0強(qiáng)大而方便的應(yīng)用開(kāi)發(fā)環(huán)境。</p><p> 1.1.4、PowerScript 編程語(yǔ)言</p><p> 雖然可視化編程為開(kāi)發(fā)人員提供了極大的方便,但無(wú)論采用哪種編程工具開(kāi)發(fā)應(yīng)用程序,編碼總是其中必不可少的步驟之一。PowerBuilder使用的編程語(yǔ)言為PowerScript,是一種高級(jí)的、結(jié)構(gòu)化的編程語(yǔ)言。PowerScript十分簡(jiǎn)單
31、易學(xué),它的語(yǔ)言成份與大多數(shù)語(yǔ)言相似。PowerBuilder中事件處理程序、用戶自定義函數(shù)等都是使用PowerScript語(yǔ)言編寫的</p><p> 書寫PowerScript 程序時(shí)格式相當(dāng)自由,每一行中的空格、縮進(jìn)等均被編譯器忽略,利用這個(gè)特性,我們可以編寫出結(jié)構(gòu)清晰、易于閱讀和理解的應(yīng)用程序。</p><p> PowerScript 與眾不同之處在于它提供了一套完整的嵌入式S
32、QL 語(yǔ)句,開(kāi)發(fā)人員能夠像使用其他語(yǔ)言成分比如賦值語(yǔ)句那樣使用它們,而且需要的話也可以使用特定數(shù)據(jù)庫(kù)管理系統(tǒng)專用的SQL 語(yǔ)句,這就大大增強(qiáng)了程序操縱和訪問(wèn)數(shù)據(jù)庫(kù)的能力。需要嵌入式SQL 語(yǔ)句時(shí),無(wú)須逐字鍵入,你可以利用PowerBuilder 提供的可視化工具生成嵌入式SQL語(yǔ)句、然后把它粘貼到程序中。</p><p> 豐富的數(shù)據(jù)類型和眾多的函數(shù)進(jìn)一步提高了PowerBuilder 8.0 的適應(yīng)性和靈活性
33、。PowerScript 不僅支持常規(guī)的數(shù)據(jù)類型,同時(shí)也支持用于處理多媒體數(shù)據(jù)的二進(jìn)制大對(duì)象,當(dāng)然它也完全支持對(duì)象類型,在代碼編寫方面PowerBuilder 8 提供了許多增強(qiáng)功能,比如開(kāi)發(fā)人員期待已久的自動(dòng)代碼補(bǔ)充功能,編程窗口中的上下文相關(guān)幫助功能,終于在這個(gè)版本中實(shí)現(xiàn)了。新的例外處理語(yǔ)句給開(kāi)發(fā)人員提供了處理例外錯(cuò)誤的新途徑,此外PowerBuilder 8.0 還提供了拖放編寫代碼特性,進(jìn)一步提高了應(yīng)用程序的開(kāi)發(fā)效率??偠灾?/p>
34、練地掌握PowerScript 語(yǔ)言是靈活高效地開(kāi)發(fā)高質(zhì)量PowerBuilder 應(yīng)用程序的基本要求。</p><p> 1.1.5、SQL語(yǔ)言</p><p> SQL語(yǔ)言英文全稱是Structure Query Language,意為結(jié)構(gòu)化查詢語(yǔ)言。SQL語(yǔ)言的主要功能就是同各種數(shù)據(jù)庫(kù)建立聯(lián)系,進(jìn)行溝通用來(lái)執(zhí)行各種各樣的操作,例如更新數(shù)據(jù)庫(kù)中的數(shù)據(jù)、從數(shù)據(jù)庫(kù)中提取數(shù)據(jù)等。SQL已
35、被ANSI(美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì))和國(guó)際標(biāo)準(zhǔn)化組織(ISO)定為關(guān)系型數(shù)據(jù)庫(kù)語(yǔ)言的標(biāo)準(zhǔn)語(yǔ)言。目前絕大多數(shù)流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),如Oracle、Sybase、MicroSoft Sql Server、DB2等都遵循SQL語(yǔ)言標(biāo)準(zhǔn)。</p><p> SQL語(yǔ)句有很多,功能齊全,大致可以分為四大類:</p><p> 數(shù)據(jù)定義:用于創(chuàng)建、刪除、修改數(shù)據(jù)中的各類對(duì)象,如CREATE、DRO
36、P、ALTER。</p><p> 數(shù)據(jù)查詢:對(duì)數(shù)據(jù)庫(kù)查詢檢索,命令有SELECT。</p><p> 數(shù)據(jù)更新:插入、更新、刪除數(shù)據(jù)庫(kù),如NSERT、UPDATE、DELETE。</p><p> 數(shù)據(jù)控制:數(shù)據(jù)控制管理,如表加鎖、授權(quán)、回收授權(quán)、提交事務(wù)、回滾事務(wù),命令有:LOCK、GRANT、REVOKE、COMMIT、ROLLBACK。</p&g
37、t;<p> 1.2、數(shù)據(jù)庫(kù)應(yīng)用初步</p><p> 1.2.1、數(shù)據(jù)庫(kù)系統(tǒng)的發(fā)展</p><p> 數(shù)據(jù)庫(kù)系統(tǒng)是在文件系統(tǒng)的基礎(chǔ)上發(fā)展而來(lái)的,經(jīng)歷了層次數(shù)據(jù)庫(kù)→網(wǎng)狀數(shù)據(jù)庫(kù)→關(guān)系數(shù)據(jù)庫(kù)三個(gè)階段。由于關(guān)系數(shù)據(jù)庫(kù)采用人們比較容易理解和接受的二維表格來(lái)組織數(shù)據(jù),發(fā)展迅速,已成為數(shù)據(jù)庫(kù)產(chǎn)品的主流。</p><p> 1.2.2、基本概念</p&
38、gt;<p> 數(shù)據(jù)庫(kù)(DataBase,簡(jiǎn)稱DB)是按一定組織方式存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)器中、相互關(guān)聯(lián)的數(shù)據(jù)集合,數(shù)據(jù)庫(kù)的建立獨(dú)立于程序。所謂關(guān)系數(shù)據(jù)庫(kù)就是將數(shù)據(jù)表示為表的集合,通過(guò)建立簡(jiǎn)單表之間的關(guān)系來(lái)定義結(jié)構(gòu)的一種數(shù)據(jù)庫(kù)。</p><p> 數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)是一個(gè)管理數(shù)據(jù)庫(kù)的軟件系統(tǒng),為用戶提供了描述數(shù)據(jù)庫(kù),操作數(shù)據(jù)庫(kù)和維護(hù)數(shù)據(jù)庫(kù)的方法和命令,并且能自動(dòng)控制數(shù)據(jù)庫(kù)的安全以及數(shù)據(jù)完整。常
39、見(jiàn)數(shù)據(jù)庫(kù)管理系統(tǒng)有:Oracle、Sybase、MicroSoft SQL Server、IBM DB2等</p><p> 數(shù)據(jù)庫(kù)系統(tǒng)(DBS)是一個(gè)具有管理數(shù)據(jù)庫(kù)的計(jì)算機(jī)系統(tǒng),它包括應(yīng)用軟件、數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)、數(shù)據(jù)庫(kù)管理人員(DBA)幾部分。如今所講的數(shù)據(jù)庫(kù)編程一般就是指開(kāi)發(fā)數(shù)據(jù)庫(kù)系統(tǒng),即通過(guò)編制數(shù)據(jù)庫(kù)應(yīng)用程序來(lái)操縱數(shù)據(jù)庫(kù),實(shí)現(xiàn)數(shù)據(jù)有效管理。</p><p> 以
40、上三者的關(guān)系見(jiàn)圖1.3所示。</p><p> 表 一種按行與列排列的相關(guān)信息的邏輯組。</p><p> 字段 數(shù)據(jù)庫(kù)表中的每一列稱為一個(gè)字段。表結(jié)構(gòu)是由其包含的各種字段定義的,每個(gè)字段描述了它的一個(gè)屬性值。字段可包含各種字符、數(shù)字甚至圖形。</p><p> 記錄 存放在表中的行,被稱為記錄。一般說(shuō)來(lái),數(shù)據(jù)表中任意兩個(gè)記錄不能相同。</p>
41、<p> 鍵 表中的某個(gè)(或多個(gè))字段,鍵可以是唯一的,也可以是非唯一的。唯一鍵可以制定為主鍵,用來(lái)唯一標(biāo)識(shí)表的每行。例如,在員工表中,員工號(hào)是表的主鍵,因?yàn)樗ㄒ坏貥?biāo)識(shí)了一個(gè)員工。</p><p> 關(guān)系 數(shù)據(jù)庫(kù)可由多個(gè)表組成,表與表之間可以以不同的方式相互關(guān)聯(lián)。例如,員工數(shù)據(jù)庫(kù)還可以有一個(gè)包含某個(gè)員工其他信息的表,這些表通過(guò)員工號(hào)與員工表相關(guān)聯(lián)。</p><p> 1.
42、2.3、客戶機(jī)/服務(wù)器結(jié)構(gòu)</p><p> 客戶/服務(wù)器(clinet/server)是應(yīng)用非常廣泛的一種結(jié)構(gòu),主要是指將一個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)分解為前臺(tái)的客戶端(或稱前端,應(yīng)用程序部分)和后臺(tái)的服務(wù)器部分,通過(guò)網(wǎng)絡(luò)連接應(yīng)用程序和服務(wù)器。</p><p> 客戶/服務(wù)器結(jié)構(gòu)和一般數(shù)據(jù)庫(kù)應(yīng)用的原理基本一致,只不過(guò)它將數(shù)據(jù)庫(kù)部分和應(yīng)用部分分離開(kāi)來(lái),并通過(guò)網(wǎng)絡(luò)連接。這種結(jié)構(gòu)的核心是客戶應(yīng)用程序
43、發(fā)送服務(wù)請(qǐng)求,一切由服務(wù)器完成,結(jié)果發(fā)回客戶應(yīng)用程序。而服務(wù)器所進(jìn)行的工作對(duì)客戶應(yīng)用程序是不可見(jiàn)的。</p><p> 客戶/服務(wù)器的典型結(jié)構(gòu)如圖1.4所示。</p><p><b> 第二章 需求分析</b></p><p> 2.1、小區(qū)管理的要求</p><p> 有效的管理住戶資料和員工資料,并保證其安
44、全性。</p><p> 自動(dòng)安排日常的管理事務(wù)。</p><p> 及時(shí)處理住戶的意見(jiàn),并做好記錄備案。</p><p> 合理的管理公司財(cái)產(chǎn),以達(dá)到更高的利用率。</p><p> 2.2、本小區(qū)管理系統(tǒng)的目標(biāo)</p><p> 確保準(zhǔn)確、可靠的小區(qū)管理,保證數(shù)據(jù)的安全性,一致性,完整性,提高效率,防止漏
45、洞。</p><p> 按照登陸賬號(hào)的不同給與用戶不同的權(quán)限。如:普通住戶guest對(duì)某些資料只有查詢權(quán)限,并無(wú)資格修改數(shù)據(jù);一般操作員opr能完全操作一部分的管理項(xiàng)目;而最高管理員admin就享有所有的權(quán)限。</p><p> 所有的管理記錄必須完整、準(zhǔn)確、報(bào)表及時(shí),滿足普通住戶和管理員管理的要求。</p><p> 第三章 小區(qū)物業(yè)管理系統(tǒng)的設(shè)計(jì)<
46、/p><p> 3.1、小區(qū)物業(yè)管理系統(tǒng)的開(kāi)發(fā)工具的確定</p><p> 本系統(tǒng)使用Powerbuilder作為系統(tǒng)界面的開(kāi)發(fā)工具,Sybase作為數(shù)據(jù)庫(kù)后臺(tái)。其原因是:Powerbuilder強(qiáng)大的數(shù)據(jù)庫(kù)界面開(kāi)發(fā)功能以及與Sybase天衣無(wú)縫的合作,能達(dá)到使用方便,穩(wěn)定性、安全性高的目的。</p><p> 3.2、小區(qū)物業(yè)管理系統(tǒng)的結(jié)構(gòu)圖</p>
47、<p> 小區(qū)管理者需要建立一個(gè)比較完善的系統(tǒng)來(lái)解決小區(qū)管理各方面的問(wèn)題。</p><p> 首先我們使用Sybase建立一個(gè)數(shù)據(jù)庫(kù),用來(lái)存儲(chǔ)所有的管理信息,包括:樓盤樓宇信息,工作人員信息,住戶信息,各種其他管理信息等。當(dāng)運(yùn)行由Powerbuilder建立的數(shù)據(jù)庫(kù)前臺(tái)程序的時(shí)候,就會(huì)自動(dòng)連接上后臺(tái)的數(shù)據(jù)庫(kù)。用戶就能通過(guò)前臺(tái)工具對(duì)后臺(tái)進(jìn)行相應(yīng)的操作,其關(guān)系如圖3.1所示。</p>
48、<p> 3.3、小區(qū)物業(yè)管理系統(tǒng)的安全策略</p><p> 3.3.1、權(quán)限的分配</p><p> 登陸時(shí),系統(tǒng)會(huì)根據(jù)不同的權(quán)限組給予用戶不同的權(quán)限,這個(gè)過(guò)程是通過(guò)功能的屏蔽來(lái)實(shí)現(xiàn)的,即使對(duì)應(yīng)帳號(hào)不能使用的功能的菜單不顯示。例如普通用戶登陸后,系統(tǒng)自動(dòng)屏蔽管理功能,使之只有查詢的功能。</p><p> 而在使用中,能動(dòng)態(tài)、快速的實(shí)現(xiàn)用戶的更
49、改。</p><p> 3.3.2、系統(tǒng)用戶的劃分</p><p> 在本系統(tǒng)中,初始狀態(tài)只有一個(gè)管理員權(quán)限組,管理員可以任意設(shè)置不同的權(quán)限組,并給予不同的權(quán)限,使之具有不同的功能。在一個(gè)權(quán)限組下,可以添加多個(gè)具有相同功能,但不同名字的帳號(hào)。這樣,就可以實(shí)現(xiàn)系統(tǒng)的多人的安全訪問(wèn)。</p><p> 3.4、小區(qū)物業(yè)管理系統(tǒng)的功能</p><
50、p> 小區(qū)物業(yè)管理系統(tǒng)大致上需要系統(tǒng)管理、人事管理、房產(chǎn)管理、客戶管理、會(huì)所管理、設(shè)備管理、倉(cāng)庫(kù)管理、保安管理、保潔管理、綠化管理、收費(fèi)管理等幾個(gè)主要的功能。故本系統(tǒng)的模塊的劃分及功能如下:</p><p> 1、系統(tǒng)管理:對(duì)于帳號(hào)的管理,給予不同的帳號(hào)不同的權(quán)限,保證系統(tǒng)的安全性,并可由高權(quán)限的用戶隨意增加、刪除低一級(jí)的權(quán)限組或用戶。</p><p> 2、人事管理:詳細(xì)管理
51、公司員工的情況。</p><p> 3、房產(chǎn)管理:記錄房產(chǎn)的詳細(xì)信息,包括樓盤、區(qū)域等各方面。</p><p> 4、客戶管理:管理具體的客戶信息,如客戶資料,客戶所擁有房產(chǎn)的相關(guān)資料,客戶要求等。</p><p> 5、會(huì)所管理:管理小區(qū)的會(huì)員服務(wù)。</p><p> 6、設(shè)備管理:詳細(xì)記錄公司設(shè)備的情況,包括設(shè)備數(shù)目、種類,工作情
52、況,維修情況等。</p><p> 7、倉(cāng)庫(kù)管理:管理小區(qū)倉(cāng)庫(kù)的庫(kù)存數(shù)量、出入庫(kù)狀況等。</p><p> 8、保安管理:記錄并隨時(shí)查詢小區(qū)保安的安排,包括人手分配、保安設(shè)備的情況、班次等等。</p><p> 9、保潔管理:安排小區(qū)的保潔工作,并提供工作質(zhì)量和用具情況的查詢。</p><p> 10、綠化管理:包括小區(qū)住戶的戶外與室
53、內(nèi)綠化工作的安排和實(shí)現(xiàn)情況。</p><p> 11、收費(fèi)管理:小區(qū)的各種費(fèi)用,如保潔費(fèi)等的收費(fèi)管理。</p><p> 3.5、小區(qū)物業(yè)管理系統(tǒng)用于存儲(chǔ)對(duì)象的庫(kù)(Library)的管理</p><p> 在PowerScript目標(biāo)下工作時(shí),建立的對(duì)象被存儲(chǔ)在與當(dāng)前應(yīng)用關(guān)聯(lián)的庫(kù)(*.pbl)里面。為了便于管理、使用和查找這些對(duì)象,我們將具有相關(guān)功能的對(duì)象保存
54、在一個(gè)庫(kù)文件中。根據(jù)3.5中的本管理系統(tǒng)的功能劃分,我們共建立了13個(gè)庫(kù),具體庫(kù)名與功能的對(duì)應(yīng)關(guān)系,見(jiàn)表3.1所示。</p><p> 3.6、小區(qū)物業(yè)管理系統(tǒng)數(shù)據(jù)庫(kù)的設(shè)計(jì)</p><p> 在建立數(shù)據(jù)庫(kù)的時(shí)候,我們選用了Sybase ASE數(shù)據(jù)庫(kù)系統(tǒng),以方便以后軟件向網(wǎng)絡(luò)版的移植。</p><p> 為了維護(hù)Sybase系統(tǒng)的安全性和穩(wěn)定性,應(yīng)避免在mast
55、er、model等系統(tǒng)默認(rèn)的系統(tǒng)數(shù)據(jù)庫(kù)(Database)上進(jìn)行讀寫的操作。所以,我們新建了本軟件的專用數(shù)據(jù)庫(kù)PMSRUN,在建立此數(shù)據(jù)庫(kù)之前,應(yīng)先建立這一數(shù)據(jù)庫(kù)所使用的數(shù)據(jù)庫(kù)設(shè)備(Database Devices),這里,我們將新建立的設(shè)備也命名為PMSRUN。在編制程序的時(shí)候,所創(chuàng)建的表格(table)都將建立在數(shù)據(jù)庫(kù)PMSRUN中。</p><p> 第四章 小區(qū)物業(yè)管理系統(tǒng)的實(shí)現(xiàn)</p>
56、<p> 4.1、主界面的建立</p><p> 4.1.1、建立主界面窗口</p><p> 本系統(tǒng)主界面作為其他所有打開(kāi)窗口的父窗口,其類型應(yīng)該是多文檔的窗口(MDI)。其建立過(guò)程為:新建一個(gè)空白窗口,命名為w_main,將其WindowType屬性設(shè)置為mdihelp!;窗口的色彩以個(gè)人的喜好來(lái)定義;再建立主窗口的菜單m_main;將菜單與窗口關(guān)聯(lián),即設(shè)置主窗口w_
57、main的menuname屬性為m_main。主窗口的界面如圖4.1所示。</p><p> 4.1.2、主菜單的設(shè)計(jì)</p><p> 根據(jù)“3.5 小區(qū)物業(yè)管理系統(tǒng)功能”的劃分,我們?cè)O(shè)計(jì)的主菜單m_main包括了十二個(gè)菜單項(xiàng),名稱分別為:系統(tǒng)、人事管理、房產(chǎn)管理、客戶管理、會(huì)所管理、設(shè)備管理、倉(cāng)庫(kù)管理、保安管理、保潔管理、綠化管理、收費(fèi)管理、窗口、幫助。每個(gè)菜單項(xiàng)下又包括自己的子菜
58、單項(xiàng),詳細(xì)的設(shè)置見(jiàn)表4.1。</p><p> 為了實(shí)現(xiàn)菜單相應(yīng)的功能(打開(kāi)相應(yīng)的子窗口),我們?cè)趯?duì)應(yīng)的菜單的單擊事件中寫入如下代碼:</p><p> opensheet(windowname,w_main,0)</p><p> 其中,windowname為將要打開(kāi)的窗口,w_main為主窗口的名稱。如,為了打開(kāi)“權(quán)限組維護(hù)”窗口w_group_of_po
59、pedom,我們?cè)诓藛蝝_main.m_01.m_0101的單擊(clicked)事件中寫下如下代碼:</p><p> opensheet(w_group_of_popedom,w_main,0)</p><p> 其余的窗口的打開(kāi),以此類推,不再贅述。</p><p> 為了管理已經(jīng)打開(kāi)的窗口,在菜單項(xiàng)“窗口”中,有三個(gè)子菜單:“層疊窗口”、“按名稱排列”
60、、“排列圖標(biāo)”;它們的功能分別為:層疊所有已經(jīng)打開(kāi)的窗口、按名字排列已經(jīng)打開(kāi)的窗口、重新排列最小化的窗口圖標(biāo);它們實(shí)現(xiàn)功能的單擊(clicked)事件代碼依次為:</p><p> w_main.ArrangeSheets(Cascade! )</p><p> w_main.ArrangeSheets(Tile!)</p><p> w_main.Arran
61、geSheets(Icons!)</p><p> 4.2、程序與數(shù)據(jù)庫(kù)的連接</p><p> 4.2.1、數(shù)據(jù)庫(kù)中表格的建立</p><p> 根據(jù)本小區(qū)管理系統(tǒng)的功能劃分,共建立了44個(gè)表格,具體的數(shù)據(jù)字典因篇幅較大,將在附錄中詳細(xì)列出。</p><p> 4.2.2、程序與數(shù)據(jù)庫(kù)的連接</p><p>
62、 在應(yīng)用程序啟動(dòng)之前,應(yīng)先打開(kāi)數(shù)據(jù)庫(kù)PMSRUN,其做法,可以手動(dòng)在Sybase Central中啟動(dòng),也可以設(shè)置為開(kāi)機(jī)自動(dòng)運(yùn)行。</p><p> 為了使應(yīng)用程序能操作數(shù)據(jù)庫(kù)中的表(table),應(yīng)該在應(yīng)用程序的初始化階段建立與后臺(tái)數(shù)據(jù)庫(kù)的連接。連接的方法可以是使用數(shù)據(jù)庫(kù)描述文件,也可以直接在程序中編寫連接參數(shù)。在此程序中,因?yàn)橹皇怯玫揭粋€(gè)數(shù)據(jù)庫(kù),不會(huì)出現(xiàn)在運(yùn)行過(guò)程中連接另外的數(shù)據(jù)庫(kù)的情況,隨意我們使用了在
63、程序中直接編寫連接參數(shù)的方法。</p><p> 本小區(qū)物業(yè)管理系統(tǒng)與數(shù)據(jù)庫(kù)的連接參數(shù),寫在程序的open時(shí)間中,其代碼是:</p><p> SQLCA.DBMS = "SYC Adaptive Server Enterprise"</p><p> SQLCA.Database = "PMSRUN" //說(shuō)明
64、數(shù)據(jù)庫(kù)的名稱</p><p> SQLCA.ServerName = "PMS" //說(shuō)明運(yùn)行數(shù)據(jù)庫(kù)后臺(tái)的計(jì)算機(jī)名</p><p> SQLCA.LogId = "sa" //登陸數(shù)據(jù)庫(kù)的用戶名</p><p> SQLCA.AutoCommit = False //關(guān)閉自動(dòng)提交
65、功能</p><p> connect; //連接數(shù)據(jù)庫(kù)</p><p> if SQLCA.sqlCode<>0 then</p><p> MessageBox("連接數(shù)據(jù)庫(kù)失敗!",SQLCA.sqlerrtext)</p><p> Halt
66、 //若數(shù)據(jù)庫(kù)連接失敗,就中止程序的運(yùn)行</p><p><b> else</b></p><p> open(w_log) //若數(shù)據(jù)庫(kù)連接成功,就打開(kāi)登陸界面</p><p><b> end if</b></p><p> 4.3、系統(tǒng)
67、安全策略的實(shí)現(xiàn)</p><p> 4.3.1、登陸界面的設(shè)定</p><p> 4.3.1.1、界面的布局</p><p> 為了區(qū)分不同的用戶,并賦予不同的權(quán)限,應(yīng)建立完善的登陸機(jī)制。</p><p> 在本系統(tǒng)中,登陸界面w_log是最先啟動(dòng)的頁(yè)面,其窗口類型(windowtype)為響應(yīng)式窗口(response!)。它包含一個(gè)圖
68、片控件(picture)p_back,用于顯示背景畫面;兩個(gè)用于顯示用戶名和密碼字樣的靜態(tài)文本控件(staticText)st_ogin_user、st_password;兩個(gè)用于編輯用戶名和密碼的單行編輯框控件(singlelineedit)sle_login_user、sle_password;為了美觀,在這里使用了兩個(gè)靜態(tài)文本控件(staticText)st_ok、st_cancel來(lái)作為實(shí)現(xiàn)按鈕的作用,分別用于最輸入的確定和取消
69、。登陸界面的布局可以參看圖4.2。</p><p> 這是一個(gè)無(wú)邊框的頁(yè)面,是從美觀的角度來(lái)考慮的,為了實(shí)現(xiàn)這一目標(biāo),首先定義局部外部函數(shù)(Local External Functions):</p><p> FUNCTION ulong SetWindowRgn(ulong hWnd,ulong hRgn,boolean bRedraw)LIBRARY "user32.d
70、ll"</p><p> FUNCTION ulong CreateRoundRectRgn( int nLeftRect, int </p><p> nTopRect,int nRightRect, int nBottomRect, int nWidthEllipse,int nHeightEllipse)LIBRARY "gdi32.dll&quo
71、t;</p><p> 再在w_log的open事件中添加以下代碼:</p><p><b> long hrgn</b></p><p><b> long lres</b></p><p> hrgn=CreateRoundRectRgn(3,3,505,312,0,0)</p&g
72、t;<p> lres=SetWindowRgn(handle(this),hrgn,true)</p><p> 4.3.1.2、功能的實(shí)現(xiàn)</p><p> 為了傳遞參數(shù),定義了一個(gè)全局變量(Global Variables)gs_password用于保存登陸密碼,類型為字符串類型(String);還有一個(gè)實(shí)例變量(Instance Variables)Log_ti
73、me用于保存輸入密碼錯(cuò)誤的次數(shù),為整數(shù)類型(Integer),初始值是1。</p><p> 靜態(tài)文本控件(staticText)st_ok的單擊(clicked)代碼為:</p><p> string ls_login_user,ls_password //定義變量</p><p> ls_login_user=sle_login_user.tex
74、t //傳輸給變量</p><p> ls_password=sle_password.text</p><p> SELECT password //用SQL語(yǔ)句讀取用戶密碼</p><p> INTO :gs_password</p><p> FROM tb_user</p>
75、<p> WHERE login_user=:ls_login_user;</p><p> if SQLCA.SQLCode<>0 then</p><p> if Log_time=3 then</p><p> messagebox('警告','登錄帳號(hào)錯(cuò)誤,你無(wú)權(quán)使用本系統(tǒng),本系統(tǒng)將關(guān)閉!',Ex
76、clamation!)</p><p> HALT close</p><p><b> else</b></p><p> Log_time++</p><p> messagebox('物業(yè)管理系統(tǒng)','登錄帳號(hào)錯(cuò)誤,請(qǐng)重新輸入帳號(hào)',StopSign!)
77、 //若帳號(hào)錯(cuò)誤,則計(jì)數(shù)器加1</p><p><b> end if</b></p><p> sle_login_user.setfocus()</p><p><b> else</b></p><p> if gs_password=ls_password then<
78、/p><p> open(w_main)</p><p> close(w_log)</p><p><b> else</b></p><p> if Log_time=3 then</p><p> messagebox('警告','登錄密碼錯(cuò)誤,你無(wú)權(quán)使用本系統(tǒng)
79、,本系統(tǒng)將關(guān)閉!',Exclamation!) //若計(jì)數(shù)器值為3,將強(qiáng)制關(guān)閉系統(tǒng)</p><p> HALT close</p><p><b> else</b></p><p> Log_time++</p><p> messagebox('物業(yè)管理系統(tǒng)','登錄密
80、碼錯(cuò)誤,請(qǐng)重新輸入密碼',StopSign!) //若帳密碼錯(cuò)誤,則計(jì)數(shù)器加1</p><p><b> end if</b></p><p> sle_Password.setfocus()</p><p><b> end if</b></p><p>
81、<b> end if</b></p><p> 靜態(tài)文本控件(staticText)st_ok被鼠標(biāo)單擊后,觸發(fā)clicked事件。其響應(yīng)過(guò)程是:</p><p> 首先,將單行編輯框控件(singlelineedit)sle_login_user、sle_password中的text值分別傳遞給變量ls_login_user,ls_password。<
82、/p><p> 然后在表格(table)tb_user中查找與ls_login_user的值相同的login_user字段對(duì)應(yīng)的同一條中的password字段的值,并將之傳遞給全局變量gs_password。</p><p> 若第2步的查找不成功,即SQLCA.SQLCode不等于0,則說(shuō)明登陸用戶名不存在,就顯示出錯(cuò)提示“登錄帳號(hào)錯(cuò)誤,請(qǐng)重新輸入帳號(hào)!”,并將計(jì)數(shù)器Log_time的值
83、加1。</p><p> 若第2步的查找成功,再比較gs_password的值與ls_password的值是否相同,若不相同,也顯示出錯(cuò)提示“登錄密碼錯(cuò)誤,請(qǐng)重新輸入密碼!”,并將計(jì)數(shù)器Log_time的值加1。</p><p> 若第4步的比較相同的話,就生成主界面,啟動(dòng)過(guò)程完畢。</p><p> 在啟動(dòng)過(guò)程中,一旦Log_time的值等于3,就強(qiáng)制關(guān)閉系
84、統(tǒng)的啟動(dòng)過(guò)程,并依據(jù)條件,給出提示“登錄帳號(hào)錯(cuò)誤,你無(wú)權(quán)使用本系統(tǒng),本系統(tǒng)將關(guān)閉!”或者“登錄密碼錯(cuò)誤,你無(wú)權(quán)使用本系統(tǒng),本系統(tǒng)將關(guān)閉!”,以防止未經(jīng)授權(quán)的人員通過(guò)不斷的重試進(jìn)入系統(tǒng)。</p><p> 系統(tǒng)的錯(cuò)誤提示可參考圖4.3。</p><p> 為了實(shí)現(xiàn)按下回車鍵時(shí),也觸發(fā)st_ok的單擊(clicked)事件,在sle_password的keydown事件中寫下以下代碼:&l
85、t;/p><p> if keyDown(KeyEnter!) then</p><p> st_ok.triggerevent(clicked!)</p><p> end if //若按下的鍵是Enter鍵的話,就觸發(fā)st_ok的單擊事件</p><p> 靜態(tài)文本控件(statictext)st_cancel的作用是
86、關(guān)閉登陸界面,放棄進(jìn)入系統(tǒng),其單擊事件為:close(w_log)。</p><p> 4.3.2、權(quán)限組的維護(hù)</p><p> 為了便于管理具有相同權(quán)限的不同帳號(hào),特建立了權(quán)限組的維護(hù)這一功能頁(yè)面。其頁(yè)面布局見(jiàn)圖4.4所示。</p><p> 該界面的控件包括:一個(gè)數(shù)據(jù)窗口(datawindow)dw_1,五個(gè)按鈕(commandbutton)cb_1、c
87、b_2、cb_3、cb_4、cb_5。</p><p> 數(shù)據(jù)窗口控件(datawindow)dw_1的數(shù)據(jù)源是表格(table)tb_group,使用Grid表現(xiàn)風(fēng)格,色彩以個(gè)人喜好來(lái)設(shè)定。</p><p> 其中窗口的open事件定義為:</p><p> this.width=1550</p><p> this.height=
88、1500 //定義窗口的大小</p><p> dw_1.SetTrans(SQLCA) </p><p> dw_1.Retrieve( ) //數(shù)據(jù)窗口讀取數(shù)據(jù)</p><p> cb_1.Setfocus( ) //設(shè)置cb_1(增加)按鈕為默認(rèn)按鈕</p><p>
89、cb_1(增加)的click事件定義為:</p><p> long ll_row</p><p> integer li_id</p><p> String ls_temp //定義變量</p><p><b> li_id=0</b></p><p
90、><b> DO</b></p><p> li_id=li_id+1 </p><p> SELECT groupname </p><p> INTO :ls_temp </p><p> FROM tb_group </p><p> WHERE id=:li_id; &l
91、t;/p><p><b> LOOP </b></p><p> UNTIL SQLCA.SQLCode<>0 //找一個(gè)不存在的ID號(hào)</p><p> ll_row=dw_1.Insertrow(0) //添加一條記錄</p><p> dw_1.Scrolltor
92、ow(ll_row) //滾到新建的行</p><p> dw_1.setitem( ll_row,'id',li_id) //設(shè)置ID流水號(hào)</p><p> dw_1.Setfocus() //設(shè)置焦點(diǎn)在數(shù)據(jù)窗口</p><p> cb_2(刪除)的click事件定義為
93、:</p><p> long ll_row</p><p> long ll_Return</p><p> String ls_name //定義變量</p><p> if dw_1.rowcount()=0 then</p><p><b> return;</b&
94、gt;</p><p> end if //若數(shù)據(jù)窗口中數(shù)據(jù)行數(shù)為0,就返回</p><p><b> beep(1)</b></p><p> ll_row=dw_1.Getrow( ) //返回當(dāng)前行號(hào)</p><p> ls_name=dw_1.GetItemStr
95、ing(ll_row, "Groupname"); </p><p> //讀取權(quán)限組名稱,并保存在ls_name中</p><p> ll_Return=messagebox('提示!!!','確認(rèn)刪除 “'+ls_name+'” 權(quán)限組嗎?',Question!,YesNo!,1)</p><
96、p> if ll_Return=1 then</p><p> dw_1.deleterow(0)</p><p> dw_1.update()</p><p><b> end if</b></p><p> cb_3(保存)的click事件定義為:</p><p> if
97、update(dw_1,true,false)=1 then</p><p> dw_1.resetupdate() //若保存成功,就提交</p><p><b> commit;</b></p><p><b> else</b></p><p> rollback;
98、 //保存修改失敗,取消所有的修改</p><p> messagebox("錯(cuò)誤!!!","數(shù)據(jù)保存失敗!")</p><p><b> end if</b></p><p> dw_1.settrans(SQLCA)</p><p>
99、; dw_1.Retrieve() //重新讀入數(shù)據(jù)</p><p> cb_4(取消)的click事件定義為:</p><p> dw_1.settrans(SQLCA)</p><p> dw_1.Retrieve() //重新讀入數(shù)據(jù)</p><p> cb_5(退出)的click事件定義為
100、:</p><p> int MCount //定義變量,用于記錄修改后沒(méi)有保存的行數(shù)</p><p> int UpdateOrNot //定義變量,用于記錄是否修改</p><p> MCount=dw_1.Modifiedcount() //讀取修改后沒(méi)有保存的行數(shù)</p><p&g
101、t; if MCount<>0 then</p><p> UpdateOrNot=MessageBox("提示!??!","權(quán)限組名稱修改后未保存,是否保存?",Question!,YesNoCancel!) //若行數(shù)不是1,就給出選擇提示</p><p> if UpdateOrNot=1 then</p>&l
102、t;p> cb_3.event clicked() //若選擇保存,就觸發(fā)cb_3的單擊事件</p><p> Close(parent) //并關(guān)閉窗口</p><p> elseif UpdateOrNot=2 then</p><p> Close(parent) //若選擇不保存,就直接關(guān)閉窗口</p&
103、gt;<p><b> end if</b></p><p><b> else</b></p><p> Close(parent) //若沒(méi)有修改過(guò)的數(shù)據(jù),直接關(guān)閉窗口</p><p><b> end if</b></p><p&
104、gt; 4.3.3、權(quán)限的分配</p><p> 權(quán)限分配是針對(duì)于權(quán)限組來(lái)設(shè)定的,“權(quán)限分配”頁(yè)面的建立,就是為了實(shí)現(xiàn)這一功能。頁(yè)面布局詳見(jiàn)圖4.5。</p><p> 該界面的控件包括:一個(gè)數(shù)據(jù)窗口(datawindow)dw_1,三個(gè)按鈕(commandbutton)cb_1、cb_2、cb_3,一個(gè)樹(shù)視圖(TreeView)tv_1。數(shù)據(jù)窗口控件(datawindow)dw_1
105、的數(shù)據(jù)源是表格(table)tb_group。</p><p> 為了生成樹(shù)視圖tv_1中的選項(xiàng),數(shù)據(jù)窗口dw_1中讀入權(quán)限組列表,權(quán)限分配窗口w_popedom的open事件代碼為:</p><p> this.width=2500 //初始化窗口的大小</p><p> this.height=1500</p>&
106、lt;p> dw_1.Settrans(SQLCA) </p><p> dw_1.Retrieve( ) //從表格tb_group中讀入權(quán)限組列表</p><p> integer li_id</p><p> String ls_text //定義變量</p><p
107、> FOR li_id=1 to 72</p><p> SELECT menu_text</p><p> INTO :ls_text</p><p> FROM tb_menu</p><p> WHERE id=:li_id;</p><p> tv_1.InsertItemLast(0,ls_
108、text,1) //從表格tb_menu中讀出選項(xiàng),寫入tv_1</p><p> NEXT //循環(huán)讀取下一條,直到讀取完成</p><p> 在左邊的數(shù)據(jù)窗口dw_1中選取了要更改的權(quán)限組名稱后,在右邊的樹(shù)視圖tv_1中選擇將要賦予這一權(quán)限組的權(quán)限,單擊保存按鈕cb_1保存設(shè)置;若對(duì)設(shè)置不滿意,也可以單擊取消按鈕cb_2放棄所作的修改
109、;完成后,單擊關(guān)閉按鈕cb_3關(guān)閉這個(gè)頁(yè)面。</p><p> 4.3.4、系統(tǒng)用戶的管理</p><p> 在添加了權(quán)限組并設(shè)置了權(quán)限后,就可以建立基于這個(gè)權(quán)限組的帳號(hào)了。“系統(tǒng)用戶管理”頁(yè)面w_user_manage的用途就是添加和維護(hù)系統(tǒng)用戶列表。它的主要控件包括兩個(gè)數(shù)據(jù)窗口(DataWindow)dw_1、dw_2,五個(gè)按鈕控件(CommandButton)cb_1、cb_2、
110、cb_3、cb_4、cb_5,界面布局見(jiàn)圖4.6。</p><p> 窗口的open事件定義為:</p><p> this.width=1550 //定義窗口的寬度</p><p> this.height=1500 //定義窗口的高度</p><p> dw_1.SetTrans(
111、SQLCA) </p><p> dw_1.Retrieve( ) //數(shù)據(jù)窗口讀取數(shù)據(jù)</p><p> cb_1.Setfocus( ) //設(shè)置cb_1(增加)按鈕為默認(rèn)按鈕</p><p> 在選中dw_1中的選項(xiàng)時(shí),dw_2也應(yīng)該顯示與dw_1相同的選項(xiàng),為了實(shí)現(xiàn)這一功能,應(yīng)在dw_1的itemfocu
112、schanged事件中寫下一下代碼:</p><p> dw_2.Scrolltorow( row)</p><p> 關(guān)于各個(gè)按鈕的clicked事件代碼,與前面所述的基本一致,只是增加了兩個(gè)數(shù)據(jù)窗口的聯(lián)動(dòng)功能。所以具體的代碼就不再詳細(xì)介紹了。</p><p> 4.4、人事管理功能的實(shí)現(xiàn)</p><p> 根據(jù)系統(tǒng)菜單的設(shè)計(jì),人事
113、管理包含三個(gè)子頁(yè)面:部門配置(圖4.7)、員工資料管理(圖4.9)、人事規(guī)章制度管理(圖4.8)。在這幾個(gè)頁(yè)面中,代碼的重復(fù)率較高,所以只以“員工資料管理”界面為例具體介紹功能的實(shí)現(xiàn),其界面見(jiàn)圖4.9所示。</p><p> 此窗口包括的主要有以下控件:一個(gè)數(shù)據(jù)窗口dw_1;五個(gè)靜態(tài)文本標(biāo)簽st_1、st_2、st_3、st_4、st_5;兩個(gè)文本編輯框sle_1、sle_2;三個(gè)下拉列表框ddlb_1、ddl
114、b_2、ddlb_3;五個(gè)按鈕控件:cb_1、cb_2、cb_3、cb_4、cb_5。</p><p> 窗口的open事件定義為:</p><p> this.width=3000</p><p> this.height=1700 //初始化窗口大小</p><p> dw_1.settransobj
115、ect(sqlca) //數(shù)據(jù)窗口讀取數(shù)據(jù)</p><p> dw_1.retrieve()</p><p> 在文本編輯框與下拉列表框中輸入檢索條件之后,點(diǎn)擊“檢索”按鈕,就可以查詢到相應(yīng)資料。</p><p> 按鈕cb_1(檢索)的clicked事件代碼為:</p><p> dw_1.setfilter("
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)(論文)---小區(qū)物業(yè)管理系統(tǒng)
- 小區(qū)物業(yè)管理系統(tǒng)畢業(yè)設(shè)計(jì)論文
- 小區(qū)物業(yè)管理系統(tǒng)畢業(yè)設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)論文 (2)小區(qū)物業(yè)管理系統(tǒng)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----小區(qū)物業(yè)管理系統(tǒng)
- 小區(qū)物業(yè)管理系統(tǒng)畢業(yè)設(shè)計(jì)
- 小區(qū)物業(yè)管理系統(tǒng)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--小區(qū)物業(yè)管理系統(tǒng)
- 畢業(yè)設(shè)計(jì)--小區(qū)物業(yè)管理系統(tǒng)
- 畢業(yè)設(shè)計(jì)----小區(qū)物業(yè)管理系統(tǒng)設(shè)計(jì)
- 小區(qū)物業(yè)管理系畢業(yè)設(shè)計(jì)論文
- 小區(qū)物業(yè)管理系統(tǒng)畢業(yè)設(shè)計(jì)論文開(kāi)題報(bào)告
- 小區(qū)物業(yè)管理系統(tǒng)畢業(yè)設(shè)計(jì)(論文)開(kāi)題報(bào)告
- 畢業(yè)設(shè)計(jì)(小區(qū)物業(yè)管理)
- vb畢業(yè)設(shè)計(jì)--小區(qū)物業(yè)管理系統(tǒng)
- java畢業(yè)設(shè)計(jì)--小區(qū)物業(yè)管理系統(tǒng)
- 畢業(yè)設(shè)計(jì)---xx小區(qū)物業(yè)管理系統(tǒng)
- 小區(qū)物業(yè)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)論文 小區(qū)物業(yè)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)論文小區(qū)物業(yè)管理系統(tǒng)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論