




文檔簡介
1摘要隨著信息技術在管理上越來越深入而廣泛的應用,管理信息系統的實施在技術上已逐步成熟。管理信息系統是一個不斷發展的新型學科,企業要生存要發展,要高效率地把企業活動有機地組織起來,就必須加強企業管理,即加強對企業內部的各種資源(人、財、物等)的有效管理,建立與自身特點相適應的管理信息系統。本文介紹了在POWERBUIDER環境下采用“自上而下地總體規劃,自下而上地應用開發”的策略開發一個管理信息系統的過程。通過分析傳統的人工管理圖書館的不足,創建了一套行之有效的計算機管理圖書館的方案。文章詳細介紹了圖書管理信息系統的系統分析部分,包括可行性分析、組織機構分析、管理職能分析、業務流程分析、數據流程分析、數據字典、處理描述等等;系統設計部分主要介紹了系統功能設計和數據庫設計;系統實現部分列出了幾個主要的程序框圖,并附帶了一些主要的窗口和程序。本系統界面友好,操作簡單,比較實用。【關鍵字關鍵字關鍵字關鍵字】管理信息系統、圖書管理、POWERBUIDER應用。2ABSTRACTWITHMOREANDMOREWIDESPREADANDPROFOUNDAPPLICATIONOFINFORMATIONTECHNOLOGYINMANAGEMENT,THEIMPLEMNTOFMANAGEMENTINFORMATIONSYTEMHASBECOMEMATUREINTECHNOLOGYSTEPBYSTEPMANAGINGINFORMATIONSYTEMISANEWSUBJECTENTERPRISENEEDSEXISTENCEANDDEVELOPMENT,SOENTRPRISEACTIVITIESSHOULDBEORGANIZEDEFICENTLYANDORGANICALY,WHICHMEANSTIGHTENINGUPTHEENTRPRISEMANAGEMENTANDSTRENGTHENINGEFCTIVEMANAGEMENTOFANYRESOURCESTAF,FINANCE,PROPERTY,ETCINTERNALTHEENTRPRISE,ANDALSOESTABLISHINGAMANAGEMENTINFORMATIONSYTEMFITINGINWITHITSOWNCHARACTERISTICSTHISARTICLEINTRODUCESTHEDETAILEDPROCESOFEXPLORINGAMNAGEMENTINFORMATIONSYTEMUNDERTHEENVIRONMENTOFPOWERBUILDER,UTILZING“TOPBOTTOM”OVERALPLANANDASTRATEGYACORDINGTO“BOTTOMTOP”APPLICATIONANDEXPLOITAIONTHATISTOESTABLISHASETOFEFCTIVESCHEMEFORLIBRARYMANAGEMENTBYCOMPUTER,THROUGHANALYZINGDISADVANTAGESOFTRADITIONALIBRARYMANAGEMENTBYHUMANRESOURCESTHISARTICLEMPHASIZESONTHRESECTIONSTHESYTEMANALYSISECTIONOFLIBRARYMANAGEMENTINFORMATIONINCLUDESFEASIBLEANALYSI,ORGANIZINGORGANSANALYSI,MANAGEMENTFUNCTIONANALYSI,TECHNOLOGICALPROCESOFBUSINESANALYSI,TECHNOLOGICALPROCESOFDATANALYSI,DATADICTIONARY,DISPOSALDESCRIPTIONANDTHELIKETHESYTEMDESIGNSECTIONMAINLYFOCUSESONSYTEMFUNCTIONDESIGNANDDATABASEDESIGNANDTHESYTEMREALIZATIONSECTIONHASPROVIDEDSEVERALMJORPROGRAMCHARTS,TOGETHERWITHTHEMAINWINDOWSANDPROGRAMSTHISECONOMICALANDPRAGMTICSYTEMHASEXPLICTINTERFACE,WITHSIMPLEOPERATIONKEYWORDSMIS、LIBRARYMANAGEMENT、POWERBUILDERAPPLICATION3目錄一前言11MIS系統開發方法12IS系統開發過程2二系統需求分析41現行業務描述42現行系統存在問題的分析53解決方案61系統目標設計72系統功能分析83系統各功能模塊設計84數據流圖91數據庫需求分析132數據庫邏輯結構設計141POWERBUILDER開發工具簡介202POWERBUILDER8應用程序開發的基本步驟203編碼規范214創建祖先窗口和全局函數215應用程序對象APP_LIBRARAIN247補充說明48七結束語491一前言隨著人類社會的發展,人類對知識的需求也不斷地增長。在這種形勢下,書籍就漸漸地成為人們獲取并增長知識的主要途徑,而圖書館就自然而然地在人們的生活中占據了一定的位置,如何科學地管理圖書館不但關系到讀者求知的方便程度,也關系到圖書館的發展,因此,開發一套完善的圖書館管理系統就必不可少了。管理信息系統簡稱MIS是介于信息論,經濟管理理論,統計學與運籌學及計算機科學之間的一門邊緣性,綜合性,系統性的交叉科學,它是隨著管理科學,信息技術,計算機技術等的發展而產生和發展起來的。圖書館管理系統是典型的信息管理系統,其開發主要包括后臺數據庫的建立和維護以及前端的應用程序的開發兩個方面。對于前者要求建立數據的一致性和完整性,對于后者則要求應用程序功能的完備,易用等的特點。基于上述考慮本系統主要利用POWERBUILDER8作前端的應用開發工具,利用ADAPTIVESERVERANYWHERE7作為后臺的數據庫,利用WINDOWS作為系統平臺開發的圖書管理系統。另外本圖書館管理系統利用軟件工程化思想和方法,總體上是采用結構化生命法進行系統分析和設計的,而系統實現等步驟則采用了原型法和面對對象的方法。1MIS系統開發方法系統開發方法系統開發方法系統開發方法管理信息系統的開發方法有生命周期法、原型法和面向對象的開發方法等生命周期法(LIFECYCLEMTHOD)是20世紀60年代發展起來的一種應用廣泛且比較成熟的管理系統開發方法,它的基本思想是將系統的開發工作從開始到結束劃分為若干個階段,每個階段都有明確的任務,而系統開發出來后,并不意味著生2命周期的結束,而意味著根據組織的需要對系統的修改和重建的開始。原型法PROTYPINGMETHOD是20世紀80年代發展起來的,旨在改變生命周期法的缺點的一種系統開發方法,該法的開發思路是首先根據用戶的要求,由用戶和開發者共同確定系統的基本要求和主要功能,利用系統快速生成工具,建立一個系統模型,再在此基礎上與用戶交流,將模型不斷補充、修改、完善,如此反復,最終直至用戶和開發者都比較滿意為止,從而形成一個相對穩定、較為理想的管理信息系統。面向對象(OBJECTORIENTED)的開發方法于20世紀80年代開始興起的,是一種基于問題對象的自底向上的一種系統開發方法,這種方法的特點是以對象為基礎,對象是分析問題和解決問題的核心。2MIS系統開發過程系統開發過程系統開發過程系統開發過程一個MIS系統的開發過程一般包括如下幾個步驟(1)需求分析需求分析主要是了解用戶的需求。需求了解得越詳細,程序的后期開發與維護費用就會越少。一般的開發團隊中,需求分析都是由資歷較深的系統分析員或項目經理擔當,可見它的重要性。需求分析制訂好后,需要反復修改。將最后的結果交給用戶審定,確認無誤后,由系統分析員完成需求分析文檔,再開始下一步工作。(2)概要設計概要設計緊跟在需求分析之后。用戶需求明確后,將得到的數據分析后,開始構建數據庫的邏輯結構。此時,數據庫中的表格還未成形,通過各種分析工具(如POWERDESIGNER等)畫出數據流圖,最后就可抽象出數據庫的具體表結構。這時由系統分析人員反復審核。確認所有的需求都考慮在內,沒有遺漏后,就可以開始制訂概要設計文檔。概要設計文檔形成后,整個程序的邏輯框架也就形成了。(3)詳細設計概要設計完成后,根據設計中制訂的業務模塊。就可以進行詳細分析設計了。詳細設計就是將各個業務模塊的窗口全部建好,各3個窗口控件的處理代碼全部用語言表達出。所以詳細設計是整個系統中最繁瑣的環節。詳細設計完成后,整個程序就確定了,再由編程人員根據詳細設計文檔將代碼完成。整個開發工作就宣告結束。1程序編碼程序編碼相對于其他環節來說比較簡單,程序員只需要根據詳細分析文檔寫程序編碼,保證代碼沒有錯誤即可。程序編碼需要注意的是整個程序書寫中命名的規范化與編程風格的規范化,這需要較長時間的培養來形成。需要在不斷的實踐中形成自己獨特的風格。總的來說,不要過分地追求復雜的算法,因為那可能會導致后期維護人員無法讀懂你的代碼而造成維護的困難。(4)測試程序編碼完成后,就需要測試。測試有幾種類型,主要是測試代碼有無邏輯錯誤以及在加載數據環境下程序的穩定性問題。測試工作中發現的錯誤應及時改正,然后將它記錄到測試文檔中。(5)打包測試完成,確認無誤后。程序就可以打包發行了。打包一般使用工具如PWISE等。以上是一個完整的MIS系統開發過程,其實不僅MIS系統,其他類型的程序開發也基本相同。4二系統需求分析整個軟件生命周期中,開發所占的費用和時間都很小。后期維護工作一般要占整個軟件生命周期的80以上。所以系統分析很重要,一個好的系統分析可以減少很多后期維護工作。1現行業務描述下面以一所學校的圖書館為例子進行分析,畫出圖書館的組織結構圖如下圖21該圖書館各個部門負責的主要業務如下(1)采編組主要負責圖書采編工作,包括購置新書、打印編目、增加數量。(2)目錄廳主要負責讀者查詢工作,包括可借圖書(按圖書類別、圖書名稱或圖書作者查詢);新書目錄(按圖書類別、日期查詢)。(3)借閱組主要負責圖書流通、查詢統計、借閱查詢等工作。(4)閱覽室、工具書室主要負責讀者閱覽工作,包括閱覽各種雜志、館長采編組書庫閱覽室工具書室目錄廳借閱室5報紙、閱覽各種工具書。下面繪制出圖書館流通業務中借書的流程圖(1)讀者在目錄廳查閱索引卡;(2)讀者寫出所借圖書的分類號、種次號、交給圖書管理員,并出示本人的借書證;(3)圖書管理員根據圖書的分類號、種次號到書庫找書;(4)將圖書交給讀者,并由讀者填寫所借圖書的借書卡。(5)圖書管理員把借書卡保存到寫有該讀者借書證號的口袋里。得出該圖書館業務流程圖如下所示圖222現行系統存在問題的分析該圖書館工作大部分還是進行著手工管理,工作起來效率很低,由于不可避免的人為因素,經常造成數據的遺漏、誤報。計算機信息化管理有著儲存信息量大、速度快等許多優點,提供給我們的處理信息及時快捷,6同時也提高了我們工作人員的自身素質。3解決方案基于以上的對問題的分析,利用計算機給我們提供信息,及時地調整學校圖書館圖書結構,并且對學生們的借閱過程形成一整套動態的管理就十分必要了。圖書館信息系統的建立,需要進行用戶的需求調查與分析,以確定系統目標,提出解決問題的詳細方案,這是系統建設的重要環節。學校圖書館規模相對于商業圖書館小,但要有著完善的圖書信息,對每一冊書要有詳細的記錄信息,功能上對系統的需求是全面的。因此對用戶的需求可分為四個方面一方面是圖書館工作人員通過計算機來管理各類圖書,分類編號,調整圖書結構,增加圖書庫存,適應學生的需求;二方面是學生們能通過計算機來查詢瀏覽圖書館中的圖書,來確定自己需要的書籍,為借閱做好準備;三方面是工作人員對學生們的借書證發放;四方面也是圖書館的核心工作,對圖書的借閱管理。這四個方面形成了學校圖書館一個工作整體,采用計算機自動化信息處理,可方便快捷地共享信息、交流信息,高效地協同工作。在軟、硬件方面對系統的需求,軟件要求易學,界面友好,容易掌握,可以很簡單方便的管理各種圖書信息。硬件的配置要求不能太高,這樣可以很好的適應當前的學校圖書館。在開發方式上對系統的需求,由于學校圖書館是一種無商業利益的,所以系統設計開發的周期要短,在短時間內完成,減少開發成本,提高開發效率,方便、簡單、實用作為系統開發的指導思想。7三系統總體結構設計如果要完成一個完整的圖書管理系統,需要的相關信息很多。由于種種條件的限制,同時考慮到開發成本,所以本系統僅實現基本的管理功能。并不能完全滿足上面例子所描述的圖書館,使用前應進行二次開發。1系統目標設計系統開發的總目標是實現內部圖書借閱管理的系統化、規范化和自動化。能夠對圖書進行注冊登記,也就是將圖書的基本信息(如書名、作者、價格等)預先存入數據庫中,供以后檢索。能夠對借閱人進行注冊登記,包括記錄借閱人的姓名、地址、電話等信息。提供方便的查詢方法。如以書名、作者、出版社、出版時間(確切的時間、時間段、某一時間之前、某一時間之后)等信息進行圖書檢索,并能反映出圖書的借閱情況;以借閱人編號對借閱人信息進行檢索;以出版社名稱查詢出版社聯系方式信息。提供統計分析功能。可以展現出圖書類型比例、庫存與借出比例。提供舊書銷毀功能,對于淘汰、損壞、丟失的書目可及時對數據庫進行修改。能夠對使用該管理系統的用戶進行管理,按照不同的工作職能提供不同的功能授權。提供較為完善的差錯控制與友好的用戶界面,盡量避免誤操作。82系統功能分析根據以上功能,將圖書管理系統的數據分為數據輸入部分主要包括圖書基本信息的錄入、借閱人基本信息的錄入、用戶基本信息的錄入。數據輸出部分主要是各種統計查詢,包括根據圖書信息(如書名、作者、出版社等)查閱圖書及其借閱信息、統計輸出圖書類型比例等。數據處理部分主要涉及借閱和歸還的處理,如一本書借出后,必須在數據庫中將該書標記為已借出,以防出現數據庫中有書但圖書館無書的情況;一本書歸還后,同樣必須在數據庫中將其標記為已經歸還,以便再次借出。3系統各功能模塊設計在系統功能分析的基礎上,考慮POWERBUILDER程序編制的特點,得到如圖所示的系統功能模塊圖圖31圖書借閱管理系統數據輸入子系統數據輸出子系統數據管理子系統94數據流圖(1)圖書基本信息登記/修改圖32說明出版社信息人工錄入后,存放在出版社信息庫中,便于今后書籍信息的錄入以及出版社信息的查詢。分類信息由圖書館進行分類定制,存放在圖書分類信息庫中,用于圖書的分類管理。登記新書時,當涉及到出版社和分類的填寫時,只需做相應的選擇即可,并存放在圖書信息庫中。(2)借閱人基本信息登記/修改圖3圖書信息出版社信息庫圖書分類信息庫出版社信息分類信息得到完整的圖書信息圖書信息庫借閱人基本信息借閱人信息庫10說明錄入借閱人基本信息后存放在借閱人信息庫中。(3)圖書查詢圖34說明輸入查詢條件后,檢索圖書信息庫,并反應出查詢結果。(4)圖書統計圖35說明根據選擇的統計條件,檢索圖書分類信息庫或圖書信息庫,并反應出統計結果。查詢條件圖書信息庫信息查詢圖書查詢結果統計條件圖書分類信息庫信息統計圖書統計結果圖書信息庫15圖書借閱圖36說明輸入借閱人編號,通過檢索借閱人信息庫,核實借閱人身份。輸入圖書編號,通過檢索圖書信息庫,核實圖書信息。進行圖書借出處理后,在圖書借閱庫中進行登記,并將借出圖書的在借標志設為“是”。(6)圖書歸還圖37借閱人編號借閱人信息庫借閱人信息認證圖書信息庫圖書借出處理圖書編號圖書信息認證在借信息庫圖書在借狀態修改在借圖書編號圖書信息庫借閱人信息庫在借信息庫圖書歸還處理圖書在借狀態修改在借信息庫修改12說明輸入圖書編號,檢索在借信息庫,反應出圖輸借閱情況。進行歸還操作后,修改在借信息庫中相關條目,同時在圖書信息庫中修改相關圖書在借標志為“否13四數據庫設計數據庫的設計是MIS系統的核心部分,設計數據庫,首先要進行需求分析,然后進行數據庫的概念結構設計、邏輯結構設計、數據庫結構實現等步驟。1數據庫需求分析根據以上的需求分析和數據組織,開始設計數據結構,即根據需求勾畫出實體/關系圖(E/R)。在概念上,E/R圖代表的是系統需要的數據及其這些數據之間的關系。如圖所示的實體/關系圖圖41從圖中可以看出,在這個系統中實際存在的實體圖書和借閱人,其中借閱人和圖書是多對多關系,針對本系統,通過對圖書借閱管理的內容和數據流程分析,設計數據項和數據結構如下(1)圖書基本信息,其數據項有圖書編號、圖書名稱、作者、出版社等。(2)借閱人基本信息,其數據項有借閱人編號、借閱人姓名、電話等。(3)圖書借閱登記,其數據項有借閱序號、借閱圖書編號、借閱人借閱人MEMBER圖書基本信息(BOK)圖書借閱登記(BOKLOAN)14編號等。為了實現圖書信息錄入的方便性與規范性以及相關的統計功能,還應增加出版社信息與圖書分類信息(4)出版社信息,其數據項有出版社編號、出版社名稱、地址、電話、傳真等。(5)圖書分類信息,其數據項有分類編號、分類名稱、同一類型圖書數目。同時針對于本系統的多用戶使用特點,增加用戶信息表(6)用戶信息表,其數據項有用戶名、密碼、用戶權限。為了實現圖書借閱超期罰款制度,還應增設罰金規則表(7)罰金規則表,其數據項包括免費使用天數、罰金費率、規則啟用開關。2數據庫邏輯結構設計數據庫設計有幾個范式,一般我們要做到的是第三范式,即數據表中沒有冗余字段以及同一個表中的字段沒有函數依賴關系,冗余字段即在一個表中已經保存過的信息,在另一個表中就不應該存在,如果需要的話,可以通過表間的關聯來得到,函數依賴性就是一個表中的字段間不應該有計算關系,如一個表中有單價字段、數量字段,就不應該有一個總金額字段。如果程序運行過程中需要總金額,可以實時計算。不過在一些較常用的表中,我們可以適當地保留冗余字段,這樣,在程序運行過程中可以減少由于表間互相關聯而使用速度降低等問題。這就是所謂的第四范式。數據表設計時,最好不要使用用戶輸入的信息作為主鍵,每一個數據表自己定義一個主鍵,添加信息是由程序自動添加,這樣就可以減少數據更新時產生的錯誤。表與表相關聯的外鍵最好是由程序自動生成的主鍵,這樣數15據庫就比較規范了。另外,數據表設計時一般都應該有一些標志字段,標志字段可以定義成CHAR1或BIT型。建議實際應用中定義成CHAR1字段可以存儲多種可能的狀態,在最初設計時,可能我們沒有考慮到的一些情況,在程序后來的開發中,可以通過設計標志字段為不同的值來解決,這樣就避免了修改數據庫結構。數據庫初期設計時一定要謹慎,把所有可能的情況都考慮進去,即使當時沒有用到,也要將它留在數據庫中作為備用字段以便將來擴充。程序一旦開始編碼,就應該盡量避免再修改數據庫。因為如果數據庫結構一旦改變,所有與修改的數據表相關的業務都有可能受到影響,而某些影響還很難看到,這樣就容易形成一個惡性循環。錯誤越改越多,越改越亂,最終導致程序的失敗。PB的數據窗口與其他語言的數據控件不一樣,它的很多東西是預編譯的。即使你一個模塊已經調試無誤,但只要數據庫結構改動。相應的模塊就一定要重新修改,否則一定會出問題。圖書借閱管理系統數據庫中各個表的設計結果如下面幾個表格所示。每個表格表示為數據庫中的一個表。借閱人基本信息表MEMBERINFO說明記錄借閱人的基本情況,MEBERID設為主鍵、索引。表41列名數據類型長度可否為空注釋MEMBERIDCHAR10NOTNULL借閱人編號MEMBERNAMECHAR10NULL借閱人姓名IDVARCHAR20NULL身份證號ADDCHAR50NULL聯系地址PHONECHAR20NULL聯系電話16MOBILECHAR20NULL移動電話用戶基本信息表PEOPLE說明記錄系統用戶的用戶名、密碼與權限,NAME設為主鍵。表42列名數據類型長度可否為空注釋NAMECHAR10NOTNULL用戶名PASSWORDCHAR10NOTNULL密碼LEVELCHAR1NOTNULL權限圖書基本信息表BOOKINFO說明記錄圖書基本信息,BOKID設為主鍵、索引。表43列名數據類型長度可否為空注釋BOOKIDCHAR10NOTNULL圖書編號ISBNCHAR30NULL圖書ISBNCLASSNAMECHAR20NULL圖書類型TITLECHAR40NULL圖書名稱PUBLISHDATEDATENULL出版日期AUTHORCHAR20NULL作者WORDSINTNULL字數(千字)PUBCHAR30NULL出版社PRICENUMERIC194NULL價格DISKCHAR1NULL附帶光盤KEYWORDCHAR30NULL關鍵詞NUMBERINTNULL存放代碼ABSTRACTVARCHAR100NULL摘要BOOKONLOANCHAR1NULL圖書在借標志17Y在借N未借出版社基本信息表PUBLISHINFO說明記錄出版社信息,PUBID設為主鍵。表4列名數據類型長度可否為空注釋PUBIDCHAR4NOTNULL出版社編號PUBCHAR30NULL出版社名稱ADDCHAR50NULL聯系地址ZIPCHAR6NULL郵政編碼TELCHAR16NULL聯系電話FAXCHAR16NULL傳真HTTPCHAR16NULL網址分類信息表BOOKCLASS說明記錄定制的分類情況,CLASID設為主鍵。表45列名數據類型長度可否為空注釋CLASSIDCHAR2NOTNULL分類編號CLASSNAMECHAR20NULL分類名稱NUMBERINTNULL數目借閱情況信息表LOAN說明進行借閱的登記,LOANID設為主鍵、自動增長。表46列名數據類型長度可否為空注釋LOANIDINTNOTNUL借閱序號BOKIDCHAR10NOTNUL圖書編號18MEBERIDCHAR10NOTNUL借閱人編號LOANDATEDATENUL借閱日期規則信息表REGULAR說明記錄設置的借閱規則,DAYS設為主鍵。表47列名數據類型長度可否為空注釋DAYSINT4NOTNUL免費借閱天數FINEDEC52NUL罰金標準FLAGCHAR1NUL規則開關(1)規劃有效的索引A在組合表的列中創建索引,包括主關鍵字和外部關鍵字所在的列。B在列或類組合中創建唯一的索引能增強唯一性。C瀏覽索引并卸載不使用的索引。索引需要一定硬盤空間和時間來維護。具有較高數據插入操作頻率的數據庫最好不要索引。有較高讀操作頻率的數據庫應該有更多的索引。D避免在簇索引中包括不必要的列。在可能的情況下,使用較小的數據類型,例如用VARCHAR替代CHAR。E考慮使用簇索引來支持排序和范圍化查詢。在為數據檢索優化表時,簇索引必須支持數據的分組索引。為簇關鍵字選擇列或列組,簇關鍵字以經常需要的順序排序數據或以必須被一起訪問的記錄而分組記錄。F創建支持一般查詢的查找參數索引。具有高選擇性的列是索引的最好候選列。具有高密度的列是索引糟糕的候選列。(2)使用約束實現數據的完整性PRIMARYKEY約束在表中定義了主關鍵字,它是行唯一的標識符,它可以強制實體完整性。在使用PRIMARYKEY約束時考慮以下19事實A每個表只能有一個PRIMARYKEY約束。B鍵入的值必須是唯一的。C不允許有空值。DPRIMARYKEY約束在指定的列創建唯一的索引,可以指定簇索引和非簇索引(如果非簇索引先前并不存在,簇索引是默認的)。UNIQUE約束指定,在一列中的兩行不能有相同的值。該約束使用唯一的索引來強制實體的完整性。在已有一個主關鍵字時UNIQUE約束很有用,例如雇員號,但是必須保證其他標識符(例如,雇員駕駛證號)也是唯一的。在使用UNIQUE約束時,考慮以下事實;A允許有空值。B在一個表中可以設置多個UNIQUE約束。C可以將UNIQUE約束運用于具有唯一值的單列或多列,但不能用于表的主關鍵字。D通過在指定的列或列組中創建唯一的索引,可以使UNIQUE索引得到強制20五圖書管理系統的具體實現1POWERBUILDER開發工具簡介POWERBUILDER是目前開發CLIENT/SERVER結構的應用系統的主要工具之一。POWERBUILDER80在繼承與發展以前版本優秀功能的基礎上,為適應網絡應用程序的開發要求集成了ENTERPISEAPLICATIONSTUDIO中POWERBUILDER以及POWERSITE的功能,在傳統數據庫開發的基礎上,將WEB應用更好地集成到POWERBUILDER中。POWERBUILDER全面支持面向對象編程。是功能強大并易于使用的第4代編程語言4GL,它內置了包括數據窗口在內的多種對象類,可以方便地訪問數據庫。相對于其他應用工具,POWERBUILDER具有工作效率高、成本低、質量高、功能強的特點。2POWERBUILDER8應用程序開發的基本步驟我們要開發應用程序時,首先要對它進行分析。無論哪種、哪方面的應用程序,都要先建立一個應用對象。下面我們介紹以下POWERBUILDER8應用程序開發的基本步驟(1)首先要建立應用對象。(2)創建窗口。在窗口里放置各種控件和編寫事件響應的腳本。(3)創建菜單。窗口里的菜單可包括菜單條,下拉式菜單,級聯菜單和彈出式菜單為菜單編寫事件響應的腳本。(4)創建用戶對象。如果想要重復使用某個控件的功能,可以把窗口上經常放置的控件定義為用戶對象。(5)創建數據窗口。數據窗口可以檢索數據庫中的數據,可以建立21各種報或統計表,可以修改數據庫。(6)創建函數、結構、事件。為了能夠更好地支持腳本,編寫自定義的函數,定義結構類型變量,也可以為對象和控件定義自己的事件。(7)運行與調試。可以在開發環境中隨時運行應用程序,發現錯誤后,可以用調試工具進行調試。(8)當應用程序開發完畢后,可以把它編譯成可執行的文件,讓用戶比較容易地建立應用系統的運行環境。3編碼規范為了減少在軟件開發過程中的錯誤,在軟件開發過程中應該遵守一定的標準。給對象命名要有一定的規范,部件名稱可以達到40個字符,窗口的命名W_功能代碼_功能描述。數據窗口的命名DW_功能代碼_功能描述。菜單命名M_功能代碼_功能描述。標識符命名時,應該使標識符有一定的字面含義,有助于程序的調試和腳本的可讀性的提高。本系統中使用的命名規范為變量作用域變量類型”_”具有一定字面含義的名稱。例如LI_SELECTROW反映出的含義”L”代表是本地變量,是LOCAL的縮寫,”I”代表是INTEGER類型的變量,SELECTROW表示該變量是用來記錄一個行號的計數器。4創建祖先窗口和全局函數為充分利用PB的面向對象的特性。程序開發時一般創建幾個模板窗口。將功能窗口上的某些常用功能封裝在模板窗口中。然后將這些模板窗口作為祖先窗口。所有的子孫窗口都可以通過繼承的方法來生成。這樣就減少了代碼的書寫量。使得整個程序界面保持整齊。當修改祖先窗口時,所有的子孫窗口都會自動修改。所以,祖先窗口的確定要十分謹慎。2全局函數與局部函數的作用類似。唯一不同的是全局函數的作用域是整個程序周期。不論你在任何一個模塊的代碼中都可以調用它。所以我們可以把某些常用功能寫成全局函數。在程序的其他地方反復調用。41函數LEVELCHARACTERLEV功能介紹通過傳入的LEV值,將某些菜單項設為“非使能”,以限制某些功能的使用。LEV值即不同職責的權限(系統管理1、圖書管理2、借閱人管理3、借閱操作員4),從PEOPLE表中的LEVEL字段中讀取。代碼分析CHOOSECASELEVCASE“1“CASE“2“M_MAINM_借閱人管理ENABLEDFALSEM_MAINM_圖書租賃ENABLEDFALSEM_MAINM_系統菜單M_用戶管理ENABLEDFALSEM_MAINM_系統菜單M_借閱規則設置ENABLEDFALSEM_MAINM_系統菜單M_圖書信息設置ENABLEDFALSECASE“3“M_MAINM_圖書管理ENABLEDFALSEM_MAINM_圖書租賃ENABLEDFALSEM_MAINM_圖書查詢ENABLEDFALSEM_MAINM_統計資料ENABLEDFALSEM_MAINM_系統菜單M_用戶管理ENABLEDFALSEM_MAINM_系統菜單M_借閱規則設置ENABLEDFALSE23M_MAINM_系統菜單M_圖書信息設置ENABLEDFALSECASE“4“M_MAINM_圖書管理ENABLEDFALSEM_MAINM_借閱人管理ENABLEDFALSEM_MAINM_系統菜單M_用戶管理ENABLEDFALSEM_MAINM_系統菜單M_借閱規則設置ENABLEDFALSEM_MAINM_系統菜單M_圖書信息設置ENABLEDFALSEENDCHOOSE42函數COUNTDAYCOUNTDAYDATEDATE1,DATEDATE2功能介紹通過傳入的DATE1(起始日期)值與DATE2(結束日期)值,計算出中間相差的天數,返回值為INTEGER型。代碼分析INTDAYDAYINTEGERYEARDATE2INTEGERYEARDATE1365/提交事務CB_NEWSETFOCUS/“新增”按鈕獲得焦點ELSEROLLBACK/回滾事務MESSAGEBOX“系統提示“,“保存失敗請檢驗數據的正確性“DW_1SETCOLUMN1/數據窗口第一列獲得焦點DW_1SETFOCUSENDIFELSECB_NEWSETFOCUS/“新增”按鈕獲得焦點ENDIF30(5)舊書銷毀窗口W_DELBOOK圖54功能介紹刪除圖書信息。操作方法首先通過圖書編號檢索出圖書信息,然后點擊“銷毀”按鈕注銷圖書。代碼分析OPEN事件類同“新書入庫窗口W_NEWBOOK”“檢索”按鈕STRINGLS_BOOKID,LS_FILTERLS_BOOKIDSLE_BOOKIDTEXT/設置過濾條件DW_1SETFILTER“BOOKID“LS_BOOKID“/過濾數據DW_1FILTER/使“銷毀”按鈕可用CB_DELENABLEDTRUESLE_BOOKIDSETFOCUS“銷毀”按鈕LONGLI_ROWLI_ROWDW_1GETROW/得到當前行號IFLI_ROW0THEN/判斷是否有可刪除的行IFMESSAGEBOX刪除詢問,真的要注銷此書嗎31,QUESTION,YESNO,21THENDW_1DELETEROWLI_ROW/刪除行IFDW_1UPDATE0THEN/更新數據庫COMMITELSEROLLBACKMESSAGEBOX“錯誤提示“,“無法注銷“ENDIFLI_ROWDW_1GETROW/得到當前行IFLI_ROW0THEN/判斷是否有該“借閱人”MESSAGEBOX“系統提示“,“沒有此借閱人信息“SLE_MEMBERIDSETFOCUS/“借閱人編號”輸入框獲得焦點RETURNELSESLE_BOOKIDSETFOCUS/“圖書編號”輸入框獲得焦點SLE_MEMBERNAMETEXTLS_MEMBERNAME/顯示“”借閱人姓名ENDIF“圖書編號”輸入框MODIFIED事件STRINGLS_BOOKID,LS_TITLELS_BOOKIDTRIMTHISTEXT35SELECTTITLEINTOLS_TITLEFROMBOOKINFOWHEREBOOKIDLS_BOOKIDIFSQLCASQLCODE0THENMESSAGEBOX“系統提示“,“沒有此圖書信息“SLE_BOOKIDSETFOCUSRETURNELSESLE_TITLETEXTLS_TITLEENDIF“借閱”按鈕STRINGLS_BOOKID,LS_MEMBERID,LS_BOOKONLOANDATELDT_NOWDATELDT_NOWDATETODAY/獲得“當前日期”LS_BOOKIDTRIMSLE_BOOKIDTEXT/獲得“借閱人號”LS_MEMBERIDTRIMSLE_MEMBERIDTEXT/獲得“圖書編號”/強制輸入“借閱人號”與“圖書編號”IFLS_MEMBERID“ORISNULLLS_MEMBERIDTHENMESSAGEBOX“系統提示“,“請輸入借閱人編號“SLE_MEMBERIDSETFOCUSRETURNENDIFIFLS_BOOKID“ORISNULLLS_BOOKIDTHENMESSAGEBOX“系統提示“,“請輸入圖書編號“SLE_BOOKIDSETFOCUS36RETURNENDIF/根據“圖書編號”查詢圖書是否借出SELECTBOOKONLOANINTOLS_BOOKONLOANFROMBOOKINFOWHEREBOOKIDLS_BOOKIDIFLS_BOOKONLOAN“Y“THENMESSAGEBOX“系統提示“,“本書已經外借“SLE_BOOKIDSETFOCUSRETURNELSE/添加圖書借閱記錄INSERTINTOLOANBOOKID,MEMBERID,LOANDATEVALUESLS_BOOKID,LS_MEMBERID,LDT_NOWDATECOMMIT/設置該圖書為“借出”狀態UPDATEBOOKINFOSETBOOKONLOANYWHEREBOOKIDLS_BOOKIDCOMMITENDIF/“借閱人號”得到焦點,所有輸入框清空SLE_MEMBERIDSETFOCUSSLE_BOOKIDTEXT“SLE_TITLETEXT“SLE_MEMBERIDTEXT“SLE_MEMBERNAMETEXT“37“關閉”按鈕CLOSEPARENT(9)還書窗口W_RETURN圖58功能介紹歸還圖書操作方法輸入“圖書編號”,判斷后顯示出圖書名稱、借閱人編號、借閱人姓名。并根據是否啟用了“罰金制度”(在“罰金規則窗口”設置),決定是否計算罰金。代碼分析OPEN事件CHARLC_FLAG/查詢“規則”是否啟用,并表現出來SELCTFLAGINTOLC_FLAGFROMREGULARIFLC_FLAGYTHENSLE_FINENABLEDTRUETHISWIDTH1285THISHEIGHT1256“圖書編號”輸入框MODIFED事件STRINGLS_BOKID,LS_TILE,LS_MEBERID,LS_MEBERNAMEDATELD_ATE1,LD_ATE2INTLI_DAYSDECLD_FINE,LD_COUNTFINELD_ATE2TODAY/獲得當前日期LS_BOKIDTRIMTHISTEXT/獲得“圖書編號”/根據“圖書編號”查詢出“借閱日期”SELCTLOANDATEINTOLD_ATE1FROMLOAN38WHERBOKIDLS_BOKID/查詢“免費天數”、“罰金規定”SELCTDAYS,FINEINTOLI_DAYS,LD_FINEFROMREGULAR/計算罰金LD_COUNTFINECOUNTFINELI_DAYS,LD_FINE,COUNTDAYLD_ATE1,LD_ATE2/查詢“圖書名稱”SELCTTILEINTOLS_TILEFROMBOKINFOWHERBOKIDLS_BOKID/查詢“借閱人號”、“借閱人姓名”SELCTMEBERID,MEBERNAMEINTOLS_MEBERID,LS_MEBERNAMEFROMMEBERINFOWHERMEBERIDINSELCTMEBERIDFROMLOANWHERBOKIDLS_BOKIDIFSQLCASQLCODE0THENMESAGEBOX“系統提示“,沒有借閱信息“SLE_BOKIDSETFOCUSRETURNELSESLE_TILETEXTLS_TILESLE_MEBERIDTEXTLS_MEBERIDSLE_MEBERNAMETEXTLS_MEBERNAMEIFSLE_FINENABLEDTRUETHENSLE_FINETEXTSTRINGLD_COUNTFINEENDIF“歸還”按鈕STRINGLS_BOKID,LS_BOKONLOANLS_BOKIDSLE_BOKIDTEXTIFLS_BOKID“ORISNULLS_BOKIDTHENMESAGEBOX“系統提示“,請輸入圖書編號“SLE_BOKIDSETFOCUSRETURNELSE39SELCTBOKONLOANINTOLS_BOKONLOANFROMBOKINFOWHERBOKIDLS_BOKIDIFLS_BOKONLOAN“NTHENMESAGEBOX“系統提示“,本書已歸還“ELSEDELTELOANWHERBOKIDLS_BOKIDUPDATEBOKINFOSETBOKONLOANNWHERBOKIDLS_BOKIDCOMITENDIFENDIFSLE_BOKIDSETFOCUSSLE_BOKIDTEXT“SLE_TILETEXT“SLE_MEBERIDTEXT“SLE_MEBERNAMETEXT“SLE_FINETEXT“關閉”按鈕CLOSEPARENT(10)圖書查詢“按圖書標題查詢“窗口W_SEARCH_TILE“按作者姓名查詢”窗口W_SEARCH_AUTHOR“按出版社查詢”窗口W_SEARCH_PUB“按關鍵詞查詢”窗口W_SEARCH_KEYWORD“按ISBN號查詢”窗口W_SEARCH_ISBN“按出版日期某個階段查詢”窗口W_SEARCH_DATE_BETWEN“按出版日期某個日期查詢“窗口W_SEARCH_DATE_DATE“按出版日期某日期之前查詢”窗口W_SEARCH_DATE_BEFORE“按出版日期某日期之后查詢”窗口W_SEARCH_DATE_AFTER說明由于“按出版日期查詢”使用的是DATE型數據,所以分開闡述。其中,查詢條件為CHAR型40圖59說明屬于此類的查詢包括“按圖書標題查詢“、“按作者姓名查詢”、“按出版社查詢”“按關鍵詞查詢”、“按ISBN號查詢”。由于“按圖書標題查詢“窗口W_SEARCH_TILE為模板窗口,其他窗口都是繼承得來,所以僅分析這個窗口。功能介紹根據查詢條件,檢索出符合條件的數據操作方法輸入檢索條件,點擊“查詢”按鈕進行查詢,點擊“重置”按鈕重新輸入查詢條件。代碼分析OPEN事件DW_1SETRANSOBJECTSQLCATHISWIDTH361THISHEIGHT1096“查詢”按鈕STRINGLS_TILELS_TILETRIMSLE_FINDTEXTIFSLE_FINDTEXT“THENMESAGEBOX“提示信息“,請輸入“MIDST_1TEXT,4ELSELS_TILE“LS_TILE“/設置檢索條件DW_1RETRIEVLS_TILEENDIFSLE_FINDSETFOCUS“重置”按鈕SLE_FINDTEXT“SLE_FINDSETFOCUS數據窗口的數據源SQL語句SELCT“BOKINFO“BOKONLOAN“,41“BOKINFO“NUMBER“,“BOKINFO“TILE“,“BOKINFO“AUTHOR“,“BOKINFO“PUB“,“BOKINFO“PUBLISHDATE“,“BOKINFO“ISBN“,“BOKINFO“KEYWORDS“,“BOKINFO“ABSTRACT“FROM“BOKINFO“WHER“BOKINFO“TILE“LIKEQUERY/QUERY為查詢變量查詢條件為DATE型圖510說明屬于此類查詢的查詢包括“按出版日期某個階段查詢”、“按出版日期某個日期查詢“、“按出版日期某日期之前查詢”、“按出版日期某日期之后查詢”。我們將對“按出版日期某個階段查詢”窗口W_SEARCH_DATE_BETWEEN進行分析。功能介紹根據查詢條件,檢索出符合條件的數據操作方法輸入檢索條件,點擊“查詢”按鈕進行查詢,點擊“重置”按鈕重新輸入查詢條件。代碼分析42OPEN事件類同“按圖書標題查詢“窗口“查詢”按鈕DATEID_START,ID_ENDIFISDATEEM_DATETEXTTHENIFISDATEEM_DATE2TEXTTHENID_STARTDATEEM_DATETEXTID_ENDDATEEM_DATE2TEXTELSEMESSAGEBOX“數據錯誤“,“請重新輸入結束日期“EM_DATE2SETFOCUSRETURNENDIFELSEMESSAGEBOX“數據錯誤“,“請重新輸入開始日期“EM_DATESETFOCUSRETURNENDIFIFID_STARTID_ENDTHENMESSAGEBOX“數據錯誤“,“開始日期不能大于結束日期“ELSEDW_1RETRIEVEID_START,ID_ENDENDIFEM_DATESETFOCUS“重置”按鈕EM_DATETEXT“EM_DATE2TEXT“EM_DATESETFOCUS43數據窗口的數據源SQL語句SELECT“BOOKINFO“BOOKONLOAN“,“BOOKINFO“NUMBER“,“BOOKINFO“TITLE“,“BOOKINFO“AUTHOR“,“BOOKINFO“PUB“,“BOOKINFO“PUBLISHDATE“,“BOOKINFO“ISBN“,“BOOKINFO“KEYWORDS“,“BOOKINFO“ABSTRACT“FROM“BOOKINFO“WHERE“BOOKINFO“PUBLISHDATE“BETWEENDATE1ANDDATE2/DATE1與DATE2為查詢變量(1)統計窗口各類圖書比例窗口W_COUNT_BOOKTYPE、庫存/借出比例窗口W_COUNT_LOAN說明由于這兩個窗口大同小異,所以僅對W_COUNT_BOKTYPE進行說明。圖514功能介紹統計現有各類圖書比例,并以餅型圖顯示出來。數據窗口的數據源SQL語句SELECT“BOOKINFO“BOOKONLOAN“,COUNTFROM“BOOKINFO“GROUPBY“BOOKINFO“BOOKONLOAN“(12)用戶管理窗口W_PEOPLE圖512功能介紹添加、刪除、修改用戶信息。操作方法A添加用戶點擊“添加”按鈕,輸入用戶名、密碼、選擇等級,點擊“保存”B刪除用戶點擊欲刪除的用戶,點擊“刪除”按鈕C修改用戶修改用戶信息,點擊“保存”按紐代碼分析OPEN事件類同“新書入庫窗口W_NEWBOK”數據窗口ROWFOCUSCHANGED事件THISELCTROW0,FALSE/高亮顯示當前選中的行THISELCTROWCURENTROW,TRUE數據窗口CLICKED事件CB_DELENABLEDTRUE/點擊數據窗口后使“刪除”按鈕可用“增加”按紐類同“新書入庫窗口W_NEWBOK”45“保存”按紐類同“新書入庫窗口W_NEWBOK”“刪除”按紐類同“舊書銷毀窗口W_DELBOK”(13)圖書信息設置圖書分類設置窗口W_BOKCLAS、出版社信息窗口W_PUBINFO圖513功能介紹設置圖書分類信息與出版社信息,同時可以對出版社信息進行查詢說明設置“圖書分類信息”是為了今后統計現有圖書類型比例,設置“出版社信息”是為了今后查詢出版社信息,同時在“新書入庫”時方便相應項目的輸入(下拉DATAWINDOW)代碼分析略46(14)借閱規則設置窗口W_REGULAR圖514功能介紹設置罰金規則操作方法填寫“免費使用天數”、“罰金費率”,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新能源汽車的二次使用價值研究試題及答案
- 情商測試題及答案
- 2025年度企業安全生產知識競賽題庫及答案(共100題)
- 節拍變化與表情豐富試題及答案
- 會計筆試題目及答案大全
- 教師上崗考核試題及答案
- 工業互聯網平臺數字簽名技術在智能工廠中的能源管理報告
- 天然氣長輸管道建設社會穩定風險評估與風險評估報告編制指南更新報告
- 城市河道整治項目2025年社會穩定風險評估與風險評估能力提升報告
- 浙美版初中試題及答案
- 青年紀律教育課件:共青團紀律條例解讀與實踐
- 2025鄂爾多斯準格爾旗事業單位引進40名高層次人才和急需緊缺專業人才筆試備考試題及答案解析
- 銀行領導力培養試題及答案
- 中醫養生館運營方案中醫養生館策劃書
- 醫療社工筆試題及答案
- 新時期統戰知識課件
- 小學生眼保健操視頻課件
- 西藏參工參建管理制度
- 2024銀行春招招聘面試問答試題及答案
- 機械系統動力學試題及答案
- 電子商務大數據分析方法試題及答案
評論
0/150
提交評論