銷售管理及信息化管理知識分析_第1頁
銷售管理及信息化管理知識分析_第2頁
銷售管理及信息化管理知識分析_第3頁
銷售管理及信息化管理知識分析_第4頁
銷售管理及信息化管理知識分析_第5頁
已閱讀5頁,還剩54頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 167 第4章 銷售管理信息系統第4章 銷售管理信息系統PowerBuilder是Sybase公司推出的一套強大的數據庫應用系統開發工具,它具有完整的客戶/服務器體系結構、面向對象的應用程序開發方法以及可視化的開發環境,因而成為近幾年流行的數據庫前端開發工具。目前,PowerBuilder已經廣泛地應用于銀行、電信、醫療保健、保險等行業中,為這些行業的數據庫應用提供了強大的開發功能。銷售管理信息系統作為信息管理系統的一個分支,已逐漸成為企業信息化建設的重要組成部分。為企業管理分布在全國的銷售網點提供了一個功能強大、安裝部署方便、使用成本低廉、操作簡捷的實時銷售管理系統。不僅能夠促進銷售業務的

2、拓展,提高銷售運作的效益,也為最終實現有效的“供應鏈管理”和更加廣泛的“電子商務”奠定了基礎。本章將以典型的銷售管理信息系統為例,向讀者詳細講述如何使用PowerBuilder開發企業銷售管理信息系統。 4.1 PowerBuilder對數據庫開發的支持PowerBuilder作為專業的數據庫開發工具,以其開放的體系結構、簡潔高效的集成開發環境、強大的數據窗口技術、良好的數據庫訪問能力和友好的用戶界面,日益成為數據庫開發人員的得力助手。PowerBuilder支持各種常見的數據庫,提供了多種數據庫接口。PowerBuilder與數據庫的連接是建立在驅動程序之上的,可以通過ODBC或JDBC接口

3、來存儲數據,也可以通過像專用的數據庫接口直接連接數據庫。數據窗口(DataWindow)是PowerBuilder中一個獨特的對象,是Sybase的專利技術,PowerBuilder的成功在很大程度上歸功于它。數據窗口的功能非常強大,它可以方便而快速地處理數據。通過數據窗口,無需編寫復雜的SQL語句,就可以實現對數據庫的讀寫操作。本節將對PowerBuilder與Access數據庫的連接,以及數據窗口技術的相關知識進行 介紹。4.1.1 實現PowerBuilder訪問Access數據庫PowerBuilder與Access的連接方法可以通過ODBC調用軟件來實現。下面將介紹如何實現Power

4、Builder訪問Access中的“聯系人管理”數據庫。因為是通過ODBC連接Access數據庫,則需要定義ODBC數據源,具體方法可參閱2.8.1節內容,也可以通過PowerBuilder自帶的工具定義ODBC數據源。(1) 為“聯系人管理”數據庫注冊ODBC數據源“聯系人管理”,但只定義數據源是不夠的,還要建立PowerBuilder的數據庫配置文件(Profile)。單擊PowerBar上的DB Profile工具按鈕,打開如圖4-1所示的對話框。在樹狀視圖列出的數據庫接口驅動程序中選擇所要連接的數據庫類ODB ODBC,右擊,在彈出的快捷菜單中選擇New Profile命令。圖4-1

5、Database Porfile對話框(2) 打開Database Profile Setup對話框,這里只有Connection選項卡中的Profile Name和Data Source兩項參數是必須要指定的。Profile Name 指定配置文件的名稱,這里指定為“聯系人管理”;Data Source指定對應的ODBC數據源,這里選擇前面定義好的ODBC數據源“聯系人管理”;UserId和Password分別用于指定連接數據源的賬戶名和口令,它們是可選的,如圖4-2所示。(3) 選擇Preview選項卡,測試連接是否成功。設置完畢后,單擊OK按鈕,數據庫配置文件的參數將存放到Windows

6、的注冊表中,同時,配置文件的名稱也會出現在數據庫類ODB ODBC的目錄中。然后右擊該配置文件,在彈出的快捷菜單中選擇Connection命令,PowerBuilder將完成對“聯系人管理”數據庫的連接,如圖4-3所示。連接成功后,就可以在PowerBuilder的開發環境中訪問“聯系人管理”數據庫了。如果要在應用程序中連接Access數據庫,可以直接在程序中編寫腳本。同樣,可以使用ODBC接口的語法,根據上面所填寫的配置參數,在Application的Open事件中加入代碼。若使用ODBC接口的語法連接數據庫,代碼如下:/ Profile 聯系人管理SQLCA.DBMS = ODBCSQLC

7、A.AutoCommit = FalseSQLCA.DBParm = ConnectString=DSN=聯系人管理;UID=;PWD=/連接數據庫Connect;If sqlca.sqlcode0 then Messagebox(連接數據庫失敗,sqlca.sqlerrtext) Halt CloseElse Messagebox(提示信息, 連接數據庫成功) /其他操作,如打開登錄窗口等 /Open(w_login)End if 圖4-2 Database Profile Setup 圖4-3 Database Profile4.1.2 PowerBuilder的數據窗口技術數據窗口(Da

8、taWindow)是PowerBuilder開發數據庫應用程序最強有力的工具。數據窗口對象是PowerBuilder數據窗口技術的核心內容,為檢索、表現和操作相關數據庫或其他數據源中的數據提供了非常方便的手段。開發人員可以通過定義數據窗口對象來指定數據的顯示格式、表現風格以及其他數據屬性,提高效率并開發出高質量的應用系統。1. 數據窗口對象PowerBuilder中的數據窗口對象主要完成兩個方面的工作:一方面,它處理應用程序所需的底層數據源,使開發人員能夠方便地操作各種類型的數據源,而不必關心這些數據源的底層調用,如數據源接口API,甚至較為高級的SQL語句也可以由數據窗口對象自動生成;另一方

9、面,數據窗口對象控制著從數據源得到的結果集的顯示,負責和應用程序的用戶之間的交互,使開發人員不必再在高水平的圖形界面設計上花費精力。下面將使用PowerBuilder的數據窗口創建向導來創建一個簡單的數據窗口對象。(1) 選擇顯示風格由于數據窗口對象顯示的是數據庫表中的信息,在創建數據窗口前對象,PowerBuider要求連接數據庫。假設已經成功連接了數據庫“聯系人管理”(注意:因為PowerBuiler不支持中文字段,這里在數據庫中增添了FriendInfo表,在下面的示例中將使用該表進行演示),接下來為數據窗口對象選擇所需的顯示風格(Presentation Style)。選擇File |

10、 New命令,彈出New對話框,選擇DataWindow選項卡,如圖4-4所示。圖4-4 選擇數據窗口的顯示風格在PowerBuilder中,顯示風格決定了以什么樣的格式顯示數據窗口中的數據。圖1-32列出了數據窗口對象可用的11種顯示風格:Composite,Crosstab,Freeform,Graph,Grid,Group,Label,N-Up,OLE2.0,Rich Text和Tabular,具體介紹可參閱PowerBuilder用戶手冊中的相關內容。這里選擇Freeform樣式(因為這種風格應用最為普遍。它允許設計者在數據窗口畫板中自由地調整和移動字段對象和字段標簽對象),然后單擊O

11、K按鈕。值得注意的是,如果沒有建立并打開任何一個工作區(Workspace),或者工作區中沒有任何容納該數據窗口的PowerBuilder庫,那么該按鈕是不可用的。(2) 選擇數據源接下來PowerBuilder會彈出Choose Data Source for Freeform DataWindow對話框,其中列出了5種類型的數據源,分別是Quick Select,SQL Select,Query,External,Stored Procedure,如圖4-5所示。圖4-5 選擇數據窗口的數據源選擇Quick Select類型的數據源。Quick Select數據源是最簡單、也是最常用的數據

12、源,該數據源所對應的SQL Select語句完全是由PowerBuilder自動、快速生成的。Quick Select數據源中的數據可以來自一個數據表,或通過外部關鍵字關聯的多個數據表。如果想在預覽數據窗口對象或打開預覽視圖時,讓數據窗口對象自動從數據源中重新獲取數據,可以選中Retrieve on Preview復選框。(3) 選擇并設計數據庫表中的字段選中Quick Select后,單擊Next按鈕,PowerBuilder會彈出Quick Select對話框,如圖4-6所示。在這里,PowerBuilder會指導開發者選擇并設計數據庫表中的字段。圖4-6 選擇并設計數據庫表中的字段在對話

13、框左上側的Table列表中,列出了所連接上的數據庫“聯系人管理”中的表。而右上側的Columns列表用于顯示所選中的數據庫表中的字段。這里選中數據表FriendInfo,單擊Add All按鈕,將表中所有的字段添加到對話框底部的列表中。在該列表中,可以定義字段的排序和選擇條件。(4) 設置顏色和邊框信息在圖4-6中單擊OK按鈕,打開Select Color and Border Settings對話框,如圖4-7所示。圖4-7 設置顏色和邊框信息在該對話框中,可以選擇要創建的數據窗口對象的顏色和邊界等信息。 Backgroud Color:用于設置整個數據窗口對象的背景顏色。 Text/Col

14、or:用于設置字段數據(即字段值)的標簽所使用的顏色。 Text/Border:用于設置字段數據(即字段值)的標簽所使用的邊框。 Columns/Color:用于設置字段標題(即字段名稱)的標簽所使用的顏色。 Columns/Border:用于設置字段標題(即字段名稱)的標簽所使用的邊框。 Wrap Height:用于設置細目帶的高度,只有Freeform顯示風格才有這個選項。 Sava as default:用于將上述設置參數的值保存為默認值。選好了這些信息后,單擊Next按鈕,會打開Ready to Create Freeform DataWindow對話框。這個對話框顯示了在創建數據窗口

15、的過程中從設計者那里獲取到的各種信息。確認無誤后,單擊Finish按鈕,完成對一個數據窗口對象的創建。(5) 進入數據窗口面板 接下來PowerBuilder會生成剛才所設計的數據窗口對象。這時,在PowerBuilder的工作區中將彈出數據窗口面板。首先給出數據窗口面板中的Design視圖,如圖4-8所示。圖4-8 所生成的數據窗口對象的Design視圖Design視圖主要用于對數據庫進行設計,它分為若干區域,最常用的有頁眉/標題(Header)、數據/細節(Detail)、匯總(Summary)和頁腳(Footer)等4個區域。其中在標識帶的標簽旁有一個向上的小箭頭,說明在標識帶上方是相應

16、區域,可以用鼠標拖動標識帶來改變相應區域的大小。下面來簡單解釋一下各個區域的作用。 頁眉/標題(Header)區域:用來顯示欄目名(默認在建立數據庫表時為列定義的標簽名或列名)和報表的標題名及其他頁眉信息,如日期等。 數據/細節(Detail)區域:是數據窗口的主體,它可以用來顯示和操作來自數據源的數據。 匯總(Summary)區域:可以通過數據窗口表達式,在匯總區域對顯示在數據/細節(Detail)區域中的數據進行匯總計算,如求合計、平均值等。 頁腳(Footer)區域:在數據窗口的底部,通常用來顯示一些頁腳信息,如頁碼等。圖4-8所示的數據/細節(Detail)區域中共有10個對象,其中左

17、邊的4個對象為Text(文本)類型的對象,它們僅僅在數據窗口中顯示一段文本;而右邊的4個對象則為Column(字段)類型的對象,在程序運行時它們所顯示的內容將和數據源中對應的字段相關。我們會經常用到的另一個視圖是Preview視圖,如圖4-9所示。這個視圖用來在設計時預覽數據窗口對象運行時的效果,并可以通過該窗口完成對數據庫的一些操作。Preview窗口在數據窗口面板中默認是打開的,如果在當前面板中看不到Preview窗口,可以選擇View | Preview命令,打開Preview窗口。圖4-9直觀地顯示了所設計的數據窗口運行時的結果,這對設計很有幫助。圖4-9 所生成的數據窗口對象的Pre

18、view視圖 (6) 保存數據窗口對象一切設計工作完成后,最后就是保持這個新建的數據窗口對象。選擇File | Save命令,打開Save DataWindow對話框,如圖4-10所示。圖4-10 保存數據窗口對象在該對話框中,輸入新建的數據窗口的名字,這里輸入dw_friendinfo,然后可以在Comments文本框中為該數據窗口添加注釋。確認無誤后,單擊OK按鈕。至此,一個完整的數據窗口對象就創建完畢了。2. 數據窗口控件數據窗口控件是數據窗口技術了另一個重要方面,它是數據窗口對象的容器。數據窗口對象定義好之后,一般要與窗口界面上的數據窗口控件相關聯,用戶通過數據窗口控件操作數據窗口對象

19、,進而操作數據庫。數據窗口功能的強大性不僅表現在數據窗口對象具有豐富的顯示樣式和靈活的數據源,而且還表現在數據窗口控件具有非常多的事件和函數。下面將介紹在用戶操作數據窗口時常用到的一些事件和函數。(1) 檢索數據連接完數據庫后,需要使用Retrieve()函數將數據從數據庫檢索到數據窗口中。如果為該函數提供了參數,那么這些參數值將用作數據窗口對象的SQL Select語句的提取參數。Retrieve()函數的語法定義如下:dwcontrol.Retrieve(, argument , argument )其中,dwcontrol是數據窗口控件名,argument(可選項)是向數據窗口對象的SQ

20、L Select語句提供的檢索參數。函數執行成功時,被檢索到的數據將顯示在數據窗口控件中,同時函數的返回值是從數據庫中檢索到的行數,否則該函數返回1。除了可以一開始從數據庫中檢索數據外,在操作數據庫的過程中,任何時候都可以調用Retrieve()函數重新從數據庫中檢索數據。(2) 添加和刪除數據用戶通過數據窗口控件操作數據,可以直接以交互方式修改那些可編輯數據;如果要在數據窗口中插入新的行使用InsertRow()函數;如果要刪除數據窗口中的行使用DeleteRow()函數。 InsertRow()函數該函數在數據窗口控件指定行前面插入一行。如果數據窗口中某些列定義了默認值,那么在新插入行顯示

21、之前,相應數據項的值首先使用默認值進行初始化。InsertRow()函數的語法定義如下:dwcontrol.InsertRow(row)其中,dwcontrol是數據窗口控件名;row指定在哪一行插入新行,如果該參數值為0則在數據窗口尾部追加一新行。 DeleteRow()函數該函數將刪除數據窗口控件中指定的數據行。DeleteRow()函數的語法定義如下:dwcontrol. DeleteRow(row)其中,dwcontrol是數據窗口控件名;row指定要刪除的行,如果該參數值為0則刪除當前行。(3) 更新數據用戶交互地對數據窗口進行修改,為數據窗口插入或刪除行,但這些都只是發生在數據窗口

22、中,對數據庫沒有產生影響。Update()函數把數據窗口控件中所有數據修改傳送到數據庫,從而更新數據庫中的數據。Update()函數的語法定義如下:dwcontrol. Update( accept , resetflag )其中,dwcontrol是數據窗口控件名;accept(可選項)指定數據窗口控件在更新數據庫之前是否自動執行AcceptText()的功能,把文本框中的內容放置到緩沖區中。resetflag(可選項)指定更新數據庫后是否自動復位更新標志。在執行Update()函數之前,必須使用SetTrans()或SetTransObject()函數建立數據窗口與數據庫的連接。使用Set

23、TransObject()函數建立連接時,應用程序的運行效率更高些,但應用程序本身需要負責事務的提交(使用SQL COMMIT語句)和回滾(使用SQL ROLLBACK)。執行了Update()后,應該檢查該函數的返回值,以判斷函數的執行是否成功。若函數執行成功時返回1,發生錯誤時函數返回1。(4) 數據窗口常用事件當用戶在數據窗口上選擇或單擊某一個位置,或者檢索、更新數據,或在開始打印報表,結束打印報表,在打印過程中等,都發生相應的事件。可以為這些事件編寫程序,在事件觸發時完成某些處理。 單擊事件(Clicked) 用戶在數據窗口控件的任何位置單擊時都會觸發Clicked事件,典型應用是單擊

24、選擇要操作的數據行或數據項。該事件提供的參數及其含義如表4-1所示。表4-1 Clicked事件的參數參 數含 義Xpos表示用鼠標單擊的位置與數據窗口控件工作區的左邊界的位置Ypos表示用鼠標單擊的位置與數據窗口控件工作區的上邊界的位置Row表示用戶單擊行的行號Dwo表示用戶單擊的數據窗口上的對象該事件的返回值的含義如表4-2所示。表4-2 Clicked事件的返回值返 回 值含 義1為默認返回值,繼續處理0停止處理,不改變輸入焦點 檢索事件(RetrieveStart,RetrieveRow和RetrieveEnd)當執行Retrieve()函數進行檢索時,與之相關的事件有Retrieve

25、Start,RetrieveRow和RetrieveEnd。RetrieveStart事件發生在數據庫窗口檢索數據之前(即執行Retrieve()函數前),使用該事件可以為用戶提供一個可視化的檢索進度,有時還可以用來控制檢索的權限。該事件返回值的含義如表4-3所示。表4-3 RetriveStart事件的返回值返 回 值含 義0為默認返回值,繼續進行索引1不執行索引2從數據庫中檢索數據前不重置行和緩沖區RetrieveRow事件發生在沒檢索一條記錄并送到數據窗口的時候,該事件返回值的含義如表4-4所示。表4-4 RetriveRow事件的返回值返 回 值含 義0為默認返回值,繼續進行索引1停止

26、檢索RetrieveEnd事件在檢索結束后觸發,一般可以用于清除在前面的事件中打開的任務。 更新事件(UpdateStart和UpdateEnd)當執行Update()更新數據庫時,與之相關的事件有UpdateStart和UpdateEnd。UpdateStart事件在用戶調用了Update()后,修改數據庫數據之前發生,該事件返回值的含義如表4-5所示。表4-5 UpdateStart事件的返回值返 回 值含 義0為默認返回值,繼續進行更新1不執行更新UpdateEnd事件在數據窗口完成更新數據庫操作后發生,該事件的參數及其含義如表4-6所示。表4-6 UpdateEnd事件的參數參 數含

27、義Rowsinserted更新操作中新插入數據庫的行數Rowsupdated更新操作中更新的行數Rowdeleted更新操作中被刪除的行數 錯誤處理事件(DBError)當操作數據庫出現錯誤時,系統會觸發數據窗口的DBError事件,開發人員可以在此編寫一些出錯處理程序,從而提供系統的容錯性。該事件的參數及其含義如表4-7所示。表4-7 DBError事件的參數參 數含 義Sqldbcode包含由數據庫廠商提供的特定出錯代碼Sqlerrtext數據庫廠商提供的錯誤信息文本Slqsyntax發送到DBMS的發生錯誤的SQL語句(續表) 參 數含 義Buffer數據窗口緩沖區,錯誤發生時數據行所在

28、的緩沖區Row在對數據進行操作時發生錯誤的數據行號該事件返回值的含義如圖4-8所示。表4-8 DBError事件的返回值返 回 值含 義1為默認返回值,系統顯示出錯信息0系統不顯示出錯信息如果開發人員沒有為DBError事件編寫程序,那么當發生數據庫錯誤時將顯示系統提示的錯誤信息。如果開發人員為DBError事件編寫了處理錯誤的程序,然后不希望再顯示系統提示的錯誤信息,則應該使事件處理程序返回1(禁止顯示系統錯誤信息)。此外,在數據窗口控件中用于出錯處理的事件還有error事件和itemerror事件。 數據處理事件ItemChangedItemChanged事件在編輯、修改數據項時觸發,即在

29、用戶對數據項有修改動作后,用Enter鍵、Tab鍵或箭頭鍵等方法離開當前編輯的數據項時觸發(如果新值與原值一樣則不觸發)。該事件的參數及其含義如表4-9所示。表4-9 ItemChanged事件的參數參 數含 義Row數據項所在的行號DwodwObject類型,修改的對象,一般是數據列Data以字符串形式表示的修改后的數據該事件返回值的含義如圖4-10所示。表4-10 ItemChanged事件的返回值返 回 值含 義0為默認返回值,接受新修改的值1不接收新修改的值且不允許改變輸入焦點2不接收新修改的值但允許改變輸入焦點在數據窗口控件中與數據處理有關的事件還有ItemFocusChanged事

30、件和RowFocus- Changed事件等。(5) 數據窗口排序盡管在定義數據窗口對象時可以指定數據窗口中的數據按某種方式排序,在應用程序中還可以動態改變數據窗口的排序方式。為了使數據窗口排序,要先使用SetSort()函數設置排序方式,然后再使用Sort()函數實施排序操作。SetSort()函數的語法定義如下:dwcontrol. SetSort(format)其中,dwcontrol是數據窗口控件名;format用字符串指定排序條件表達式,表達式包括列名或列號,使用列號時,必須在列號前加上符號。如果format參數為NULL,PowerBuilder會提示用戶輸入排序條件。Sort()

31、函數的語法定義如下:dwcontrol. Sort()其中,dwcontrol是數據窗口控件名。Sort()函數執行成功時返回1,發生錯誤時函數返回1。如果在調用Sort()函數之前沒有執行SetSort()函數,那么Sort()函數就使用定義數據窗口對象時排序條件。此后,當執行Retrieve()函數檢索數據時,如果函數執行成功,那么PowerBuilder會直接完成排序任務。只有在使用SetSort()函數修改了排序條件,或由于應用程序數據處理,或用戶輸入改變了數據時,才需要執行Sort()函數重新排序數據。如果在數據窗口對象設置了Retrieve As Needed選項,那么Sort()

32、函數的執行將取消這個選項的效果,也就是說,執行Sort()函數時將檢索出所有滿足SQL Select檢索條件的數據。(6) 數據窗口過濾在設計數據窗口對象時可以定義過濾條件,在應用程序中也可以動態定義和改變數據窗口的過濾條件。和排序類似,數據窗口過濾首先需要用SetFilter()函數指定過濾條件,然后再使用Filter()函數實施過濾操作。SetFilter()函數的語法定義如下:dwcontrol.SetFilter(format)其中,dwcontrol是數據窗口控件名;format用字符串指定過濾條件表達式,表達式包括列名或列號,使用列號時,必須在列號前加上符號。如果format參數為

33、NULL,PowerBuilder會提示用戶輸入過濾條件;如果format參數為空字符串,則表示去掉過濾條件。Filter()函數的語法定義如下:dwcontrol. Filter()其中,dwcontrol是數據窗口控件名。如果在調用Filter()函數之前沒有執行SetFilter()函數,那么Filter()函數就使用定義數據窗口對象時的過濾條件。此后,當執行Retrieve()函數檢索數據時,如果函數執行成功,那么PowerBuilder會直接完成過濾任務。只有在使用SetFilter()函數修改了過濾條件,或由于應用程序數據處理或用戶輸入改變了數據需要重新過濾數據時,才需要執行Fil

34、ter()函數。如果在數據窗口對象設置了Retrieve As Needed選項,那么Filter()函數的執行將取消這個選項的效果。(7) 確定數據窗口當前焦點位置在應用程序中經常需要確定當前焦點所在位置,或者將焦點設置到指定位置。獲得焦點的函數是GetRow()和GetColumn(),設置焦點的函數是SetRow()和SetColumn()。 GetRow()函數:用來獲得數據窗口中當前行的行號。 GetColumn()函數:用來獲得數據窗口中當前列的列號。 SetRow()函數:用來將指定行設置為數據窗口控件的當前行。 SetColumn()函數:用來將指定列設置為數據窗口控件的當前列

35、。(8) 從數據窗口中讀數據在應用程序中可以將數據窗口指定單元的數據讀到變量中,為了適應讀取不同類型的數據,PowerBuilder提供了以下函數。 GetItemDate()函數:用來從指定行、列位置讀一Data類型的值。 GetItemDateTime()函數:用來從指定行、列位置讀一DateTime類型的值。 GetItemDecimal()函數:用來從指定行、列位置讀一Decimal類型的值。 GetItemNumber()函數:用來從指定行、列位置讀一數值類型(如Decimal,Double,Integer,Long或Real類型)的值。 GetItemString()函數:用來從指

36、定行、列位置讀一String類型的值。 GetItemTime()函數:用來從指定行、列位置讀一Time類型的值。(9) 寫數據到數據窗口在應用程序中也可以將數據寫到數據窗口指定行、列的位置。與讀數據不同,PowerBuilder只為寫數據提供了一個函數SetItem()。SetItem()函數的語法定義如下:dwcontrol. SetItem(row , column , value)其中,dwcontrol是數據窗口控件名;row指定了數據窗口的行;column指定了數據窗口的列;value是要寫到數據窗口的任意類型的值,它的類型應該與指定列的數據類型相一致。以上介紹了一些在數據窗口控件

37、中常用的事件和函數。事實上,PowerBuilder為數據窗口控件提供了大約30多個事件和160多個函數,詳細介紹請參見有關使用手冊。 概 述銷售管理信息系統的主要任務是建立維護客戶信息檔案,統計匯總產品信息,進行銷售訂單的錄入、維護,實現對企業銷售合同的過程管理和成本管理,提供各類統計分析和隨機查詢。圖4-11是一個典型的銷售管理信息系統的界面。圖4-11 銷售管理信息系統界面在不同的企業之間,銷售管理信息系統會存在一些差異。通常,銷售管理信息系統主要功能包括以下方面。(1) 客戶信息管理。對客戶的基本信息(如客戶編號、客戶名稱、聯系電話、公司地址等)進行檢索、錄入和修改。(2) 客戶預訂管

38、理。對客戶的預訂信息(如預訂的產品名稱、數量、截止日期等)進行檢索、錄入和修改。(3) 產品信息管理。對產品的基本信息(如產品名稱、產品型號、計量單位等)進行檢索、錄入和修改。(4) 合同信息管理。對合同的基本信息(如客戶名稱、合同內容、簽定日期、截止日期等)進行檢索、錄入和修改。(5) 合同收支管理。對合同的收支信息(如發票號、憑單號、費用金額、收帳金額、經辦人等)進行檢索、錄入和修改。(6) 銷售人員信息管理。對企業銷售人員的用戶信息(如用戶名、密碼、聯系電話等)的檢索、錄入和修改。從功能描述的內容來看,本實例可以實現6大功能。根據這些功能設計出系統的功能模塊,如圖4-12所示。圖4-12

39、 銷售管理信息系統功能模塊示意圖用戶只要根據本單位的具體情況,補充完善上述功能,就可以應用到實際管理當中去。銷售管理信息系統作為當前應用非常廣泛的數據庫應用系統之一,其開發過程包括需求分析、UML系統建模、數據庫分析和設計以及各功能模塊的實現。在后面幾節中將詳細講述。4.3 需 求 分 析需求分析階段是銷售管理信息系統開發最重要的階段。開發者首先要了解和弄清用戶的需求,然后嚴格地定義該系統的需求規格說明書。需求分析分為兩個過程,一是理解需求,二是分析需求。4.3.1 理解需求理解需求是在問題及其最終解決方案之間架設橋梁的第一步。開發者只有和客戶充分理解了需求之后才能開始設計系統,否則,對需求定

40、義的任何改進,設計上都必須大量的返工。下面是經過雙方調研后得到的需求規格說明。(1) 系統為銷售人員建立人事檔案,用戶進入系統前需要身份驗證,用戶名、密碼輸入正確后方可進入系統。(2) 系統為客戶建立客戶檔案,可按客戶編號或名稱方便查詢檔案信息,檔案信息主要包括客戶編號、客戶名稱、聯系電話、公司地址等。銷售人員可根據客戶的購買意向在系統中制定或修改銷售訂單,并可按銷售單號查詢每一張銷售訂單,訂單中需說明產品名稱、數量、截止日期等信息。(3) 在系統中,銷售人員可根據客戶訂單的要求簽定或修改合同,但逾期的訂單不能再用于簽定合同。系統進行合同信息的錄入、維護,可按合同編號查詢合同信息,并可方便地查

41、看合同中產品的詳細信息。(4) 系統可以方便地錄入和維護合同的收支信息,包括發票號、憑單號、費用金額、收帳金額、經辦人、發生日期等信息。(5) 系統可以準確地記錄和查詢產品信息,包括產品的名稱、型號、計量單位等信息。(6) 系統的客戶端在Windows平臺下運行,服務器端可在Windows平臺或UNIX平臺下運行。系統需要有較好的安全性和可擴展性,并提供簡潔方便的圖形用戶界面。4.3.2 分析需求分析需求是從客戶的需求中提取出軟件系統,能夠幫助用戶解決業務問題,通過對用戶業務問題的分析,規劃出系統的功能模塊,即定義用例。這個步驟是對理解需求的升華,直接關系到該系統的質量。 經過開發者同客戶的需

42、求分析后,確定銷售管理信息系統的功能模塊(用例)包括客戶信息管理、客戶預訂管理、產品信息管理、合同信息管理、合同收支管理和銷售人員信息管理。前面描述了銷售管理系統的功能模塊劃分,但沒有給出各模塊之間的關系。在本系統中,可以把模塊分為3個功能集合來描述。(1) 客戶/產品信息管理功能集合。該集合只包括客戶信息管理、產品信息管理兩個模塊。主要用于提供客戶/產品的基本信息。(2) 銷售訂單及合同管理功能集合。該集合包括客戶預訂管理、合同信息管理、合同收支管理3個模塊。客戶預訂模塊根據客戶的要求制定銷售訂單;合同信息管理模塊再根據銷售訂單簽定銷售合同;合同收支管理然后再對銷售合同進行收支統計,如圖4-

43、13所示。圖4-13 銷售訂單及合同管理功能集合關系圖(3) 用戶管理及權限功能集合。該集合包括銷售人員信息管理和權限控制兩個功能模塊,雖然權限控制不是一個獨立存在的模塊,但它貫穿在整個運行過程中。銷售管理信息系統的銷售人員管理模塊需要經過權限授權才可以使用。權限功能模塊確定用戶角色由銷售經理、銷售員工組成。其中: 銷售主管享有最高權限,可以對銷售員工的信息檔案進行錄入、維護和刪除,還可以使用系統中所有業務功能。 銷售員工享有業務權限,可以使用系統中的業務功能,但不能對銷售人員的信息檔案進行管理,只可以修改自己的登錄口令。為便于讀者掌握,本章主要針對系統中前兩個功能集合的開發實現,用戶管理及權

44、限功能集合在實例中沒有詳細實現,有興趣的讀者可自己完善這些功能。4.4 UML系統建模需求分析完成后,接下來的工作是對系統建模。因為UML適合于對邏輯數據庫模式和物理數據庫模式建模,所以這里對系統進行UML建模。下面將使用Rational Rose對銷售管理信息系統進行UML建模。4.4.1 銷售管理信息系統的用例分析系統的用例分析是UML建模的第一步。在需求分析中已經確定了銷售管理信息系統的各功能模塊(用例),包括客戶信息管理、客戶預訂管理、產品信息管理、合同信息和收支管理以及銷售人員信息管理,其用例圖如圖4-14所示。圖4-14 銷售管理信息系統用例圖該用例圖標記了銷售管理信息系統的所有用

45、例,并且形象地描述了各用例與用戶角色之間的關系。用例圖所表示的各用例的作用以及各用戶角色的權限請參看需求分析部分。4.4.2 銷售管理信息系統的域類分析由于類圖用于對系統的靜態設計視圖建模,支持系統的功能需求,即系統要提供的最終服務,因此可以使用類圖來進行域類分析。域類分析是建立在用例分析基礎上的,根據用例來確定銷售管理信息系統中所要用到的類及類間的關系,從而得到類圖,如圖4-15所示。圖4-15 銷售管理信息系統類圖在域類分析時,設計該系統的類圖應注意以下兩點。(1) 對數據對象類的確定確定對象類時需要考慮:結合數據庫細節,定義了類的標記值;展開這些類的結構性細節,即屬性細節。根據銷售管理信

46、息系統的用例分析,確定所用到的類主要包括:客戶信息(ClientsInfo)、產品信息(ProductsInfo)、銷售人員(SalersInfo)、客戶預訂(OrderSchedule)、客戶合同(ContractOrder)、合同產品(ConProduct)、合同收帳(ConIncome)、合同支出(ConCost)。(2) 對各類間關聯的確定觀察各類之間的關系,如循環關聯、一對一關聯和n元關聯等,從而確定各類間的關聯。銷售管理信息系統的各類間的關聯可根據系統功能用例來確定,比如客戶信息(ClientsInfo)類和客戶預訂(OrderSchedule)類之間是1: n的關聯。關聯須謹慎確

47、定,以保證數據的完整性,防止以后頻繁的修改,影響系統的開發進度。4.4.3 銷售管理信息系統的設計在UML中,對系統動態方面建模的5種圖有用例圖、活動圖、狀態圖、時序圖和協作圖。在設計階段,需要使用狀態圖來描述類的對象的狀態及其行為,顯示對象的整個生命周期。在本系統中,有狀態圖的類有客戶預訂(OrderSchedule)和客戶合同(ContractOrder),將兩個類的狀態圖結合在一起如圖4-16所示。圖4-16 狀態圖另外,在多數情況下,為了描述用例的動態行為,還需要用到時序圖。時序圖可以單獨使用,來可視化、詳述、構造和文檔化一個特定對象群體的動態信息,對一個實例的特定控制流進行建模。下面

48、給出各個用例的時序圖,以幫助接下來的設計工作。客戶預訂管理的時序圖如圖4-17所示。圖4-17 客戶預訂管理時序圖合同信息管理的時序圖如圖4-18所示。圖4-18 合同信息管理時序圖 合同收支管理的時序圖如圖4-19所示。圖4-19 合同收支管理的時序圖可以根據上述時序圖畫出其他用例的時序圖,考慮到本書篇幅所限,這里就不再贅述,請讀者自己完成。至此,經過了需求分析,使用UML建模繪出了各用例的用例圖、狀態圖、時序圖之后,對銷售管理信息系統的具體功能實現也就有了比較明確的認識。接下來需要對系統進行框架設計和詳細設計。在進行構架設計時,將銷售管理信息系統設計視圖中的類組織成一個標準的三級體系結構,

49、如圖4-20所示。用戶服務包(User Services)中的元素提供了表現信息和收集的可視化界面;業務服務包(Bussiness Services)中的元素負責維護、訪問和修改數據;數據服務包(Data Services)中的元素為另兩個包的元素搭橋,并包含了管理用戶請求(為了執行業務上的任務)的所有類和其他元素,包括支配數據操縱策略的業務規則。圖4-20 銷售管理信息系統的體系結構然后,就可以進行詳細設計了。至此,UML系統建模完成。4.5 系 統 配 置好的數據庫系統必然有一個性能價格比最優的系統配置方案。系統配置要根據用戶的實際情況設計,主要依據就是系統的吞吐量和系統對穩定性的要求。此

50、外,用戶的維護水平也是一個重要的方面。4.5.1 軟件配置軟件配置主要包括數據庫的選擇和操作系統的選擇。銷售管理信息系統的軟件配置要根據用戶對系統的穩定性要求、系統的容量以及用戶的維護水平來確定。(1) 操作系統的選擇可以根據用戶量的大小選擇不同的操作系統。一般情況下,用戶對微軟Windows界面比較熟悉,因此,建議客戶端都使用Windows 2000或者Windows XP操作系統。服務器端操作系統的選擇如表4-11所示。表4-11 銷售管理信息系統操作系統的選擇用 戶(人)每秒數據庫并發 數據訪問記錄數穩定性要求維護水平備選操作系統個體零售企業或中小型批發企業(38)1050低差Windo

51、ws 2000 Professional,Windows XP小型零售企業或中大型批發企業(820)50500中一般Windows NT,Windows 2000 Server,Windows XP中大型零售企業或批發交易中心(20200)5002000較高較好Windows NT,Windows 2000 Server,Windows XP,Linux,UNIX(續表) 用 戶(人)每秒數據庫并發 數據訪問記錄數穩定性要求維護水平備選操作系統大型零售企業(1001000)5002000較高較好UNIX大型倉儲型綜合性批發 企業(1000以上)2000以上高好UNIX為了便于讀者學習,本節選擇

52、Windows 2000 Server作為服務器端操作系統。(2) 數據庫的選擇在本節中選擇Access數據庫。4.5.2 硬件配置硬件配置主要包括客戶端硬件的選擇和服務器端硬件的選擇。銷售管理信息系統的硬件配置要根據用戶對系統的穩定性要求、系統的容量、系統的吞吐量,以及用戶的維護水平來確定。(1) 客戶端硬件的選擇可以根據穩定性要求選擇不同的客戶端。一般情況下,對客戶端硬件的要求不高,如表4-13所示。表4-13 銷售管理信息系統客戶端硬件的選擇用 戶穩定性要求備選客戶端辦公室銷售員客戶端低Pentium CPU/64MB/4GB前臺零售客戶端中Pentium /256MB/20GB(2)

53、服務器端硬件的選擇可以根據數據量和吞吐量的大小選擇不同的服務器硬件。服務器端硬件的選擇如表4-14所示。表4-14 銷售管理信息系統服務器端硬件的選擇用 戶(人)每秒數據庫并發數據訪問記錄數穩定性要求維護水平備選服務器個體零售企業或中小型批發企業(38)1050低差Pentium /256MB/20GB個人計 算機小型零售企業或中大型批發企業(820)50500中一般至強(Xeon)雙CPU/1GB/RAID5 372GB(續表) 用 戶(人)每秒數據庫并發數據訪問記錄數穩定性要求維護水平備選服務器中大型零售企業或批發交易中心(20200)50500中一般至強(Xeon)雙CPU/1GB/RA

54、ID5 372GB大型零售企業或(1001000)5002000較高較好小型計算機/雙機熱備或者至強(Xeon)4CPU/4GB/RAID5 672GB大型倉儲型綜合性批發企業(1000以上)2000以上高好小型計算機/雙機熱備或者至強(Xeon)4CPU/4GB/RAID5 672GB當然,這種配置不是絕對的,這里只給出參考配置的范圍,具體的配置需要根據用戶的需求精確計算。4.5.3 網絡配置銷售管理信息系統的網絡配置一般有如下幾種類型。(1) 單機模式:即服務器和客戶端在一臺計算機上。(2) 百兆模式:計算機網絡的速度為百兆,如圖4-21所示。圖4-21 銷售管理信息系統網絡百兆配置(3)

55、 千兆模式:計算機網絡的速度為千兆。實際上,沒有必要給每個節點都配備千兆網絡接口,只需要給服務器端配備千兆接口即可,如圖4-22所示。圖4-22 銷售管理信息系統網絡千兆配置用戶可以根據情況選擇不同的網絡配置,如表4-15所示。表4-15 銷售管理信息系統網絡配置的選擇用 戶(人)每秒數據庫并發 數據訪問記錄數穩定性要求維護水平備選網絡方案個體零售企業或中小型批發企業(38)1050低差單機模式小型零售企業或中大型批發企業(820)50500中一般百兆模式中大型零售企業或批發交易中心(20200)50500中一般百兆模式大型零售企業(1001000)5002000較高較好百兆模式大型倉儲型綜合性批發企業(1000以上)2000以上高好千兆模式4.6 數據庫分析UML系統建模工作完成后,接下來的工作就是數據庫分析了。數據庫

溫馨提示

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

評論

0/150

提交評論