畢業(yè)設(shè)計(論文)-pb8.0小區(qū)物業(yè)管理系統(tǒng)設(shè)計_第1頁
已閱讀1頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  摘 要</b></p><p>  本論文描述了《小區(qū)物業(yè)管理系統(tǒng)》的設(shè)計與實現(xiàn)。</p><p>  本軟件的前臺設(shè)計由PowerBuilder 8.0實現(xiàn),后臺管理是由Adaptive Server Enterprise實現(xiàn)。利用Sybase Central用戶界面工具進(jìn)行數(shù)據(jù)庫的創(chuàng)建和管理。整個軟件系統(tǒng)基于客戶端/服務(wù)器模式,但

2、現(xiàn)階段只開發(fā)了單機版的軟件。</p><p>  本系統(tǒng)界面設(shè)計大方、簡潔、實用,操作簡單方便,是一款完全適合普通小區(qū)物業(yè)日常事務(wù)管理的軟件。軟件設(shè)計綜合了具有一定代表性的多家物業(yè)管理公司的業(yè)務(wù)模式和需求。能實現(xiàn)人事、房產(chǎn)、客戶、會所、設(shè)備、倉庫、保安、保潔、綠化、收費等小區(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)的開

9、發(fā)工具2</p><p>  1.1、開發(fā)軟件PowerBuilder8.02</p><p>  1.2、數(shù)據(jù)庫應(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è)計10</p><p>  3.1、小區(qū)物業(yè)管理系統(tǒng)的開發(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)用于存儲對象的庫(Library)的管理11</p><p>  3.6、小區(qū)物業(yè)管理系統(tǒng)數(shù)據(jù)庫的設(shè)計12</p><p>  第四章 小區(qū)物業(yè)管理系統(tǒng)的實現(xiàn)13</p><p>  4.1、主界面的建立13</p><p>  4.2、程序與數(shù)據(jù)庫的連接16</p><p>  4.3、系統(tǒng)

12、安全策略的實現(xiàn)17</p><p>  4.4、人事管理功能的實現(xiàn)24</p><p>  4.5、房產(chǎn)管理功能的實現(xiàn)26</p><p>  4.6.客戶管理功能的實現(xiàn)26</p><p>  4.7、會所管理功能的實現(xiàn)27</p><p>  4.8、設(shè)備管理功能的實現(xiàn)28</p><

13、;p>  4.9、倉庫管理功能的實現(xiàn)28</p><p>  4.10、保安管理功能的實現(xiàn)29</p><p>  4.11、保潔管理功能的實現(xiàn)29</p><p>  4.12、綠化管理功能的實現(xiàn)30</p><p>  4.13、收費管理功能的實現(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)的人工管理的模式,這對于規(guī)模較小的物業(yè)管理公司來說,是可以應(yīng)付日常的管理需要的。但是,隨著該行業(yè)競爭日益的激烈,提高物管的工作效率、為住戶提供更好的服務(wù),成為了物業(yè)管理公司當(dāng)前必須考慮的問題。而解決這些問題的途徑之一,就是將計算機引入

16、到管理機制中來。</p><p>  利用本軟件系統(tǒng),可以實現(xiàn)對人事、房產(chǎn)、客戶、會所、設(shè)備、倉庫、保安、保潔、綠化、收費等小區(qū)的智能化管理,為住戶提供更好的服務(wù)。對于這些資料,可以設(shè)置不同的權(quán)限,以限制不同級別的工作人員所訪問的內(nèi)容,這在一定的程度上保障了信息的安全性。</p><p>  在此軟件的設(shè)計過程中,我們調(diào)查了幾家具有代表性的物業(yè)管理公司的管理模式,并參考了多個專門的物業(yè)管理

17、軟件的功能設(shè)置。在此基礎(chǔ)上,編制出的軟件,就更具有了可用性和實用性,更貼近于真實的物管的需要。在此,向那些接受我們訪問的物業(yè)管理公司表示感謝。</p><p>  第一章 小區(qū)物業(yè)管理系統(tǒng)的開發(fā)工具</p><p>  1.1、開發(fā)軟件PowerBuilder8.0</p><p>  1.1.1、軟件簡介</p><p>  PowerB

18、uilder 是一種可視化的面向?qū)ο蟮目焖賾?yīng)用程序開發(fā)環(huán)境,它以其開放的體系結(jié)構(gòu),簡潔高效的集成開發(fā)環(huán)境,強大的數(shù)據(jù)窗口技術(shù),幾乎無所不能的數(shù)據(jù)庫訪問能力和友好的用戶界面,已成為client/server模式應(yīng)用和基于internet模式應(yīng)用最優(yōu)秀的開發(fā)工具之一。最新推出的8.0版更是通過諸多強大功能、創(chuàng)新特性以及與應(yīng)用服務(wù)器的無縫集成,提供了基于客戶機/服務(wù)器、web及多層結(jié)構(gòu)的快速環(huán)境。它已經(jīng)為許多數(shù)據(jù)庫應(yīng)用開發(fā)人員所熟悉和使用并獲

19、得了廣泛的好評。</p><p>  PowerBuilder 8 全面改進(jìn)了應(yīng)用程序開發(fā)環(huán)境,它提供了耳目一新的用戶界面增強了Web 功能數(shù)據(jù)窗口與EAServer ,更加緊密的集成功能提供了新的數(shù)據(jù)庫連接和訪問能力,進(jìn)一步提高了易用性。新增的PowerScript 新特性讓開發(fā)人員能夠更加直接方便簡單有效地控制應(yīng)用程序的錯誤從而開發(fā)出更加健壯的應(yīng)用程序。</p><p>  1.1.2

20、、PowerBuilder8.0的功能和特點</p><p>  1、專業(yè)的客戶/服務(wù)器開發(fā)工具</p><p>  客戶/服務(wù)器是一種將任務(wù)進(jìn)行分解,然后協(xié)同解決的計算模式??蛻舳说膽?yīng)用程序負(fù)責(zé)提出任務(wù)需求,服務(wù)器端的應(yīng)用程序則為客戶提供服務(wù),例如數(shù)據(jù)查詢、打印等。用PowerBuilder8.0開發(fā)出的應(yīng)用程序能夠與數(shù)據(jù)庫服務(wù)器完美地協(xié)同工作,構(gòu)成客戶/服務(wù)器計算模式</p>

21、;<p><b>  2、面向?qū)ο蟮木幊?lt;/b></p><p>  在PowerBuilder8.0中創(chuàng)建的窗口、菜單、數(shù)據(jù)窗口等都是對象。除了使用系統(tǒng)預(yù)先定義的對象外,開發(fā)人員可以自行構(gòu)造新的對象(稱作用戶對象),擴(kuò)展系統(tǒng)的預(yù)定義對象,將各種對象有機的組合起來就構(gòu)成了PowerBuilder應(yīng)用程序。</p><p>  3、支持多種關(guān)系數(shù)據(jù)庫管理系

22、統(tǒng)</p><p>  用PowerBuilder8.0開發(fā)的應(yīng)用程序可以同時訪問多個數(shù)據(jù)庫系統(tǒng)(關(guān)系見圖1.1),比如說,可以從Oracle中查詢數(shù)據(jù),然后將結(jié)果放入到Foxpro中。PowerBuilder8.0支持多種關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS),既包括注入Oracle、Sybase、Microsoft SQL Server、IBM DB2、Imformix等大型數(shù)據(jù)庫,也包括Xbase、Foxpro

23、、Paradox等個人數(shù)據(jù)庫。對大型數(shù)據(jù)庫來說,PowerBuilder提供了旨在充分發(fā)揮其性能的專用接口,而小型數(shù)據(jù)庫則可通過ODBC接口靈活的訪問。而且,PowerBuilder8.0本身帶有一個功能不凡的數(shù)據(jù)庫Sybase SQL Anywhere,利用它可以脫離網(wǎng)絡(luò)環(huá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)計圖分析方式。利用數(shù)據(jù)窗口,用戶可以直觀的查詢、修改、插入、刪除、打印、瀏覽數(shù)據(jù),而且,PowerBuilder的數(shù)據(jù)窗口還提供了組框?qū)ο蠛桶粹o對象,開發(fā)人員可以使用他們將數(shù)據(jù)窗口中的對象進(jìn)行分組,并且將用戶對數(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)計圖分析方式。利用數(shù)據(jù)窗口,用戶可以直觀的查詢、修改、插入、刪除、打印、瀏覽數(shù)據(jù),而且,PowerBuilder的數(shù)據(jù)窗口還提供了組框?qū)ο蠛桶粹o對象,開發(fā)人員可以使用他們將數(shù)據(jù)窗口中的對象進(jìn)行分組,并且將用戶

26、對數(shù)據(jù)窗口的操作界面集成在數(shù)據(jù)窗口內(nèi)部。</p><p>  6、靈活快捷的數(shù)據(jù)轉(zhuǎn)移方法</p><p>  利用PowerBuilder8.0的數(shù)據(jù)道,開發(fā)人員和應(yīng)用程序能夠簡單、方便、快捷地把數(shù)據(jù)庫表中的數(shù)據(jù)從一個表復(fù)制到另一個表、從一個數(shù)據(jù)庫復(fù)制到另一個數(shù)據(jù)庫、從一個DBMS復(fù)制到另一個DBMS。在復(fù)制表的過程中,除了復(fù)制表中的數(shù)據(jù)和表結(jié)構(gòu)外(當(dāng)然也可以更改表結(jié)構(gòu)),還可以復(fù)制相應(yīng)表

27、的擴(kuò)展屬性。</p><p>  7、功能強大的調(diào)試器和多種調(diào)試方法</p><p>  PowerBuilder8.0提供了一個全新的內(nèi)置調(diào)試器,利用它,開發(fā)人員能夠單步、斷點跟蹤應(yīng)用程序的執(zhí)行,并在中斷模式下查看或修改變量以及對象屬性的取值。除了常規(guī)的斷點設(shè)置方法外,開發(fā)人員還可以設(shè)置條件斷點和變量斷點,是應(yīng)用程序在某種條件下進(jìn)入中斷模式。除了內(nèi)置調(diào)試器外,開發(fā)人員還可以使用Power

28、Builder8.0的PBDEBUG功能跟蹤應(yīng)用程序,并把執(zhí)行過程記錄到運行日志中。另外,PowerBuilder8.0還提供了專門跟蹤嵌入式SQL語句的功能,從而可以找到與數(shù)據(jù)訪問相關(guān)的性能瓶頸問題。</p><p>  1.1.3、PowerBuilder8.0的開發(fā)環(huán)境</p><p>  PowerBuilder8.0開發(fā)環(huán)境由一系列集成的畫板(Painter)組成。所謂畫板實際上

29、就是完成一定功能的工具,比如窗口畫板用于定義窗口對象,用戶對象畫板定義用戶對象,數(shù)據(jù)窗口畫板定義數(shù)據(jù)窗口對象,庫畫板完成應(yīng)用庫的增、刪、改等,應(yīng)用開發(fā)人員通過簡單的鼠標(biāo)操作就能設(shè)計、建立、測試客戶/服務(wù)器應(yīng)用程序。PowerBuilder主窗口的界面如圖1.2所示。</p><p>  PowerBuilder8.0各畫板完成的工作是由眾多的畫板工具實現(xiàn)的,而畫板工具又包含了一些小工具。畫板、畫板工具和小工具的有

30、機組合構(gòu)成了PowerBuilder8.0強大而方便的應(yīng)用開發(fā)環(huán)境。</p><p>  1.1.4、PowerScript 編程語言</p><p>  雖然可視化編程為開發(fā)人員提供了極大的方便,但無論采用哪種編程工具開發(fā)應(yīng)用程序,編碼總是其中必不可少的步驟之一。PowerBuilder使用的編程語言為PowerScript,是一種高級的、結(jié)構(gòu)化的編程語言。PowerScript十分簡單

31、易學(xué),它的語言成份與大多數(shù)語言相似。PowerBuilder中事件處理程序、用戶自定義函數(shù)等都是使用PowerScript語言編寫的</p><p>  書寫PowerScript 程序時格式相當(dāng)自由,每一行中的空格、縮進(jìn)等均被編譯器忽略,利用這個特性,我們可以編寫出結(jié)構(gòu)清晰、易于閱讀和理解的應(yīng)用程序。</p><p>  PowerScript 與眾不同之處在于它提供了一套完整的嵌入式S

32、QL 語句,開發(fā)人員能夠像使用其他語言成分比如賦值語句那樣使用它們,而且需要的話也可以使用特定數(shù)據(jù)庫管理系統(tǒng)專用的SQL 語句,這就大大增強了程序操縱和訪問數(shù)據(jù)庫的能力。需要嵌入式SQL 語句時,無須逐字鍵入,你可以利用PowerBuilder 提供的可視化工具生成嵌入式SQL語句、然后把它粘貼到程序中。</p><p>  豐富的數(shù)據(jù)類型和眾多的函數(shù)進(jìn)一步提高了PowerBuilder 8.0 的適應(yīng)性和靈活性

33、。PowerScript 不僅支持常規(guī)的數(shù)據(jù)類型,同時也支持用于處理多媒體數(shù)據(jù)的二進(jìn)制大對象,當(dāng)然它也完全支持對象類型,在代碼編寫方面PowerBuilder 8 提供了許多增強功能,比如開發(fā)人員期待已久的自動代碼補充功能,編程窗口中的上下文相關(guān)幫助功能,終于在這個版本中實現(xiàn)了。新的例外處理語句給開發(fā)人員提供了處理例外錯誤的新途徑,此外PowerBuilder 8.0 還提供了拖放編寫代碼特性,進(jìn)一步提高了應(yīng)用程序的開發(fā)效率。總而言之熟

34、練地掌握PowerScript 語言是靈活高效地開發(fā)高質(zhì)量PowerBuilder 應(yīng)用程序的基本要求。</p><p>  1.1.5、SQL語言</p><p>  SQL語言英文全稱是Structure Query Language,意為結(jié)構(gòu)化查詢語言。SQL語言的主要功能就是同各種數(shù)據(jù)庫建立聯(lián)系,進(jìn)行溝通用來執(zhí)行各種各樣的操作,例如更新數(shù)據(jù)庫中的數(shù)據(jù)、從數(shù)據(jù)庫中提取數(shù)據(jù)等。SQL已

35、被ANSI(美國國家標(biāo)準(zhǔn)協(xié)會)和國際標(biāo)準(zhǔn)化組織(ISO)定為關(guān)系型數(shù)據(jù)庫語言的標(biāo)準(zhǔn)語言。目前絕大多數(shù)流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),如Oracle、Sybase、MicroSoft Sql Server、DB2等都遵循SQL語言標(biāo)準(zhǔn)。</p><p>  SQL語句有很多,功能齊全,大致可以分為四大類:</p><p>  數(shù)據(jù)定義:用于創(chuàng)建、刪除、修改數(shù)據(jù)中的各類對象,如CREATE、DRO

36、P、ALTER。</p><p>  數(shù)據(jù)查詢:對數(shù)據(jù)庫查詢檢索,命令有SELECT。</p><p>  數(shù)據(jù)更新:插入、更新、刪除數(shù)據(jù)庫,如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ù)庫應(yīng)用初步</p><p>  1.2.1、數(shù)據(jù)庫系統(tǒng)的發(fā)展</p><p>  數(shù)據(jù)庫系統(tǒng)是在文件系統(tǒng)的基礎(chǔ)上發(fā)展而來的,經(jīng)歷了層次數(shù)據(jù)庫→網(wǎng)狀數(shù)據(jù)庫→關(guān)系數(shù)據(jù)庫三個階段。由于關(guān)系數(shù)據(jù)庫采用人們比較容易理解和接受的二維表格來組織數(shù)據(jù),發(fā)展迅速,已成為數(shù)據(jù)庫產(chǎn)品的主流。</p><p>  1.2.2、基本概念</p&

38、gt;<p>  數(shù)據(jù)庫(DataBase,簡稱DB)是按一定組織方式存儲在計算機存儲器中、相互關(guān)聯(lián)的數(shù)據(jù)集合,數(shù)據(jù)庫的建立獨立于程序。所謂關(guān)系數(shù)據(jù)庫就是將數(shù)據(jù)表示為表的集合,通過建立簡單表之間的關(guān)系來定義結(jié)構(gòu)的一種數(shù)據(jù)庫。</p><p>  數(shù)據(jù)庫管理系統(tǒng)(DBMS)是一個管理數(shù)據(jù)庫的軟件系統(tǒng),為用戶提供了描述數(shù)據(jù)庫,操作數(shù)據(jù)庫和維護(hù)數(shù)據(jù)庫的方法和命令,并且能自動控制數(shù)據(jù)庫的安全以及數(shù)據(jù)完整。常

39、見數(shù)據(jù)庫管理系統(tǒng)有:Oracle、Sybase、MicroSoft SQL Server、IBM DB2等</p><p>  數(shù)據(jù)庫系統(tǒng)(DBS)是一個具有管理數(shù)據(jù)庫的計算機系統(tǒng),它包括應(yīng)用軟件、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(DBMS)、數(shù)據(jù)庫管理人員(DBA)幾部分。如今所講的數(shù)據(jù)庫編程一般就是指開發(fā)數(shù)據(jù)庫系統(tǒng),即通過編制數(shù)據(jù)庫應(yīng)用程序來操縱數(shù)據(jù)庫,實現(xiàn)數(shù)據(jù)有效管理。</p><p>  以

40、上三者的關(guān)系見圖1.3所示。</p><p>  表 一種按行與列排列的相關(guān)信息的邏輯組。</p><p>  字段 數(shù)據(jù)庫表中的每一列稱為一個字段。表結(jié)構(gòu)是由其包含的各種字段定義的,每個字段描述了它的一個屬性值。字段可包含各種字符、數(shù)字甚至圖形。</p><p>  記錄 存放在表中的行,被稱為記錄。一般說來,數(shù)據(jù)表中任意兩個記錄不能相同。</p>

41、<p>  鍵 表中的某個(或多個)字段,鍵可以是唯一的,也可以是非唯一的。唯一鍵可以制定為主鍵,用來唯一標(biāo)識表的每行。例如,在員工表中,員工號是表的主鍵,因為它唯一地標(biāo)識了一個員工。</p><p>  關(guān)系 數(shù)據(jù)庫可由多個表組成,表與表之間可以以不同的方式相互關(guān)聯(lián)。例如,員工數(shù)據(jù)庫還可以有一個包含某個員工其他信息的表,這些表通過員工號與員工表相關(guān)聯(lián)。</p><p>  1.

42、2.3、客戶機/服務(wù)器結(jié)構(gòu)</p><p>  客戶/服務(wù)器(clinet/server)是應(yīng)用非常廣泛的一種結(jié)構(gòu),主要是指將一個數(shù)據(jù)庫應(yīng)用系統(tǒng)分解為前臺的客戶端(或稱前端,應(yīng)用程序部分)和后臺的服務(wù)器部分,通過網(wǎng)絡(luò)連接應(yīng)用程序和服務(wù)器。</p><p>  客戶/服務(wù)器結(jié)構(gòu)和一般數(shù)據(jù)庫應(yīng)用的原理基本一致,只不過它將數(shù)據(jù)庫部分和應(yīng)用部分分離開來,并通過網(wǎng)絡(luò)連接。這種結(jié)構(gòu)的核心是客戶應(yīng)用程序

43、發(fā)送服務(wù)請求,一切由服務(wù)器完成,結(jié)果發(fā)回客戶應(yīng)用程序。而服務(wù)器所進(jìn)行的工作對客戶應(yīng)用程序是不可見的。</p><p>  客戶/服務(wù)器的典型結(jié)構(gòu)如圖1.4所示。</p><p><b>  第二章 需求分析</b></p><p>  2.1、小區(qū)管理的要求</p><p>  有效的管理住戶資料和員工資料,并保證其安

44、全性。</p><p>  自動安排日常的管理事務(wù)。</p><p>  及時處理住戶的意見,并做好記錄備案。</p><p>  合理的管理公司財產(chǎn),以達(dá)到更高的利用率。</p><p>  2.2、本小區(qū)管理系統(tǒng)的目標(biāo)</p><p>  確保準(zhǔn)確、可靠的小區(qū)管理,保證數(shù)據(jù)的安全性,一致性,完整性,提高效率,防止漏

45、洞。</p><p>  按照登陸賬號的不同給與用戶不同的權(quán)限。如:普通住戶guest對某些資料只有查詢權(quán)限,并無資格修改數(shù)據(jù);一般操作員opr能完全操作一部分的管理項目;而最高管理員admin就享有所有的權(quán)限。</p><p>  所有的管理記錄必須完整、準(zhǔn)確、報表及時,滿足普通住戶和管理員管理的要求。</p><p>  第三章 小區(qū)物業(yè)管理系統(tǒng)的設(shè)計<

46、/p><p>  3.1、小區(qū)物業(yè)管理系統(tǒng)的開發(fā)工具的確定</p><p>  本系統(tǒng)使用Powerbuilder作為系統(tǒng)界面的開發(fā)工具,Sybase作為數(shù)據(jù)庫后臺。其原因是:Powerbuilder強大的數(shù)據(jù)庫界面開發(fā)功能以及與Sybase天衣無縫的合作,能達(dá)到使用方便,穩(wěn)定性、安全性高的目的。</p><p>  3.2、小區(qū)物業(yè)管理系統(tǒng)的結(jié)構(gòu)圖</p>

47、<p>  小區(qū)管理者需要建立一個比較完善的系統(tǒng)來解決小區(qū)管理各方面的問題。</p><p>  首先我們使用Sybase建立一個數(shù)據(jù)庫,用來存儲所有的管理信息,包括:樓盤樓宇信息,工作人員信息,住戶信息,各種其他管理信息等。當(dāng)運行由Powerbuilder建立的數(shù)據(jù)庫前臺程序的時候,就會自動連接上后臺的數(shù)據(jù)庫。用戶就能通過前臺工具對后臺進(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>  登陸時,系統(tǒng)會根據(jù)不同的權(quán)限組給予用戶不同的權(quán)限,這個過程是通過功能的屏蔽來實現(xiàn)的,即使對應(yīng)帳號不能使用的功能的菜單不顯示。例如普通用戶登陸后,系統(tǒng)自動屏蔽管理功能,使之只有查詢的功能。</p><p>  而在使用中,能動態(tài)、快速的實現(xiàn)用戶的更

49、改。</p><p>  3.3.2、系統(tǒng)用戶的劃分</p><p>  在本系統(tǒng)中,初始狀態(tài)只有一個管理員權(quán)限組,管理員可以任意設(shè)置不同的權(quán)限組,并給予不同的權(quán)限,使之具有不同的功能。在一個權(quán)限組下,可以添加多個具有相同功能,但不同名字的帳號。這樣,就可以實現(xiàn)系統(tǒng)的多人的安全訪問。</p><p>  3.4、小區(qū)物業(yè)管理系統(tǒng)的功能</p><

50、p>  小區(qū)物業(yè)管理系統(tǒng)大致上需要系統(tǒng)管理、人事管理、房產(chǎn)管理、客戶管理、會所管理、設(shè)備管理、倉庫管理、保安管理、保潔管理、綠化管理、收費管理等幾個主要的功能。故本系統(tǒng)的模塊的劃分及功能如下:</p><p>  1、系統(tǒng)管理:對于帳號的管理,給予不同的帳號不同的權(quán)限,保證系統(tǒng)的安全性,并可由高權(quán)限的用戶隨意增加、刪除低一級的權(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、會所管理:管理小區(qū)的會員服務(wù)。</p><p>  6、設(shè)備管理:詳細(xì)記錄公司設(shè)備的情況,包括設(shè)備數(shù)目、種類,工作情

52、況,維修情況等。</p><p>  7、倉庫管理:管理小區(qū)倉庫的庫存數(shù)量、出入庫狀況等。</p><p>  8、保安管理:記錄并隨時查詢小區(qū)保安的安排,包括人手分配、保安設(shè)備的情況、班次等等。</p><p>  9、保潔管理:安排小區(qū)的保潔工作,并提供工作質(zhì)量和用具情況的查詢。</p><p>  10、綠化管理:包括小區(qū)住戶的戶外與室

53、內(nèi)綠化工作的安排和實現(xiàn)情況。</p><p>  11、收費管理:小區(qū)的各種費用,如保潔費等的收費管理。</p><p>  3.5、小區(qū)物業(yè)管理系統(tǒng)用于存儲對象的庫(Library)的管理</p><p>  在PowerScript目標(biāo)下工作時,建立的對象被存儲在與當(dāng)前應(yīng)用關(guān)聯(lián)的庫(*.pbl)里面。為了便于管理、使用和查找這些對象,我們將具有相關(guān)功能的對象保存

54、在一個庫文件中。根據(jù)3.5中的本管理系統(tǒng)的功能劃分,我們共建立了13個庫,具體庫名與功能的對應(yīng)關(guān)系,見表3.1所示。</p><p>  3.6、小區(qū)物業(yè)管理系統(tǒng)數(shù)據(jù)庫的設(shè)計</p><p>  在建立數(shù)據(jù)庫的時候,我們選用了Sybase ASE數(shù)據(jù)庫系統(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ù)庫(Database)上進(jìn)行讀寫的操作。所以,我們新建了本軟件的專用數(shù)據(jù)庫PMSRUN,在建立此數(shù)據(jù)庫之前,應(yīng)先建立這一數(shù)據(jù)庫所使用的數(shù)據(jù)庫設(shè)備(Database Devices),這里,我們將新建立的設(shè)備也命名為PMSRUN。在編制程序的時候,所創(chuàng)建的表格(table)都將建立在數(shù)據(jù)庫PMSRUN中。</p><p>  第四章 小區(qū)物業(yè)管理系統(tǒng)的實現(xiàn)</p>

56、<p>  4.1、主界面的建立</p><p>  4.1.1、建立主界面窗口</p><p>  本系統(tǒng)主界面作為其他所有打開窗口的父窗口,其類型應(yīng)該是多文檔的窗口(MDI)。其建立過程為:新建一個空白窗口,命名為w_main,將其WindowType屬性設(shè)置為mdihelp??;窗口的色彩以個人的喜好來定義;再建立主窗口的菜單m_main;將菜單與窗口關(guān)聯(lián),即設(shè)置主窗口w_

57、main的menuname屬性為m_main。主窗口的界面如圖4.1所示。</p><p>  4.1.2、主菜單的設(shè)計</p><p>  根據(jù)“3.5 小區(qū)物業(yè)管理系統(tǒng)功能”的劃分,我們設(shè)計的主菜單m_main包括了十二個菜單項,名稱分別為:系統(tǒng)、人事管理、房產(chǎn)管理、客戶管理、會所管理、設(shè)備管理、倉庫管理、保安管理、保潔管理、綠化管理、收費管理、窗口、幫助。每個菜單項下又包括自己的子菜

58、單項,詳細(xì)的設(shè)置見表4.1。</p><p>  為了實現(xiàn)菜單相應(yīng)的功能(打開相應(yīng)的子窗口),我們在對應(yīng)的菜單的單擊事件中寫入如下代碼:</p><p>  opensheet(windowname,w_main,0)</p><p>  其中,windowname為將要打開的窗口,w_main為主窗口的名稱。如,為了打開“權(quán)限組維護(hù)”窗口w_group_of_po

59、pedom,我們在菜單m_main.m_01.m_0101的單擊(clicked)事件中寫下如下代碼:</p><p>  opensheet(w_group_of_popedom,w_main,0)</p><p>  其余的窗口的打開,以此類推,不再贅述。</p><p>  為了管理已經(jīng)打開的窗口,在菜單項“窗口”中,有三個子菜單:“層疊窗口”、“按名稱排列”

60、、“排列圖標(biāo)”;它們的功能分別為:層疊所有已經(jīng)打開的窗口、按名字排列已經(jīng)打開的窗口、重新排列最小化的窗口圖標(biāo);它們實現(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ù)庫的連接</p><p>  4.2.1、數(shù)據(jù)庫中表格的建立</p><p>  根據(jù)本小區(qū)管理系統(tǒng)的功能劃分,共建立了44個表格,具體的數(shù)據(jù)字典因篇幅較大,將在附錄中詳細(xì)列出。</p><p>  4.2.2、程序與數(shù)據(jù)庫的連接</p><p>

62、  在應(yīng)用程序啟動之前,應(yīng)先打開數(shù)據(jù)庫PMSRUN,其做法,可以手動在Sybase Central中啟動,也可以設(shè)置為開機自動運行。</p><p>  為了使應(yīng)用程序能操作數(shù)據(jù)庫中的表(table),應(yīng)該在應(yīng)用程序的初始化階段建立與后臺數(shù)據(jù)庫的連接。連接的方法可以是使用數(shù)據(jù)庫描述文件,也可以直接在程序中編寫連接參數(shù)。在此程序中,因為只是用到一個數(shù)據(jù)庫,不會出現(xiàn)在運行過程中連接另外的數(shù)據(jù)庫的情況,隨意我們使用了在

63、程序中直接編寫連接參數(shù)的方法。</p><p>  本小區(qū)物業(yè)管理系統(tǒng)與數(shù)據(jù)庫的連接參數(shù),寫在程序的open時間中,其代碼是:</p><p>  SQLCA.DBMS = "SYC Adaptive Server Enterprise"</p><p>  SQLCA.Database = "PMSRUN" //說明

64、數(shù)據(jù)庫的名稱</p><p>  SQLCA.ServerName = "PMS" //說明運行數(shù)據(jù)庫后臺的計算機名</p><p>  SQLCA.LogId = "sa" //登陸數(shù)據(jù)庫的用戶名</p><p>  SQLCA.AutoCommit = False //關(guān)閉自動提交

65、功能</p><p>  connect; //連接數(shù)據(jù)庫</p><p>  if SQLCA.sqlCode<>0 then</p><p>  MessageBox("連接數(shù)據(jù)庫失敗!",SQLCA.sqlerrtext)</p><p>  Halt

66、 //若數(shù)據(jù)庫連接失敗,就中止程序的運行</p><p><b>  else</b></p><p>  open(w_log) //若數(shù)據(jù)庫連接成功,就打開登陸界面</p><p><b>  end if</b></p><p>  4.3、系統(tǒng)

67、安全策略的實現(xiàn)</p><p>  4.3.1、登陸界面的設(shè)定</p><p>  4.3.1.1、界面的布局</p><p>  為了區(qū)分不同的用戶,并賦予不同的權(quán)限,應(yīng)建立完善的登陸機制。</p><p>  在本系統(tǒng)中,登陸界面w_log是最先啟動的頁面,其窗口類型(windowtype)為響應(yīng)式窗口(response!)。它包含一個圖

68、片控件(picture)p_back,用于顯示背景畫面;兩個用于顯示用戶名和密碼字樣的靜態(tài)文本控件(staticText)st_ogin_user、st_password;兩個用于編輯用戶名和密碼的單行編輯框控件(singlelineedit)sle_login_user、sle_password;為了美觀,在這里使用了兩個靜態(tài)文本控件(staticText)st_ok、st_cancel來作為實現(xiàn)按鈕的作用,分別用于最輸入的確定和取消

69、。登陸界面的布局可以參看圖4.2。</p><p>  這是一個無邊框的頁面,是從美觀的角度來考慮的,為了實現(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、功能的實現(xiàn)</p><p>  為了傳遞參數(shù),定義了一個全局變量(Global Variables)gs_password用于保存登陸密碼,類型為字符串類型(String);還有一個實例變量(Instance Variables)Log_ti

73、me用于保存輸入密碼錯誤的次數(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語句讀取用戶密碼</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('警告','登錄帳號錯誤,你無權(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)','登錄帳號錯誤,請重新輸入帳號',StopSign!)

77、 //若帳號錯誤,則計數(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('警告','登錄密碼錯誤,你無權(quán)使用本系統(tǒng)

79、,本系統(tǒng)將關(guān)閉!',Exclamation!) //若計數(shù)器值為3,將強制關(guān)閉系統(tǒng)</p><p>  HALT close</p><p><b>  else</b></p><p>  Log_time++</p><p>  messagebox('物業(yè)管理系統(tǒng)','登錄密

80、碼錯誤,請重新輸入密碼',StopSign!) //若帳密碼錯誤,則計數(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)過程是:</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字段對應(yīng)的同一條中的password字段的值,并將之傳遞給全局變量gs_password。</p><p>  若第2步的查找不成功,即SQLCA.SQLCode不等于0,則說明登陸用戶名不存在,就顯示出錯提示“登錄帳號錯誤,請重新輸入帳號!”,并將計數(shù)器Log_time的值

83、加1。</p><p>  若第2步的查找成功,再比較gs_password的值與ls_password的值是否相同,若不相同,也顯示出錯提示“登錄密碼錯誤,請重新輸入密碼!”,并將計數(shù)器Log_time的值加1。</p><p>  若第4步的比較相同的話,就生成主界面,啟動過程完畢。</p><p>  在啟動過程中,一旦Log_time的值等于3,就強制關(guān)閉系

84、統(tǒng)的啟動過程,并依據(jù)條件,給出提示“登錄帳號錯誤,你無權(quán)使用本系統(tǒng),本系統(tǒng)將關(guān)閉!”或者“登錄密碼錯誤,你無權(quán)使用本系統(tǒng),本系統(tǒng)將關(guān)閉!”,以防止未經(jīng)授權(quán)的人員通過不斷的重試進(jìn)入系統(tǒng)。</p><p>  系統(tǒng)的錯誤提示可參考圖4.3。</p><p>  為了實現(xiàn)按下回車鍵時,也觸發(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)限的不同帳號,特建立了權(quán)限組的維護(hù)這一功能頁面。其頁面布局見圖4.4所示。</p><p>  該界面的控件包括:一個數(shù)據(jù)窗口(datawindow)dw_1,五個按鈕(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)格,色彩以個人喜好來設(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 //找一個不存在的ID號</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流水號</p><p>  dw_1.Setfocus() //設(shè)置焦點在數(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)前行號</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("錯誤!!!","數(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 //定義變量,用于記錄修改后沒有保存的行數(shù)</p><p>  int UpdateOrNot //定義變量,用于記錄是否修改</p><p>  MCount=dw_1.Modifiedcount() //讀取修改后沒有保存的行數(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) //若沒有修改過的數(shù)據(jù),直接關(guān)閉窗口</p><p><b>  end if</b></p><p&

104、gt;  4.3.3、權(quán)限的分配</p><p>  權(quán)限分配是針對于權(quán)限組來設(shè)定的,“權(quán)限分配”頁面的建立,就是為了實現(xiàn)這一功能。頁面布局詳見圖4.5。</p><p>  該界面的控件包括:一個數(shù)據(jù)窗口(datawindow)dw_1,三個按鈕(commandbutton)cb_1、cb_2、cb_3,一個樹視圖(TreeView)tv_1。數(shù)據(jù)窗口控件(datawindow)dw_1

105、的數(shù)據(jù)源是表格(table)tb_group。</p><p>  為了生成樹視圖tv_1中的選項,數(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中讀出選項,寫入tv_1</p><p>  NEXT //循環(huán)讀取下一條,直到讀取完成</p><p>  在左邊的數(shù)據(jù)窗口dw_1中選取了要更改的權(quán)限組名稱后,在右邊的樹視圖tv_1中選擇將要賦予這一權(quán)限組的權(quán)限,單擊保存按鈕cb_1保存設(shè)置;若對設(shè)置不滿意,也可以單擊取消按鈕cb_2放棄所作的修改

109、;完成后,單擊關(guān)閉按鈕cb_3關(guān)閉這個頁面。</p><p>  4.3.4、系統(tǒng)用戶的管理</p><p>  在添加了權(quán)限組并設(shè)置了權(quán)限后,就可以建立基于這個權(quán)限組的帳號了?!跋到y(tǒng)用戶管理”頁面w_user_manage的用途就是添加和維護(hù)系統(tǒng)用戶列表。它的主要控件包括兩個數(shù)據(jù)窗口(DataWindow)dw_1、dw_2,五個按鈕控件(CommandButton)cb_1、cb_2、

110、cb_3、cb_4、cb_5,界面布局見圖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中的選項時,dw_2也應(yīng)該顯示與dw_1相同的選項,為了實現(xiàn)這一功能,應(yīng)在dw_1的itemfocu

112、schanged事件中寫下一下代碼:</p><p>  dw_2.Scrolltorow( row)</p><p>  關(guān)于各個按鈕的clicked事件代碼,與前面所述的基本一致,只是增加了兩個數(shù)據(jù)窗口的聯(lián)動功能。所以具體的代碼就不再詳細(xì)介紹了。</p><p>  4.4、人事管理功能的實現(xiàn)</p><p>  根據(jù)系統(tǒng)菜單的設(shè)計,人事

113、管理包含三個子頁面:部門配置(圖4.7)、員工資料管理(圖4.9)、人事規(guī)章制度管理(圖4.8)。在這幾個頁面中,代碼的重復(fù)率較高,所以只以“員工資料管理”界面為例具體介紹功能的實現(xiàn),其界面見圖4.9所示。</p><p>  此窗口包括的主要有以下控件:一個數(shù)據(jù)窗口dw_1;五個靜態(tài)文本標(biāo)簽st_1、st_2、st_3、st_4、st_5;兩個文本編輯框sle_1、sle_2;三個下拉列表框ddlb_1、ddl

114、b_2、ddlb_3;五個按鈕控件: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>  在文本編輯框與下拉列表框中輸入檢索條件之后,點擊“檢索”按鈕,就可以查詢到相應(yīng)資料。</p><p>  按鈕cb_1(檢索)的clicked事件代碼為:</p><p>  dw_1.setfilter("

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論