信息是管理上的一項極為重要的資源,管理工作的成敗取決于能否做出有效的決策,而決策的正確程度則在很大程度上取決于信息得質(zhì)量。所以能否有效的管理信息成為企業(yè)的首要問題,管理信息系統(tǒng)MIS在強調(diào)管理、強調(diào)信息的現(xiàn)代社會中越來越得到普及。
企業(yè)信息管理通常是比較復(fù)雜,由于各類信息繁多難歸集,利用計算機支持企業(yè)高效率完成企業(yè)信息管理,是適應(yīng)現(xiàn)代企業(yè)制度要求,推動企業(yè)信息管理走向科學(xué)化、社會化、規(guī)范化和自動化,從而提高企業(yè)信息管理效率。
本系統(tǒng)選用PowerBuilder軟件開發(fā)工具,PowerBuilder是一種高效的客戶/服務(wù)器模式以及分布式數(shù)據(jù)庫應(yīng)用程序的前端開發(fā)工具。利用此軟件完成了企業(yè)信息管理系統(tǒng)的物品管理功能、節(jié)目管理功能、客戶信息管理功能,完成了多種查詢模塊、增添模塊、刪除模塊、修改模塊等等。本系統(tǒng)的開發(fā)基本滿足企業(yè)信息管理的要求,用戶界面交友好,提供的信息豐富準(zhǔn)確,使管理工作的各環(huán)節(jié)能夠順利而有效的進行,具有良好的實用價值和可觀的發(fā)展前景,極大的提高了企業(yè)信息管理的效率,是企業(yè)的科學(xué)化、規(guī)范化管理、自動化的重要前提條件。
關(guān)鍵詞:管理信息系統(tǒng)MIS , 企業(yè)信息管理系統(tǒng) , PowerBuilder
數(shù)據(jù)庫
ABSTRACT
The information is an extremely important resources of the management,the success or failure that manages the work is decided by and can do a valid decision,but the right degree of the decision then to a large extent be decided by the information get quantity. So can effectively of management information become initial problem of the business enterprise, the management information system MIS get the universality more and more in emphasize manage, emphasize modern society of information.
The business enterprise information the management is usually more complicated, because each kind of information is numerous difficult return to gather, make use of the calculator support business enterprise high-efficiency complete the business enterprise information management, is to adapt the modern business enterprise system request, push the business enterprise information management alignment scientific, acculturate, the norm turns and automates, thus raising the business enterprise information management efficiency.
This system chooses to use the PowerBuilder software development tool, the PowerBuilder is a kind of efficiently of C/ S's mode and the distribute type database apply the head of the procedure development tool.Make use of this software completed the product management function, program management function, customer information management function of the business enterprise information management system, completing various search mold pieces, increasing the mold piece, deleting the mold piece and modifying an etc. of mold.This system develop basic satisfy the request of the business enterprise information management, the customer interface make friends good, the information for provide is abundant accurate, make each link of manage the work can carry on effectively smoothly, having the good practical worth and considerable development foreground, raising the efficiency of the business enterprise information management biggest, is business enterprise of scientific, the norm turn management, automation of important prior condition.
Keyword: MIS, TheBusinessEnterpriseInformationManagementSystem , PowerBuilder, Database
前 言
管理信息系統(tǒng)就是MIS(Management Information System),在強調(diào)管理,強調(diào)信息的現(xiàn)代社會中它變得越來越普及。MIS是一門新的學(xué)科,它跨越了若干個領(lǐng)域,比如管理科學(xué)、系統(tǒng)科學(xué),運籌學(xué)、統(tǒng)計學(xué)以及計算機科學(xué)。在這些學(xué)科的基礎(chǔ)上,形成信息收集和加工的方法,從而形成一個縱橫交織的系統(tǒng)。
企業(yè)信息管理系統(tǒng)是一種典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護以及前端應(yīng)用程序的開發(fā)兩個方面。對于前者要求建立起數(shù)據(jù)一致性和完整性強、數(shù)據(jù)安全性好的庫。而對于后者則要求應(yīng)用程序功能完備,易使用等特點。
全文共分4章節(jié),第1章“緒論”介紹了管理信息系統(tǒng)的發(fā)展與應(yīng)用,管理信息系統(tǒng)的特點及管理信息系統(tǒng)的開發(fā)方法與開發(fā)過程。并且簡單介紹了軟件開發(fā)工具Powerbuilder功能和優(yōu)勢。第2章“需求分析”通過對系統(tǒng)的詳細調(diào)查,針對系統(tǒng)的現(xiàn)狀以及系統(tǒng)現(xiàn)存的問題提出了系統(tǒng)的設(shè)計目標(biāo)及設(shè)計原則。通過對系統(tǒng)組織機構(gòu)的分析,業(yè)務(wù)流程和數(shù)據(jù)流程的分析,相應(yīng)畫出了組織機構(gòu)圖,系統(tǒng)業(yè)務(wù)流程圖和數(shù)據(jù)流程圖。第3章“系統(tǒng)設(shè)計”論述了概要設(shè)計的方法。按照此方法,在需求分析的基礎(chǔ)上,先設(shè)計出滿足用戶需求的各種實體,畫出各實體的E-R圖,然后繪制出實體之間的關(guān)系并對其優(yōu)化,以及做出界面設(shè)計。第4章“系統(tǒng)的運行”是本文的重點展示了系統(tǒng)的運行效果。它包括數(shù)據(jù)庫結(jié)構(gòu)的設(shè)計實現(xiàn);登錄窗口的設(shè)計實現(xiàn);主界面的設(shè)計實現(xiàn);設(shè)備代碼管理模塊等各功能模塊的設(shè)計。
本系統(tǒng)的開發(fā)基本滿足企業(yè)信息管理的要求,用戶界面交友好,提供的信息豐富準(zhǔn)確,使管理工作的各環(huán)節(jié)能夠順利而有效的進行,具有良好的實用價值和可觀的發(fā)展前景,極大的提高了企業(yè)信息管理的效率。
第一章 緒 論
1.1 管理信息系統(tǒng)概述
20世紀(jì),隨著全球經(jīng)濟的蓬勃發(fā)展,眾多經(jīng)濟學(xué)家紛紛提出了新的管理理論。20世紀(jì)50年代,西蒙提出管理依賴于信息和決策的思想。同時期的維納發(fā)表了控制論,他認為管理是一個控制過程。1958年,蓋爾寫道:“管理將以較低的成本得到及時準(zhǔn)確的信息,做到較好的控制。”這個時期,計算機開始用于會計工作,出現(xiàn)數(shù)據(jù)處理一詞。1970年,Walter T.Kennevan給剛剛出現(xiàn)的管理信息系統(tǒng)一詞下了一個定義:“以口頭或書面的形式,在合適的時間向經(jīng)理、職員以及外界人員提供過去的、現(xiàn)在的、預(yù)測未來的有關(guān)企業(yè)內(nèi)部及其環(huán)境的信息,以幫助他們進行決策。”在這個定義里強調(diào)了用信息支持決策,但并沒有強調(diào)用模型,沒有提到計算機的應(yīng)用。
1985年,管理信息系統(tǒng)的創(chuàng)始人,明尼蘇達大學(xué)的管理學(xué)教授Gordon Bedevils給了管理信息系統(tǒng)一個較完整的定義,即“管理信息系統(tǒng)是一個利用計算機軟硬件資源,手工作業(yè),分析、計劃、控制和決策模型以及數(shù)據(jù)庫的人-機系統(tǒng)。它能提供信息支持企業(yè)或組織的運行、管理和決策功能。”這個定義全面地說明了管理系統(tǒng)的目標(biāo)、功能和組成,而且反映了管理信息系統(tǒng)在當(dāng)時達到的水平。
1.1.1管理系統(tǒng)的發(fā)展歷史
管理信息系統(tǒng)在最初級階段是統(tǒng)計系統(tǒng),所研究的內(nèi)容是數(shù)量數(shù)據(jù)間表面的規(guī)律,它可以把數(shù)據(jù)分成較相關(guān)和較不相關(guān)的組,然后把數(shù)據(jù)轉(zhuǎn)換為信息。
第二階段是數(shù)據(jù)更新系統(tǒng),其典型代表是美國航空公司于20世紀(jì)50年代建成的SABRE預(yù)約訂票系統(tǒng)。它設(shè)有1008個訂票點,可以存取600000個旅客記錄和27000個飛行段記錄。它的操作比較復(fù)雜,在任何一“點”都可以查到某一航班是否有空座位。但從概念上來講,它只是一個數(shù)據(jù)更新系統(tǒng),比如它不能告訴你以現(xiàn)在的售票速度何時票將售完,從而采取補救措施。因而它也是管理信息系統(tǒng)的低級階段。
第三階段是狀態(tài)報告系統(tǒng),它可以分為生產(chǎn)狀態(tài)報告、服務(wù)狀態(tài)報告和研究狀態(tài)報告等系統(tǒng)。比如生產(chǎn)狀態(tài)報告系統(tǒng),它的典型代表是IBM公司的生產(chǎn)管理系統(tǒng)。眾所周知,IBM公司是世界上最大的計算機公司,1964年它生產(chǎn)出中型計算機IBM360,使計算機的水平提高了一個臺階,但同時組織生產(chǎn)的管理工作卻大大復(fù)雜化了。一臺計算機有超過15000個不同的部件,每一個部件又有若干個元件,加之IBM的工廠遍及美國各地,不同的定貨有不同的部件和不同的元件,必須指出什么工廠什么設(shè)備生產(chǎn)什么元件,因此不僅生產(chǎn)復(fù)雜,裝配、安裝和運輸都十分復(fù)雜。為了保證生產(chǎn)以及其他環(huán)節(jié)的順利進行,必須要有一個以計算機為基礎(chǔ)的生產(chǎn)狀態(tài)報告系統(tǒng)。因此同年IBM建立了先進管理系統(tǒng)AAS,它能進行450個業(yè)務(wù)的操作。1968年,公司又建立了公用制造信息系統(tǒng)CMIS,運行很成功,過去需要15周的工作,該系統(tǒng)只用3周就可以完成。
狀態(tài)報告系統(tǒng)還有一種形式是數(shù)據(jù)處理系統(tǒng),它用來處理日常業(yè)務(wù)和生產(chǎn)報告,重點在于將手工作業(yè)自動化,提高效率和節(jié)省人力。數(shù)據(jù)處理系統(tǒng)一般不能提供決策信息。
最后的階段是決策支持系統(tǒng),它是用來輔助決策的信息系統(tǒng)。該系統(tǒng)可以計劃、分析方案,審查解答和求解的誤差。它應(yīng)有較好的人機對話方式,可以和不怎么熟悉計算機的管理人員通話。它一般包括一些模型用以產(chǎn)生決策信息,但不強調(diào)全面的管理功能。
1.1.2管理信息系統(tǒng)的應(yīng)用
管理信息系統(tǒng)起初應(yīng)用于最基礎(chǔ)的工作,如打印報表、計算工資、人事管理等,進而發(fā)展到企業(yè)財務(wù)管理、庫存管理等單項業(yè)務(wù)管理,這屬于電子數(shù)據(jù)處理(EDP,Electronic Data Processing)系統(tǒng)。當(dāng)建立了企業(yè)數(shù)據(jù)庫,有了計算機網(wǎng)絡(luò)從而達到數(shù)據(jù)共享后,從系統(tǒng)觀點出發(fā),實施全局規(guī)劃和設(shè)計信息系統(tǒng)時,就達到管理信息系統(tǒng)的階段。隨著計算機技術(shù)的進步和人們對系統(tǒng)的需求進一步提高,人們更加強調(diào)管理信息系統(tǒng)能否支持企業(yè)高層領(lǐng)導(dǎo)的決策這一功能,更側(cè)重于企業(yè)外部信息的收集、綜合數(shù)據(jù)庫、模型庫、方法庫和其他人工智能工具能否直接面向決策者,這是決策支持系統(tǒng)(DSS,Decision Support System)的任務(wù)。
我國20世紀(jì)70年代末有少數(shù)企業(yè)開始MIS的局部應(yīng)用。“六五”期間,選擇一些大型企業(yè)進行MIS的開發(fā)試點,其中首都鋼鐵公司、北京第一棉紡廠、湖北第二汽車制造廠、寧江機床廠等取得了經(jīng)驗。20世紀(jì)80年代中后期,在全國性的計算機應(yīng)用熱潮中,許多企業(yè)紛紛從財務(wù)管理、人事管理等單項應(yīng)用入手,嘗試建立MIS。許多企業(yè),如北京內(nèi)燃機廠、北京電視機廠、沈陽鼓風(fēng)機廠、天津渤海無線電廠的MIS初具規(guī)模,建立了覆蓋全廠的計算機網(wǎng)絡(luò)。“八五”期間,企業(yè)逐步走向市場,MIS建設(shè)的目標(biāo)和需求日益明確。一些企業(yè)的系統(tǒng),如北京第一機床廠、山西經(jīng)緯紡織機械廠、成都飛機制造公司等都達到了很高水平,與企業(yè)中其他系統(tǒng)集成,形成了CIMS。目前,我國MIS已經(jīng)有了相當(dāng)?shù)钠占奥剩瑤缀醺采w了各個行業(yè)及各個部門。
1.1.3管理信息系統(tǒng)的發(fā)展方向
相應(yīng)的MIS開發(fā)技術(shù)在20世紀(jì)90年代也有了新的發(fā)展。
1.信息系統(tǒng)的集成
MIS在計算機網(wǎng)絡(luò)和分布式數(shù)據(jù)庫管理系統(tǒng)的支持下,與企業(yè)其他的系統(tǒng),如OA、CAD、CAM、CAPP、在線數(shù)據(jù)采集系統(tǒng)集成,形成制造業(yè)的計算機集成制造系統(tǒng),或者一般企事業(yè)單位的綜合信息系統(tǒng)(CIIS,Computer Integrated Information System),實現(xiàn)辦公、管理、計算、設(shè)計、控制、監(jiān)測,以及決策等多功能綜合。
2.Internet/Intranet
因特網(wǎng)(Internet)已經(jīng)被廣大用戶所熟悉,而以因特網(wǎng)技術(shù)為基礎(chǔ)的企業(yè)內(nèi)部信息系統(tǒng)——Intranet既可以通過接入的方式成為因特網(wǎng)的一部分,也可以自成體系,實現(xiàn)企業(yè)內(nèi)部的管理。它可以克服傳統(tǒng)MIS存在的系統(tǒng)封閉、用戶界面形式不統(tǒng)一、多種軟件版本并存、維護移植困難等問題,為新一代企業(yè)MIS的開發(fā)注入了強勁的活力。
3.先進的軟件開發(fā)工具
為了縮短軟件開發(fā)的周期,提高軟件的質(zhì)量和標(biāo)準(zhǔn)化水平以及軟件的可維護性,越來越多的軟件開發(fā)公司使用先進的軟件開發(fā)工具或計算機輔助軟件工程工具(CASE,Computer-Aided Software Engineering),如各種可視化建模工具、系統(tǒng)分析和設(shè)計工具、軟件質(zhì)量測試工具、軟件文檔建立和管理工具等。還有各種MIS開發(fā)平臺和代碼生成工具,這些工具極大地方便了MIS的開發(fā)。
4. 多媒體技術(shù)
隨著計算機性能的提高,MIS采用越來越多的多媒體技術(shù),用圖形、圖像、聲音替代原來單調(diào)的字符形式,給用戶提供了一個更加生動真實的應(yīng)用環(huán)境。
1.2管理信息系統(tǒng)的特點
1.2.1 管理信息系統(tǒng)的組成
管理信息系統(tǒng)在企業(yè)中的應(yīng)用存在三個要素,這就是人、計算機和數(shù)據(jù)。
人是指企業(yè)領(lǐng)導(dǎo)者、管理人員、技術(shù)人員,以及MIS建設(shè)的領(lǐng)導(dǎo)機構(gòu)和實施機構(gòu),他們在系統(tǒng)中起主導(dǎo)作用。MIS是一項系統(tǒng)工程,不是只靠一些計算機開發(fā)人員就可以完成的,必須有企業(yè)管理人員,尤其是企業(yè)領(lǐng)導(dǎo)的積極參與。
計算機技術(shù)是MIS得以實施的主要技術(shù)。在這些技術(shù)中,軟件開發(fā)是MIS開發(fā)的重點。
第三個因素也不能忽視。企業(yè)的管理數(shù)據(jù)是MIS正常運行的基礎(chǔ)。廣義地說,各項管理制度是MIS建設(shè)成功的基礎(chǔ)。試想要計算一臺機床的成本,需要按時輸入每個部件、每個零件以及每個螺釘螺帽的費用,涉及企業(yè)的生產(chǎn)車間、采購、庫房、工藝設(shè)計和財務(wù)等多個部門,必須有一整套管理制度做保證。
1.3管理信息系統(tǒng)的開發(fā)
1.3.1 系統(tǒng)開發(fā)的一般方法
管理信息系統(tǒng)的開發(fā)是一個復(fù)雜的系統(tǒng)工程,它涉及到計算機處理技術(shù)、系統(tǒng)理論、組織結(jié)構(gòu)、管理功能、管理知識等各方面的問題,至今沒有一種統(tǒng)一完備的開發(fā)方法。但是,每一種開發(fā)方法都要遵循相應(yīng)的開發(fā)策略。任何一種開發(fā)策略都要明確以下問題:
l 系統(tǒng)要解決的問題:如采取何種方式解決組織管理和信息處理方面的問題,對企業(yè)提出的新的管理需求該如何滿足等。
l 系統(tǒng)可行性研究:確定系統(tǒng)所要實現(xiàn)的目標(biāo)。通過對企業(yè)狀況的初步調(diào)研得出現(xiàn)狀分析的結(jié)果,然后提出可行性方案并進行論證。系統(tǒng)可行性的研究包括目標(biāo)和方案可行性、技術(shù)的可行性、經(jīng)濟方面的可行性和社會影響方面的考慮。
l 系統(tǒng)開發(fā)的原則:在系統(tǒng)開發(fā)過程中,要遵循領(lǐng)導(dǎo)參與、優(yōu)化創(chuàng)新、實用高效、處理規(guī)范化的原則。
l 系統(tǒng)開發(fā)前的準(zhǔn)備工作:作好開發(fā)人員的組織準(zhǔn)備和企業(yè)基礎(chǔ)準(zhǔn)備工作。
l 系統(tǒng)開發(fā)方法的選擇和開發(fā)計劃的制定:針對己經(jīng)確定的開發(fā)策略選定相應(yīng)的開發(fā)方法,是結(jié)構(gòu)化系統(tǒng)分析和設(shè)計方法,還是選擇原型法或面向?qū)ο蟮姆椒āi_發(fā)計劃的制定是要明確系統(tǒng)開發(fā)的工作計劃、投資計劃、工程進度計劃和資源利用計劃。
管理信息系統(tǒng)開發(fā)方法主要有:結(jié)構(gòu)化生命周期開發(fā)方法、原型法、面向?qū)ο蟮拈_發(fā)方法等。
1.結(jié)構(gòu)化生命周期開發(fā)方法
目前較為流行的MIS開發(fā)方法是結(jié)構(gòu)化生命周期開發(fā)方法,其基本思想是:用系統(tǒng)的思想和系統(tǒng)工程的方法,按用戶至上的原則,結(jié)構(gòu)化、模塊化地自上而下對生命周期進行分析與設(shè)計。
用結(jié)構(gòu)化生命周期開發(fā)方法開發(fā)一個系統(tǒng),將整個開發(fā)過程劃分為5個依次連接的階段:
l 系統(tǒng)規(guī)劃階段:主要任務(wù)是明確系統(tǒng)開發(fā)的請求,并進行初步的調(diào)查,通過可行性研究確定下一階段的實施。系統(tǒng)規(guī)劃方法有戰(zhàn)略目標(biāo)集轉(zhuǎn)化法(SST,Strategy Set Transformation)、關(guān)鍵成功因素法(CSF,Critical Success Factors)和企業(yè)規(guī)劃法(BSP,Business System Planning)。
l 系統(tǒng)分析階段:主要任務(wù)是對組織結(jié)構(gòu)與功能進行分析,理清企業(yè)業(yè)務(wù)流程和數(shù)據(jù)流程的處理,并且將企業(yè)業(yè)務(wù)流程與數(shù)據(jù)流程抽象化,通過對功能數(shù)據(jù)的分析,提出新系統(tǒng)的邏輯方案。
l 系統(tǒng)設(shè)計階段:主要任務(wù)是確定系統(tǒng)的總體設(shè)計方案、劃分子系統(tǒng)功能、確定共享數(shù)據(jù)的組織,然后進行詳細設(shè)計,如處理模塊的設(shè)計、數(shù)據(jù)庫系統(tǒng)的設(shè)計、輸入輸出界面的設(shè)計和編碼的設(shè)計等。
l 系統(tǒng)實施階段:主要任務(wù)是討論確定設(shè)計方案、對系統(tǒng)模塊進行調(diào)試、進行系統(tǒng)運行所需數(shù)據(jù)的準(zhǔn)備、對相關(guān)人員進行培訓(xùn)等。
l 系統(tǒng)運行階段:主要任務(wù)是進行系統(tǒng)的日常運行管理,評價系統(tǒng)的運行效率,對運行費用和效果進行監(jiān)理審計,如出現(xiàn)問題則對系統(tǒng)進行修改、調(diào)整。
這五個階段共同構(gòu)成了系統(tǒng)開發(fā)的生命周期。結(jié)構(gòu)化生命周期開發(fā)方法嚴(yán)格區(qū)分了開發(fā)階段,非常重視文檔工作,對于開發(fā)過程中出現(xiàn)的問題可以得到及時的糾正,避免了出現(xiàn)混亂狀態(tài)。但是,該方法不可避免地出現(xiàn)開發(fā)周期過長、系統(tǒng)預(yù)算超支的情況,而且在開發(fā)過程中用戶的需求一旦發(fā)生變化,系統(tǒng)將很難作出調(diào)整。
2. 原型法
原型法在系統(tǒng)開發(fā)過程中也得到不少應(yīng)用。原型法的基本思想是系統(tǒng)開發(fā)人員憑借自己對用戶需求的理解,通過強有力的軟件環(huán)境支持,構(gòu)造出一個實在的系統(tǒng)原型,然后與用戶協(xié)商,反復(fù)修改原型直至用戶滿意。 原型法的應(yīng)用使人們對需求有了漸進的認識,從而使系統(tǒng)開發(fā)更有針對性。另外,原型法的應(yīng)用充分利用了最新的軟件工具,使系統(tǒng)開發(fā)效率大為提高。
3.面向?qū)ο笙到y(tǒng)開發(fā)方法
面向?qū)ο螅?/span>OO,Object Oriented)的系統(tǒng)開發(fā)方法,是近年來受到關(guān)注的一種系統(tǒng)開發(fā)方法。面向?qū)ο蟮南到y(tǒng)開發(fā)方法的基本思想是將客觀世界抽象地看成是若干相互聯(lián)系的對象,然后根據(jù)對象和方法的特性研制出一套軟件工具,使之能夠映射為計算機軟件系統(tǒng)結(jié)構(gòu)模型和進程,從而實現(xiàn)信息系統(tǒng)的開發(fā)。
1.3.2 管理信息系統(tǒng)的開發(fā)過程
管理信息系統(tǒng)的開發(fā)過程一般包括系統(tǒng)開發(fā)準(zhǔn)備、系統(tǒng)調(diào)查、系統(tǒng)分析、系統(tǒng)設(shè)計、系統(tǒng)實現(xiàn)、系統(tǒng)轉(zhuǎn)換、系統(tǒng)運行與維護、系統(tǒng)評價等步驟。根據(jù)開發(fā)系統(tǒng)的大小、復(fù)雜、投入、方式、方法等因素的不同,各步驟的要求和內(nèi)容也不同,用戶需要根據(jù)實際情況進行取舍和計劃。
1.4 PowerBuilder軟件開發(fā)工具
本系統(tǒng)選用Powerbuilder軟件開發(fā)工具,PowerBuilder是一種高效的客戶/服務(wù)器模式以及分布式數(shù)據(jù)庫應(yīng)用程序的前端開發(fā)工具。
PowerBuilder是著名的數(shù)據(jù)庫應(yīng)用開發(fā)工具生產(chǎn)廠商Sybase Inc.的子公司PowerSoft于1991年6月推出的數(shù)據(jù)應(yīng)用開發(fā)工具,歷經(jīng)了多次升級換代。PowerBuilder除了能夠設(shè)計傳統(tǒng)的高性能、基于客戶/服務(wù)器體系結(jié)構(gòu)的應(yīng)用系統(tǒng)外,也能夠方便的構(gòu)建和實現(xiàn)分布式系統(tǒng),還可以開發(fā)基于Internet的應(yīng)用系統(tǒng)。
數(shù)據(jù)庫的開發(fā)平臺有很多種,可以說,PowerBuilder是其中比較優(yōu)秀的一種,其主要特點歸納如下:專業(yè)的客戶/服務(wù)器開發(fā)工具、面向?qū)ο蟮木幊獭⒅С侄喾N關(guān)系數(shù)據(jù)庫管理系統(tǒng)、支持多種平臺的開發(fā)環(huán)境.功能強大、使用方便的數(shù)據(jù)窗口對象、豐富的數(shù)據(jù)表現(xiàn)風(fēng)格等等。
第二章 企業(yè)信息管理系統(tǒng)分析
2.1總體調(diào)查
新系統(tǒng)的系統(tǒng)分析與系統(tǒng)設(shè)計工作都要建立在對現(xiàn)行系統(tǒng)調(diào)查的基礎(chǔ)上,即必須調(diào)查現(xiàn)行系統(tǒng)的運行情況、問題等,明確用戶的需求,特別是合作開發(fā)和委托開發(fā)方式。
調(diào)查的主要內(nèi)容有:
(1)現(xiàn)行系統(tǒng)概況:該組織的發(fā)展歷史、目前組織的規(guī)模、工作狀況、管理水平、與外界的主要聯(lián)系等。調(diào)查該項內(nèi)容的目的主要是為了劃分系統(tǒng)界限、系統(tǒng)與外界的輸入輸出接口等。
(2)組織機構(gòu):畫出組織的組織結(jié)構(gòu)圖,弄清組織的行政關(guān)系、人員編制、工作范圍、地理位置等,發(fā)現(xiàn)不合理問題及新系統(tǒng)啟動后可能對現(xiàn)有組織的影響。
(3)業(yè)務(wù)流程:按照業(yè)務(wù)種類的不同和處理時間的先后不同,深入了解現(xiàn)行系統(tǒng)的業(yè)務(wù)流程,畫出現(xiàn)行系統(tǒng)業(yè)務(wù)流程圖,并與業(yè)務(wù)人員反復(fù)討論,得到認可。調(diào)查中要注意定性與定量相結(jié)合,注意人、財、物、信息的流向、規(guī)格、頻率、要求以及需要解決的問題等。
(4)報表、數(shù)據(jù)處理:了解各種統(tǒng)計報表、數(shù)據(jù)的格式、內(nèi)容、處理時間及上報時間、頻率、規(guī)律,存在的問題,對新系統(tǒng)的要求、希望等并收集各種報表。
(5)問題:現(xiàn)行系統(tǒng)中存在的主要問題和薄弱環(huán)節(jié),可以按照嚴(yán)重程度分成不同的等級。新系統(tǒng)的建立應(yīng)能解決大部分問題,并改善薄弱環(huán)節(jié)。
(6)新系統(tǒng)的功能和目標(biāo):了解各級領(lǐng)導(dǎo)和各類業(yè)務(wù)工作人員對新系統(tǒng)功能的要求,為進一步完善新系統(tǒng)的目標(biāo)做準(zhǔn)備。
(7)其他:如對新系統(tǒng)的各種約束條件,需要說明的其他問題等。
2.1.1 本系統(tǒng)的調(diào)查
文化廣告公司,是一種興起時間不久的廣告行業(yè),它主要的營業(yè)項目是作戶外慶典廣告,向客戶提供展覽展示用品舞臺框架、演員節(jié)目、飄空氣球、拱門等等。
企業(yè)的信息管理系統(tǒng)提現(xiàn)的一個企業(yè)總體的信息歸集,往往非常的復(fù)雜繁瑣,系統(tǒng)通常也恨的龐大,它涉及到企業(yè)的客戶信息管理、物品信息管理
和演員節(jié)目信息管理等等。本系統(tǒng)制作主要用于企業(yè)各類信息資源的管理。
最常用的客戶信息管理系統(tǒng),需要記錄客戶的基本信息聯(lián)系方式地址等,要求方便查詢、添加和刪除,客戶訂購信息管理要求查詢到公司向客戶提供了哪些服務(wù),如提供了哪些物品和節(jié)目。物品信息管理和節(jié)目信息管理需要查詢到公司有哪些物品可以向客戶提供哪些表演節(jié)目,并且加強它們之間的聯(lián)系,以便公司規(guī)范管理客戶檔案、合理安排現(xiàn)有資源。
2.2系統(tǒng)的可行性分析
系統(tǒng)分析(又稱邏輯設(shè)計)是管理信息系統(tǒng)開發(fā)的關(guān)鍵環(huán)節(jié),要求在系統(tǒng)調(diào)查的基礎(chǔ)上,對新系統(tǒng)的功能進行細致的分析,并建立一個新系統(tǒng)的邏輯模型。
新系統(tǒng)的邏輯模型由系統(tǒng)數(shù)據(jù)流程圖、概況表、數(shù)據(jù)字典、吃理邏輯表達式及有關(guān)說明組成。最后要完成系統(tǒng)分析報告(也稱為系統(tǒng)邏輯設(shè)計說明書)。系統(tǒng)邏輯模型就像在根據(jù)需要建設(shè)一座學(xué)校前,按照學(xué)校教育的層次(初等、中等、高等)、規(guī)模、投資、地理環(huán)境、技術(shù)水平等條件的要求和約束,先由建筑設(shè)計院進行設(shè)計,保證學(xué)校建成后的各種功能得以實現(xiàn),之后才能進行工程設(shè)計和施工一樣。在系統(tǒng)設(shè)計階段要做認真、細致的分析、研究工作,避免新系統(tǒng)在功能上存在先天不足或缺陷。
因為新系統(tǒng)模型是建立在對現(xiàn)行系統(tǒng)的分析及要求的基礎(chǔ)上的,所以系統(tǒng)調(diào)查工作要進行得深入、細致、全面。用戶可以對新系統(tǒng)的邏輯模型提出意見,雙方經(jīng)過討論、修改,最后達成共識,并完成系統(tǒng)分析報告(系統(tǒng)邏輯設(shè)計說明書),經(jīng)有關(guān)領(lǐng)導(dǎo)審批通過之后,轉(zhuǎn)入系統(tǒng)設(shè)計(又稱系統(tǒng)物理設(shè)計)階段。
企業(yè)信息管理系統(tǒng)要完成的功能主要有:
1. 物品管理主要完成物品的查詢、增加、修改或刪除。
2. 節(jié)目管理主要完成節(jié)目的查詢、增加、修改或刪除。
3. 客戶一般信息查詢需要完成客戶一般信息瀏覽、客戶訂購信息瀏覽、客戶信息查詢。
4. 客戶訂購信息查詢要求完成按客戶查詢出提供服務(wù)的物品和節(jié)目、按物品查詢出需要本物品的客戶名稱、按節(jié)目查詢出需要本節(jié)目的客戶名稱。
經(jīng)調(diào)查按照公司的現(xiàn)狀,本公司非常需要這樣的一個系統(tǒng)。
2.3詳細調(diào)查
新系統(tǒng)是在現(xiàn)有系統(tǒng)的基礎(chǔ)上發(fā)展起來的。為了使新系統(tǒng)比現(xiàn)有系統(tǒng)工作的更加經(jīng)濟有效,必須首先做好對現(xiàn)有系統(tǒng)的詳細調(diào)查。
1.詳細調(diào)查的目標(biāo)和內(nèi)容
在可行性研究的基礎(chǔ)上進一步對現(xiàn)行全面、深入的調(diào)查和分析,弄清楚現(xiàn)行系統(tǒng)運行狀況,發(fā)現(xiàn)其薄弱環(huán)節(jié),找出要解決的問題實質(zhì),確保新系統(tǒng)更有效。
詳細調(diào)查的主要內(nèi)容包括對現(xiàn)行系統(tǒng)的目標(biāo)、主要功能、數(shù)據(jù)流程的調(diào)查和分析。
2.詳細調(diào)查的方法
為了確保調(diào)查工作順利進行,系統(tǒng)分析人員要注意工作方法和工作手段。切實與用戶建立良好的關(guān)系,讓用戶充分地、積極地參與調(diào)查工作。
具體方法有直接面談或?qū)iT訪問,發(fā)調(diào)查表征求意見,召開討論會,閱讀歷史資料和參加業(yè)務(wù)實踐,其中參加業(yè)務(wù)實踐,與具體工作人員一起完成最基本的工作程序是最有效的方法。
2.4管理業(yè)務(wù)的調(diào)查
2.4.1 組織機構(gòu)和職責(zé)的調(diào)查
了解清楚對象系統(tǒng)內(nèi)部各種組織機構(gòu)可以向系統(tǒng)分析人員進一步明確調(diào)查對象和方向。調(diào)查結(jié)果可以用組織結(jié)構(gòu)圖表示:
圖2-1
2.4.2管理業(yè)務(wù)流程分析
業(yè)務(wù)流程圖體現(xiàn)了信息的流動過程,顧客和業(yè)務(wù)員簽訂合同書后,由業(yè)務(wù)員交于外聯(lián)主管統(tǒng)一管理,外聯(lián)主管做好合同檔案,讓財務(wù)部作費用預(yù)算,如發(fā)現(xiàn)無利潤時向外聯(lián)主管發(fā)放不合格預(yù)算單,再由外聯(lián)主管向客戶發(fā)出取消合同通知書,如項目有一定利潤則有外聯(lián)主管向策劃人員發(fā)放編寫策劃書通知單,向演藝人員發(fā)出節(jié)目通知單如演員在這個時間段可以演出則向公司發(fā)出節(jié)目執(zhí)行單,再將編寫好的策劃書交由該項目負責(zé)人,在向工程部發(fā)放施工單,項目扶責(zé)任和工程部一起監(jiān)督項目的實施過程。
系統(tǒng)的業(yè)務(wù)流程圖如下:(圖2-2)
-2
圖2-2
2.5數(shù)據(jù)流程的分析
數(shù)據(jù)流程圖描述系統(tǒng)的邏輯模型,圖中沒有任何具體的物理元素,只是描述信息在系統(tǒng)中流動和處理的情況。設(shè)計數(shù)據(jù)流程圖只需考慮系統(tǒng)必須完成的基本邏輯功能,而不需考慮如何具體的實現(xiàn)這些功能。
1. 確定系統(tǒng)界面。
2. 自頂向下、逐層分解。
3. 合理布局。
4. 數(shù)據(jù)流程圖只反映數(shù)據(jù)流向、數(shù)據(jù)加工和邏輯意義上的數(shù)據(jù)存儲。
5. 數(shù)據(jù)流程圖繪制過程就是系統(tǒng)的邏輯模型的形成過程,必須始終和用戶密切接觸。
在仔細調(diào)查企業(yè)信息管理過程的基礎(chǔ)上,得到本系統(tǒng)所處理的數(shù)據(jù)流程圖如下圖所示:
第三章 系統(tǒng)設(shè)計
系統(tǒng)設(shè)計又稱系統(tǒng)物理設(shè)計。系統(tǒng)設(shè)計要根據(jù)系統(tǒng)分析報告中的系統(tǒng)邏輯模型綜合考慮各種約束,利用一切可用的技術(shù)手段和方法進行各種具體設(shè)計,確定新系統(tǒng)的實施方案,解決“系統(tǒng)怎么做”的問題。
結(jié)構(gòu)化系統(tǒng)設(shè)計是指利用一組標(biāo)準(zhǔn)的圖表工具和準(zhǔn)則,確定系統(tǒng)有哪些模塊,用什么方法連接,如何構(gòu)成良好的系統(tǒng)結(jié)構(gòu),并進行系統(tǒng)輸入、輸出、數(shù)據(jù)處理、數(shù)據(jù)存儲等環(huán)節(jié)的詳細設(shè)計。這一階段的重點是設(shè)計好系統(tǒng)的總體結(jié)構(gòu),選擇最經(jīng)濟合理的技術(shù)手段。系統(tǒng)設(shè)計階段的文件是系統(tǒng)設(shè)計報告(又稱系統(tǒng)物理設(shè)計說明書)。
管理信息系統(tǒng)的開發(fā)是一項系統(tǒng)工程,為了保證系統(tǒng)的質(zhì)量,設(shè)計人員必須遵守共同的設(shè)計原則,盡可能地提高系統(tǒng)的各項指標(biāo)(系統(tǒng)可變性、可靠性、工作質(zhì)量、工作效率、經(jīng)濟性等)。
系統(tǒng)設(shè)計的任務(wù)是在系統(tǒng)分析的基礎(chǔ)上,按照邏輯模型的要求,科學(xué)的進行總體設(shè)計和具體的物理設(shè)計,系統(tǒng)要求:系統(tǒng)性、靈活性、可靠性、經(jīng)濟性。
3.1 概要設(shè)計的必要性
在概念設(shè)計階段中,從用戶的角度看待數(shù)據(jù)及處理要求和約束,產(chǎn)生一個反應(yīng)用戶觀點的概念模式。然后再把概念模式轉(zhuǎn)換成邏輯模式。將概念設(shè)計從設(shè)計過程中獨立開來,有以下幾個好處。
1. 各階段的任務(wù)相對單一化,設(shè)計復(fù)雜程度大大降低,便于組織管理。
2. 不受特定的DBMS的限制,也獨立于存儲安排和效率方面的考慮,因而比邏輯模型更為穩(wěn)定。
3. 概念模式不含具體的DBMS所附加的技術(shù)細節(jié),更容易為用戶所理解,因而才有可能準(zhǔn)確地反應(yīng)用戶的信息需求
。
3.2 系統(tǒng)設(shè)計目標(biāo)
系統(tǒng)開發(fā)的總體任務(wù)是實現(xiàn)企業(yè)信息管理的系統(tǒng)化,規(guī)范化和自動化,從而達到提高信息管理效率的目的。在本系統(tǒng)的設(shè)計過程中,為了滿足計算機管理的需要采取了以下原則:
1. 統(tǒng)一各種原始單據(jù)的格式,統(tǒng)一帳目和報表的格式。
2. 刪除不必要的管理冗余,實現(xiàn)管理規(guī)范化,科學(xué)化。
3. 程序代碼標(biāo)準(zhǔn)化,軟件統(tǒng)一化,確保軟件的可維護性和實用性。
4. 界面盡量簡單化,做到實用,方便,盡量滿足企業(yè)中不同層次員工的需要。
5. 建立操作日志,系統(tǒng)自動記錄所進行的各種操作。
3.3 概要設(shè)計的方法
3.3.1 E-R 法
概要設(shè)計采用的方法:E-R 法
采用E-R 法的步驟:
1. 設(shè)計局部E-R模式。
2. 設(shè)計全局E-R模式。
3. 全局E-R模式的優(yōu)化。
3.3.2 E-R圖
圖3-1 物品實體E-R圖
圖3-2節(jié)目實體E-R圖
圖3-3客戶物品E-R圖
圖3-4客戶節(jié)目E-R圖
圖3-5客戶實體E-R圖
圖3-6實體之間的關(guān)系
3.4系統(tǒng)總體結(jié)構(gòu)設(shè)計
系統(tǒng)的功能結(jié)構(gòu)圖如下:







圖3-1
3.5管理信息系統(tǒng)的界面特點
在計算機軟件技術(shù)中,人機界面已經(jīng)發(fā)展成為一個重要的分支。
MIS人機界面設(shè)計一般遵循以下一些基本原則:
1. 以通信功能作為界面設(shè)計的核心
人機界面設(shè)計的關(guān)鍵是使人與計算機之間能夠準(zhǔn)確地交流信息。一方面,人向計算機輸入信息時應(yīng)當(dāng)盡量采取自然的方式;另一方面,計算機向人傳遞的信息必須準(zhǔn)確,不致引起誤解或混亂。另外,不要把內(nèi)部的處理、加工與人機界面混在一起(人機界面程序只是通信),以免互相干擾,影響速度。
設(shè)計MIS時,針對每一個功能,都要按照“I-P-O”的模塊化思想,使輸入、處理與輸出“涇渭分明”,充分體現(xiàn)人機界面的通信功能。這樣設(shè)計出來的程序不易出錯,而且易于維護。
報表打印是MIS必備的功能之一,而且打印之前常常需要計算。計算與打印分開設(shè)計,雖然消耗時間,但易于整個MIS系統(tǒng)的維護。
2. 界面必須始終一致
統(tǒng)一的人機界面不致于會增加用戶的負擔(dān),讓用戶始終用同一種方式思考與操作。最忌諱的是每換一個屏幕用戶就要換一套操作命令與操作方法。
例如在整個系統(tǒng)可以以問號圖標(biāo)表示幫助,以磁盤圖標(biāo)表示存盤,以打印機圖標(biāo)表示打印等。
3. 界面必須使用戶隨時掌握任務(wù)的進展情況
人機界面應(yīng)該能夠告訴用戶軟件運行的進度。特別是在需要較長時間的等待時,必須讓用戶了解工作進展情況,如可以設(shè)計已經(jīng)完成了百分之幾的任務(wù)進度條等。目前,Windows下的應(yīng)用軟件無論大小,其安裝程序幾乎均做到了這一點。開發(fā)MIS軟件時,這一點很值得借鑒。
4. 界面必須能夠提供幫助
一個優(yōu)秀的MIS軟件應(yīng)該提供在線求助功能,甚至提供使用向?qū)В@將給用戶帶來極大的方便。在多媒體環(huán)境下,以語音提示作為操作向?qū)В粫蓴_屏幕信息,是一個極佳的選擇。
5. 界面友好、使用方便
多數(shù)MIS軟件的數(shù)據(jù)輸入量較大。對于一些相對固定的數(shù)據(jù),不應(yīng)讓用戶頻頻輸入(特別是漢字),而應(yīng)讓用戶用鼠標(biāo)輕松選擇。例如,人事管理系統(tǒng)中的“文化程度”是相對固定的數(shù)據(jù),其值一般取“小學(xué)”、“初中”、“高中”、“大專”、“大本”、“碩研”、“博研”等。錄入這類數(shù)據(jù)之前,MIS軟件應(yīng)在相應(yīng)位置彈出一個列表框,待用戶以鼠標(biāo)點擊,而不應(yīng)讓用戶每次都輸入這些漢字。
另外,開發(fā)者應(yīng)編寫一個錯誤實時記錄程序,自動記錄何日、何時、何程序出了何種錯誤。
總之,所開發(fā)的MIS在使用過程中,應(yīng)使用戶的數(shù)據(jù)輸入量降至最低限度,同時也要減少用戶的干預(yù)量。實踐證明,用戶干預(yù)愈少,MIS系統(tǒng)的滿意程度愈高。
6.輸入畫面盡可能接近實際
如果某個電算會計軟件的憑證錄入畫面是表格式的,一屏可錄入多條記錄,而且與實際憑證一模一樣,甚至連顏色都無異,用戶在終端上錄入憑證,仿佛用筆在紙上填寫憑證,以增加人機親和力。
7. 具有較強的容錯功能
誤操作、按鍵連擊等均有可能導(dǎo)致數(shù)據(jù)誤錄。巧妙地進行程序設(shè)計,可以避免此類因素造成的錯誤。例如,錄入學(xué)生成績時,我們可以對其范圍進行限定,使用戶無法輸入0~100以外的數(shù)據(jù);錄入學(xué)生年齡時,不妨根據(jù)實際情況將范圍限制在15~20之間。
3.6界面設(shè)計
1.登錄窗口的設(shè)計
在應(yīng)用程序?qū)ο驩pen事件的程序代碼中有下面一條語句:
Open(w_login)
該語句就是打開登錄窗口的語句。登錄窗口如圖所示。
圖3-2登陸窗口設(shè)計
該窗口放置了2個靜態(tài)文本框Static Text控件,2個單行編輯框Single line Edit控件,2個按鈕,2個GroupBox控件,各個控件的屬性設(shè)置如表所示:
表3-1登錄窗口中各個控件的屬性設(shè)置表
控件
|
屬性
|
屬性取值
|
St_1
|
text
|
用戶:
|
St_2
|
text
|
密碼:
|
St_3
|
text
|
企業(yè)信息管理系統(tǒng)登錄
|
ddlb_1
|
AllowEdit
|
選中
|
Sle_2
|
password
|
選中
|
Cb_1
|
text
|
登錄
|
Cb_2
|
text
|
退出
|
Gb_1
|
text
|
空
|
在Cb_1控件的Click事件中輸入如下的程序代碼:
if sle_1.text<>'ztt' then
messagebox("提示","請輸入正確用戶名!")
return
end if
if sle_2.text<>'12345' then
messagebox("提示","請輸入正確口令!")
return
end if
open(w_main)
close(parent)
在Cb_2控件的Click事件輸入如下的程序代碼:
//終止程序
halt
用于結(jié)束應(yīng)用程序的運行。
2.主窗口的設(shè)計
圖3-3主界面窗口設(shè)計
表3-2主界面窗口中各個控件的屬性設(shè)置表
控件名稱
|
屬性
|
屬性值
|
|
Title
|
企業(yè)管理信息系統(tǒng)
|
MeumName
|
m_meum
|
P_1
|
Picturename
|
Main.jpg
|
Cb_1
|
text
|
退出
|
從該窗口的菜單或工具欄可以進入,物品管理、節(jié)目管理、客戶信息管理、客戶訂購信息管理、客戶信息查詢各窗口。
3.物品窗口的設(shè)計
圖3-4物品管理窗口設(shè)計
表3-3 物品管理窗口各個控件的屬性設(shè)置表
控件
|
屬性
|
屬性取值
|
St_1
|
text
|
物品管理
|
Tabpage_1
|
text
|
瀏覽
|
Tabpage_2
|
text
|
查詢
|
Tabpage_3
|
text
|
添加
|
Tabpage_4
|
text
|
修改與刪除
|
Cb_1
|
text
|
退出
|
表3-4 查詢頁窗口各個控件的屬性設(shè)置表
控件
|
屬性
|
屬性取值
|
St_1
|
text
|
請輸入物品名稱:
|
Sle_2
|
text
|
空
|
Cb_1
|
text
|
查詢
|
dw_1
|
Dataobject
|
d_thing1
|
Gb_1
|
text
|
空
|
表3-5 添加頁窗口各個控件的屬性設(shè)置表
控件
|
屬性
|
屬性取值
|
St_1
|
text
|
請輸入信息,按確定……
|
Cb_1
|
text
|
確定
|
Cb_2
|
text
|
重置
|
dw_1
|
Dataobject
|
d_thing2
|
Gb_1
|
text
|
空
|
表3-6 修改與刪除頁窗口各個控件的屬性設(shè)置表
控件
|
屬性
|
屬性取值
|
St_1
|
text
|
請輸入需處理物品名稱:
|
Sle_2
|
text
|
空
|
Cb_1
|
text
|
查詢
|
Cb_2
|
text
|
確定
|
Cb_3
|
text
|
刪除
|
Cb_4
|
text
|
重置
|
dw_1
|
Dataobject
|
d_thing1
|
Gb_1
|
text
|
空
|
4.客戶數(shù)據(jù)窗口錄入設(shè)計
圖3-5客戶數(shù)據(jù)錄入窗口設(shè)計
在“瀏覽”分頁中,實現(xiàn)在數(shù)據(jù)窗口中顯示該企業(yè)的各種各樣的物品。
代碼見附錄。
在“查詢”分頁中,可以模糊查詢該企業(yè)的各種各樣的物品。
代碼見附錄。
在“添加”分頁中,實現(xiàn)向該企業(yè)物品表中添加各種各樣的物品。
代碼見附錄。
在“修改與刪除”分頁中,實現(xiàn)該企業(yè)的各種各樣的物品修改與刪除。
代碼見附錄。
表3-7 客戶數(shù)據(jù)錄入窗口各個控件屬性設(shè)置表
控件
|
屬性
|
屬性取值
|
St_1
|
text
|
客戶數(shù)據(jù)錄入
|
Tabpage_1
|
text
|
客戶信息錄入
|
Tabpage_2
|
text
|
客戶物品錄入
|
Tabpage_3
|
text
|
客戶節(jié)目錄入
|
Cb_1
|
text
|
退出
|
在“客戶信息錄入”分頁中,實現(xiàn)添加客戶的的信息。
代碼見附錄。
在“客戶物品錄入”分頁中,實現(xiàn)添加客戶訂購的物品的信息。
代碼見附錄。
在“客戶節(jié)目錄入”分頁中,實現(xiàn)添加客戶訂購的節(jié)目的信息。
代碼見附錄。
5.客戶訂購信息查詢窗口設(shè)計
圖3-6客戶訂購信息查詢設(shè)計
表3-8 客戶訂購信息查詢窗口各個控件的屬性設(shè)置表
控件
|
屬性
|
屬性取值
|
St_1
|
text
|
客戶訂購信息查詢
|
Tabpage_1
|
text
|
按客戶查詢
|
Tabpage_2
|
text
|
按物品查詢
|
Tabpage_3
|
text
|
按節(jié)目查詢
|
Cb_1
|
text
|
退出
|
表3-9 按客戶查詢頁窗口各個控件的屬性設(shè)置表
控件
|
屬性
|
屬性取值
|
St_1
|
text
|
請輸入客戶名稱:
|
ddlb_1
|
text
|
空
|
Cb_1
|
text
|
查詢
|
Gb_2
|
text
|
物品信息
|
Gb_3
|
text
|
節(jié)目信息
|
|
Dataobject
|
d_query1
|
HScrollBar
|
選中
|
VScrollBar
|
選中
|
|
Dataobject
|
d_query2
|
HScrollBar
|
選中
|
VScrollBar
|
選中
|
Gb_1
|
text
|
空
|
在“按客戶信息查詢”分頁中,可以查到該客戶訂購的物品、節(jié)目的信息。
代碼見附錄。
在“按物品查詢”分頁中,可以查到訂購的該物品的客戶信息。
代碼見附錄。
在“按節(jié)目查詢”分頁中,實現(xiàn)添加客戶訂購的物品的信息。
代碼見附錄。
3.7 菜單設(shè)計
在菜單畫面中設(shè)計應(yīng)用程序主窗口所連接的菜單m_meum.該菜單的結(jié)構(gòu)如下:
圖3-7菜單設(shè)計
1.“物品節(jié)目管理”菜單下“物品管理”子菜單的clicked事件程序代碼:
Open(w_thing)
其功能打開物品窗口。
2.“物品節(jié)目管理”菜單下“節(jié)目管理”子菜單的clicked事件程序代碼:
Open(w_program)
其功能打開節(jié)目窗口。
3.“物品節(jié)目管理”菜單下“退出”子菜單的clicked事件程序代碼:
Close(w_main)
其功能關(guān)閉主窗口。
4.“客戶管理”菜單下“客戶訂購信息管理”下菜單“客戶訂購信息查詢”的clicked事件程序代碼:
Open(w_client)
其功能打開物品窗口。
5.“客戶管理”菜單下“物品管理”子菜單的clicked事件程序代碼:
Open(w_query)
其功能打開客戶信息窗口。
6.“客戶管理”菜單下“客戶數(shù)據(jù)錄入”的clicked事件程序代碼:
Open(w_input)
其功能打開客戶數(shù)據(jù)錄入窗口。
3.8 數(shù)據(jù)窗口的設(shè)計
數(shù)據(jù)窗口對象是PowerBuilder編程的精華所在,建立數(shù)據(jù)窗口對象是程序設(shè)計中極為重要的一個部分。針對不同的情況選擇不同類型的數(shù)據(jù)窗口對象,會使程序的實用性和直觀性大為增強。在本應(yīng)用程序中,完全采用數(shù)據(jù)窗口來實現(xiàn)讀取數(shù)據(jù)庫中的數(shù)據(jù)、修改數(shù)據(jù)庫中的數(shù)據(jù)、排序等功能。
下面詳細講述本系統(tǒng)中典型的一個數(shù)據(jù)窗口對象。其他的數(shù)據(jù)窗口對象由于方法相似,在這里不作詳細講述。
1.d_client數(shù)據(jù)窗口的創(chuàng)建
打開“new”對話框,然后在DataWindow標(biāo)簽頁選擇數(shù)據(jù)窗口對象的顯示風(fēng)格,在這里選擇Grid(網(wǎng)格)顯示方式。
單擊“ok”按鈕啟動數(shù)據(jù)窗口對象向?qū)А_x擇SQLSelect數(shù)據(jù)源,然后打單擊“next”按鈕,出現(xiàn)SQL Select窗口。在左上方的表格列表中雙擊要連接的表。
選中該表格后,在列表框中列出了選中表客戶信息表的各個列。單擊要選中的多個列,單擊“ok”按鈕,出現(xiàn)“Select Color and Border setting”對話框。
在其中選擇數(shù)據(jù)窗口的背景顏色、文字顏色和邊框外觀。單擊“next”按鈕,“Ready to Create Grid Datawindow”對話框。
在其中顯示當(dāng)前數(shù)據(jù)窗口對象的屬性。單擊其上的“Finish”按鈕。在其中設(shè)置頁眉區(qū)和細節(jié)區(qū)的屬性。在數(shù)據(jù)庫表中各個列的列名使用英文表示的在列標(biāo)題顯示的時候我們將它們設(shè)置為中文。:
通過上面的操作步驟,一個完整“Grid”風(fēng)格的數(shù)據(jù)窗口對象就創(chuàng)建完畢。應(yīng)用程序中窗口上的數(shù)據(jù)窗口控件可以連接和使用這個創(chuàng)建好的數(shù)據(jù)窗口對象。
第四章 系統(tǒng)操作簡介及運行
系統(tǒng)維護與評價階段是系統(tǒng)生命周期中的最后一個階段,也是時間最長的一個重要階段,就像汽車的維護工作好可以延長汽車的使用壽命和提高其使用效率一樣,經(jīng)一段時間的運行后,要對系統(tǒng)目標(biāo)與功能的實現(xiàn)情況進行檢查,并與系統(tǒng)開發(fā)中設(shè)立的系統(tǒng)預(yù)期目標(biāo)進行對比,及時寫出系統(tǒng)評價報告,系統(tǒng)維護工作的好壞可以決定系統(tǒng)的生命周期的長短和使用效果。
4.1系統(tǒng)的運行
至此已經(jīng)完成企業(yè)管理系統(tǒng)程序的編制。運行該程序,出現(xiàn)用戶登錄對話框,如圖所示。
圖4-1系統(tǒng)登錄窗口
輸入正確的用戶名和口令,按“確定”按鈕后進入程序的主界面,在菜單或在工具欄中選中“物品管理”進入 物品管理窗口。
在本窗口中,tab_1控件中不同的頁中實現(xiàn)了瀏覽、查詢、添加、修改與刪除功能。選中“查詢”
頁,在文本框中輸入物品名稱,單擊“查詢”按鈕,相關(guān)的信息顯示在數(shù)據(jù)窗口中。如圖
圖4-2物品管理窗口
在物品窗口中,單擊“修改與刪除”分頁,我們輸入物品先查到我們所要處理的物品,然后在數(shù)據(jù)窗口可以進行修改,按“確定”按鈕用來保存
按“刪除”按鈕可對數(shù)據(jù)窗口信息直接刪除。如圖所示:
圖4-3物品管理主窗口
在主窗口中,選中“節(jié)目管理”進入節(jié)目管理窗口,選擇“添加”分頁,在數(shù)據(jù)窗口中按要求輸入信息后,按“確定”按鈕用來保存。如圖所示:
圖4-4節(jié)目管理窗口
在主窗口中,選中“客戶信息管理”進入客戶信息管理窗口,選擇“客戶訂購信息瀏覽”分頁后,在數(shù)據(jù)窗口中顯示客戶物品、節(jié)目信息。如圖所示:
圖4-5客戶信息管理窗口
在主窗口中,選中“客戶訂購信息查詢”進入客戶訂購信息查詢窗口,按不同的要求進行查詢,選擇“按物品查詢”分頁,輸入物品,單擊“查詢”按鈕,定購本物品的客戶顯示在數(shù)據(jù)窗口中。
如圖所示:
圖4-6客戶訂購信息查詢
在主窗口中,選中“客戶數(shù)據(jù)錄入”進入客戶數(shù)據(jù)錄入窗口,選擇“客戶信息錄入”,按要求輸入客戶信息,點擊“確定”按鈕保存。如圖所示:
圖4-7客戶數(shù)據(jù)錄入窗口
4.2系統(tǒng)的編譯
完成了企業(yè)管理信息系統(tǒng)的編程和調(diào)試工作,最后一步就是該系統(tǒng)的編譯和發(fā)行。這涉及到工程項目屬性的設(shè)置、可執(zhí)行應(yīng)用程序的生成。
這涉及到工程對象的創(chuàng)建、可執(zhí)行應(yīng)用程序的生成以及發(fā)布環(huán)境的配置等多方面的問題。一個系統(tǒng)是否開發(fā)成功,歸根結(jié)底是要看用戶對系統(tǒng)的使用是否滿意。本系統(tǒng)是一個數(shù)據(jù)庫應(yīng)用系統(tǒng),需要涉及到涉及數(shù)據(jù)庫環(huán)境配置等問題。因此,需要將系統(tǒng)應(yīng)用程序編譯成可執(zhí)行的文件,將應(yīng)用所需要的環(huán)境發(fā)布出去,這樣既可以減少應(yīng)用程序的大小,又可以提高應(yīng)用程序的運行速度。
1.創(chuàng)建工程對象
單擊工具條的“new”圖標(biāo),打開“new”對話框。在該對話框中選擇“project”標(biāo)簽頁。選擇“ApplicationWizard”圖標(biāo)。
單擊“ok”按鈕,出現(xiàn)一個向?qū)дf明窗口。單擊其上的“next”按鈕,在對話框中,指定庫文件名。在后面出現(xiàn)的對話框中分別指定生成的工程應(yīng)用的名稱、可執(zhí)行文件名和資源文件名。
在指定完畢,單擊“Finish”按鈕,生成一個工程對象。
2.編譯生成和測試
編譯的步驟如下:1.PowerBuilder的環(huán)境下,打開該工程對象。
2.單擊工程畫筆工具欄上的Build圖標(biāo)進行工程的編譯。PowerBuilder將會彈出一個窗口,顯示編譯的工程信息。單擊該窗口上的“Stop”按鈕終止編譯過程。編譯完成后,即生成了相應(yīng)的可執(zhí)行文件和動態(tài)文件。
編譯通過后,生成可執(zhí)行文件Enterprise.exe。在發(fā)布前還要對生成的可執(zhí)行文件進行測試,測試的步驟如下:
1. 離開PowerBuilder開發(fā)環(huán)境,返回到操作系統(tǒng)環(huán)境下。
2. 將編譯好的文件拷貝到PowerBuilder庫文件放置的路徑下。
3. 運行可執(zhí)行文件。
通過上面測試的可執(zhí)行文件,就可以進行發(fā)布了。考慮到最終用戶使用機器的復(fù)雜性,還需要發(fā)布PowerBuilder的環(huán)境文件以及數(shù)據(jù)庫運行的客戶端軟件。
致 謝
在本次畢業(yè)設(shè)計中,我的導(dǎo)師是××老師,我從××老師身上學(xué)到了很多東西。××老師認真負責(zé)的工作態(tài)度,嚴(yán)謹?shù)闹螌W(xué)精神都使我受益非淺。××老師無論在理論上還是在實踐中都給了我很大的幫助,使我的綜合技能有了很大的提高。××老師耐心細致的輔導(dǎo),不僅僅教給了我所學(xué)習(xí)的專業(yè)技術(shù)方面的知識,更多的教會了我獨立思考,分析問題解決問題的方法,拓寬了我的思維方式。這對于我以后的工作和學(xué)習(xí)都是一種莫大的幫助,非常感謝××老師。
限于作者能力有限,在系統(tǒng)開發(fā)及論文的撰寫過程中錯誤也在所難免,還請各位讀者,指導(dǎo)老師提出寶貴的意見,作者將萬分感謝!
參考文獻
【1】 鄭阿奇,《PowerBuilder》,電子工業(yè)出版社,2001年。
【2】 薛華誠,《 管理信息系統(tǒng)》,清華大學(xué)出版社,1993年。
【3】 黃梯云,《管理信息系統(tǒng)導(dǎo)論》,機械工業(yè)出版社,1995年。
【4】 王珊、薩師煊,《數(shù)據(jù)庫系統(tǒng)概論》,高等教育出版社,1990年。
【5】 劉魯,《信息系統(tǒng)設(shè)計原理與引用》,北京航空航天大學(xué)出版社,1995。
畢業(yè)設(shè)計小結(jié)
經(jīng)過半年的設(shè)計和開發(fā),一個完整的企業(yè)信息管理系統(tǒng)已創(chuàng)建完畢了。此系統(tǒng)的功能基本符合用戶的需求,完成了物品管理的瀏覽、查詢、增加、修改與刪除,節(jié)目管理的瀏覽、查詢、增加、修改與刪除。客戶信息管理的一般信息查詢、訂購信息瀏覽,客戶訂購查詢按物品查詢、按節(jié)目查詢客戶的信息以及客戶數(shù)據(jù)的錄入,但由于設(shè)計經(jīng)驗較少,所以該系統(tǒng)還有許多不盡人意之處,如:用戶界面不夠美觀,功能設(shè)計不夠完善,人機交互不夠便敏等,這些都有待進一步改善。
下面是對本文內(nèi)容的簡要回顧,以及通過對該系統(tǒng)的開發(fā),本人的一些心得體會。
第一章“緒論”介紹了管理信息系統(tǒng)的發(fā)展與應(yīng)用,管理信息系統(tǒng)的特點及管理信息系統(tǒng)的開發(fā)方法與開發(fā)過程。并且簡單介紹了軟件開發(fā)工具Powerbuilder功能和優(yōu)勢。
MIS 之所以能夠得到廣泛的應(yīng)用,主要是由于其對復(fù)雜信息強大的管理功能,能夠輔助用戶管理實時數(shù)據(jù)或歷史數(shù)據(jù),甚至可以產(chǎn)生新數(shù)據(jù),或從大量的數(shù)據(jù)中做出統(tǒng)計,也可以根據(jù)用戶的需求做各種類型的查詢,大大方便了用戶的管理工作。但是,正是這些 MIS 所應(yīng)具備的功能,造成了 MIS 設(shè)計開發(fā)的困難。MIS 的管理對象往往是某一領(lǐng)域中大量的信息,這就要求開發(fā)人員首先必須充分調(diào)研,仔細了解用戶工作的方方面面,熟悉用戶的工作領(lǐng)域,并通過與用戶的交流,分析用戶提出的各種要求,結(jié)合系統(tǒng)開發(fā)的可行性,剔除掉用戶的不可實現(xiàn)的需求,最后確定系統(tǒng)應(yīng)向用戶提供的功能,并以這些需求為約束來規(guī)劃應(yīng)用程序的開發(fā)。
第二章“需求分析”通過對系統(tǒng)的詳細調(diào)查,針對系統(tǒng)的現(xiàn)狀以及系統(tǒng)現(xiàn)存的問題提出了系統(tǒng)的設(shè)計目標(biāo)及設(shè)計原則。通過對系統(tǒng)組織機構(gòu)的分析,業(yè)務(wù)流程和數(shù)據(jù)流程的分析,相應(yīng)畫出了組織機構(gòu)圖,系統(tǒng)業(yè)務(wù)流程圖和數(shù)據(jù)流程圖。
需求分析是 MIS 設(shè)計的第一步,也是 MIS 設(shè)計過程中最關(guān)鍵、最困難的一步,需求做得不好,會使后繼工作大量返工,甚至造成整個系統(tǒng)的不可用。可見需求分析的重要性。因此,要投入充足的時間來做需求分析。
第三章“系統(tǒng)設(shè)計”論述了概要設(shè)計的方法。按照此方法,在需求分析的基礎(chǔ)上,先設(shè)計出滿足用戶需求的各種實體,畫出各實體的E-R圖,然后繪制出實體之間的關(guān)系并對其優(yōu)化,以及做出界面設(shè)計。
第四章“系統(tǒng)的編輯與發(fā)行”是本文的重點展示了系統(tǒng)的運行效果。它包括數(shù)據(jù)庫結(jié)構(gòu)的設(shè)計實現(xiàn);登錄窗口的設(shè)計實現(xiàn);主界面的設(shè)計實現(xiàn);設(shè)備代碼管理模塊等各功能模塊的設(shè)計。
附 錄
1.物品窗口的代碼。
//瀏覽選項頁初始化
tab_thing.tabpage_browse.dw_browse.setTransObject(SQLCA)
tab_thing.tabpage_browse.dw_browse.retrieve()
//查詢選項頁初始化
tab_thing.tabpage_query.dw_query.reset()
tab_thing.tabpage_query.sle_query.text=""
tab_thing.tabpage_query.sle_query.setfocus()
//添加選項頁初始化
tab_thing.tabpage_append.dw_append.setTransObject(SQLCA)
tab_thing.tabpage_append.dw_append.reset()
tab_thing.tabpage_append.dw_append.insertrow(0)
tab_thing.tabpage_append.dw_append.setfocus()
//修改與刪除選項頁初始化
tab_thing.tabpage_updatedelete.dw_updatedelete.setTransObject(SQLCA)
tab_thing.tabpage_updatedelete.dw_updatedelete.reset()
tab_thing.tabpage_updatedelete.sle_updatedelete.text=""
tab_thing.tabpage_updatedelete.sle_updatedelete.setfocus()
tab_thing.tabpage_updatedelete.cb_update.enabled=false
tab_thing.tabpage_updatedelete.cb_delete.enabled=false
tab_thing.tabpage_updatedelete.cb_reset1.enabled=false
選擇選項頁進行初始化
//瀏覽選項頁初始化
tab_thing.tabpage_browse.dw_browse.setTransObject(SQLCA)
tab_thing.tabpage_browse.dw_browse.retrieve()
//查詢選項頁初始化
tab_thing.tabpage_query.dw_query.reset()
tab_thing.tabpage_query.sle_query.text=""
tab_thing.tabpage_query.sle_query.setfocus()
//添加選項頁初始化
tab_thing.tabpage_append.dw_append.setTransObject(SQLCA)
tab_thing.tabpage_append.dw_append.reset()
tab_thing.tabpage_append.dw_append.insertrow(0)
tab_thing.tabpage_append.dw_append.setfocus()
//修改與刪除選項頁初始化
tab_thing.tabpage_updatedelete.dw_updatedelete.setTransObject(SQLCA)
tab_thing.tabpage_updatedelete.dw_updatedelete.reset()
tab_thing.tabpage_updatedelete.st_label2.text=""
tab_thing.tabpage_updatedelete.sle_updatedelete.text=""
tab_thing.tabpage_updatedelete.sle_updatedelete.setfocus()
tab_thing.tabpage_updatedelete.cb_update.enabled=false
tab_thing.tabpage_updatedelete.cb_delete.enabled=false
tab_thing.tabpage_updatedelete.cb_reset1.enabled=false
//
“查詢 ”按鈕click事件代碼 :
string str_query //接受去空格后字符串
int int_retrieve //接受數(shù)據(jù)檢索返回值
//去空格
str_query=trim(tab_thing.tabpage_query.sle_query.text)
//進行模糊查詢
str_query="%"+str_query+"%"
if str_query=""or isnull(str_query) then//判斷是否為空
messagebox("提示","請輸入數(shù)據(jù)!")
tab_thing.tabpage_query.sle_query.text=""
tab_thing.tabpage_query.sle_query.setfocus()
return
end if
tab_thing.tabpage_query.dw_query.setTransObject(SQLCA)
int_retrieve=tab_thing.tabpage_query.dw_query.retrieve(str_query)
if int_retrieve=0 then//判斷是否檢索到數(shù)據(jù)
messagebox("提示","本庫沒有該數(shù)據(jù)!")
tab_thing.tabpage_query.sle_query.text=""
tab_thing.tabpage_query.sle_query.setfocus()
return
end if
添加頁 “確定”按鈕click事件代碼:
string str_thing //接受編輯控件的文本變量
str_thing=tab_thing.tabpage_append.dw_append.gettext() //接受文本
if str_thing=""or isnull(str_thing) then//判斷是否為空
messagebox("提示","請輸入客戶名!")
return
end if
if tab_thing.tabpage_append.dw_append.update()=1 then//判斷添加是否符合要求
commit using sqlca;
Messagebox("提示","添加成功!")
tab_thing.tabpage_append.dw_append.reset()
tab_thing.tabpage_append.dw_append.insertrow(0)//添加
tab_thing.tabpage_append.dw_append.setfocus()
else
rollback using sqlca;
end if
修改頁“確定”按鈕click事件代碼:
if tab_thing.tabpage_updatedelete.dw_updatedelete.update()=1 then
commit using sqlca;
Messagebox("修改","修改成功!")
tab_thing.tabpage_updatedelete.sle_updatedelete.text=""
tab_thing.tabpage_updatedelete.sle_updatedelete.setfocus()
else
rollback using sqlca;
end if
“修改 ”按鈕click事件代碼 :
int ret
tab_thing.tabpage_updatedelete.dw_updatedelete.deleterow(0)
ret=messagebox("提示","確定刪除嗎?",question!,yesno!,2)
if ret=1 then
tab_thing.tabpage_updatedelete.dw_updatedelete.update()
commit using sqlca;
Messagebox("刪除","刪除成功!")
tab_thing.tabpage_updatedelete.st_label2.text=""
tab_thing.tabpage_updatedelete.dw_updatedelete.reset()
tab_thing.tabpage_updatedelete.sle_updatedelete.text=""
tab_thing.tabpage_updatedelete.sle_updatedelete.setfocus()
tab_thing.tabpage_updatedelete.cb_update.enabled=false
tab_thing.tabpage_updatedelete.cb_delete.enabled=false
tab_thing.tabpage_updatedelete.cb_reset1.enabled=false
else
if ret=2 then
return
end if
end if
客戶訂購信息查詢代碼:
//聲請變量
string ls_client
string str_client
//聲明游標(biāo)
declare thing_cursor cursor for
SELECT 客戶表.client FROM 客戶表;
tab_1.tabpage_1.ddlb_name_1.reset()
//打開游標(biāo)
open thing_cursor;
//賦值給下拉列表框
fetch thing_cursor into :ls_client;
do while sqlca.sqlcode=0
tab_1.tabpage_1.ddlb_name_1.additem(ls_client)
fetch thing_cursor into :ls_client;
loop
//關(guān)閉游標(biāo)
close thing_cursor;
2.客戶信息查詢窗口的代碼:
//按客戶名查詢
string str_client
int ret
str_client=trim(tab_1.tabpage_1.ddlb_name_1.text)
if str_client="" then
messagebox("提示","請輸入數(shù)據(jù)!")
return
end if
tab_1.tabpage_1.dw_1.setTransObject(SQLCA)
ret=tab_1.tabpage_1.dw_1.retrieve(str_client)
tab_1.tabpage_1.dw_4.setTransObject(SQLCA)
ret=tab_1.tabpage_1.dw_4.retrieve(str_client)
按物品名查詢代碼:
string str_client
int ret
str_client=trim(tab_1.tabpage_2.sle_2.text)
if str_client="" then
messagebox("提示","請輸入數(shù)據(jù)!")
tab_1.tabpage_2.sle_2.setfocus()
return
end if
tab_1.tabpage_2.dw_2.setTransObject(SQLCA)
ret=tab_1.tabpage_2.dw_2.retrieve(str_client)
if ret=0 then
messagebox("提示","本庫沒有該數(shù)據(jù)!")
tab_1.tabpage_2.sle_2.text=""
tab_1.tabpage_2.sle_2.setfocus()
end if
//按節(jié)目名查詢代碼:
string str_client
int ret
str_client=trim(tab_1.tabpage_3.sle_3.text)
if str_client="" then
messagebox("提示","請輸入數(shù)據(jù)!")
tab_1.tabpage_3.sle_3.setfocus()
return
end if
tab_1.tabpage_3.dw_3.setTransObject(SQLCA)
ret=tab_1.tabpage_3.dw_3.retrieve(str_client)
if ret=0 then
messagebox("提示","本庫沒有該數(shù)據(jù)!")
tab_1.tabpage_3.sle_3.text=""
tab_1.tabpage_3.sle_3.setfocus()
end if
//添加客戶信息代碼:
string client_name,client_telephone1,client_telephone2
string client_connector,client_address,client_memo,str_name
date client_date
//檢驗
if tab_input.tabpage_client.sle_name.text=""or isnull(tab_input.tabpage_client.sle_name.text)then
messagebox("提示","請輸入客戶名!")
tab_input.tabpage_client.sle_name.setfocus()
return
end if
client_name=trim(tab_input.tabpage_client.sle_name.text)
if tab_input.tabpage_client.sle_date.text<>" "ornot isnull(tab_input.tabpage_client.sle_date.text)then
if isDate(trim(tab_input.tabpage_client.sle_date.text)) then
client_date=date(tab_input.tabpage_client.sle_date.text)
else
messagebox("提示","請使用“年/月/日”的日期格式")
tab_input.tabpage_client.sle_name.setfocus()
return
end if
end if
//檢查客戶有沒有重復(fù)
select 客戶表.client into :str_name from 客戶表 where 客戶表.client=:client_name;
if str_name<>"" then
messagebox("提示","重名,請重新輸入!")
tab_input.tabpage_client.sle_name.setfocus()
return
end if
client_telephone1=trim(tab_input.tabpage_client.sle_telephone1.text)
client_telephone2=trim(tab_input.tabpage_client.sle_telephone2.text)
client_connector=trim(tab_input.tabpage_client.sle_connector.text)
client_address=trim(tab_input.tabpage_client.sle_address.text)
client_memo=trim(tab_input.tabpage_client.sle_memo.text)
//向數(shù)據(jù)庫寫入數(shù)據(jù)
insert into "客戶表"("client","telephone1","telephone2","connector","address","date1","memo")
values(:client_name,:client_telephone1,:client_telephone2,:client_connector,:client_address,:client_date,:client_memo);
messagebox("提示","保存成功!")
tab_input.tabpage_client.sle_name.text=""
tab_input.tabpage_client.sle_telephone1.text=""
tab_input.tabpage_client.sle_telephone2.text=""
tab_input.tabpage_client.sle_connector.text=""
tab_input.tabpage_client.sle_address.text=""
tab_input.tabpage_client.sle_date.text=""
tab_input.tabpage_client.sle_memo.text=""
3.客戶數(shù)據(jù)錄入窗口的代碼
//添加客戶物品信息
//聲請變量
string ls_client
string str_client
//聲明游標(biāo)
// str_client=trim(w_input.tab_input.tabpage_thing.ddlb_name_1.text)
declare thing_cursor cursor for
SELECT 客戶表.client FROM 客戶表;
w_input.tab_input.tabpage_thing.ddlb_name_1.reset()
w_input.tab_input.tabpage_program.ddlb_name_2.reset()
//打開游標(biāo)
open thing_cursor;
//賦值給下拉列表框
fetch thing_cursor into :ls_client;
do while sqlca.sqlcode=0
w_input.tab_input.tabpage_thing.ddlb_name_1.additem(ls_client)
w_input.tab_input.tabpage_program.ddlb_name_2.additem(ls_client)
fetch thing_cursor into :ls_client;
loop
//關(guān)閉游標(biāo)
close thing_cursor;
//添加客戶節(jié)目信息
string client_program,client_name_2,client_grade,ls_program,ls_name
int ret,client_count
if tab_input.tabpage_program.sle_program.text=""or isnull(tab_input.tabpage_program.sle_program.text)then
messagebox("提示","請輸入節(jié)目名!")
tab_input.tabpage_program.sle_program.setfocus()
return
end if
client_program=trim(tab_input.tabpage_program.sle_program.text)
client_name_2=trim(tab_input.tabpage_program.ddlb_name_2.text)
client_count=integer(trim(tab_input.tabpage_program.sle_count.text))
client_grade=trim(tab_input.tabpage_program.ddlb_grade.text)
//檢驗有沒有重復(fù)
select 客戶節(jié)目表.program
into :ls_name,:ls_program
from 客戶節(jié)目表
where 客戶節(jié)目表.client=:client_name_2 and 客戶節(jié)目表.program=:client_program;
if ls_program<>"" then
messagebox("提示","重復(fù),請重新輸入!")
return
end if
insert into "客戶節(jié)目表"
("client","program","count1","grade")
values (:client_name_2,:client_program,:client_count,:client_grade);
ret=messagebox("提示","確定保存嗎?",question!,yesno!,2)
if ret=1 then
Messagebox("保存","保存成功!")
else
if ret=2 then
return
end if
end if
tab_input.tabpage_program.sle_program.text=""
tab_input.tabpage_program.sle_count.text=""
posted on 2007-06-24 22:45
星夢情緣 閱讀(23004)
評論(76) 編輯 收藏 引用