【正文】
操作人員的值是通過使用函數(shù)獲取當(dāng)前操作人員名稱并將其值賦給文本標(biāo)簽,在將文本標(biāo)簽的值寫到庫中。其中各數(shù)據(jù)的格式與不能為空的限制都用 驗(yàn)證控件來進(jìn)行限制。 28 圖 44 銷售訂單管理 2. 實(shí)現(xiàn)過程 : 窗體名: 對于 銷售訂單 管理頁面中所用到各控件及其主要屬性 設(shè)置 如表 43 所示。輸出的數(shù)據(jù)將以規(guī)范化格式顯示,并且在每一階段只顯示相應(yīng)完成階段的訂單。 銷售訂單管理功能設(shè)計 1. 實(shí)現(xiàn)目標(biāo): 對于輸入的銷 售訂單信息進(jìn)行驗(yàn)證如應(yīng)付款、未付款、已付款進(jìn)行格式上與數(shù)值上的驗(yàn)證,然后將銷售訂單轉(zhuǎn)入一系列流程化的處理。 表 42 商品進(jìn)貨管理 主要控件信息列表 控件 名稱 主要屬性設(shè)置 作用 Table border=1 顯示邊框 cellspacing=0 單元格 的距離為 0 Requirefieldvalidator1 controltovalidator=CommodityName 驗(yàn)證的文本框名稱 errormessage=商品名稱不能為空 顯示的錯誤信息 forecolor=red 字體顏色為紅色 display=Static 靜態(tài)顯示 CompareValidator1 controltovalidator=Price 驗(yàn)證的文本框名稱 forecolor=red 字體顏色為紅色 errormessage=單價格式添寫錯誤 顯示的錯誤 信息 display=Dynamic 動態(tài)顯示 Text1 TextMode=SingleLine 單行文本框 Button1 Click=Button1_Click( ) 編寫單擊事件 對于各數(shù)據(jù)的值采用驗(yàn)證控件進(jìn)行格式控制,例如數(shù)量只能輸入為整數(shù),當(dāng)輸入為其他范圍的值系統(tǒng)都會提示錯誤。 此模塊界面如圖 43 所示。 結(jié)款方式有兩種分別是現(xiàn)金與支票 ,可通過下拉列表框進(jìn)行選擇。 商品進(jìn)貨管理功能設(shè)計 1. 實(shí)現(xiàn)目標(biāo): 通過下拉列表框 選擇商品名稱,在供應(yīng)商文本框中自動顯示出其供應(yīng)商,根據(jù)輸入的數(shù) 量與單價自動生成應(yīng)付金額, 并且能夠根據(jù)已付金額自動生成未付金額。在 CS 文件中獲得當(dāng)前頁面 Flag 值來確定記錄存入庫中時 Type 的值。 表 41 基本信息管理 主要控件信息列表 控件 名稱 主要屬性設(shè)置 作用 Table border=1 顯示邊框 cellspacing=0 單元格的距離為 0 Requirefieldvalidator1 controltovalidator=CommodityName 驗(yàn)證的文本框名稱 errormessage=商品名稱不能為空 顯示的錯誤信息 forecolor=red 字體顏色為紅色 display=Static 靜態(tài)顯示 Text1 TextMode=SingleLine 單行文本框 Button1 Click=Button1_Click( ) 編寫單擊事件 26 對于一家公司來說供應(yīng)商與客戶都是工作時所要面對的對象,因此在記錄這些數(shù)據(jù)時使用一張表來記錄,只用字段 Type 來區(qū)分類型。此模塊的界面如圖 42 所示。同時對于修改后的值要對數(shù)據(jù)庫進(jìn)行更新。 2.實(shí)現(xiàn)過程: 其主要功能是通過自定義控件實(shí)現(xiàn),對控件中菜單層的展開、彈回及相應(yīng)鏈接頁 面 進(jìn)行了相應(yīng)功能編碼。系統(tǒng)主界面如 圖 41 所示。由于數(shù)據(jù)庫在設(shè)計中有非常重要的作用,所以在開發(fā)過程中,在考慮數(shù)據(jù)庫上的時間較多。 表 35 Reckoning表結(jié)構(gòu) 字段名稱 字段類型 說明 Id int(4) 單據(jù) ID CommodityId int(4) 商品 ID Settlement int(4) 付款金額 ManageMan varchar(50) 經(jīng)手人 Datetime datetime(8) 結(jié)賬日期 Username varchar(50) 操作人 Addtime varchar(50) 添加日期 字段名稱 字段類型 說明 Id int(4) 訂單 ID(PK) CommodityId int(4) 商品 ID CompanyId int(4) 公司 ID Number int(4) 數(shù)量 Price decimal(5) 單價 StockDate datetime(8) 日期 SettlementType varchar(50) 付款方式 Payment decimal(5) 應(yīng)付金額 FactPayment decimal(5) 實(shí)付金額 NotPayment decimal(5) 未付金額 ManageMan varchar(5) 經(jīng)手人 Username varchar(50) 操作人 AddTime varchar(20) 添加日期 ClientId int(4) 客戶 ID Type varchar(10) 訂單類型 SendMail int(4) 電子郵件標(biāo)志 23 本 章小結(jié) 本章主要對 概要 計中涉及到的知識進(jìn)行了分析,包括層次方框圖、數(shù)據(jù)庫 ER 圖及表關(guān)系。 表 33 Commodity 表結(jié)構(gòu) 字段名稱 數(shù)據(jù)類型 說明 id Int(4) 商品 ID(PK) CommodityName varchar(100) 商品名稱 ShortName varchar(50) 商品簡稱 ProducePlace varchar(100) 產(chǎn)地 Unit varchar(20) 單位 22 續(xù)表 33 Specs varchar(50) 規(guī)格 PassNumber varchar(50) 批號 PassList varchar(50) 批準(zhǔn)文號 CompanyId int(4) 供應(yīng)商 ID Remark varchar(500) 備注 Usrname varchar(50) 操作人 AddTime varchar(50) 添加日期 Total int(4) 數(shù)量 Stock 表用于存 放 各種訂單信息,其結(jié)構(gòu)如表 34 所示。 表 31 AdminInfo 表結(jié)構(gòu) 字段名稱 數(shù)據(jù)類型 說明 AdminName varchar(50) 管理員 ID(PK) AdminPwd varchar(20) 密碼 TypeName varchar(50) 昵稱 Flag varchar(50) 級別標(biāo)志 Company 表 用于 存放公司信息,其結(jié)構(gòu)如表 32 所示。 A d m i n I n f oP K A d m i n N a m e A d m i n P w d T y p e N a m e F l a g . . . . . .C o m p a n yP K i d C o m p a n y N a m e C o m p a n y T y p e C o m p a n y S h o r t C o m p a n y A d d r e s s . . . . . . .C o m m o d i t yP K i d C o m m o d i t y N a m e S h o r t N a m e P r o d u c e P l a c e U n i t . . . . . .S t o c kP K i d C o m m o d i t y I d C o m p a n y I d N u m b e r P r i c e . . . . . .R e c k o n i n g i d C o m m o d i t y I d S e t t l e m e n t M a n a g e M a n d a t e t i m e . . . . . . 管 理擁 有擁 有 屬 于11N111MN 圖 32 數(shù)據(jù)庫 ER 圖 21 數(shù)據(jù)庫表結(jié)構(gòu) 根據(jù)本系統(tǒng)基本功能和所涉及人員對數(shù)據(jù)庫建立了若干表,其具體表結(jié)構(gòu)如下所示。 每張訂單只能由一個管理員進(jìn)行管理所以是一對一關(guān)系 ; 每張訂單中商品 有唯一的記錄與之對應(yīng)所以 是 一對 一 關(guān)系 ; 一個公司有多張訂單,多張訂單可屬于同一公司所以是多對多關(guān)系 ; 每張訂單有多次支付記錄 所以是一對多關(guān)系 。“屬性”必須是不可分的數(shù)據(jù)項(xiàng),不能包含其他的屬性。為了簡化 ER 圖的處置,現(xiàn)實(shí)世界的事物能作為屬性的對待的,盡量作為 屬性對待。 “實(shí)體”指現(xiàn)實(shí)世界中存在的對象或事物。 20 數(shù)據(jù)庫邏輯設(shè)計 ( ER 圖 ) 實(shí)體聯(lián)系模型反映的是現(xiàn)實(shí)世界中的事物及其相互關(guān)系。事實(shí)上,如果不了解應(yīng)用環(huán)境對數(shù)據(jù)的處 理要求,或者沒有考慮如何去實(shí)現(xiàn)這些處理要求,是不可能設(shè)計一個良好的數(shù)據(jù)庫結(jié)構(gòu)的。需要指出的是,這個設(shè)計步驟既是數(shù)據(jù)庫設(shè)計的過程,也包括了數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計過程。在數(shù)據(jù)庫系統(tǒng)運(yùn)行過程中必須不斷地對其進(jìn)行評價、調(diào)整與修改。 5. 數(shù)據(jù)庫實(shí)施階段 數(shù)據(jù)庫實(shí)施階段,設(shè)計人員運(yùn)用 DBMS 提供的數(shù)據(jù)語言及其宿主語言,根據(jù)邏輯設(shè)計和物理設(shè)計的結(jié)果建立數(shù)據(jù)庫,編制與調(diào)試應(yīng)用程序,組織數(shù)據(jù)入 庫,并進(jìn)行試運(yùn)行。 3. 邏輯結(jié)構(gòu)設(shè)計階段 邏輯結(jié)構(gòu)設(shè)計階段是將概念結(jié)構(gòu)轉(zhuǎn)換為某個 DBMS 所支持的數(shù)據(jù)模型,并對其進(jìn)行優(yōu)化。需求分析做得不好,甚至?xí)?dǎo)致整個數(shù)據(jù)庫設(shè)計返工重做。需求分析是整個設(shè)計過程的基礎(chǔ),是最困難、最耗時 間 的一步。所以人們提出了各種數(shù)據(jù)庫設(shè)計方法、設(shè)計準(zhǔn)則和規(guī)程。 數(shù)據(jù)庫設(shè)計基本步驟 由于信息結(jié)構(gòu)復(fù)雜,應(yīng)用環(huán)境多樣,在相當(dāng)長的一段時間內(nèi)數(shù)據(jù)庫設(shè)計主要采用手工湊法。在此階段數(shù)據(jù)與程序的獨(dú)立,把數(shù)據(jù)的定義從程序中分離出去,加上數(shù)據(jù)的存取又由 DBMS 負(fù)責(zé),從而簡化了應(yīng)用程序的編制,大大減少了應(yīng)用程序的維護(hù)和修改。數(shù)據(jù)庫設(shè)計的成功與否直接影響著 系統(tǒng)中個處理過程的性能和質(zhì)量。 傳統(tǒng)的軟件工程忽視對應(yīng)用程序中數(shù)據(jù)語義的分析和抽象。早期的數(shù)據(jù)庫設(shè)計中數(shù)據(jù)不具備獨(dú)立性而且不能共享,而且數(shù)據(jù)需要由應(yīng)用程序自己管理,沒有相應(yīng)的軟件系統(tǒng)負(fù)責(zé)數(shù)據(jù)的管理工作。 4. 應(yīng)用領(lǐng)域的知識。 2. 計算機(jī)科學(xué)的基 礎(chǔ)知識和程序設(shè)計的方法和技術(shù)。 大型數(shù)據(jù)庫的開發(fā)是一項(xiàng)龐大的工程,其開發(fā)周期長,耗資多、涉及到多科學(xué)的綜合性技術(shù)。 系統(tǒng)功能 結(jié)構(gòu) 圖如圖 31 所示。 4. 查詢統(tǒng)計:可選擇不同的查詢條件,輸入不同的查詢值,主要是對商品庫存量及各類訂單信息進(jìn)行查詢。 17 2. 商品進(jìn)貨管理:針對各類商品的進(jìn)貨單進(jìn)行登記,并對商品進(jìn)貨中進(jìn)貨退貨進(jìn)行處理。 依據(jù)上述功能的分析,系統(tǒng)中模塊分別為: 基本信息管理 、 商品進(jìn)貨管理、銷售訂單管理 、 查詢統(tǒng)計 、 賬務(wù)管理 。 本系統(tǒng)一共分為 五 個模塊,每個模塊之間雖然在表面上是相互獨(dú)立的,但是在對數(shù)據(jù)庫的訪問上是緊密相連的,各個模塊訪問的是同一個數(shù)據(jù)庫,只是所訪問的表不同而已。樹形結(jié)構(gòu)的頂層是一個單獨(dú)的矩形框,它代表完整的數(shù)據(jù)結(jié)構(gòu),下面的各層矩 形代表這個數(shù)據(jù)的子集,最底層的各個框代表組成這個數(shù)據(jù)的實(shí)際數(shù)據(jù)元素。 系統(tǒng)功能設(shè)計 利用層次 方框 圖來表示系統(tǒng)中各模塊之間的關(guān)系。 2. 表示不同的成分內(nèi)的功能細(xì)節(jié)和數(shù)據(jù)結(jié)構(gòu)。本章將主要對軟件總體設(shè)計進(jìn)行了相關(guān)描述。結(jié)構(gòu)設(shè)計又稱為總體設(shè)計,其主要的任務(wù)是制訂系統(tǒng)實(shí) 現(xiàn)方案和設(shè)計規(guī)范并合理確定軟件系統(tǒng)整體模塊結(jié)構(gòu)及接口關(guān)系。軟件開發(fā)階段包括概要設(shè)計、詳細(xì)設(shè)計、編碼和測試等。 16 第 3 章 概要設(shè)計 問題定義、可行性研究和需求分析構(gòu)成了了軟件分析階段,在這個階段確定了需要做什么和系統(tǒng)需求規(guī)格。通過本系統(tǒng)數(shù)據(jù)字典與數(shù)據(jù)流 圖 的配合描述了系統(tǒng)邏輯模型。 表 21 系統(tǒng)數(shù)據(jù)項(xiàng)定義 編號 名稱 別名 類型 長度 I0101 CompanyName 公司 名稱 varchar 50 字節(jié) I0102 CompanyType 公司類型 varchar 50 字節(jié) I0103 CompanyShort 公司簡稱 varchar 50 字節(jié) I0104 CompanyAddress 公司地址 varchar 50 字節(jié) I0105 Postalcode 郵政編碼 varchar 50 字節(jié) I0106 Tel 聯(lián)系電話 varchar 50 字節(jié) I0107 Fax 傳真 varchar 50 字節(jié) I0108 Linkman 聯(lián)系人 varchar 50 字節(jié) I0109 Email 電子郵件 varchar 50 字節(jié) I0110 Bank 開戶銀行 varchar 50 字節(jié) I0111 BandAccounts 銀行賬戶 varchar 50 字節(jié) I0112 Username 操作人 varchar 50 字節(jié) I0113 AddTime 添加日期 varchar 50 字節(jié) I0114 CommodityName 商品名稱 varchar 100 字節(jié) I0115 ShortNam