<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Dict.CN 在線詞典, 英語(yǔ)學(xué)習(xí), 在線翻譯

    都市淘沙者

    荔枝FM Everyone can be host

    統(tǒng)計(jì)

    留言簿(23)

    積分與排名

    優(yōu)秀學(xué)習(xí)網(wǎng)站

    友情連接

    閱讀排行榜

    評(píng)論排行榜

    用rational rose 2003 設(shè)計(jì)商業(yè)銷(xiāo)售系統(tǒng)

    本次分析設(shè)計(jì)是針對(duì)一個(gè)商業(yè)銷(xiāo)售系統(tǒng)中的幾個(gè)主要業(yè)務(wù)進(jìn)行建模。

    我們的設(shè)計(jì)對(duì)象是一個(gè)商場(chǎng)的商業(yè)銷(xiāo)售系統(tǒng)。商場(chǎng)下設(shè)有業(yè)務(wù)部、倉(cāng)庫(kù)、若干柜臺(tái)組及收銀臺(tái)等,業(yè)務(wù)部負(fù)責(zé)組織進(jìn)貨、保管及銷(xiāo)售,倉(cāng)庫(kù)對(duì)購(gòu)進(jìn)的商品進(jìn)行保管,而柜臺(tái)則是進(jìn)行商品零售的場(chǎng)所,收銀臺(tái)作為大廈財(cái)務(wù)出納的收款點(diǎn)負(fù)責(zé)零售商品的收款。

    1. 現(xiàn)有系統(tǒng)描述

    該商場(chǎng)現(xiàn)有部門(mén)如下:

    家用電器經(jīng)理部、家用電器大件柜、家用電器小件柜;

    五金交電經(jīng)理部、小五金柜、電氣材料柜;

    鐘表眼鏡經(jīng)理部、鐘表柜、眼鏡柜;

    文化用品經(jīng)理部、文化用品一柜、文化用品二柜;

    體育用品經(jīng)理部、體育器材柜、體育服裝柜;

    服裝用品經(jīng)理部、婦女服裝柜、兒童服裝柜、男子服裝柜;

    大件商品倉(cāng)庫(kù),服裝用品倉(cāng)庫(kù)、精細(xì)商品倉(cāng)庫(kù)、普通商品倉(cāng)庫(kù)。

     

    該商場(chǎng)的業(yè)務(wù)目前全部為手工處理,具體業(yè)務(wù)描述如下:

    業(yè)務(wù)部從有關(guān)廠家和批發(fā)商訂購(gòu)商品;訂購(gòu)商品到貨時(shí),由業(yè)務(wù)部的制單人填寫(xiě)商品入庫(kù)通知單,通知倉(cāng)庫(kù)進(jìn)行行驗(yàn)收入庫(kù);倉(cāng)庫(kù)保管員按入庫(kù)單對(duì)到貨進(jìn)行驗(yàn)收入庫(kù);無(wú)論驗(yàn)收情況如何,都要填寫(xiě)驗(yàn)收單,通知業(yè)務(wù)部及財(cái)務(wù)進(jìn)行做賬;

    柜臺(tái)需要庫(kù)存商品上柜銷(xiāo)售時(shí),也由業(yè)務(wù)部的制單人填寫(xiě)商品調(diào)撥單分別通知倉(cāng)庫(kù)和柜臺(tái)組;倉(cāng)庫(kù)按調(diào)撥單發(fā)貨;柜臺(tái)按調(diào)撥單提貨到柜臺(tái);商品零售時(shí),由售貨員填寫(xiě)交款單給顧客,顧客拿交款單到收銀臺(tái)交錢(qián),收款員按收款單的金額收款,然后在交款單上蓋收款章,顧客憑蓋章后的交款單到柜臺(tái)取走商品;

    而對(duì)批發(fā)業(yè)務(wù)來(lái)說(shuō),顧客直接到業(yè)務(wù)部進(jìn)行洽談,業(yè)務(wù)部的業(yè)務(wù)人員根據(jù)洽談結(jié)果開(kāi)售貨單,顧客拿售貨單到財(cái)務(wù)部出納處交款,出納收款后在售貨單各聯(lián)上加蓋收款章;顧客交款后直接到倉(cāng)庫(kù)提貨;倉(cāng)庫(kù)發(fā)貨時(shí)按售貨單發(fā)貨,并將售貨單的提貨聯(lián)留底。

    2. 對(duì)新系統(tǒng)要求

    2.1 經(jīng)理業(yè)務(wù)部業(yè)務(wù)管理

    業(yè)務(wù)處理要求:

    要求新系統(tǒng)能支持各經(jīng)理業(yè)務(wù)部通過(guò)開(kāi)具入庫(kù)單、調(diào)撥單、調(diào)價(jià)單商品批發(fā)銷(xiāo)售單以及庫(kù)存調(diào)整單來(lái)對(duì)商品流通各個(gè)環(huán)節(jié)進(jìn)行管理和控制。

    數(shù)據(jù)處理要求:

    入庫(kù)單、調(diào)撥單、調(diào)價(jià)單、銷(xiāo)售單以及庫(kù)存調(diào)整單都是屬于原始憑證,在新系統(tǒng)中應(yīng)保存這些原始憑證的如下基本信息:憑證號(hào)、憑證名稱、填制單位、接受單位、日期、制表人;以及,如下明細(xì)信息:入庫(kù)編號(hào)、單位、數(shù)量、單價(jià)、摘要。

    2.2 倉(cāng)庫(kù)業(yè)務(wù)管理

    業(yè)務(wù)處理要求:商品的入庫(kù)、出庫(kù)、盤(pán)點(diǎn)及查詢。

    商品入庫(kù)主要是采購(gòu)商品入庫(kù),入庫(kù)時(shí)須按入庫(kù)通知單對(duì)實(shí)物進(jìn)行驗(yàn)收,并填寫(xiě)驗(yàn)收單。

    出庫(kù)有兩種情況:一種是按商品調(diào)撥單將商品調(diào)入柜臺(tái)進(jìn)行銷(xiāo)售,另一種是批發(fā)銷(xiāo)售,顧客拿提貨聯(lián)來(lái)提貨。

    盤(pán)點(diǎn)主要是按庫(kù)存賬對(duì)實(shí)物進(jìn)行盤(pán)查,查出各種實(shí)物的盈虧情況。

    商品入庫(kù)、出庫(kù)都要對(duì)庫(kù)存賬進(jìn)行登記,盤(pán)點(diǎn)要做出盤(pán)點(diǎn)報(bào)表

    數(shù)據(jù)處理要求:

    倉(cāng)庫(kù)的商品庫(kù)存賬記錄了倉(cāng)庫(kù)各種商品的庫(kù)存數(shù)量及資金占用量等庫(kù)存狀態(tài),應(yīng)能反映如下信息:入庫(kù)編號(hào)、商品名稱、單位、數(shù)量、單價(jià)、入庫(kù)日期、庫(kù)位

    庫(kù)存進(jìn)出流水賬記錄倉(cāng)庫(kù)商品進(jìn)出情況,這是一個(gè)隨時(shí)間增加的流水賬,應(yīng)能反映如下信息:憑證編號(hào)、進(jìn)出(借貸)、數(shù)量、單位、單價(jià)、入庫(kù)編號(hào)、商品名稱、日期、摘要。

    入庫(kù)驗(yàn)收單記錄入庫(kù)驗(yàn)收情況,應(yīng)能反映如下信息:驗(yàn)收單編號(hào)、商品名稱、入庫(kù)編號(hào)、入庫(kù)數(shù)量、驗(yàn)收數(shù)量、驗(yàn)收質(zhì)量、單位、單價(jià)、入庫(kù)單編號(hào)、驗(yàn)收日期、驗(yàn)收人、摘要。

    盤(pán)點(diǎn)記錄表記錄盤(pán)點(diǎn)情況,應(yīng)能反映如下信息:盤(pán)點(diǎn)日期、入庫(kù)編號(hào)、商品名稱、賬面數(shù)量、實(shí)際盈虧數(shù)量、單位、單價(jià)、摘要。

    2.3 柜臺(tái)業(yè)務(wù)管理

    新系統(tǒng)應(yīng)對(duì)以下業(yè)務(wù)進(jìn)行處理:商品調(diào)柜處理、商品銷(xiāo)售及柜臺(tái)商品的統(tǒng)計(jì)查詢。

    商品調(diào)入柜臺(tái)進(jìn)行銷(xiāo)售時(shí),要按商品調(diào)撥單從倉(cāng)庫(kù)中領(lǐng)取商品,同時(shí)要登記柜臺(tái)商品帳。

    銷(xiāo)售商品時(shí)先開(kāi)售貨單給顧客,顧客憑售貨單去收銀臺(tái)交款后再將已盞收款章的售貨單交給售貨員并取走商品,售貨員須將已售出的貨物進(jìn)行登記。

    此外,查詢主要查詢柜臺(tái)商品情況及銷(xiāo)售情況。統(tǒng)計(jì)主要統(tǒng)計(jì)每天的銷(xiāo)售情況,毛利潤(rùn)等信息。

    數(shù)據(jù)處理要求:

    1. 柜臺(tái)商品的登記應(yīng)該的兩本賬;一本是反映柜臺(tái)商品狀態(tài)的,另一本是反映柜臺(tái)商品變動(dòng)情況的流水賬。

    2. 用于記錄柜臺(tái)現(xiàn)有各商品存貨的情況的柜臺(tái)商品賬,應(yīng)能反映如下信息:入庫(kù)編號(hào)、商品名稱、單位、數(shù)量、進(jìn)價(jià)。

    3. 用于記錄柜臺(tái)商品的入庫(kù)情況的柜臺(tái)商品入庫(kù)流水賬,應(yīng)能反映如下信息:憑證編號(hào)、入庫(kù)編號(hào)、商品名稱、數(shù)量、單價(jià)、單位、日期、摘要。

    4. 用于記錄柜臺(tái)商品的銷(xiāo)售庫(kù)情況的柜臺(tái)商品銷(xiāo)售流水賬,應(yīng)能反映如下信息:憑證編號(hào)、入庫(kù)編號(hào)、商品名稱、銷(xiāo)售數(shù)量、銷(xiāo)售單價(jià)、單位、單位毛利、日期、摘要。

    5. 售貨數(shù)據(jù):售貨單編號(hào)、入庫(kù)編號(hào)、商品名稱、數(shù)量、售價(jià)、單位、有效否、柜臺(tái)名稱、日期。

    6. 商品價(jià)格數(shù)據(jù):商品名稱、單位、價(jià)格、實(shí)行日期。

    2.4 收銀臺(tái)管理

    收銀臺(tái)的主要工作就是按售貨單收取現(xiàn)金。系統(tǒng)應(yīng)提供以下業(yè)務(wù)處理功能:收款員聯(lián)機(jī)管理、收款登記,收款查詢、銷(xiāo)售日?qǐng)?bào)表及現(xiàn)金日?qǐng)?bào)表的生成打印。

    數(shù)據(jù)處理要求:

    1. 收款臺(tái)賬,記錄了收款流水賬,應(yīng)能反映如下信息:售貨單編號(hào)、日期、柜臺(tái)、入庫(kù)編號(hào)、商品名稱、數(shù)量、單位、單價(jià)、收款員、付款方式(現(xiàn)金、支票)

    2. 銷(xiāo)售日?qǐng)?bào),記錄了每天統(tǒng)計(jì)的銷(xiāo)售情況,應(yīng)能反映如下信息:日期、柜臺(tái)號(hào)、入庫(kù)編號(hào)、商品編號(hào)、數(shù)量、單位、金額。

    3. 新系統(tǒng)至少應(yīng)記錄收款員如下一些信息:收款員姓名、口令、有效否、登記日期。

    2.5 商品三級(jí)賬管理

    商品三級(jí)賬管理的主要有:根據(jù)倉(cāng)庫(kù)驗(yàn)收單在商品賬中登記入庫(kù)記錄,填調(diào)撥單時(shí)須檢查庫(kù)存是否有相應(yīng)的商品,調(diào)撥單填完后要自動(dòng)對(duì)商品賬中的庫(kù)存和柜臺(tái)商品變動(dòng)進(jìn)行登記,根據(jù)銷(xiāo)售日?qǐng)?bào)表對(duì)柜臺(tái)銷(xiāo)售商品登賬。

    數(shù)據(jù)處理要求:

    1. 商品存貨賬,記錄商場(chǎng)備部門(mén)的存貨情況:入庫(kù)編號(hào)、商品名稱、存貨單位名稱、單位、數(shù)量、單價(jià)。

    2. 商品變動(dòng)流水賬,記錄商場(chǎng)各部門(mén)的存貨的變動(dòng)情況:入庫(kù)編號(hào)、商品名稱、科目編號(hào)、借貸、單位、數(shù)量,單價(jià)、日期、憑證號(hào)、摘要。

    3. 商品銷(xiāo)售流水賬,記錄商品的銷(xiāo)售情況:入庫(kù)編號(hào)、商品名稱、銷(xiāo)售部門(mén)、銷(xiāo)售數(shù)量、單位、售價(jià)、進(jìn)價(jià)、毛利、日期。

     

    2.6 編碼要求

    新系統(tǒng)對(duì)諸如部門(mén)、人員、商品、廠家、各種憑證等分別制定一套簡(jiǎn)單易行的編碼方案,以方便管理和使用。

    商場(chǎng)方面還要求該系統(tǒng)應(yīng)是一個(gè)多層體系結(jié)構(gòu)的分布式系統(tǒng)。



     

    系統(tǒng)設(shè)計(jì)說(shuō)明

        本文檔設(shè)計(jì)中,是把以上部門(mén)按功能把他們進(jìn)行抽象成為四個(gè)管理系統(tǒng)。下圖是Use Case Diagram View中對(duì)系統(tǒng)的一個(gè)描述。它雖然是個(gè)Use Case Diagram,但里面的內(nèi)容只是Package,不包含具體Use Case DiagramactorUse Case.

    1。系統(tǒng)的結(jié)構(gòu)圖

    單據(jù)管理系統(tǒng)設(shè)計(jì)說(shuō)明

    Use Case應(yīng)該是過(guò)程、操作而非一個(gè)實(shí)體的對(duì)象。如圖,Use Case 的所有對(duì)象(商品入庫(kù)單、庫(kù)存入庫(kù)單、商品調(diào)整單、商品批發(fā)銷(xiāo)售單、商品調(diào)撥單)都是實(shí)實(shí)在在存在的實(shí)體。它們不是一個(gè)過(guò)程,亦不是一個(gè)操作。因而Use Case Diagram如下:

                               圖二、單據(jù)管理系統(tǒng)用例圖

    在單據(jù)管理系統(tǒng)中要求新系統(tǒng)能支持各經(jīng)理業(yè)務(wù)部通過(guò)開(kāi)具入庫(kù)單、調(diào)撥單、調(diào)價(jià)單商品批發(fā)銷(xiāo)售單以及庫(kù)存調(diào)整單來(lái)對(duì)商品流通各個(gè)環(huán)節(jié)進(jìn)行管理和控制。

    在畫(huà)Sequence Diagram中,為了很好的對(duì)類和操作作很好的映射,提高Sequence Diagram的實(shí)際用途,采用了“二步法”來(lái)做。如下圖,先是對(duì)用戶所關(guān)心的東西作一個(gè)描述性的說(shuō)明。在這里面,不對(duì)具體的實(shí)體對(duì)象任何的描象,也不對(duì)類進(jìn)行映射。


    圖三、“二步法”畫(huà)Sequence Diagram (1)

    圖四、“二步法”畫(huà)Sequence Diagram (2)

    圖五、“二步法”畫(huà)Sequence Diagram (3)

    Sequence Diagram一樣,Collaboration Diagram 也顯示使用案例中特定的流程。Sequence DiagramCollaboration Diagram中的信息相同,但Collaboration Diagram顯示了不同的流程視圖。在Collaboration Diagram中,更容易看出對(duì)象之間的關(guān)系。

    Collaboration Diagram表示協(xié)作,在Collaboration Diagram中包含了一組由對(duì)象扮演的角色,以及一個(gè)特定的上下文中的關(guān)系。對(duì)最終得出的Sequence Diagram作轉(zhuǎn)化,成為如圖六所示的Collaboration Diagram


    圖六、Sequence Diagram 轉(zhuǎn)為Collaboration Diagram

    C1ass框圖顯示系統(tǒng)中的類與類包,提供系統(tǒng)組件及其相互關(guān)系的靜態(tài)圖形。類是包裝信息和行為的項(xiàng)目。習(xí)慣上,我們把系統(tǒng)的信息放在數(shù)據(jù)庫(kù)”一方,行為放在應(yīng)用程序一方。面向?qū)ο蠓椒ǖ奶攸c(diǎn)之—就是將一小組息和影響信息的行為連接在—起。我們將一小組信息和影響信息的行為連接在一起,包裝成類。一個(gè)系統(tǒng)通常要生成幾個(gè)CIass框圖。有些顯示類及其關(guān)系的子集,有些顯示類的子集,包括屬性和操作,還有—些顯爾類包及包之間的關(guān)系。

    接著上面的這個(gè)制單例子,對(duì)圖八中所映射的類添加一些必要的屬性和操作,并反相關(guān)的類分類后打包為三個(gè)包:


    圖七、把類分類后打包

    圖八、包“界面”下屬類



    圖九、包“后臺(tái)數(shù)據(jù)庫(kù)”下屬類



    圖十、包“中間件”下屬類

       當(dāng)然,也有對(duì)整個(gè)單據(jù)管理系統(tǒng)所有類及類之間關(guān)系的描述:


    圖十一、單據(jù)管理系統(tǒng)類及
    類之間的關(guān)系

    組件是代碼的物理模塊。組件可以包括代碼閘和運(yùn)行文件。例如,如果使用C++,則每個(gè)個(gè).CPP.H文件是單獨(dú)的組件。編譯代碼后生成的EXE文件也是組件。生成代碼之前,將每個(gè)文件映射相應(yīng)組件。在C++中,每個(gè)類映射兩個(gè)組件,一個(gè)表示類的.CPP義件,—個(gè)表示.H的文件。組件生成之后,加進(jìn)Component Dragram中,并畫(huà)出其間關(guān)系:

    圖十二、組件包之間的關(guān)系


    圖十三、組件之間的關(guān)系


    其它功能模塊設(shè)計(jì)

    上面已對(duì)單據(jù)管理系統(tǒng)的設(shè)計(jì)進(jìn)行了詳細(xì)說(shuō)明。從技術(shù)角度來(lái)說(shuō),倉(cāng)庫(kù)管理系統(tǒng)、銷(xiāo)售管理系統(tǒng)、賬目管理系統(tǒng)的實(shí)現(xiàn)過(guò)程、步驟和方法都是一樣的。為了避免不必要的冗余,以下部份直接給出圖例,不再加于累述

    圖十四、倉(cāng)庫(kù)管理系統(tǒng)用例圖


    圖十五、銷(xiāo)售管理系統(tǒng)用例圖


    圖一六、帳目管理系統(tǒng)用例圖

    圖一七、報(bào)表管理順序圖


    商業(yè)銷(xiāo)售系統(tǒng)類圖匯總


    圖一八、后臺(tái)數(shù)據(jù)庫(kù)類圖匯總

    圖一九、界面類圖匯總



    圖二○、中間件類圖匯總


    圖二一、商業(yè)銷(xiāo)售系統(tǒng)類圖匯總


    圖二二、
    商業(yè)銷(xiāo)售系統(tǒng)類圖匯總組件圖匯總

    尚未解決的問(wèn)題

    1.若此高場(chǎng)有進(jìn)出口貿(mào)易,剛對(duì)進(jìn)出口商品的管理沒(méi)有細(xì)分。

              2.界面的完全實(shí)現(xiàn)。

           3.高級(jí)管理者與普通用戶擁有優(yōu)先的權(quán)利沒(méi)有體現(xiàn)出來(lái)。




     

    附錄一、數(shù)據(jù)庫(kù)建表代碼

    use master

    go

     

    if exists (select * from dbo.sysdatabases where name = 'vendition')

    drop database vendition

    GO

     

    create database vendition

    go

    use vendition

    go

     

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TravelService_Loan]') and OBJECTPROPERTY(id, N'ZreceiverInfo') = 1)

    drop table [dbo].[TravelService_Loan]

    GO

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TravelService_Loan]') and OBJECTPROPERTY(id, N'Dorder') = 1)

    drop table [dbo].[TravelService_Loan]

    GO

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TravelService_Loan]') and OBJECTPROPERTY(id, N'CcheckOrder') = 1)

    drop table [dbo].[TravelService_Loan]

    GO

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TravelService_Loan]') and OBJECTPROPERTY(id, N'ZgoodDailyOrder') = 1)

    drop table [dbo].[TravelService_Loan]

    GO

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TravelService_Loan]') and OBJECTPROPERTY(id, N'SgainTotal') = 1)

    drop table [dbo].[TravelService_Loan]

    GO

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TravelService_Loan]') and OBJECTPROPERTY(id, N'CstorageInfo') = 1)

    drop table [dbo].[TravelService_Loan]

    GO

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TravelService_Loan]') and OBJECTPROPERTY(id, N'CinStorage') = 1)

    drop table [dbo].[TravelService_Loan]

    GO

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TravelService_Loan]') and OBJECTPROPERTY(id, N'CprepareOrder') = 1)

    drop table [dbo].[TravelService_Loan]

    GO

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TravelService_Loan]') and OBJECTPROPERTY(id, N'ZmoneyDailyOrder') = 1)

    drop table [dbo].[TravelService_Loan]

    GO

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TravelService_Loan]') and OBJECTPROPERTY(id, N'SpayforOrder') = 1)

    drop table [dbo].[TravelService_Loan]

    GO

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TravelService_Loan]') and OBJECTPROPERTY(id, N'SpayforOrder') = 1)

    drop table [dbo].[TravelService_Loan]

    GO

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TravelService_Loan]') and OBJECTPROPERTY(id, N'SgoodsTotal') = 1)

    drop table [dbo].[TravelService_Loan]

    GO

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TravelService_Loan]') and OBJECTPROPERTY(id, N'DorderItem') = 1)

    drop table [dbo].[TravelService_Loan]

    GO

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TravelService_Loan]') and OBJECTPROPERTY(id, N'CpickUpGoodsOrder') = 1)

    drop table [dbo].[TravelService_Loan]

    GO

     

     

    CREATE TABLE ZreceiverInfo (

           ReceiverID INTEGER NOT NULL,

           ReceiverName VARCHAR ( 255 ) NOT NULL,

           ReceiverPassW SMALLINT NOT NULL,

           Gender SMALLINT NOT NULL,

           ApplyDate datetime NOT NULL,

           LastLoginDate datetime NOT NULL,

           CounterID SMALLINT NOT NULL,

           Others SMALLINT NOT NULL,

           ZreceiverInfo_ID INTEGER NOT NULL,

           CONSTRAINT PK_ZreceiverInfo11 PRIMARY KEY (ZreceiverInfo_ID)

           );

    CREATE TABLE Dorder (

           OrderNumber INTEGER NOT NULL,

           OrderName VARCHAR ( 255 ) NOT NULL,

           OrderFillUnit VARCHAR ( 255 ) NOT NULL,

           OrderRequreUnit VARCHAR ( 255 ) NOT NULL,

           OrderDate datetime NOT NULL,

           OrderFillDate datetime NOT NULL,

           OrderLister VARCHAR ( 255 ) NOT NULL,

           Dorder_ID INTEGER NOT NULL,

           CONSTRAINT PK_Dorder4 PRIMARY KEY (Dorder_ID)

           );

    CREATE TABLE CcheckOrder (

           CheckNumber INTEGER NOT NULL,

           CheckPerson VARCHAR ( 255 ) NOT NULL,

           CheckResult SMALLINT NOT NULL,

           COL_0 SMALLINT NOT NULL,

           Dorder_ID INTEGER NOT NULL,

           GoodName VARCHAR ( 255 ) NOT NULL,

           InStorageOrderID INTEGER NOT NULL,

           CONSTRAINT PK_CcheckOrder21 PRIMARY KEY (Dorder_ID)

           );

    CREATE TABLE ZgoodDailyOrder (

           ZmoneyDailyOrder_ID INTEGER,

           SgoodsTotal_ID INTEGER,

           Dorder_ID INTEGER NOT NULL,

           CONSTRAINT PK_ZgoodDailyOrder24 PRIMARY KEY (Dorder_ID)

           );

    CREATE TABLE SgainTotal (

           Date datetime NOT NULL,

           GoodOrderID INTEGER NOT NULL,

           OrderId INTEGER NOT NULL,

           SgainTotal_ID INTEGER NOT NULL,

           TotalCash SMALLINT NOT NULL,

           CONSTRAINT PK_SgainTotal18 PRIMARY KEY (SgainTotal_ID)

           );

    CREATE TABLE CstorageInfo (

           GoodPlace VARCHAR ( 255 ) NOT NULL,

           Dorder_ID INTEGER NOT NULL,

           CinStorage_Dorder_ID INTEGER NOT NULL,

           CONSTRAINT PK_CstorageInfo19 PRIMARY KEY (Dorder_ID)

           );

    CREATE TABLE CinStorage (

           InStorageTime SMALLINT NOT NULL,

           CpickUpGoodsOrder_ID INTEGER,

           Dorder_ID INTEGER NOT NULL,

           CONSTRAINT PK_CinStorage20 PRIMARY KEY (Dorder_ID)

           );

    CREATE TABLE CprepareOrder (

           Dorder_ID INTEGER NOT NULL,

           CONSTRAINT PK_CprepareOrder22 PRIMARY KEY (Dorder_ID)

           );

    CREATE TABLE ZmoneyDailyOrder (

           OrderId INTEGER NOT NULL,

           TotalCash DOUBLE PRECISION NOT NULL,

           Date datetime NOT NULL,

           GoodOrderId INTEGER NOT NULL,

           ZmoneyDailyOrder_ID INTEGER NOT NULL,

           SgainTotal_ID INTEGER,

           CONSTRAINT PK_ZmoneyDailyOrder14 PRIMARY KEY (ZmoneyDailyOrder_ID)

           );

    CREATE TABLE SpayforOrder (

           Dorder_ID INTEGER NOT NULL,

           CONSTRAINT PK_SpayforOrder25 PRIMARY KEY (Dorder_ID)

           );

    CREATE TABLE ZgatheringOrder (

           PayForm VARCHAR ( 255 ) NOT NULL,

           CounterID INTEGER NOT NULL,

           ZmoneyDailyOrder_ID INTEGER,

           Dorder_ID INTEGER NOT NULL,

           CONSTRAINT PK_ZgatheringOrder23 PRIMARY KEY (Dorder_ID)

           );

    CREATE TABLE SgoodsTotal (

           OrderId INTEGER NOT NULL,

           GoodName VARCHAR ( 255 ) NOT NULL,

           GoodTotal INTEGER NOT NULL,

           SgainTotalID INTEGER NOT NULL,

           GoodPrice DOUBLE PRECISION NOT NULL,

           SgoodsTotal_ID INTEGER NOT NULL,

           CONSTRAINT PK_SgoodsTotal17 PRIMARY KEY (SgoodsTotal_ID)

           );

    CREATE TABLE DorderItem (

           ItemID INTEGER NOT NULL,

           ItemUnit VARCHAR ( 255 ) NOT NULL,

           ItemNumber INTEGER NOT NULL,

           ItemPrise DOUBLE PRECISION NOT NULL,

           ItemTabloid VARCHAR ( 255 ) NOT NULL,

           DorderItem_ID INTEGER NOT NULL,

           Dorder_ID INTEGER NOT NULL,

           CONSTRAINT PK_DorderItem5 PRIMARY KEY (DorderItem_ID)

           );

    CREATE TABLE CpickUpGoodsOrder (

           PickUpID SMALLINT NOT NULL,

           PickUpObject VARCHAR ( 255 ) NOT NULL,

           PickUpTime datetime NOT NULL,

           PickUpGoodName VARCHAR ( 255 ) NOT NULL,

           PickUpGoodPrice DOUBLE PRECISION NOT NULL,

           PickUpMoney DOUBLE PRECISION NOT NULL,

           CpickUpGoodsOrder_ID INTEGER NOT NULL,

           CONSTRAINT PK_CpickUpGoodsOrder10 PRIMARY KEY (CpickUpGoodsOrder_ID)

           );

    CREATE INDEX TC_ZgoodDailyOrder13 ON ZgoodDailyOrder (ZmoneyDailyOrder_ID);

    CREATE INDEX TC_ZgoodDailyOrder15 ON ZgoodDailyOrder (SgoodsTotal_ID);

    CREATE INDEX TC_CinStorage9 ON CinStorage (CpickUpGoodsOrder_ID);

    CREATE INDEX TC_ZmoneyDailyOrder17 ON ZmoneyDailyOrder (SgainTotal_ID);

    CREATE INDEX TC_ZgatheringOrder11 ON ZgatheringOrder (ZmoneyDailyOrder_ID);

    CREATE INDEX TC_DorderItem5 ON DorderItem (Dorder_ID);

    ALTER TABLE CcheckOrder ADD CONSTRAINT FK_CcheckOrder12 FOREIGN KEY (Dorder_ID) REFERENCES Dorder (Dorder_ID)  ON DELETE NO ACTION ON UPDATE NO ACTION;

    ALTER TABLE ZgoodDailyOrder ADD CONSTRAINT FK_ZgoodDailyOrder6 FOREIGN KEY (ZmoneyDailyOrder_ID) REFERENCES ZmoneyDailyOrder (ZmoneyDailyOrder_ID)  ON DELETE NO ACTION ON UPDATE NO ACTION;

    ALTER TABLE ZgoodDailyOrder ADD CONSTRAINT FK_ZgoodDailyOrder15 FOREIGN KEY (Dorder_ID) REFERENCES CinStorage (Dorder_ID)  ON DELETE NO ACTION ON UPDATE NO ACTION;

    ALTER TABLE ZgoodDailyOrder ADD CONSTRAINT FK_ZgoodDailyOrder7 FOREIGN KEY (SgoodsTotal_ID) REFERENCES SgoodsTotal (SgoodsTotal_ID)  ON DELETE NO ACTION ON UPDATE NO ACTION;

    ALTER TABLE CstorageInfo ADD CONSTRAINT FK_CstorageInfo10 FOREIGN KEY (CinStorage_Dorder_ID) REFERENCES CinStorage (Dorder_ID)  ON DELETE NO ACTION ON UPDATE NO ACTION;

    ALTER TABLE CstorageInfo ADD CONSTRAINT FK_CstorageInfo9 FOREIGN KEY (Dorder_ID) REFERENCES Dorder (Dorder_ID)  ON DELETE NO ACTION ON UPDATE NO ACTION;

    ALTER TABLE CinStorage ADD CONSTRAINT FK_CinStorage4 FOREIGN KEY (CpickUpGoodsOrder_ID) REFERENCES CpickUpGoodsOrder (CpickUpGoodsOrder_ID)  ON DELETE NO ACTION ON UPDATE NO ACTION;

    ALTER TABLE CinStorage ADD CONSTRAINT FK_CinStorage11 FOREIGN KEY (Dorder_ID) REFERENCES Dorder (Dorder_ID)  ON DELETE NO ACTION ON UPDATE NO ACTION;

    ALTER TABLE CprepareOrder ADD CONSTRAINT FK_CprepareOrder13 FOREIGN KEY (Dorder_ID) REFERENCES Dorder (Dorder_ID)  ON DELETE NO ACTION ON UPDATE NO ACTION;

    ALTER TABLE ZmoneyDailyOrder ADD CONSTRAINT FK_ZmoneyDailyOrder8 FOREIGN KEY (SgainTotal_ID) REFERENCES SgainTotal (SgainTotal_ID)  ON DELETE NO ACTION ON UPDATE NO ACTION;

    ALTER TABLE SpayforOrder ADD CONSTRAINT FK_SpayforOrder16 FOREIGN KEY (Dorder_ID) REFERENCES ZgatheringOrder (Dorder_ID)  ON DELETE NO ACTION ON UPDATE NO ACTION;

    ALTER TABLE ZgatheringOrder ADD CONSTRAINT FK_ZgatheringOrder14 FOREIGN KEY (Dorder_ID) REFERENCES Dorder (Dorder_ID)  ON DELETE NO ACTION ON UPDATE NO ACTION;

    ALTER TABLE ZgatheringOrder ADD CONSTRAINT FK_ZgatheringOrder5 FOREIGN KEY (ZmoneyDailyOrder_ID) REFERENCES ZmoneyDailyOrder (ZmoneyDailyOrder_ID)  ON DELETE NO ACTION ON UPDATE NO ACTION;

    ALTER TABLE DorderItem ADD CONSTRAINT FK_DorderItem2 FOREIGN KEY (Dorder_ID) REFERENCES Dorder (Dorder_ID)  ON DELETE NO ACTION ON UPDATE NO ACTION;



     

    附錄二、幾個(gè)簡(jiǎn)單的存儲(chǔ)過(guò)程和觸發(fā)器的實(shí)現(xiàn)

    /***************************************************************************/

    create trigger CheckGoods on Cinstroage   /*填調(diào)撥單時(shí)檢查庫(kù)存是否有相應(yīng)的商品*/

    for insert

    as

    begin

      declare @GoodsName varchar(20),

           @GoodsNum int,

              @Mark int,set @Mark=0

     

      set @GoodsName=(select @GoodsName from inserted)

      set @GoodsNum=(select @@GoodsNum from inserted)

      set @Mark=(select (*) from Cinstroage where Cinstroage.GoodName=@GoodsName)

     

      if@Mark=0

      begin

        insert into Cinstroage values(select * from inserted)

      end

     

      else if

      begin

        update Cinstroage

        set GoodsNum=GoodsNum+@GoodsNum

        where GoodsName=@GoodsName

      end

    end

    /***************************************************************************/

    create trigger PickOut on CprepareOrder/*調(diào)撥單填完后要自動(dòng)對(duì)商品賬中的庫(kù)存和柜臺(tái)商品變動(dòng)進(jìn)行登記*/

    for insert

    as

    begin

      declare @GoodsName varchar(20),

           @GoodsNum int,

     

      set @GoodsName=(select @GoodsName from inserted)

      set @GoodsNum=(select @@GoodsNum from inserted)

     

      update Cinstroage

      set GoodsNum=GoodsNum-@GoodsNum

      where GoodsName=@GoodsName

     

      delete * from Cinstroage where GoodsNum=0

     

      update ScountStroage

      set GoodsNum=GoodsNum-@GoodsNum

      where GoodsName=@GoodsName

     

      delete * from ScountStroage where GoodsNum=0

      end

    end

    /***************************************************************************/

    create proc Cdaily(@Cdate datetime)  /*銷(xiāo)售日?qǐng)?bào)表現(xiàn)金日?qǐng)?bào)表的生成*/

    as

     

    create table CdailyResult        /*創(chuàng)建臨時(shí)表 CdailyResult*/

          (GoodName varchar(20),

           GoodPrice int,

           GoodNum int,

           GoodCountCash varchar(10),

    )

    go

     

     

    declare @GoodName varchar(20),              /*從收款單和提貨單中把名字相同的商品銷(xiāo)售信息匯總放在臨時(shí)表中*/

           @GoodPrice int,

           @GoodNum int,

           @GoodCountCash varchar(10),

           @TotalCash varchar(15),

           @looptime1 set @looptime1=(select count(*) from ZgatheringOrder),

           @looptime2 set @looptime1=(select count(*) from CpicpUpGoodsOrder)

    declare DailyTotal1 cursor for

           select a1.GoodName,a1.GoodPrice+a1.GoodPrice,a1.GoodNum+a2.GoodNum,a1.GoodCountCash+a2.GoodCountCash

           from ZgatheringOrder as a1,a2

           where a1.DailyDate=@Cdate

                 a1.GoodName=a2.GoodName

    declare DailyTotal2 cursor for

           select a1.GoodName,a1.GoodPrice+a1.GoodPrice,a1.GoodNum+a2.GoodNum,a1.GoodCountCash+a2.GoodCountCash

           from CpicpUpGoodsOrder as a1,a2

           where DailyDate=@Cdate

     

    open ZgatheringOrder

    open CpicpUpGoodsOrder

    while @looptime1!=0

          begin

           fetch next from ZgatheringOrder into @GoodName,@GoodPrice,@GoodNum,@GoodCountCash

           insert into result values(@GoodName,@GoodPrice,@GoodNum,@GoodCountCash)

           set @looptime1=@looptime1-1

          end

    while @looptime2!=0

          begin

           fetch next from CpicpUpGoodsOrder into @GoodName,@GoodPrice,@GoodNum,@GoodCountCash

           insert into result values(@GoodName,@GoodPrice,@GoodNum,@GoodCountCash)

           set @looptime1=@looptime1-1

          end

     

    close ZgatheringOrder

    close CpicpUpGoodsOrder

    deallocate ZgatheringOrder

    deallocate CpicpUpGoodsOrder

     

    /*執(zhí)行完后必須刪除臨時(shí)表 CdailyResult*/

     

     

    /***************************************************************************/

    create proc Ccheck(@Cdate datetime)  /*些存儲(chǔ)過(guò)程用來(lái)完成倉(cāng)庫(kù)管理系統(tǒng)中的商品盤(pán)點(diǎn)功能*/

    as

     

    create table CcheckResult             /*創(chuàng)建臨時(shí)表 CdailyResult*/

          (CheckDate datetime,

           InstorageOrderID int,

           GoodName varchar(20),

           GoodPrice int,

           RemaningNum int,

           Mark varchar(10),

           Unit varchar(4),

           Abstract varchar(200)

    )

    go

     

     

    declare @InstorageOrderID int,

           @GoodName varchar(20),

           @GoodPrice int,

           @RemaningNum int,

           @Mark varchar(10),

           @Unit varchar(4),

           @Abstract varchar(200),

           @looptime set @looptime1=(select count(*) from Cinstroage),

     

    declare DateCcheck cursor for

           select InstorageOrderID,GoodName,RemaningNum,Mark,Unit,Abstract,GoodPrice

           from Cinstroage

     

    open DateCcheck

    while @looptime!=0

          begin

           fetch next from DateCcheck into @InstorageOrderID,@GoodName,@GoodNum,@GoodPrice,@Mark,Unit,@Abstract

           set @CheckDate=@Cdate,

               @RemaningNum=(select @GoodNum*@GoodPrice-GoodNum

                           from Cinstroage,SganToTal

                           where Cinstroage.GoodName=SganToTal.GoodName),

               @Make=(select @GoodNum-GoodNum

                     from Cinstroage,SganToTal

                     where Cinstroage.GoodName=SganToTal.GoodName),

     

           insert into result values(@CheckDate,@InstorageOrderID,@GoodName,@RemaningNum,@Mark,Unit,@Abstract)

           set @looptime1=@looptime1-1

          end

     

     

    close DateCcheck

    deallocate DateCcheck

     

    /*執(zhí)行完后必須刪除臨時(shí)表 CcheckResult*/

    /***************************************************************************/



    Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=252955

    [點(diǎn)擊此處收藏本文]   發(fā)表于 2005年01月14日 10:54 AM

     
    圖看不到 發(fā)表于2005-01-14 3:25 PM  IP: 210.83.203.*
    希望能給更正一下啦,謝謝

     
    yingcongxiao 發(fā)表于2005-01-17 3:08 PM  IP: 61.159.246.*
    不好意思,因?yàn)镃sdn上傳圖版出問(wèn)題,現(xiàn)已另上傳到我的另一個(gè)Blog上,已正常。

     
    javaer 發(fā)表于2005-01-21 8:58 AM  IP:
    TrackBack來(lái)自《用rational rose 2003 設(shè)計(jì)商業(yè)銷(xiāo)售系統(tǒng) 》

    Ping Back來(lái)自:blog.csdn.net

     
    szandrew 發(fā)表于2005-01-21 2:57 PM  IP: 218.22.19.*
    圖二、單據(jù)管理系統(tǒng)用例圖.你可以參考一下umlchina中的介紹。凡是管理就是管理,沒(méi)有必要拆分為 “增刪改查”。
    總的來(lái)說(shuō)還是不錯(cuò)的,總算是用rose完成了全過(guò)程。

     
    yingcongxiao 發(fā)表于2005-01-22 12:15 PM  IP: 218.63.94.*
    umlchina中的介紹我也看過(guò),說(shuō)的很有道理。在這里把它單獨(dú)地抽象出來(lái)并拆分為 “增刪改查打印”,我覺(jué)得跟我劃分的依據(jù)并不茅盾,并且這里面設(shè)及到不同用戶角色之間權(quán)限問(wèn)題。個(gè)人覺(jué)得把它獨(dú)立出來(lái)有利于復(fù)用。呵呵,因?yàn)榈谝淮巫觯瑔?wèn)題多多,請(qǐng)大家多多指教,謝謝。。。

    posted on 2006-03-13 00:10 都市淘沙者 閱讀(1993) 評(píng)論(1)  編輯  收藏 所屬分類: PatterDesign/UML/Rose/ERwin

    評(píng)論

    # re: 用rational rose 2003 設(shè)計(jì)商業(yè)銷(xiāo)售系統(tǒng)[未登錄](méi) 2008-12-30 12:39 koko

    perfect  回復(fù)  更多評(píng)論   

    主站蜘蛛池模板: 亚洲精品乱码久久久久久久久久久久 | 男男gay做爽爽的视频免费| 最近中文字幕mv手机免费高清| 亚洲资源在线观看| 99爱视频99爱在线观看免费| 久久精品国产亚洲AV果冻传媒| 九九精品成人免费国产片| 久久久无码精品亚洲日韩蜜桃 | 亚洲一级毛片免费看| 亚洲无成人网77777| 日韩免费一区二区三区在线播放| 亚洲成人免费网址| 国产精品久久久久免费a∨| 亚洲fuli在线观看| 女人与禽交视频免费看| 日韩国产欧美亚洲v片| 国产jizzjizz免费视频| 四虎国产精品成人免费久久| 亚洲精品国产福利一二区| 精品国产免费人成网站| 亚洲精品无码成人AAA片| 香蕉成人免费看片视频app下载| 18gay台湾男同亚洲男同| 18勿入网站免费永久| 亚洲日本中文字幕天天更新| 国产免费131美女视频| 一区二区三区在线观看免费| 亚洲乱码中文字幕综合| 一级毛片全部免费播放| 亚洲福利视频网站| 在线免费视频一区二区| 污网站在线免费观看| 亚洲真人无码永久在线| 热re99久久6国产精品免费| 亚洲伊人久久大香线焦| 日韩激情无码免费毛片| 一级毛片免费不卡| 亚洲男人的天堂在线播放| 无码日韩人妻av一区免费| 美女视频黄视大全视频免费的| 亚洲午夜未满十八勿入网站2|