2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩30頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  物流管理系統(tǒng)----醫(yī)藥物流管理系統(tǒng)</p><p><b>  目 錄</b></p><p>  一.引 言3</p><p><b>  二.需求分析4</b></p><p>  2.1 開(kāi)發(fā)背景4</p><p>  2.2 初步

2、設(shè)計(jì)4</p><p>  2.3 實(shí)現(xiàn)目標(biāo)5</p><p>  2.4 系統(tǒng)結(jié)構(gòu)圖5</p><p>  2.5 系統(tǒng)流程圖6</p><p>  2.6 開(kāi)發(fā)環(huán)境6</p><p>  2.6.1 硬件環(huán)境6</p><p>  2.6.2 軟件環(huán)境6</p>

3、<p><b>  三.概要設(shè)計(jì)7</b></p><p>  3.1 銷(xiāo)售管理7</p><p>  3.2 進(jìn)貨管理7</p><p>  3.3 庫(kù)房管理7</p><p>  3.4 調(diào)貨管理8</p><p>  3.5 財(cái)務(wù)管理8</p><p

4、>  3.6 賬目管理8</p><p>  3.7 基礎(chǔ)信息管理9</p><p>  3.8 系統(tǒng)管理10</p><p>  四.詳細(xì)設(shè)計(jì)及功能實(shí)現(xiàn)10</p><p>  4.1 數(shù)據(jù)庫(kù)設(shè)計(jì)10</p><p>  4.2 主程序界面設(shè)計(jì)11</p><p>  4.3

5、 系統(tǒng)登錄界面設(shè)計(jì)12</p><p>  4.4 功能模塊設(shè)計(jì)與功能實(shí)現(xiàn)13</p><p>  4.4.1 查詢(xún)類(lèi)模塊14</p><p>  4.4.2 報(bào)表類(lèi)模塊17</p><p>  4.4.3 登記類(lèi)模塊19</p><p>  4.4.4 結(jié)賬類(lèi)模塊22</p><p&g

6、t;  4.4.5 可修改類(lèi)模塊25</p><p>  4.5 其它模塊設(shè)計(jì)26</p><p>  4.5.1操作員管理26</p><p>  4.5.2權(quán)限管理設(shè)計(jì)27</p><p>  4.5.3 數(shù)據(jù)備份與恢復(fù)29</p><p>  五.存在問(wèn)題及解決方案30</p><

7、p>  六.結(jié) 論31</p><p><b>  七.參考資料31</b></p><p><b>  一.引 言</b></p><p>  物流管理是指在社會(huì)再生產(chǎn)過(guò)程中,根據(jù)物質(zhì)資料實(shí)體流動(dòng)的規(guī)律,應(yīng)用管理的基本原理和科學(xué)方法,對(duì)物流活動(dòng)進(jìn)行計(jì)劃、組織、指揮、協(xié)調(diào)、控制和監(jiān)督,使各項(xiàng)物流活動(dòng)實(shí)

8、現(xiàn)最佳的協(xié)調(diào)與配合,以降低物流成本,提高物流效率和經(jīng)濟(jì)效益。</p><p>  物流管理的內(nèi)容包括:</p><p> ?。?)、對(duì)物流活動(dòng)諸要素的管理,包括運(yùn)輸、儲(chǔ)存等環(huán)節(jié)的管理;</p><p> ?。?)、對(duì)物流系統(tǒng)諸要素的管理,即對(duì)其中人、財(cái)、物、設(shè)備、方法和信息等六大要素的管理;</p><p> ?。?)、對(duì)物流活動(dòng)中具體職能的

9、管理,主要包括物流計(jì)劃、質(zhì)量、技術(shù)、經(jīng)濟(jì)等職能的管理等。</p><p>  現(xiàn)在物流管理的流程一般分為10個(gè)階段:</p><p>  訂單處理作業(yè)→采購(gòu)作業(yè)→進(jìn)貨入庫(kù)作業(yè)→庫(kù)存管理作業(yè)→補(bǔ)貨及揀貨作業(yè)→流通加工作業(yè)→出貨作業(yè)處理→配送作業(yè)→會(huì)計(jì)作業(yè)→營(yíng)運(yùn)管理及績(jī)效管理作業(yè)</p><p>  過(guò)去物流管理著重在企業(yè)內(nèi)部作業(yè)與組織的整合,對(duì)下游顧客的對(duì)應(yīng),是以服務(wù)

10、與品質(zhì)為主要重心。隨著物流業(yè)的發(fā)展物流管理從物的處理,提升到物的加值方案設(shè)計(jì)、解決和管理上??梢詾榭蛻?hù)提供度身訂造式的,并帶有個(gè)性化的服務(wù),企業(yè)逐漸轉(zhuǎn)向強(qiáng)調(diào)跨企業(yè)界限的整合,使得顧客關(guān)系的維護(hù)與管理變得越來(lái)越重要.</p><p><b>  二.需求分析</b></p><p><b>  2.1 開(kāi)發(fā)背景</b></p><

11、;p>  本系統(tǒng)假設(shè)為一個(gè)醫(yī)藥品的銷(xiāo)售公司做物流管理系統(tǒng)。</p><p>  隨著我國(guó)市場(chǎng)經(jīng)濟(jì)的蓬勃發(fā)展和對(duì)醫(yī)藥品的需求迅速增加,醫(yī)藥行業(yè)也相應(yīng)的處于一個(gè)飛速發(fā)展的時(shí)期。行業(yè)的快速發(fā)展必然導(dǎo)致各企業(yè)之間的競(jìng)爭(zhēng)更加激烈,為了使自己的企業(yè)在競(jìng)爭(zhēng)中能夠站穩(wěn)腳跟,不被激烈的競(jìng)爭(zhēng)環(huán)境所壓倒,必然要求企業(yè)加強(qiáng)對(duì)自身的管理,提高企業(yè)的經(jīng)營(yíng)效率。</p><p>  由于醫(yī)藥行業(yè)的特殊性,造成醫(yī)藥

12、品的種類(lèi)繁多,業(yè)務(wù)量巨大,若仍然采用人工的記賬方式,必然不能滿(mǎn)足企業(yè)的需求,企業(yè)需要利用計(jì)算機(jī)來(lái)進(jìn)行醫(yī)藥品的物流管理,因此需要構(gòu)造一個(gè)物流管理系統(tǒng)。</p><p><b>  2.2 初步設(shè)計(jì)</b></p><p>  由于本系統(tǒng)假設(shè)為一個(gè)醫(yī)藥品的銷(xiāo)售公司做物流管理系統(tǒng)。針對(duì)醫(yī)藥品銷(xiāo)售的特點(diǎn),初步設(shè)計(jì)本系統(tǒng)包含以下幾個(gè)功能模塊:</p><p&

13、gt;  銷(xiāo)售管理:包含銷(xiāo)售登記,銷(xiāo)售退貨,銷(xiāo)售報(bào)表。</p><p>  進(jìn)貨管理:包含入庫(kù)登記,入庫(kù)退貨,入庫(kù)報(bào)表。</p><p>  庫(kù)房管理:包含庫(kù)存查詢(xún),庫(kù)存盤(pán)點(diǎn),庫(kù)存修改,庫(kù)存報(bào)表。</p><p>  調(diào)貨管理:包含調(diào)貨登記,調(diào)貨查詢(xún)。</p><p>  財(cái)務(wù)管理:包含收款單,收款查詢(xún),付款單,付款查詢(xún)。</p>

14、<p>  賬目管理:包含財(cái)務(wù)結(jié)賬,當(dāng)月結(jié)賬,銷(xiāo)售查詢(xún)統(tǒng)計(jì),入庫(kù)查詢(xún) </p><p>  統(tǒng)計(jì),銷(xiāo)售退貨查詢(xún),財(cái)務(wù)報(bào)表,月報(bào)表。</p><p>  基礎(chǔ)信息管理:包含藥品信息,員工信息,客戶(hù)信息,供應(yīng)商信 </p><p><b>  息,倉(cāng)庫(kù)基本信息。</b></p><p>  系統(tǒng)管理

15、:包含操作員管理,權(quán)限設(shè)置,數(shù)據(jù)備份,數(shù)據(jù)恢復(fù)。</p><p><b>  2.3 實(shí)現(xiàn)目標(biāo)</b></p><p>  本醫(yī)藥物流管理系統(tǒng)在完成運(yùn)行后,需要達(dá)到以下效果:</p><p>  操作簡(jiǎn)單,易于上手。</p><p>  查詢(xún)方便靈活,瀏覽簡(jiǎn)單,明目。</p><p><b&

16、gt;  數(shù)據(jù)存儲(chǔ)安全可靠。</b></p><p>  功能全面,實(shí)用性強(qiáng)。</p><p><b>  自動(dòng)化信息管理。</b></p><p><b>  2.4 系統(tǒng)結(jié)構(gòu)圖</b></p><p>  圖1. 醫(yī)藥物流管理系統(tǒng)結(jié)構(gòu)圖</p><p><

17、;b>  2.5 系統(tǒng)流程圖</b></p><p>  圖2. 醫(yī)藥物流管理系統(tǒng)流程圖</p><p><b>  2.6 開(kāi)發(fā)環(huán)境</b></p><p>  2.6.1 硬件環(huán)境</p><p><b>  主頻50MHz以上</b></p><p>

18、<b>  內(nèi)存10MB以上</b></p><p>  240MB以上的硬盤(pán)空間</p><p>  VGA或更高的分辨率顯示器,1MB以上的顯存 </p><p>  2.6.2 軟件環(huán)境</p><p>  本系統(tǒng)是在 Windows XP 環(huán)境下,采用Microsoft Visual FoxPro 6.0數(shù)據(jù)庫(kù)開(kāi)

19、發(fā)工具進(jìn)行構(gòu)建系統(tǒng)。</p><p>  Microsoft Visual FoxPro 6.0是微軟公司推出的可視化編程工具,它的開(kāi)發(fā)效率高,成本低,投資小,見(jiàn)效快。Microsoft Visual FoxPro 6.0一直是中國(guó)臺(tái)式機(jī)數(shù)據(jù)庫(kù)的主流,易學(xué),易用,易維護(hù)。</p><p><b>  三.概要設(shè)計(jì)</b></p><p>  通

20、過(guò)前面的需求分析可以知道,本系統(tǒng)一共分為了8個(gè)系統(tǒng)模塊,包括:銷(xiāo)售管理,進(jìn)貨管理,庫(kù)房管理,調(diào)貨管理,財(cái)務(wù)管理,賬目管理,基礎(chǔ)信息管理,系統(tǒng)管理。每個(gè)系統(tǒng)模塊下,包含了若干小的功能模塊。每一個(gè)系統(tǒng)模塊都實(shí)現(xiàn)其特定的功能。</p><p><b>  3.1 銷(xiāo)售管理</b></p><p>  銷(xiāo)售管理模塊主要實(shí)現(xiàn)銷(xiāo)售方面的功能,它包含銷(xiāo)售登記,銷(xiāo)售退貨,銷(xiāo)售調(diào)查三個(gè)

21、功能模塊。銷(xiāo)售管理主要是針對(duì)公司的銷(xiāo)售人員而設(shè)計(jì),幫助公司對(duì)所銷(xiāo)售的藥品進(jìn)行一個(gè)系統(tǒng)地記錄。</p><p>  銷(xiāo)售登記可以實(shí)現(xiàn)日常的銷(xiāo)售開(kāi)票,自動(dòng)計(jì)算金額,多種結(jié)算方式。銷(xiāo)售退貨用于單據(jù)已開(kāi)出的客戶(hù)進(jìn)行退貨操作。</p><p>  銷(xiāo)售報(bào)表實(shí)現(xiàn)按日期查詢(xún)藥品銷(xiāo)售信息,可預(yù)覽和打印銷(xiāo)售報(bào)表。</p><p><b>  3.2 進(jìn)貨管理</b&g

22、t;</p><p>  進(jìn)貨管理模塊主要實(shí)現(xiàn)藥品入庫(kù)的功能,它包括入庫(kù)登記,入庫(kù)退貨,入庫(kù)報(bào)表三個(gè)功能模塊。進(jìn)貨管理主要是針對(duì)公司的倉(cāng)庫(kù)管理人員而設(shè)計(jì),此系統(tǒng)模塊能幫助公司在藥品入庫(kù)的時(shí)候,對(duì)藥品的各項(xiàng)信息進(jìn)行系統(tǒng)地記錄,可以大大減少進(jìn)行手工記錄時(shí)所犯的錯(cuò)誤,提高公司的營(yíng)運(yùn)效率。</p><p>  入庫(kù)登記實(shí)現(xiàn)入庫(kù)登記操作,并自動(dòng)計(jì)算金額,生成入庫(kù)票號(hào)。</p><

23、p>  入庫(kù)退貨實(shí)現(xiàn)調(diào)用藥品的基本信息,生成退貨票號(hào)作為退貨的憑證。</p><p>  入庫(kù)報(bào)表實(shí)現(xiàn)按日期查詢(xún)?nèi)霂?kù)藥品信息,打印和預(yù)覽入庫(kù)報(bào)表。</p><p><b>  3.3 庫(kù)房管理</b></p><p>  庫(kù)房管理模塊是對(duì)藥品在庫(kù)房中的管理,它包括庫(kù)存查詢(xún),庫(kù)存盤(pán)點(diǎn),庫(kù)存修改,庫(kù)存報(bào)表。此系統(tǒng)模塊同樣為倉(cāng)庫(kù)管理員而設(shè)計(jì)。由

24、于同種藥品入庫(kù)有時(shí)間上的先后,而藥品的信息也會(huì)隨著時(shí)間的推移而不停的修改。因此庫(kù)房管理模塊就能實(shí)現(xiàn)對(duì)庫(kù)存中的藥品信息進(jìn)行系統(tǒng)地管理。</p><p>  庫(kù)存查詢(xún)實(shí)現(xiàn)按不同條件查詢(xún)庫(kù)存信息,以頁(yè)框和列表來(lái)瀏覽信息。</p><p>  庫(kù)存盤(pán)點(diǎn)實(shí)現(xiàn)以表單的形式顯示庫(kù)存數(shù)量大于零的全部藥品信息。</p><p>  庫(kù)存修改實(shí)現(xiàn)查詢(xún)和瀏覽信息功能外,還設(shè)置了修改,刪除

25、信息功能。</p><p>  庫(kù)存報(bào)表實(shí)現(xiàn)按條件查詢(xún)庫(kù)存信息,預(yù)覽和打印庫(kù)存報(bào)表。</p><p><b>  3.4 調(diào)貨管理</b></p><p>  調(diào)貨管理用于實(shí)現(xiàn)對(duì)庫(kù)存的藥品在不同的倉(cāng)庫(kù)之間進(jìn)行調(diào)動(dòng)的記錄。它包含調(diào)貨登記,調(diào)貨查詢(xún)。與上面兩個(gè)系統(tǒng)模塊一樣,此模塊仍然為倉(cāng)庫(kù)管理人員設(shè)計(jì)。藥品由于其種類(lèi)繁多,信息復(fù)雜,在進(jìn)行藥品的調(diào)動(dòng)

26、時(shí),對(duì)調(diào)動(dòng)的信息進(jìn)行記錄也就顯得尤為關(guān)鍵。</p><p>  調(diào)貨登記完成各倉(cāng)庫(kù)間藥品調(diào)貨信息記錄,自動(dòng)生成調(diào)貨票號(hào),日期,以列表的形式顯示調(diào)貨結(jié)果。</p><p>  調(diào)貨查詢(xún)支持條件和日期查詢(xún),以頁(yè)框和列表方式瀏覽調(diào)貨信息。</p><p><b>  3.5 財(cái)務(wù)管理</b></p><p>  財(cái)務(wù)管理主要實(shí)

27、現(xiàn)收款與付款的記錄功能。醫(yī)藥品業(yè)務(wù)的流通量是非常巨大的,因此在財(cái)務(wù)上對(duì)收款與付款的信息記錄也就非常繁瑣。利用財(cái)務(wù)管理系統(tǒng)模塊可以簡(jiǎn)化這些操作,使用方便,簡(jiǎn)潔。財(cái)務(wù)管理包含收款單,付款單,收款查詢(xún),付款查詢(xún)。</p><p>  收款單可實(shí)現(xiàn)查詢(xún)和瀏覽收款信息,對(duì)未付款客戶(hù)進(jìn)行結(jié)款操作。</p><p>  收款查詢(xún)能按不同條件查詢(xún)收款信息,以頁(yè)框和列表瀏覽收款信息。</p>

28、<p>  付款單可對(duì)供應(yīng)商進(jìn)行結(jié)款操作,能查詢(xún)與瀏覽付款信息。</p><p>  付款查詢(xún)與收款查詢(xún)相似,可查詢(xún)與瀏覽付款信息。</p><p><b>  3.6 賬目管理</b></p><p>  賬目管理所包含的功能模塊較多,它主要是為公司的財(cái)務(wù)人員而設(shè)計(jì)。它可以大大簡(jiǎn)化公司財(cái)務(wù)人員的工作量,對(duì)公司的財(cái)務(wù)賬目信息有一個(gè)系統(tǒng)

29、的管理。賬目管理系統(tǒng)模塊包含財(cái)務(wù)結(jié)賬,當(dāng)月結(jié)賬,銷(xiāo)售查詢(xún)統(tǒng)計(jì),入庫(kù)查詢(xún)統(tǒng)計(jì),銷(xiāo)售退貨查詢(xún),入庫(kù)退貨查詢(xún),財(cái)務(wù)報(bào)表,查詢(xún)?cè)聢?bào)表。</p><p>  財(cái)務(wù)結(jié)賬可完成日結(jié)賬操作,可匯總每日結(jié)賬信息。</p><p>  當(dāng)月結(jié)賬完成月結(jié)賬操作,統(tǒng)計(jì)匯總結(jié)賬信息</p><p>  銷(xiāo)售查詢(xún)統(tǒng)計(jì)可查詢(xún)與瀏覽銷(xiāo)售信息,統(tǒng)計(jì)匯總銷(xiāo)售信息。</p><p&g

30、t;  入庫(kù)查詢(xún)統(tǒng)計(jì)可查詢(xún)與瀏覽藥品入庫(kù)信息,自動(dòng)匯總?cè)霂?kù)藥品信息。</p><p>  銷(xiāo)售退貨查詢(xún)可查詢(xún)與瀏覽銷(xiāo)售退貨的信息結(jié)果,快速瀏覽信息。</p><p>  入庫(kù)退貨查詢(xún)與銷(xiāo)售退貨查詢(xún)的功能實(shí)現(xiàn)相似。</p><p>  財(cái)務(wù)報(bào)表可按時(shí)間查詢(xún)財(cái)務(wù)報(bào)表,以報(bào)表形式反映藥品的進(jìn)銷(xiāo)存情況,預(yù)覽和打印財(cái)務(wù)報(bào)表。</p><p>  查詢(xún)?cè)?/p>

31、報(bào)表可按條件查詢(xún)?cè)撛碌乃幤愤M(jìn)銷(xiāo)存信息,可預(yù)覽和打印此月報(bào)表。</p><p>  3.7 基礎(chǔ)信息管理</p><p>  基礎(chǔ)信息管理模塊是對(duì)公司的常用信息進(jìn)行管理,如藥品,員工,客戶(hù)的信息等。這個(gè)模塊相當(dāng)于公司的檔案管理,有大量的數(shù)據(jù)信息。它包含藥品信息,員工信息,客戶(hù)信息,供應(yīng)商信息,倉(cāng)庫(kù)基本信息。這些信息數(shù)據(jù)是其它功能模塊實(shí)現(xiàn)的基礎(chǔ)。</p><p>  藥

32、品信息實(shí)現(xiàn)瀏覽查詢(xún)藥品基本信息,可添加,修改,刪除信息。</p><p>  員工信息提供了添加,修改,刪除員工信息功能,也可查詢(xún)?yōu)g覽。</p><p>  客戶(hù)信息實(shí)現(xiàn)了客戶(hù)信息的添、刪、改功能。</p><p>  供應(yīng)商信息與上述三種功能模塊實(shí)現(xiàn)的功能相似。</p><p>  倉(cāng)庫(kù)基本信息出了現(xiàn)了信息的添、刪、改功能外,還能自動(dòng)生成7

33、位倉(cāng)庫(kù)編號(hào)。</p><p><b>  3.8 系統(tǒng)管理</b></p><p>  系統(tǒng)管理模塊是針對(duì)系統(tǒng)的保護(hù)而設(shè)計(jì)的。此模塊專(zhuān)為系統(tǒng)管理員而設(shè)計(jì)。此系統(tǒng)的管理操作可直接影響整個(gè)系統(tǒng)的操作管理。它包括操作員管理,權(quán)限管理,數(shù)據(jù)備份,數(shù)據(jù)恢復(fù)。</p><p>  操作員管理可以對(duì)操作員信息進(jìn)行增加、刪除、修改,可設(shè)置操作員密碼。</

34、p><p>  權(quán)限管理能查詢(xún)操作員級(jí)別及使用權(quán)限,為一般操作員設(shè)置權(quán)限。</p><p>  數(shù)據(jù)備份可以對(duì)庫(kù)存中的數(shù)據(jù)信息實(shí)現(xiàn)備份功能。</p><p>  數(shù)據(jù)恢復(fù)可將數(shù)據(jù)備份的庫(kù)存信息安原路經(jīng)恢復(fù)。</p><p>  四.詳細(xì)設(shè)計(jì)及功能實(shí)現(xiàn)</p><p><b>  4.1 數(shù)據(jù)庫(kù)設(shè)計(jì)</b&g

35、t;</p><p>  利用Microsoft Visual FoxPro 6.0新建一個(gè)數(shù)據(jù)庫(kù),名稱(chēng)為Medicamentmanage ,在此數(shù)據(jù)庫(kù)中添加27個(gè)表:臨時(shí)登記表Ltabdhdj, 臨時(shí)日結(jié)表Ltabrj,臨時(shí)入庫(kù)登記表Ltabrkdj,臨時(shí)入庫(kù)退貨表Ltabrkth,臨時(shí)銷(xiāo)售登記表Ltabxsdj,臨時(shí)銷(xiāo)售退貨表Ltabxsth,臨時(shí)月結(jié)表Ltabyj,調(diào)貨登記表Tabdhdj,供應(yīng)商信息表T

36、abgys,結(jié)算方式表Tabjsfs,庫(kù)存表Tabkc,客戶(hù)信息表Tabkh,權(quán)限表Tabpurview,日結(jié)表Tabrj,入庫(kù)登記表Tabrkdj,入庫(kù)結(jié)賬表Tabrkjz,入庫(kù)票號(hào)表Tabrkph,入庫(kù)退貨表Tabrkth,倉(cāng)庫(kù)信息表Tabstorage,銷(xiāo)售登記表Tabxsdj,銷(xiāo)售結(jié)賬表Tabxsjz,銷(xiāo)售票號(hào)表Tabxsph,銷(xiāo)售退貨表Tabxsth,員工信息表Tabyginfo,月結(jié)表Tabyj,月結(jié)初始化Tabyjcsh,

37、藥品信息表Tabypinfo。</p><p>  4.2 主程序界面設(shè)計(jì)</p><p>  創(chuàng)建一個(gè)標(biāo)準(zhǔn)項(xiàng)目,名稱(chēng)為“醫(yī)藥物流管理系統(tǒng)”,在該項(xiàng)目中添加一個(gè)表單,名稱(chēng)為Fdesktop。在表單中插入名稱(chēng)為Vcxmain的ToolBar類(lèi)。</p><p>  在各個(gè)按鈕的Click事件中添加類(lèi)代碼。</p><p>  圖3. 主程序界面

38、 </p><p>  為了使操作更加簡(jiǎn)便,將常用的幾種操作單獨(dú)提出來(lái),設(shè)計(jì)一個(gè)Vcxmain的Toolbar類(lèi)。添加代碼如下:</p><p>  在“銷(xiāo)售登記”按鈕的Click事件中添加代碼:do form form\xiaoshoudj</p><p>  同理,在“入庫(kù)登記”按鈕中添加:do form form\rukudj</p><

39、p>  在“調(diào)貨登記”按鈕中添加:do form form\tiaohuodj </p><p>  在“庫(kù)存查詢(xún)”按鈕中添加:do form form\kcquery</p><p>  在“銷(xiāo)售查詢(xún)”按鈕中添加:do form form\xiaoshouquery</p><p>  在“入庫(kù)查詢(xún)”按鈕中添加:do form form\ruk

40、uquery</p><p>  在“財(cái)務(wù)結(jié)賬”按鈕中添加:do form form\cwjz</p><p>  在“藥品信息”按鈕中添加:do form form\ypmanage</p><p>  在“退出”按鈕中添加:quit</p><p>  4.3 系統(tǒng)登錄界面設(shè)計(jì)</p><p>  用戶(hù)進(jìn)入系統(tǒng)前,

41、必須進(jìn)入系統(tǒng)登錄界面,系統(tǒng)登錄界面能夠確認(rèn)用戶(hù)的身份及使用權(quán)限。</p><p>  圖4. 系統(tǒng)登錄界面</p><p>  首先要判斷用戶(hù)輸入的用戶(hù)名是否正確,然后判斷用戶(hù)輸入的密碼是否正確,如果正確,這根據(jù)用戶(hù)選擇操作員說(shuō)擁有的權(quán)限級(jí)別為全局變量賦值,如果不正確,彈出系統(tǒng)警告。</p><p>  在進(jìn)行編碼的時(shí)候,首先將使用的數(shù)據(jù)表—權(quán)限表打開(kāi):<

42、/p><p>  use database\tabpurview &&打開(kāi)數(shù)據(jù)表</p><p>  為了對(duì)所輸入的操作員姓名與權(quán)限表中的姓名相比較,我們用權(quán)限表中的“操作員姓名”作為索引文件:</p><p>  set order to 操作員姓名 &&指定控制索引文件</p>

43、;<p>  當(dāng)輸入姓名與密碼以后,我們要判斷所輸入的操作員名稱(chēng)和密碼是否正確。方法是先查找表中是否有所輸入的名字,如果表中沒(méi)有所輸入的名字,則系統(tǒng)登陸失敗,并顯示登陸失敗。</p><p>  在查詢(xún)搜索名字時(shí),可用以下語(yǔ)句:</p><p>  seek cname &&快速查詢(xún)</p><

44、p>  判斷錯(cuò)誤,并顯示錯(cuò)誤界面:</p><p>  if alltrim(tabpurview.操作員姓名)!=cname</p><p>  cMessagetext='操作員錯(cuò)誤,請(qǐng)重新輸入!'</p><p>  如果在表中找到了所輸入的名字,則系統(tǒng)需要對(duì)所對(duì)應(yīng)的密碼進(jìn)行比較判斷,看是否能與名字所匹配,方法與上面的名字比較相似:<

45、;/p><p>  if alltrim(tabpurview.密碼)!=ppassword</p><p>  cmessagetext='密碼錯(cuò)誤,請(qǐng)重新輸入!'</p><p>  當(dāng)系統(tǒng)發(fā)現(xiàn)所輸入的名字與密碼都正確的時(shí)候,系統(tǒng)需要給此用戶(hù)賦予表中相對(duì)應(yīng)的權(quán)限,先判斷用戶(hù)的權(quán)限級(jí)別: </p><p>  purview=v

46、al(alltrim(tabpurview.權(quán)限級(jí)別)) </p><p>  再對(duì)應(yīng)的各個(gè)系統(tǒng)模塊,分別賦予相應(yīng)的權(quán)限,以“銷(xiāo)售管理”權(quán)限為例,將銷(xiāo)售管理的權(quán)限賦值給全局變量: </p><p>  pxsgl=tabpurview.銷(xiāo)售管理 &&賦值給全局變量</p><p>  4.4 功能模塊設(shè)計(jì)與功能實(shí)現(xiàn)</p

47、><p>  通過(guò)前面的需求分析可以知道,本系統(tǒng)共有8個(gè)部分,一共包含33個(gè)完整的功能模塊。這33個(gè)功能模塊,除去系統(tǒng)管理所實(shí)現(xiàn)的功能,其它的模塊根據(jù)其實(shí)現(xiàn)的功能可以分為以下幾類(lèi):</p><p>  查詢(xún)類(lèi)模塊:庫(kù)存查詢(xún),調(diào)貨查詢(xún),收款查詢(xún),付款查詢(xún),</p><p>  銷(xiāo)售查詢(xún)統(tǒng)計(jì),入庫(kù)查詢(xún)統(tǒng)計(jì),銷(xiāo)售退貨查詢(xún),</p><p><b&

48、gt;  入庫(kù)退貨查詢(xún)。</b></p><p>  報(bào)表類(lèi)模塊:銷(xiāo)售報(bào)表,入庫(kù)報(bào)表,庫(kù)存報(bào)表,財(cái)務(wù)報(bào)表,查詢(xún)</p><p><b>  月報(bào)表,庫(kù)存盤(pán)點(diǎn)。</b></p><p>  登記類(lèi)模塊:銷(xiāo)售登記,銷(xiāo)售退貨,入庫(kù)登記,入庫(kù)退貨,調(diào)貨</p><p><b>  登記。</b>

49、</p><p>  結(jié)賬類(lèi)模塊:收款單,付款單,財(cái)務(wù)結(jié)賬,當(dāng)月結(jié)賬。</p><p>  可修改類(lèi)模塊:庫(kù)存修改,藥品信息,員工信息,客戶(hù)信息,供</p><p>  應(yīng)商信息,倉(cāng)庫(kù)基本信息。</p><p>  4.4.1 查詢(xún)類(lèi)模塊</p><p>  由于本系統(tǒng)中含有大量的數(shù)據(jù)信息,而在實(shí)際的系統(tǒng)操作中,又需要

50、對(duì)數(shù)據(jù)進(jìn)行查詢(xún),因此在這些查詢(xún)類(lèi)模塊中,我們要設(shè)計(jì)并實(shí)現(xiàn)查詢(xún)這項(xiàng)功能。</p><p>  圖5. 查詢(xún)系統(tǒng)界面</p><p>  在本系統(tǒng)中,查詢(xún)的種類(lèi)分為兩大類(lèi):分別為條件查詢(xún)與時(shí)間查詢(xún)。</p><p>  條件查詢(xún)分為四種方式,分別為模糊查詢(xún)(like) ,小于查詢(xún)(<),大于查詢(xún)(>)和等于查詢(xún)(=)。</p><p>

51、;  為了實(shí)現(xiàn)這條件查詢(xún)的這幾種方式,在創(chuàng)建表單的時(shí)候,須在表單上添加2個(gè)Combo控件,屬性均為:RowSource RowSourceType,分別用來(lái)提供查詢(xún)字段列表和查詢(xún)條件列表。</p><p>  而如果模塊中,要實(shí)現(xiàn)按日期查詢(xún),還需要在表單中加入2個(gè)Text控件,屬性為Format Value,用來(lái)提供日期的輸入。</p><p>  對(duì)于模塊需要按條件還是日期來(lái)查詢(xún),在查詢(xún)

52、前,需要進(jìn)行選擇,為了實(shí)現(xiàn)這個(gè)選擇功能,在表單設(shè)計(jì)時(shí),需添加2個(gè)Check控件,用來(lái)分別選擇查詢(xún)的方式。</p><p>  當(dāng)選擇查詢(xún)的類(lèi)型時(shí),只要在查詢(xún)方式前加上勾,系統(tǒng)就將采用此種查詢(xún)方式,系統(tǒng)判斷是否選擇,使用下面的方法:</p><p>  if thisform.check1.value=1 &&選擇了該方法</p><p> 

53、 if thisform.check1.value=0 &&為沒(méi)選擇該方法</p><p>  當(dāng)系統(tǒng)發(fā)現(xiàn)選擇了該查詢(xún)方式,則需要設(shè)置控件有效來(lái)使用此方法:</p><p>  store.t.to thisform.combo1.enabled,</p><p>  thisform.combo2.enabled,thisform.tex

54、t1.enabled &&設(shè)置控件有效</p><p>  若發(fā)現(xiàn)未使用該方法,只需要將第一句改為:</p><p>  store.f.to thisform.combo1.enabled 即可。</p><p>  這樣也就實(shí)現(xiàn)是選擇條件還是日期來(lái)查詢(xún)。</p><p>  如果按選擇條件查詢(xún),系統(tǒng)在查詢(xún)的時(shí)候,將查詢(xún)過(guò)

55、程分成三個(gè)情況。 </p><p>  第一種情況為查詢(xún)操作失敗,出現(xiàn)這種情況,主要是使用查詢(xún)的時(shí)候,沒(méi)有按照要求來(lái)進(jìn)行查找操作,如沒(méi)有填寫(xiě)查詢(xún)的字段,沒(méi)有選擇查詢(xún)的方式,出現(xiàn)這種情況,系統(tǒng)會(huì)提示查詢(xún)失敗,需要重新查詢(xún)。</p><p>  系統(tǒng)判斷出沒(méi)有填寫(xiě)完整的查詢(xún),也就是沒(méi)有選擇查詢(xún)方式為空和查詢(xún)的內(nèi)容為空,輸出錯(cuò)誤提示:</p><p>  if empty

56、(ccif) or empty(ctext)</p><p>  messagebox('請(qǐng)選擇查詢(xún)條件!',48,'操作失??!')</p><p>  此時(shí)查詢(xún)失敗,需要重新查詢(xún)</p><p>  第二種情況為模糊查詢(xún),實(shí)現(xiàn)模糊查詢(xún)?cè)贛icrosoft Visual FoxPro 中顯得比較容易,因?yàn)閂isual FoxPro的語(yǔ)

57、言代碼中有一個(gè)很特殊的符號(hào),這個(gè)符號(hào)就是“%”。“%”在Microsoft Visual FoxPro 的數(shù)據(jù)庫(kù)代碼中叫做通配符,使用通配符可以連接任意數(shù)目的字符。因此要實(shí)現(xiàn)模糊查詢(xún),只需要先利用系統(tǒng)查出帶有所輸入字段的所有目標(biāo),而“%”在語(yǔ)句中則表示其他所有任意字段字符。</p><p>  先判斷出所選的查詢(xún)?yōu)槟:樵?xún)(like):</p><p>  if thisform.comb

58、o2.displayvalue='like'then</p><p>  然后找出所有與所寫(xiě)的字段相匹配的信息,其中非所寫(xiě)字段的信息就用通配符所代替:</p><p>  fff=alltrim(thisform.combo1.displayvalue)+""+alltrim(thisform.</p><p>  combo2.

59、displayvalue) +"'"+alltrim(thisform.text1.value)+"%'"</p><p>  這樣,系統(tǒng)就可以找出所要查詢(xún)的所有信息。</p><p>  第三種情況為除去模糊查詢(xún)的其它查詢(xún),包括小于,大于,等于查詢(xún),這三種查詢(xún)與模糊查詢(xún)相比,唯一的不同就是所給的字段微可比較的,而且不需要系統(tǒng)對(duì)不

60、確定的信息進(jìn)行搜索,也就是沒(méi)有通配符。</p><p>  fff=alltrim(thisform.combo1.displayvalue)+""</p><p>  +alltrim(thisform.combo2.displayvalue);</p><p>  +" '"+alltrim(thisform.te

61、xt1.value)+"'"</p><p>  上面就是條件查詢(xún)的幾種方式。</p><p>  當(dāng)然,除了條件查詢(xún)的方式外,還可以按時(shí)間日期進(jìn)行查詢(xún)。</p><p>  如果是按照時(shí)間日期查詢(xún),與條件查詢(xún)相似,時(shí)間查詢(xún)可以分為查詢(xún)失敗和日期查詢(xún)兩個(gè)情況:</p><p>  sdate 與 edate 分別指

62、向了時(shí)間查詢(xún)的日期起止時(shí)間,若起止時(shí)間為空,則查詢(xún)失敗</p><p>  if sdate={//} or edate={//}</p><p>  messagebox('請(qǐng)輸入起始時(shí)間!',48,'操作失?。?#39;)</p><p>  如果日期均不為空,則系統(tǒng)將查找起止日期之間的信息,將信息存入臨時(shí)表Lindeping以供使用。以

63、銷(xiāo)售登記查詢(xún)?yōu)槔?,我們將銷(xiāo)售登記表中的銷(xiāo)售日期作為起止日期查詢(xún)標(biāo)準(zhǔn),將滿(mǎn)足日期的所有數(shù)據(jù)信息裝入Lindeping 。 </p><p>  fff=between(銷(xiāo)售日期,sdate,edate)</p><p>  select * from tabxsdj where &fff.into cursor lindeping </p><p>

64、;  有的模塊使用查詢(xún)功能的同時(shí),希望能夠?qū)崿F(xiàn)統(tǒng)計(jì)功能。我們可以通過(guò)查詢(xún)語(yǔ)句將符合條件的記錄存入臨時(shí)表Lindeping中,在對(duì)臨時(shí)表Lindeping 進(jìn)行統(tǒng)計(jì)。</p><p>  計(jì)算方法為:統(tǒng)計(jì)品種數(shù):品種數(shù)=臨時(shí)表Lindeping中的記錄總數(shù)</p><p>  select lindeping</p><p>  creccount=recount(

65、)</p><p>  統(tǒng)計(jì)數(shù)量:對(duì)符合條件的記錄進(jìn)行求和計(jì)算</p><p>  sum 數(shù)量 to jhcount</p><p>  統(tǒng)計(jì)金額:對(duì)符合條件的記錄進(jìn)行求和計(jì)算</p><p>  sum 金額 to jhje</p><p>  4.4.2 報(bào)表類(lèi)模塊</p><p>  本

66、系統(tǒng)中所實(shí)現(xiàn)的報(bào)表類(lèi)模塊功能大體一樣,均包含打印,打印預(yù)覽,以及使用查詢(xún)羅列出所需的信息。</p><p>  在系統(tǒng)中單單實(shí)現(xiàn)打印與打印預(yù)覽是很容易的,只要在表單的相應(yīng)位置寫(xiě)入簡(jiǎn)單的語(yǔ)句即可實(shí)現(xiàn)。</p><p>  在“打印預(yù)覽”按鈕的Click事件中加入:</p><p>  report form report\xiaoshou to print previ

67、ew &&打印預(yù)覽報(bào)表</p><p>  在“打印”按鈕的Click事件中加入:</p><p>  report form report\xiaoshou to print &&打印報(bào)表</p><p>  這樣,利用上述的代碼就可以實(shí)現(xiàn)將表單grid控件中所羅列的數(shù)據(jù)以表單的形式打印出來(lái)。</p>&

68、lt;p>  在設(shè)計(jì)表單類(lèi)模塊的時(shí)候,關(guān)鍵是要能把所查詢(xún)的數(shù)據(jù)能夠羅列出來(lái)。為了實(shí)現(xiàn)該功能,我們首先應(yīng)該將查詢(xún)的數(shù)據(jù)輸入到臨時(shí)表中。</p><p>  以銷(xiāo)售報(bào)表為例,我們需要將所輸入的查詢(xún)時(shí)間范圍內(nèi)的所有數(shù)據(jù)線(xiàn)找出來(lái),以銷(xiāo)售票號(hào)作為索引,將結(jié)果輸入到臨時(shí)表Lindeping 中:</p><p><b>  select *;</b></p>

69、<p>  from medicamentmanage!tabxsdj;</p><p>  where between(出庫(kù)日期,sdate,edate);</p><p>  order by tabxsdj.銷(xiāo)售票號(hào);</p><p>  into cursor lindeping &&查詢(xún)結(jié)果輸出到臨時(shí)表中<

70、;/p><p>  然后我們需要實(shí)現(xiàn)將所找到的數(shù)據(jù)輸入表單的到grid控件,也就是我們可以清楚看到的列表中:</p><p>  現(xiàn)將指針移動(dòng)到臨時(shí)表的頂端,如果沒(méi)有我們要找的信息,指針移動(dòng)到最后一條記錄,然后顯示出無(wú)記錄的信息</p><p>  go top &&指針移動(dòng)到表頂端</p><p&

71、gt;  if eof() &&空信息</p><p>  go bottom &&記錄指針移動(dòng)到最后一條記錄</p><p>  messagebox('無(wú)記錄!',48,'信息窗口')</p><p>  如果臨時(shí)表中發(fā)現(xiàn)了由數(shù)據(jù)信息

72、存在,則開(kāi)始進(jìn)行數(shù)據(jù)的錄入: </p><p>  thisform.grid1.recordsource='lindeping' </p><p>  thisform.commandgroup1.command1.enabled=.t.</p><p>  thisform.commandgroup1.command2.enabled

73、=.t.</p><p>  如果上述語(yǔ)句=.f. 則表示不用輸入,在前面無(wú)信息輸入的時(shí)候,可以用此語(yǔ)句完成信息的不輸入狀態(tài)。 </p><p>  4.4.3 登記類(lèi)模塊</p><p>  登記類(lèi)各個(gè)模塊所實(shí)現(xiàn)的功能比較繁多,每個(gè)模塊都比較大,但這些模塊都有一些共同的功能,而這些功能在登記類(lèi)模塊是一些核心功能,這些功能包括登記,保存和自動(dòng)生成各種票號(hào)。</

74、p><p>  自動(dòng)生成票號(hào)功能是隨著登記功能的實(shí)行而啟動(dòng)實(shí)現(xiàn)的。</p><p>  當(dāng)單擊“登記”按鈕時(shí),將清空表單上相關(guān)的內(nèi)容,做好接受用戶(hù)輸入信息的準(zhǔn)備。系統(tǒng)將自動(dòng)生成票號(hào),已入庫(kù)登記為例,入庫(kù)票號(hào)由系統(tǒng)日期,字母“rkd”,四位數(shù)字組成。首先判斷入庫(kù)登記表“Tabrkdj”中的入庫(kù)票號(hào)是否為空,如果為空,則入庫(kù)票號(hào)等于“系統(tǒng)日期+rkd+0001”,如果不為空,則入庫(kù)票號(hào)等于“系統(tǒng)日

75、期+rkd+四位數(shù)字編碼加1”。</p><p>  先選定表,這里選擇入庫(kù)登記表,將月份與日期的信息先提出</p><p>  select tabrkdj</p><p>  lmonth=padl(alltrim(str(month(date()),2)),2,'0') &&月份信息</p><p>

76、  lday=padl(alltrim(str(day(date()),2)),2,'0') &&日期信息</p><p>  在判斷入庫(kù)票號(hào)是否為空,如果為空,則以0001結(jié)尾</p><p>  if empty(入庫(kù)票號(hào))</p><p>  set cent on thisform.text2.value=<

77、;/p><p>  alltrim(str(year(date()),4)+'-'+lmonth+'-'+lday+'rkd0001')</p><p>  如果入庫(kù)票號(hào)不為空,則需要先找出表中最大的票號(hào)</p><p>  select max (入庫(kù)票號(hào)) from tabrkdj into array a <

78、;/p><p>  找到最大的票號(hào)后,需要在票號(hào)后面加1,形成所需的新票號(hào)。</p><p>  cend=val(substr(a(1),14))+1 &&票號(hào)尾數(shù)+1</p><p>  thisform.text2.value=alltrim(str(year(date()),4)+'-'+lmonth+'-

79、'+lday+'rkd'+padl(alltrim(str(cend,4)),4,'0')) &&形成新票號(hào)</p><p>  thisform.text3.value=date()</p><p>  在將所輸入的信息進(jìn)行登記,由于在登記的時(shí)候不允許同時(shí)保存,和退出,但可以取消,因此要設(shè)置保存csave 和退出功能cexit無(wú)

80、效,而登記cadd 和取消cexit有效。</p><p>  thisform.commandgroup1.cadd.enabled=.f.</p><p>  thisform.commandgroup1.csave.enabled=.t.</p><p>  thisform.commandgroup1.ccancel.enabled=.t.</p>

81、;<p>  thisform.commandgroup1.cexit.enabled=.f.</p><p>  以上代碼可以實(shí)現(xiàn)登記按鈕的功能</p><p>  當(dāng)所填信息完成時(shí),我們需要單擊“保存”按鈕。仍以入庫(kù)登記為例,當(dāng)我們單擊“保存”按鈕時(shí),將臨時(shí)表中的入庫(kù)信息保存到入庫(kù)登記表“Tabrkdj”中,將臨時(shí)表中的入庫(kù)信息匯總后保存到入庫(kù)票號(hào)“Tabrkph”表中,

82、在庫(kù)存信息表“Tabkc”查找該藥品,如果找到,則修改庫(kù)存數(shù)量,如果沒(méi)找到,則在庫(kù)存信息中添加該藥品的信息,并清空臨時(shí)表。</p><p>  首先完成臨時(shí)表的信息保存到入庫(kù)登記表中 </p><p>  thisform.grid1.recordsource='tabrkdj' &&賦數(shù)據(jù)源</p><p>  selec

83、t tabrkdj &&選擇Tabrkdj工作區(qū)為當(dāng)前工作區(qū)</p><p>  append from database\ltabrkdj &&把數(shù)據(jù)表中的記錄追加到當(dāng)前數(shù)據(jù)庫(kù)文件尾,其中l(wèi)tabrkdj為臨時(shí)入庫(kù)信息表</p><p>  在數(shù)據(jù)記錄的加入后,我們需要對(duì)臨時(shí)表中的信息進(jìn)行匯總</p><

84、p>  select ltabrkdj &&選擇臨時(shí)入庫(kù)登記表為當(dāng)前工作區(qū)</p><p>  pzs=reccount()</p><p>  sum 數(shù)量 to ccount &&對(duì)數(shù)量字段求和</p><p>  完成了數(shù)據(jù)信息的匯總后,我們要將信息保存到入庫(kù)票號(hào)得表中,對(duì)數(shù)據(jù)的各種信息,先設(shè)

85、定其信息來(lái)源,如入庫(kù)票號(hào)從表單中的text2控件中獲得: rkph=thisform.text2.value 其它的信息仿照上述格式寫(xiě),最后將信息加入到入庫(kù)票號(hào)表tabrkph中</p><p>  insert into database\tabrkph values(rkph,pzs,</p><p>  ccount,yf,sf,wf,gysname,date1,jsfs,sfjq

86、,manager,jsr)</p><p>  最后就要完成對(duì)庫(kù)存信息的更新,首先要選擇工作區(qū):</p><p>  select ltabrkdj</p><p>  接著,對(duì)表中的每一條信息和庫(kù)存信息表中的進(jìn)行比較,找出相同的藥品,在尋找信息的時(shí)候,以藥品編號(hào)作為索引,檢查藥品編號(hào)與倉(cāng)庫(kù)名稱(chēng)相同的信息:</p><p>  go top

87、 &&將指針移動(dòng)到表的頂端</p><p>  do while !eof() &&用循環(huán)的方法來(lái)進(jìn)行查找</p><p><b>  select *;</b></p><p>  from medicamentmanage!tabkc;</p><p>  wh

88、ere 藥品編號(hào)==ltabrkdj.藥品編號(hào) AND 倉(cāng)庫(kù)名稱(chēng)==ltabrkdj.倉(cāng)庫(kù)名稱(chēng);</p><p>  order by tabkc.藥品編號(hào); &&索引為藥品編號(hào)</p><p>  into cursor lindeping &&將信息存入臨時(shí)表中</p><p>  如果庫(kù)存表中沒(méi)有相同的藥品,則直接將

89、信息存入到庫(kù)存表中 </p><p>  if reccount()<1 && 沒(méi)有找到一樣的藥品</p><p>  insert into tabkc values(ltabrkdj.藥品編號(hào),ltabrkdj.倉(cāng)庫(kù)名稱(chēng),ltabrkdj.藥品名稱(chēng),ltabrkdj.簡(jiǎn)稱(chēng),ltabrkdj.劑型,ltabrkdj.貨位,ltabrkdj

90、.產(chǎn)地,ltabrkdj.規(guī)格,ltabrkdj.包裝,ltabrkdj.單位,ltabrkdj.商標(biāo),ltabrkdj.批準(zhǔn)文號(hào),ltabrkdj.批號(hào),ltabrkdj.進(jìn)價(jià), ltabrkdj.數(shù)量,ltabrkdj.金額,ltabrkdj.保質(zhì)期) &&追加新記錄</p><p>  如果找到了一樣的藥品,則需要將原有的藥品信息表更新,使用update 語(yǔ)句來(lái)實(shí)現(xiàn)。 &

91、lt;/p><p>  update tabkc set 藥品名稱(chēng)=ltabrkdj.藥品名稱(chēng),庫(kù)存數(shù)量=庫(kù)存數(shù)量+ltabrkdj.數(shù)量,單價(jià)=ltabrkdj.進(jìn)價(jià),庫(kù)存金額=庫(kù)存數(shù)量*單價(jià) where 藥品編號(hào)=ltabrkdj.藥品編號(hào) </p><p>  在執(zhí)行完操作后需要將臨時(shí)表清空 </p><p&g

92、t;  use database\ltabrkdj exclusive &&以獨(dú)占方式打開(kāi)數(shù)據(jù)表</p><p>  zap &&清空數(shù)據(jù)表</p><p>  上述三種功能是登記類(lèi)模塊的核心功能,只要實(shí)現(xiàn)了這三種功能,登記類(lèi)模塊的其他功能也就容易實(shí)現(xiàn)。</p>

93、<p>  4.4.4 結(jié)賬類(lèi)模塊</p><p>  顧名思義,結(jié)賬類(lèi)模塊所要實(shí)現(xiàn)的核心功能就是要結(jié)賬,本系統(tǒng)主要實(shí)現(xiàn)日結(jié)賬與月結(jié)賬功能。在這類(lèi)模塊中,用到最多的是匯總數(shù)據(jù)</p><p>  如語(yǔ)句:sum 金額to xiaoshou 可以實(shí)現(xiàn)匯總?cè)霂?kù)金額</p><p>  圖6. 日結(jié)賬界面圖</p><p>  對(duì)于

94、日結(jié)賬,我們要實(shí)現(xiàn)的功能方法與羅列數(shù)據(jù)到表單中的方法相似,我們用循環(huán)的方法一次加入數(shù)據(jù)信息: </p><p>  select ltabrj &&選擇臨時(shí)日結(jié)表作為當(dāng)前工作區(qū)</p><p><b>  go top</b></p><p>  do while !eof() &&以循環(huán)方式進(jìn)行數(shù)據(jù)追加

95、</p><p>  insert into tabrj values(ltabrj.操作員,ltabrj.銷(xiāo)售,ltabrj.銷(xiāo)售退貨,ltabrj.入庫(kù),ltabrj.入庫(kù)退貨,ltabrj.日期)</p><p>  skip &&記錄指針向下移動(dòng)一條記錄</p><p><b>  enddo</b></

96、p><p>  在輸入完數(shù)據(jù)后,我們依然要進(jìn)行清空表的操作</p><p>  use database\ltabrj exclusive</p><p><b>  zap</b></p><p>  而對(duì)于月結(jié)賬,在實(shí)現(xiàn)上述功能之前還需要對(duì)月份進(jìn)行一次選擇</p><p>  圖7. 月結(jié)賬選擇界

97、面</p><p>  在系統(tǒng)中添加一個(gè)名為Yuejie1的表單,其中需要添加一個(gè)Combo控件,用于提供結(jié)賬月份的列表,先要定義月結(jié)的開(kāi)始和結(jié)束時(shí)間,分別以startdate和enddate 來(lái)表示 </p><p>  public startdate,enddate &&定義全部變量</p><p>  在對(duì)時(shí)間的定義中,開(kāi)始時(shí)間比

98、較容易把握,所選月份的第一天,但結(jié)束時(shí)間的把握要復(fù)雜一些,分為兩種情況:第一種情況為12月以外的月份,則結(jié)束時(shí)間是在開(kāi)始時(shí)間月份上+1,年份不變:</p><p>  mm=alltrim(str(val(m)+1))</p><p><b>  yy=y</b></p><p>  對(duì)于12月的結(jié)賬,則截止時(shí)間月份變?yōu)?月,年份+1:<

99、/p><p>  if val(m)=12</p><p>  mm=alltrim('01')</p><p>  yy=alltrim(str(val(y)+1))</p><p><b>  最終時(shí)間的確定:</b></p><p>  enddate=ctod(mm+'

100、/'+dd+'/'+yy)</p><p>  為了不重復(fù)對(duì)月進(jìn)行結(jié)賬,在本系統(tǒng)中,如果月結(jié)前發(fā)現(xiàn)已經(jīng)對(duì)本月進(jìn)行了結(jié)賬,則不再進(jìn)行此操作,要實(shí)現(xiàn)此項(xiàng)功能,必須以開(kāi)始日期作為索引:</p><p>  select tabyjcsh</p><p>  set order to 開(kāi)始日期 &&指定控制索引文件<

101、;/p><p>  seek startdate &&快速查詢(xún)</p><p>  if found()</p><p>  messagebox('此月已結(jié)帳,不能再進(jìn)行月結(jié)操作!',48,'操作失??!') </p><p>  如果沒(méi)有發(fā)現(xiàn)開(kāi)始日期,月結(jié)賬進(jìn)入與日

102、結(jié)賬相似的表單。</p><p>  4.4.5 可修改類(lèi)模塊</p><p>  可修改類(lèi)模塊大部分是各類(lèi)數(shù)據(jù)信息系統(tǒng),這類(lèi)模塊機(jī)查詢(xún),登記,保存,修改等功能于一體。其中查詢(xún)功能與查詢(xún)類(lèi)模塊所實(shí)現(xiàn)的功能相似,而登記,修改功能與登記類(lèi)模塊所實(shí)現(xiàn)的功能相似,這些功能在前面已實(shí)現(xiàn),這里不再重復(fù),現(xiàn)在最重要的是實(shí)現(xiàn)修改功能。</p><p>  其實(shí),在進(jìn)行添加和保存功能

103、介紹時(shí),對(duì)如何實(shí)現(xiàn)這類(lèi)功能已經(jīng)有了介紹,例如要想在表單的text2 中進(jìn)行修改,只要系統(tǒng)執(zhí)行</p><p>  thisform.commandgroup1.text2.enabled=.t.就可以了,同理如果=.f.就不能實(shí)現(xiàn)修改,這種語(yǔ)句可以用在表單中不能修改的控件上。</p><p>  還有一點(diǎn)要注意,在修改的過(guò)程中,表單上的功能件只有保存、取消能夠執(zhí)行,而修改這個(gè)按鈕在修改執(zhí)行

104、以后,就不能再執(zhí)行了,這一點(diǎn)很容易搞錯(cuò):</p><p>  thisform.commandgroup1.cmodify.enabled=.f. &&設(shè)置修改無(wú)效</p><p>  thisform.commandgroup1.cdel.enabled=.f. &&設(shè)置刪除無(wú)效</p><p>  thisform.co

105、mmandgroup1.ccancel.enabled=.t. &&設(shè)置取消有效</p><p>  thisform.commandgroup1.csave.enabled=.t. &&設(shè)置保存有效</p><p>  thisform.commandgroup1.cadd.enabled=.f. &&設(shè)置添加無(wú)效<

106、/p><p>  由此可以實(shí)現(xiàn)修改的功能。</p><p>  4.5 其它模塊設(shè)計(jì)</p><p>  在本系統(tǒng)中除了上述幾種功能模塊外,還一些關(guān)于系統(tǒng)管理的模塊設(shè)計(jì)。</p><p>  4.5.1操作員管理</p><p>  對(duì)于操作員管理系統(tǒng),主要實(shí)現(xiàn)用戶(hù)的增加,刪除,修改以及密碼的設(shè)置。其中用戶(hù)的增加,刪除,修

107、改與可修改類(lèi)模塊實(shí)現(xiàn)的功能相似,對(duì)于“密碼修改確定”功能可以采用以下方法實(shí)現(xiàn):</p><p>  首先要將權(quán)限表置為當(dāng)前工作區(qū)</p><p>  use database\tabpurview</p><p>  然后將操作員姓名作為索引</p><p>  set order to 操作員姓名 </p><

108、p>  在表中查找當(dāng)前要修改密碼的人員是否為表中所含有的人員</p><p>  seek cname &&快速查詢(xún)</p><p>  set exact on &&字符精確比較</p><p>  如果所修改的人員不為表中所擁有的,顯示錯(cuò)誤:<

109、;/p><p>  if alltrim(tabpurview.操作員姓名)!=cname</p><p>  cMessagetext='操作員錯(cuò)誤,請(qǐng)重新輸入!'</p><p>  如果人員的名字無(wú)誤,則原密碼進(jìn)行比較,同樣若密碼不正確,同樣顯示修改失敗</p><p>  if alltrim(tabpurview.密碼)

110、!=ppassword</p><p>  cmessagetext='原密碼錯(cuò)誤,請(qǐng)重新輸入!'</p><p>  上述功能實(shí)現(xiàn)與前面所講的登陸確認(rèn)功能相似,當(dāng)身份的到確認(rèn)的時(shí)候,下面的功能就實(shí)現(xiàn)了密碼的修改確認(rèn)。</p><p>  thisform.commandgroup1.adddel.enabled=.t.</p><

111、;p>  thisform.commandgroup1.modify.enabled=.t.</p><p>  thisform.commandgroup1.cok.enabled=.f.</p><p>  thisform.text2.enabled=.t.</p><p>  thisform.text3.enabled=.t.</p>

112、<p>  thisform.text1.enabled=.f.</p><p>  thisform.combo1.enabled=.f. </p><p>  thisform.text2.setfocus</p><p>  這種語(yǔ)句所實(shí)現(xiàn)的功能就是修改thisform后面的控件的內(nèi)容</p><p>  4.5

113、.2權(quán)限管理設(shè)計(jì)</p><p>  為了保護(hù)本系統(tǒng)的各用戶(hù)的利益,保證數(shù)據(jù)的安全性,本系統(tǒng)采用了權(quán)限管理。也就是不同的用戶(hù)擁有不同的權(quán)限。各自用戶(hù)只能進(jìn)入權(quán)限規(guī)定的功能模塊。</p><p>  圖8. 權(quán)限管理界面</p><p>  本系統(tǒng)的權(quán)限管理共分四個(gè)等級(jí),分別為1,2,3,4級(jí)別,等級(jí)1的級(jí)別最高,屬于系統(tǒng)管理員等級(jí),且只有一個(gè),能使用各種功能系統(tǒng)。等

114、級(jí)2不能實(shí)現(xiàn)系統(tǒng)管理功能,等級(jí)3不能使用基礎(chǔ)信息管理與系統(tǒng)管理。這三類(lèi)等級(jí)的人員權(quán)限均不可改。等級(jí)4的人員權(quán)限由系統(tǒng)管理員進(jìn)行設(shè)置,可以設(shè)置與等級(jí)1一樣的權(quán)限。</p><p>  因此有可能出現(xiàn)等級(jí)為4的人員,卻能實(shí)現(xiàn)等級(jí)2和3都不能使用的功能模塊。</p><p>  為了系統(tǒng)的安全性,權(quán)限等級(jí)為1的只能有一個(gè),當(dāng)再設(shè)置權(quán)限的時(shí)候發(fā)現(xiàn)設(shè)置成了權(quán)限1,則系統(tǒng)自動(dòng)提示信息,拒絕操作:<

115、;/p><p>  case val(alltrim(thisform.text1.value))=1 &&設(shè)置權(quán)限等級(jí)1</p><p>  thisform.resize &&執(zhí)行表單的Resize事件</p><p>  messagebox('級(jí)別1為系統(tǒng)管理員,不能有多個(gè),請(qǐng)重新輸入!',48,&#

116、39;權(quán)限管理')</p><p>  thisform.text1.value='' &&拒絕操作</p><p>  對(duì)于設(shè)置權(quán)限為非1的人,可以用update語(yǔ)句來(lái)設(shè)置表中的功能模塊的是用權(quán)限,設(shè)置為t 為可以使用,設(shè)置為f為不能使用</p><p>  locate for 操作員姓名=czyname</p&g

117、t;<p>  do case &&條件語(yǔ)句</p><p>  case crand='2' &&等級(jí)為2</p><p>  update tabpurview set 權(quán)限級(jí)別=crand,銷(xiāo)售管理=.t., 進(jìn)貨管理=.t.,庫(kù)房管理=.t.,

118、調(diào)貨管理=.t.,財(cái)務(wù)管理=.t.,帳目管理=.t.,基礎(chǔ)信息管理=.t.,系統(tǒng)管理=.f. where 操作員姓名=czyname</p><p>  case crand='3' &&等級(jí)為3</p><p>  update tabpurview set 權(quán)限級(jí)別=crand,銷(xiāo)售管理=.t., 進(jìn)貨管理=.t.,庫(kù)房

119、管理=.t.,調(diào)貨管理=.t.,財(cái)務(wù)管理=.t.,帳目管理=.t.,基礎(chǔ)信息管理=.f.,系統(tǒng)管理=.f. where 操作員姓名=czyname</p><p>  case crand='4' &&等級(jí)為4</p><p>  update tabpurview set 權(quán)限級(jí)別=crand,銷(xiāo)售管理=cxsgl, 進(jìn)貨管

120、理=cjhgl,庫(kù)房管理=ckfgl,調(diào)貨管理=cthgl,財(cái)務(wù)管理=ccwgl,帳目管理=czmgl,基礎(chǔ)信息管理=cjcinfo,系統(tǒng)管理=csysgl where 操作員姓名=czyname</p><p><b>  endcase</b></p><p>  為了能夠?qū)崿F(xiàn)權(quán)限改動(dòng)的功能,表單上列出了各種管理模塊的復(fù)選框,只要在所選功能的前面打上勾,就能實(shí)現(xiàn)這

121、項(xiàng)功能,而在選擇功能的時(shí)候,只有確定和取消按鈕有效,由于有8個(gè)系統(tǒng)功能,若分別寫(xiě)有效與無(wú)效代碼太麻煩,可用下列方法簡(jiǎn)化</p><p>  在“銷(xiāo)售管理”的控件中添加</p><p>  thisform.command3.enabled=.t. && 取消有效</p><p>  thisform.command2.enabled=.f.

溫馨提示

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

評(píng)論

0/150

提交評(píng)論