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

下載本文檔

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

文檔簡介

1、<p>  物流管理系統(tǒng)----醫(yī)藥物流管理系統(tǒng)</p><p><b>  目 錄</b></p><p>  一.引 言3</p><p><b>  二.需求分析4</b></p><p>  2.1 開發(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 開發(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 銷售管理7</p><p>  3.2 進(jìn)貨管理7</p><p>  3.3 庫房管理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ù)庫設(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 查詢類模塊14</p><p>  4.4.2 報(bào)表類模塊17</p><p>  4.4.3 登記類模塊19</p><p>  4.4.4 結(jié)賬類模塊22</p><p&g

6、t;  4.4.5 可修改類模塊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>  五.存在問題及解決方案30</p><

7、p>  六.結(jié) 論31</p><p><b>  七.參考資料31</b></p><p><b>  一.引 言</b></p><p>  物流管理是指在社會(huì)再生產(chǎn)過程中,根據(jù)物質(zhì)資料實(shí)體流動(dòng)的規(guī)律,應(yīng)用管理的基本原理和科學(xué)方法,對物流活動(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>  (1)、對物流活動(dòng)諸要素的管理,包括運(yùn)輸、儲(chǔ)存等環(huán)節(jié)的管理;</p><p> ?。?)、對物流系統(tǒng)諸要素的管理,即對其中人、財(cái)、物、設(shè)備、方法和信息等六大要素的管理;</p><p>  (3)、對物流活動(dòng)中具體職能的

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

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

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

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

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

14、<p>  賬目管理:包含財(cái)務(wù)結(jié)賬,當(dāng)月結(jié)賬,銷售查詢統(tǒng)計(jì),入庫查詢 </p><p>  統(tǒng)計(jì),銷售退貨查詢,財(cái)務(wù)報(bào)表,月報(bào)表。</p><p>  基礎(chǔ)信息管理:包含藥品信息,員工信息,客戶信息,供應(yīng)商信 </p><p><b>  息,倉庫基本信息。</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>  操作簡單,易于上手。</p><p>  查詢方便靈活,瀏覽簡單,明目。</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 開發(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><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ù)庫開

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

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

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

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

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

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

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

26、時(shí),對調(diào)動(dòng)的信息進(jìn)行記錄也就顯得尤為關(guān)鍵。</p><p>  調(diào)貨登記完成各倉庫間藥品調(diào)貨信息記錄,自動(dòng)生成調(diào)貨票號,日期,以列表的形式顯示調(diào)貨結(jié)果。</p><p>  調(diào)貨查詢支持條件和日期查詢,以頁框和列表方式瀏覽調(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ù)上對收款與付款的信息記錄也就非常繁瑣。利用財(cái)務(wù)管理系統(tǒng)模塊可以簡化這些操作,使用方便,簡潔。財(cái)務(wù)管理包含收款單,付款單,收款查詢,付款查詢。</p><p>  收款單可實(shí)現(xiàn)查詢和瀏覽收款信息,對未付款客戶進(jìn)行結(jié)款操作。</p><p>  收款查詢能按不同條件查詢收款信息,以頁框和列表瀏覽收款信息。</p>

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

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

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

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

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

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

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

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

36、abgys,結(jié)算方式表Tabjsfs,庫存表Tabkc,客戶信息表Tabkh,權(quán)限表Tabpurview,日結(jié)表Tabrj,入庫登記表Tabrkdj,入庫結(jié)賬表Tabrkjz,入庫票號表Tabrkph,入庫退貨表Tabrkth,倉庫信息表Tabstorage,銷售登記表Tabxsdj,銷售結(jié)賬表Tabxsjz,銷售票號表Tabxsph,銷售退貨表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)目,名稱為“醫(yī)藥物流管理系統(tǒng)”,在該項(xiàng)目中添加一個(gè)表單,名稱為Fdesktop。在表單中插入名稱為Vcxmain的ToolBar類。</p><p>  在各個(gè)按鈕的Click事件中添加類代碼。</p><p>  圖3. 主程序界面

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

39、p>  在“調(diào)貨登記”按鈕中添加:do form form\tiaohuodj </p><p>  在“庫存查詢”按鈕中添加:do form form\kcquery</p><p>  在“銷售查詢”按鈕中添加:do form form\xiaoshouquery</p><p>  在“入庫查詢”按鈕中添加: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>  用戶進(jìn)入系統(tǒng)前,

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

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

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

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

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

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

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

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

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

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

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

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

53、 if thisform.check1.value=0 &&為沒選擇該方法</p><p>  當(dāng)系統(tǒng)發(fā)現(xiàn)選擇了該查詢方式,則需要設(shè)置控件有效來使用此方法:</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)是選擇條件還是日期來查詢。</p><p>  如果按選擇條件查詢,系統(tǒng)在查詢的時(shí)候,將查詢過

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

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

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

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

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

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

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

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

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

64、;  有的模塊使用查詢功能的同時(shí),希望能夠?qū)崿F(xiàn)統(tǒng)計(jì)功能。我們可以通過查詢語句將符合條件的記錄存入臨時(shí)表Lindeping中,在對臨時(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ù)量:對符合條件的記錄進(jìn)行求和計(jì)算</p><p>  sum 數(shù)量 to jhcount</p><p>  統(tǒng)計(jì)金額:對符合條件的記錄進(jìn)行求和計(jì)算</p><p>  sum 金額 to jhje</p><p>  4.4.2 報(bào)表類模塊</p><p>  本

66、系統(tǒng)中所實(shí)現(xiàn)的報(bào)表類模塊功能大體一樣,均包含打印,打印預(yù)覽,以及使用查詢羅列出所需的信息。</p><p>  在系統(tǒng)中單單實(shí)現(xiàn)打印與打印預(yù)覽是很容易的,只要在表單的相應(yīng)位置寫入簡單的語句即可實(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ù)以表單的形式打印出來。</p>&

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

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

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

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

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

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

75、期+rkd+四位數(shù)字編碼加1”。</p><p>  先選定表,這里選擇入庫登記表,將月份與日期的信息先提出</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>  在判斷入庫票號是否為空,如果為空,則以0001結(jié)尾</p><p>  if empty(入庫票號)</p><p>  set cent on thisform.text2.value=<

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

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

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

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í),我們需要單擊“保存”按鈕。仍以入庫登記為例,當(dāng)我們單擊“保存”按鈕時(shí),將臨時(shí)表中的入庫信息保存到入庫登記表“Tabrkdj”中,將臨時(shí)表中的入庫信息匯總后保存到入庫票號“Tabrkph”表中,

82、在庫存信息表“Tabkc”查找該藥品,如果找到,則修改庫存數(shù)量,如果沒找到,則在庫存信息中添加該藥品的信息,并清空臨時(shí)表。</p><p>  首先完成臨時(shí)表的信息保存到入庫登記表中 </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ù)庫文件尾,其中l(wèi)tabrkdj為臨時(shí)入庫信息表</p><p>  在數(shù)據(jù)記錄的加入后,我們需要對臨時(shí)表中的信息進(jìn)行匯總</p><

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

85、定其信息來源,如入庫票號從表單中的text2控件中獲得: rkph=thisform.text2.value 其它的信息仿照上述格式寫,最后將信息加入到入庫票號表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>  最后就要完成對庫存信息的更新,首先要選擇工作區(qū):</p><p>  select ltabrkdj</p><p>  接著,對表中的每一條信息和庫存信息表中的進(jìn)行比較,找出相同的藥品,在尋找信息的時(shí)候,以藥品編號作為索引,檢查藥品編號與倉庫名稱相同的信息:</p><p>  go top

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

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

89、信息存入到庫存表中 </p><p>  if reccount()<1 && 沒有找到一樣的藥品</p><p>  insert into tabkc values(ltabrkdj.藥品編號,ltabrkdj.倉庫名稱,ltabrkdj.藥品名稱,ltabrkdj.簡稱,ltabrkdj.劑型,ltabrkdj.貨位,ltabrkdj

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

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

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

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

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.銷售,ltabrj.銷售退貨,ltabrj.入庫,ltabrj.入庫退貨,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>  而對于月結(jié)賬,在實(shí)現(xiàn)上述功能之前還需要對月份進(jìn)行一次選擇</p><p>  圖7. 月結(jié)賬選擇界

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

98、較容易把握,所選月份的第一天,但結(jié)束時(shí)間的把握要復(fù)雜一些,分為兩種情況:第一種情況為12月以外的月份,則結(jié)束時(shí)間是在開始時(shí)間月份上+1,年份不變:</p><p>  mm=alltrim(str(val(m)+1))</p><p><b>  yy=y</b></p><p>  對于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ù)對月進(jìn)行結(jié)賬,在本系統(tǒng)中,如果月結(jié)前發(fā)現(xiàn)已經(jīng)對本月進(jìn)行了結(jié)賬,則不再進(jìn)行此操作,要實(shí)現(xiàn)此項(xiàng)功能,必須以開始日期作為索引:</p><p>  select tabyjcsh</p><p>  set order to 開始日期 &&指定控制索引文件<

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

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

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

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

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>  對于操作員管理系統(tǒng),主要實(shí)現(xiàn)用戶的增加,刪除,修改以及密碼的設(shè)置。其中用戶的增加,刪除,修

107、改與可修改類模塊實(shí)現(xiàn)的功能相似,對于“密碼修改確定”功能可以采用以下方法實(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 &&快速查詢</p><p>  set exact on &&字符精確比較</p><p>  如果所修改的人員不為表中所擁有的,顯示錯(cuò)誤:<

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

110、!=ppassword</p><p>  cmessagetext='原密碼錯(cuò)誤,請重新輸入!'</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>  這種語句所實(shí)現(xiàn)的功能就是修改thisform后面的控件的內(nèi)容</p><p>  4.5

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

114、級2不能實(shí)現(xiàn)系統(tǒng)管理功能,等級3不能使用基礎(chǔ)信息管理與系統(tǒng)管理。這三類等級的人員權(quán)限均不可改。等級4的人員權(quán)限由系統(tǒng)管理員進(jìn)行設(shè)置,可以設(shè)置與等級1一樣的權(quán)限。</p><p>  因此有可能出現(xiàn)等級為4的人員,卻能實(shí)現(xiàn)等級2和3都不能使用的功能模塊。</p><p>  為了系統(tǒng)的安全性,權(quán)限等級為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)限等級1</p><p>  thisform.resize &&執(zhí)行表單的Resize事件</p><p>  messagebox('級別1為系統(tǒng)管理員,不能有多個(gè),請重新輸入!',48,&#

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

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

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

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

120、理=cjhgl,庫房管理=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)功能,若分別寫有效與無效代碼太麻煩,可用下列方法簡化</p><p>  在“銷售管理”的控件中添加</p><p>  thisform.command3.enabled=.t. && 取消有效</p><p>  thisform.command2.enabled=.f.

溫馨提示

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

評論

0/150

提交評論