毛片在线视频观看,一级日韩免费大片,在线网站黄色,澳门在线高清一级毛片

薈聚奇文、博采眾長、見賢思齊
當(dāng)前位置:公文素材庫 > 公文素材 > 范文素材 > 服裝倉儲(chǔ)貨品管理技巧

服裝倉儲(chǔ)貨品管理技巧

網(wǎng)站:公文素材庫 | 時(shí)間:2019-05-28 20:17:06 | 移動(dòng)端:服裝倉儲(chǔ)貨品管理技巧

服裝倉儲(chǔ)貨品管理技巧

談倉庫貨品管理技巧

從多年倉庫管理實(shí)際操作經(jīng)驗(yàn)中提取,以某品牌服裝物流倉庫管理為例?偨Y(jié)相關(guān)要點(diǎn),共同學(xué)習(xí)分享:

一,影響倉儲(chǔ)貨品管理難度的因素有:貨品種類(指在庫貨品的SKU數(shù),如以型號或編號出現(xiàn),有一個(gè)數(shù)字或字母不同,即為不同的貨品,種類越多越難管理。)、貨品形狀(形狀不規(guī)則的貨品比形狀規(guī)則的貨品難管理,一個(gè)貨品沒有一個(gè)標(biāo)準(zhǔn)的長寬高即為不規(guī)則貨品。)、貨品重量(從搬運(yùn)角度出發(fā),越重的貨品需要借助搬運(yùn)機(jī)械,同時(shí)重貨對堆高有影響。)、貨品體積(過小易丟失,過大占空間,也影響搬運(yùn)。)、貨品溫濕度存放要求(要求高的,管理難度越高,如服裝中的掛裝比普通服裝難管理)、貨品發(fā)貨規(guī)律性(有規(guī)律的好管理,無規(guī)律的難管理)。

所以管理一個(gè)倉庫,必須分析清楚存放貨品的特性。

二,如何提高出入庫效率和準(zhǔn)確率:(以某品牌服裝倉庫管理為例。)1,學(xué)會(huì)分類,找到規(guī)律;

就服裝而言,首先可分為:上裝和下裝。按季節(jié)分為:春、夏、秋、冬裝。根據(jù)裝箱規(guī)格,分為薄、厚;根據(jù)庫存量,可分為:多、中、少。根據(jù)服裝是否帶配件,又可分為:有、無附件。按照種類又可分為:T恤、襯衫、牛仔、毛衣、裙子、西裝、吊帶背心等。按照價(jià)值,又可分為:高、中、低價(jià)。

分類之后,你才可以分析不同衣服的發(fā)貨特點(diǎn),從中找到規(guī)律,當(dāng)然這離不開數(shù)據(jù)的統(tǒng)計(jì)。什么時(shí)間段什么衣服到貨量較大,全年哪個(gè)種類的衣服發(fā)貨量最大(發(fā)貨量大的貨品可以考慮專區(qū)管理),不同的衣服包裝是否有不同的要求,庫存量大的發(fā)貨量就大,高價(jià)貨品要重點(diǎn)管理。

說明一下:此品牌服裝上衣和下衣大多是六個(gè)型號:XS(特小號)、S(小號)、M(中號)、L(大號)、XL(加大號)、XXL(加加大號),其中M號發(fā)貨量最大,XXL號很少。衣服首先分品牌,再分年份,再分季節(jié),再分大類,再分款,再分顏色,然后再分型號。

2,理清以往存在的問題和難點(diǎn)

由于此品牌服裝種類多,達(dá)5000多種,以往同類倉庫管理中經(jīng)常容易出現(xiàn)庫存只有一兩件的衣服找不到,或者配錯(cuò)類似型號或顏色的衣服,同箱內(nèi)出現(xiàn)不同的衣服等。

難點(diǎn):看似相同,其實(shí)不同。庫存小的衣服,一旦混到其它衣服中就找不到。高價(jià)衣服一旦缺少,損失嚴(yán)重。效率不高影響發(fā)貨,找不到衣服客戶會(huì)投訴,衣服少了,不好交待。所以要解決這些問題我就考慮到整零箱分開管理,分類分區(qū)管理(高價(jià)專區(qū)),定量定區(qū)管理,XL、XXL集中管理的方案。難點(diǎn)解決了,什么都好解決。

3,減少行走路徑

這是倉庫管理的原則,通過分類,可以把同類衣服集中管理,出單時(shí)同一張單據(jù)種類不要過多。新品入庫后,急于上店,要貨多,所以新品要放在最近的位置。

4,容積率和工作效率找到平衡點(diǎn)

倉庫空間是有限的,在有限的空間存放更多種類的衣服,更大量的衣服,提高容積率,有利于節(jié)約倉儲(chǔ)成本。但一味的提高容積率可能會(huì)影響發(fā)貨效率,所以要找到一個(gè)平衡點(diǎn)。我在管理過程中,把貨品分成幾類存放,主要以同款同色貨品的在庫量劃分,因?yàn)樵趲炝吭酱,意味著發(fā)貨量就大,反之庫存量只有幾件的時(shí)候,就很少發(fā),或不再需要發(fā)了。

貨量大的衣服,一天有好多個(gè)地區(qū)要配發(fā),以往每配發(fā)一次就要有一次搬箱和開箱的動(dòng)作,且由于要貨量多,需拆掉許多的箱子。

舉個(gè)例:一種衣服每箱裝30件,以單個(gè)型號為例,當(dāng)天有10個(gè)地區(qū)需要發(fā),需要的數(shù)量通常不是30的倍數(shù),數(shù)量不等,多少不一。如果是30的倍數(shù),發(fā)貨自然非常簡便。地區(qū)定量零頭廣州南通3551515寧波1818蘇州1212杭州4010上海4515廈門2525晉江1010合肥泰州8899零頭合計(jì):127

從表中可以看出,每個(gè)地區(qū)都需要零頭,每取一次都要搬動(dòng)零箱一次,從數(shù)量上來看,需要拆掉5個(gè)原箱。這個(gè)時(shí)候要提高效率就是要減少搬運(yùn)次數(shù),減少開箱的動(dòng)作。于是思考出:B敞口箱式:適用于剛?cè)霂烊∝涱l率較多的貨品,優(yōu)點(diǎn)是配貨便捷,缺點(diǎn)是如果是平面?zhèn)}庫會(huì)占用空間,如果有貨架,至于貨架底層即不浪費(fèi)空間,也不影響取貨,如下圖:

從上圖看出,箱子的口是敞開的,而且型號從小到大排序。把貨品倒入這些箱子,以后配貨時(shí)就不再需要搬箱和開箱的動(dòng)作,自然提高了配貨速度。C二垛式(是沒有貨架的情況下就地堆碼)或(貨架式):6種型號二垛堆碼,適用于發(fā)貨頻率適中的貨品,較節(jié)約空間,配貨也較方便,這適合貨品大量發(fā)貨之后,庫存量不多,以后很少發(fā)。在沒有貨架的時(shí)候碼在地上,空間要比敞口箱節(jié)約,但每次需要搬運(yùn)和開箱動(dòng)作。當(dāng)然有貨架后,可以一層一個(gè)型號,最好是從小到大按序放置,這樣方便取貨,且不易出錯(cuò);

D集中堆碼式:所有型號堆成一垛,適用于貨品量較少,只有少數(shù)城市配發(fā),優(yōu)點(diǎn)是節(jié)約空間(這是在沒有貨架的情況下使用,如下圖):

單款拼箱式:當(dāng)單個(gè)顏色所有型號總量低于60件(季節(jié)不同參數(shù)不同)時(shí),此時(shí)貨品很少發(fā)貨或不發(fā)貨,幾個(gè)型號拼到一箱中,每種貨品可以節(jié)約3-4箱的空間;

多款拼箱建立箱號:每種貨品總量低于10件,此時(shí)可將多款貨品拼到1箱中,大大的節(jié)約了空間,為了找貨方便,可在箱上建行編號,同時(shí)也可在箱外貼上明細(xì),當(dāng)然在系統(tǒng)或電子帳上要詳細(xì)記錄。

(由于一箱內(nèi)裝幾種衣服,為了便于區(qū)分,做出了四格箱,即一個(gè)箱子里面有4個(gè)格子,一個(gè)格子里面放一種衣服,這樣衣服就方便區(qū)分,也不容易扯到一起。)

5,力求最短的找貨時(shí)間和取貨時(shí)間

影響出貨效率的第一因素就是能否在第一時(shí)間找到要出的貨。所以貨品的庫位必須準(zhǔn)確詳細(xì)清楚,具體到點(diǎn)。舉個(gè)簡單的例子,現(xiàn)在讓你去給“某某人”送一封信,必須告訴你地址,具體的:省、市(縣)、鎮(zhèn)、街道。就這些信息你可以第一時(shí)間找到“某某人”所在的街道,但你不知門牌號,一看這條街道有1000個(gè)門牌號。好,如果告訴你門牌號是100號,好,找到了,一看,是幢40層的大廈。那你往哪層送?好,告訴你在10層,好,找到了,一看10層有二十個(gè)房間。我舉這個(gè)例子,就是說,庫位要詳細(xì),告訴你在哪一排不行,還要知道在哪一格,知道哪一格不行,還要知道是哪一層。找的時(shí)間最耽誤時(shí)間。減少取貨時(shí)間,就是想方法減少搬運(yùn)和開箱的時(shí)間,比如敞口箱就是減少了搬運(yùn)和開箱動(dòng)作。利用貨架,就像抽屜一樣,也減少了搬運(yùn)。同時(shí),把經(jīng)常發(fā)的貨品放在貨架下面,不常發(fā)的放在上面。

6,力求最少的搬運(yùn)次數(shù)

除了上述的幾點(diǎn)之外,要考慮有沒有不必要的環(huán)節(jié),尤其是需要搬運(yùn)動(dòng)作的環(huán)節(jié)。

7,最短的時(shí)間復(fù)核出差錯(cuò)

人不可能不出錯(cuò),一旦出錯(cuò)就需要復(fù)核,以判斷錯(cuò)在哪里,從而保證發(fā)貨的準(zhǔn)確率。而往往發(fā)現(xiàn)錯(cuò)誤后復(fù)核是一個(gè)耽誤發(fā)貨時(shí)間的過程。所以要有一個(gè)復(fù)核流程,以在最短的時(shí)間確認(rèn)錯(cuò)與對。實(shí)際工作中,我?guī)状斡龅揭坏┏鲥e(cuò)復(fù)核的時(shí)間比操作的時(shí)間還多。所以,有必要思考如何在最短的時(shí)間復(fù)核完成。

舉個(gè)例子,某張單據(jù)共要貨200件,配貨員配完后,對貨員(核對裝箱的人員)裝到最后第6箱時(shí)發(fā)現(xiàn)少1件編號是123456789的衣服,這種衣服共要10件,現(xiàn)在對下來只有9件,這個(gè)時(shí)候如何復(fù)核是配貨員配錯(cuò)了,還是對貨員對錯(cuò)了,是不是少1件呢?首先,要判斷123456789的這種衣服裝在了哪一箱或哪幾箱中?然后再把涉及的箱子開箱清點(diǎn),清點(diǎn)的時(shí)候先確認(rèn)該箱的總件數(shù)是否有差異,然后再核對123456789這種衣服的件數(shù)是否相符,最終確認(rèn)是不是錯(cuò)了。

這里要注意:1,如何知道123456789這種衣服裝在了哪一箱?2,如果每箱都有,意味著每箱都要復(fù)核,工作量就大。所以你就會(huì)要求對貨員同種衣服盡量裝在一箱,以減少復(fù)核工作。3,要根據(jù)配貨記錄和對貨記錄分析是不是有錯(cuò)的可能:比如123456789這種衣服需要10件,從配貨記錄上看,10件是一次取完,還是兩次取完。比如說要10件,結(jié)果零箱里只有9件,配貨員會(huì)在單據(jù)上注明-1,結(jié)果配貨員忘記補(bǔ)了,這就很顯然是少配了一件。

8,能用電腦算的,不用人算

要熟練運(yùn)用EXCEL,因?yàn)镋XCEL可以通過數(shù)據(jù)透視,各種函數(shù)幫你進(jìn)行統(tǒng)計(jì)和計(jì)算,在最短的時(shí)間里得到你想要的數(shù)據(jù),極大的提供了工作效率。

9,能打印的不手填

許多單據(jù),盡量統(tǒng)一標(biāo)準(zhǔn)格式,打印比手填清晰規(guī)范。

10,最短的盤點(diǎn)時(shí)間

同一貨品盡量集中,同一貨品保持唯一的零箱,比如說某一貨品庫存215件,裝箱規(guī)格30件一箱,理論就是30×7+5=215,7個(gè)整箱,1個(gè)零箱。結(jié)果點(diǎn)出來10箱,因?yàn)榱阆溆袔讉(gè),這就增加了盤點(diǎn)的時(shí)間。所以在庫貨品盡量整、零箱分開管理,整箱區(qū)不允許存在零箱,零箱區(qū)一個(gè)型號的零箱保持唯一。

11,最易區(qū)別的標(biāo)識

外箱上的顏色、型號以及編號要便于區(qū)分,比如說123456789與122457689,如果書寫成:123.456.789與122.457.689,讓人一看就不一樣。

12,學(xué)會(huì)編號

對庫位要合理編號,這關(guān)系到系統(tǒng)打印單據(jù)時(shí)的排序順序,盡量減少配貨員的迂回作業(yè)。同時(shí)編號合理便于統(tǒng)計(jì)。編號要便于區(qū)別,從發(fā)音和字形上也要考慮好。在年中和年末盤點(diǎn)時(shí),對在庫貨品需要全盤,而這個(gè)時(shí)候每一箱貨都需要一個(gè)號碼,編號是否合理,不僅影響貼號時(shí)間、盤點(diǎn)時(shí)間、以及復(fù)核時(shí)間,還影響到盤點(diǎn)后接下來整理與發(fā)貨的時(shí)間。

13,定期與定時(shí)整理

貨品是流動(dòng)性的,總是從多到少,直至沒有的過程。新品入庫后置于敞口箱,當(dāng)發(fā)到一定剩余量時(shí)就需要移到貨架上去,再少就需要進(jìn)行拼箱以節(jié)約空間了,這通常是一周一次,文員需要把數(shù)據(jù)統(tǒng)計(jì)出來,看哪些貨需要移了,哪些貨需要拼箱了,要有足夠的敞口箱庫位留給新入庫的貨品。

為檢查文員錄入工作的準(zhǔn)確性,也要定時(shí)核對庫位的準(zhǔn)確性,以免在需要貨品的時(shí)候找不到需要的貨。

14,能平時(shí)做的不到戰(zhàn)時(shí)做

大家都逛過超市,如果你要購買的東西在陳列的地方?jīng)]有了,服務(wù)員還要到倉庫去拿,這就可能耽誤你的時(shí)間,一件商品,如果暢銷,陳列的地方就要有足夠多的量。所以說我們的準(zhǔn)備工作要做充分,要事先檢查零箱區(qū)是否缺型號,敞口箱里是不是需要補(bǔ)些衣服過來,以免“斷糧”,把一些工作提前做掉。每天發(fā)貨時(shí)封箱的工作量也很大,在沒有單據(jù)時(shí)我們可以先把箱子準(zhǔn)備好,封好,用的時(shí)候直接用就可以了。

15,利用顏色管理

5S現(xiàn)場管理中,講顏色管理。庫房也是一樣,可以通過不同顏色的標(biāo)識區(qū)分不同的區(qū)域、不同品牌的貨品、不同性質(zhì)的貨品、不同種類的貨品、不同型號的貨品,以達(dá)到方便區(qū)分的作用。

16,動(dòng)態(tài)盤點(diǎn)

倉庫管理,講效率更講準(zhǔn)確率。少貨是倉庫管理最忌諱的事。動(dòng)態(tài)盤點(diǎn)有利于在第一時(shí)間發(fā)現(xiàn)問題,解決問題,消滅事故的萌芽。

對有些倉庫而言,當(dāng)天入庫的貨品和當(dāng)天有發(fā)貨記錄的貨品,在庫量都需要進(jìn)行一次盤點(diǎn),以確保庫存的準(zhǔn)確性。而服裝每天發(fā)貨品種有幾百個(gè)SKU,這樣盤點(diǎn)工作量就非常大,那就對一些高價(jià)值的貨品,或當(dāng)天有過差異的貨品(即配貨量與對貨量不致的貨品)進(jìn)行盤點(diǎn)。動(dòng)態(tài)盤點(diǎn)有幾點(diǎn)好處:一是對入庫的貨品確定庫位是否正確,比如說一款貨品,入庫記錄在A0101位置,結(jié)果文員錄入時(shí)錄成了A0401位置,如果當(dāng)天盤點(diǎn)就能發(fā)現(xiàn)是文員的錯(cuò)誤,以免在以后配這款貨的時(shí)候配貨員在A0401這個(gè)位置找個(gè)半天也找不到。二是對有差異貨品進(jìn)行確認(rèn),某種衣服當(dāng)日期初108件,今天發(fā)了12個(gè)地區(qū),共發(fā)走78件,那么庫里面還有30件,如果盤點(diǎn)發(fā)現(xiàn)不是30,那么這就時(shí)候就要去分析哪個(gè)地區(qū)多發(fā)了還是少發(fā)了,第一時(shí)間查出原因解決掉。如果是多發(fā),那么庫房就少貨,如果少發(fā),那么客戶就會(huì)投訴。當(dāng)天的問題不發(fā)現(xiàn)不解決,過后很難找到原因,也就很難解決。

17,故意事先設(shè)錯(cuò)法提高工作質(zhì)量

員工工作長時(shí)間不出錯(cuò)是容易麻痹的,且有些對貨員明明發(fā)現(xiàn)配貨員配錯(cuò)衣服不記錄不復(fù)核,這樣就有可能在真正出現(xiàn)了錯(cuò)誤的時(shí)候沒有發(fā)現(xiàn),導(dǎo)致錯(cuò)發(fā)衣服。為了檢查及提醒工作人員的責(zé)任心,管理者不僅要對現(xiàn)場操作人員經(jīng)常性的檢查,比如說對貨員用盤點(diǎn)機(jī)掃描時(shí)要一邊掃描一邊數(shù)數(shù),檢查人員可以突然打斷,在對貨員不看盤點(diǎn)機(jī)的情況下,讓他報(bào)出多少件,如果報(bào)不出,或是不對,說明沒有按要求操作。故意事先設(shè)錯(cuò),就是事先設(shè)置一個(gè)錯(cuò)誤的問題,比如說多放一件衣服,或拿走一件衣服,看對貨員能不能發(fā)現(xiàn),以及有沒有按要求記錄、復(fù)核。因?yàn)槿绻挥涗,就沒有復(fù)核,同時(shí)當(dāng)天也不會(huì)有動(dòng)態(tài)盤點(diǎn),種種的細(xì)節(jié)不注意就會(huì)導(dǎo)致問題的發(fā)生。記錄非常重要,因?yàn)檫@些都是憑證。當(dāng)你發(fā)現(xiàn)有些對貨員該記錄沒有記錄時(shí)就要批評指出,并強(qiáng)調(diào)不記錄被發(fā)現(xiàn)有所懲罰時(shí),定會(huì)認(rèn)真執(zhí)行。時(shí)刻注意培養(yǎng)員工好的習(xí)慣。

18,堅(jiān)持以人為本庫房里每個(gè)崗位,配貨員、對貨員以及收貨員在入庫清點(diǎn)貨品時(shí),都要考慮節(jié)省每一個(gè)彎腰、開箱和搬運(yùn)動(dòng)作,能一次完成的動(dòng)作,盡量不重復(fù)完成,能同時(shí)完成的動(dòng)作,不分開完成。任何好的方法都是許多次試驗(yàn)之后得出來的。有時(shí)候我也想像出許多看似好的方法,結(jié)果實(shí)操時(shí)并不那么理想,所以任何時(shí)候都要與實(shí)際操作相結(jié)合,減少操作人員等的時(shí)間,想的時(shí)間,算的時(shí)間,以及不必要的復(fù)核時(shí)間。

擴(kuò)展閱讀:倉庫貨品管理說明書

目錄

摘要......................................................................................................................1前言......................................................................................................................2正文......................................................................................................................31.2.3.4.5.6.

采用類C語言定義相關(guān)的數(shù)據(jù)類型..........................................................3各模塊的偽碼算法......................................................................................3函數(shù)的調(diào)用關(guān)系圖......................................................................................8調(diào)試分析......................................................................................................9測試結(jié)果....................................................................................................10源程序(帶注釋)...................................................................................113

總結(jié)....................................................................................................................19參考文獻(xiàn)................................................................................................................21致謝....................................................................................................................22附件Ⅰ部分源程序代碼......................................................................................23

摘要

庫存管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺(tái)數(shù)據(jù)庫的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對于前者要求建立起一個(gè)數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫;而對于后者則要求應(yīng)用程序具有功能完備、易使用等特點(diǎn)。

該程序?qū)崿F(xiàn)庫存貨品信息的輸入、插入、刪除、查找等功能,并能建立和更新的庫存信息保存于文件供輸出或打印。對于查找、刪除等功能要求能按貨品名、貨品號分別進(jìn)行。每個(gè)貨品的相關(guān)信息包括:貨品號、貨品名、貨品庫存量、進(jìn)貨日期、貨品生產(chǎn)廠家及供應(yīng)商等。

關(guān)鍵詞:庫存管理;面向?qū)ο;?shù)據(jù)庫

前言

隨著我國市場經(jīng)濟(jì)的蓬勃發(fā)展和人們對物質(zhì)水平需求的增加,各行各業(yè)都處于一個(gè)飛速發(fā)展的時(shí)期,行業(yè)的快速發(fā)展必然導(dǎo)致各企業(yè)之間的競爭更加激烈,為了使自己的企業(yè)在競爭中能夠站穩(wěn)腳跟,不被激烈的競爭環(huán)境所壓倒,必然要求企業(yè)加強(qiáng)對自身的管理,提高企業(yè)的經(jīng)營效率。

本文正文分為六部分,第一部分列舉了采用類c語言定義相關(guān)的數(shù)據(jù)類型,第二部分介紹各模塊的偽碼算法,第三部分繪出了函數(shù)的調(diào)用關(guān)系圖,第四部分簡述算法的調(diào)試分析,第五部分展示了系統(tǒng)的部分測試結(jié)果,第六部分附加了完整的源代碼(帶注釋)

本系統(tǒng)由于個(gè)人能力有限,設(shè)計(jì)過程中一定有很多不足之處,以求日后完善。

正文

1.

采用類c語言定義相關(guān)的數(shù)據(jù)類型

structBrand{};

structTotal//該結(jié)構(gòu)只在統(tǒng)計(jì)商品總量時(shí)使用{};

inti;//商品編號

structToal*next;intBrand_number;charBrand_name[20];charProvide_name[20];intBrand_code;charProductor_name[20];structBrand*next;

2.模各塊的偽碼算法

1.貨品信息的輸入

#if!defined(AFX_INDLG_H__45EE16C9_7E05_4051_847B_E7EA39D86403__INCLUDED_)

#define

AFX_INDLG_H__45EE16C9_7E05_4051_847B_E7EA39D86403__INCLUDED_

#if_MSC_VER>1000#pragmaonce

#endif//_MSC_VER>1000

//InDlg.h:headerfile//

///////////////////////////////////////////////////////////////////////////////CInDlgdialog

classCInDlg:publicCDialog{

//Constructionpublic:

CInDlg(CWnd*pParent=NULL);//standardconstructor

//DialogData//{{AFX_DATA(CInDlg)

enum{IDD=IDD_DIALOG_IN};CComboBoxm_cbProvider;CComboBox

m_cbGoods;

CTimem_Date;CTimem_Time;CStringm_strNum;CStringm_strPrice;

//}}AFX_DATA

//Overrides//ClassWizardgeneratedvirtualfunctionoverrides//{{AFX_VIRTUAL(CInDlg)protected:

virtualvoidDoDataExchange(CDataExchange*pDX);support

//}}AFX_VIRTUAL

//Implementationprotected://Generatedmessagemapfunctions

//{{AFX_MSG(CInDlg)

4

//DDX/DDV

virtualBOOLOnInitDialog();afx_msgvoidOnButtonOk();afx_msgvoidOnButtonCancel();//}}AFX_MSG

DECLARE_MESSAGE_MAP()

private:};

//{{AFX_INSERT_LOCATION}}

//MicrosoftVisualC++willinsertadditionaldeclarationsimmediatelybeforethepreviousline.

#endif

//!defined(AFX_INDLG_H__45EE16C9_7E05_4051_847B_E7EA39D86403__INCLUDED_)

2.貨品入庫操作(插入操作)voidCInDlg::AddGoods(intiNum){

intiCurrentNum=0;_variant_tHolder,strQuery;

voidAddIn(CStringstrGcode,CStringstrPcode);CStringm_strProviderName;CStringm_strGoodsName;voidAddGoods(intiNum);

voidGetProviderCode(CStringstrName,CString&strCode);voidGetGoodsCode(CStringstrName,CString&strCode);

strQuery="select*fromgoodswhereG_name=""+m_strGoodsName+""";

theApp.ADOExecute(theApp.m_pRs,strQuery);theApp.m_pRs->MoveFirst();

Holder=theApp.m_pRs->GetCollect("Current_number");if(Holder.vt!=VT_NULL)

iCurrentNum=Holder.iVal;

iCurrentNum+=iNum;CStringstrSql;

strSql.Format("UPDATE

goods

SET

Current_number=%d

WHERE

G_name="%s"",iCurrentNum,m_strGoodsName);notificationhandlercodehere

}

3.貨品的出庫操作(刪除操作)voidCOutDlg::DelGoods(intiNum){

intiCurrentNum=0;_variant_tHolder,strQuery;

_variant_tvtQuery(strSql);

//TODO:Addyourcontrol

if(theApp.ADOExecute(theApp.m_pRs,vtQuery)){}

AfxMessageBox("入庫成功");theApp.m_log.AddLog("商品入庫");

strQuery="select*fromgoodswhereG_name=""+m_strGoodsName+""";

strSql.Format("UPDATE

goods

SET

6

theApp.ADOExecute(theApp.m_pRs,strQuery);

theApp.m_pRs->MoveFirst();

Holder=theApp.m_pRs->GetCollect("Current_number");if(Holder.vt!=VT_NULL)

iCurrentNum=Holder.iVal;

iCurrentNum-=iNum;

CStringstrSql;

Current_number=%dWHERE

G_name="%s"",iCurrentNum,m_strGoodsName);notificationhandlercodehere}

4.貨品查找操作

voidCViewDlg::ViewGoods(){

m_listDisp.DeleteAllItems();m_listDisp.SetRedraw(FALSE);

_variant_tHolder,strQuery;_variant_tvtQuery(strSql);

if(theApp.ADOExecute(theApp.m_pRs,vtQuery)){}

AfxMessageBox("出庫成功");theApp.m_log.AddLog("商品出庫");

//TODO:Addyourcontrol

strQuery="select*fromgoods";

theApp.ADOExecute(theApp.m_pRs,strQuery);

intiCount=theApp.m_pRs->GetRecordCount();

7

if(0==iCount)

return;

theApp.m_pRs->MoveFirst();

inti=0;

while(!theApp.m_pRs->adoEOF){

Holder=theApp.m_pRs->GetCollect("G_code");if(Holder.vt!=VT_NULL)

m_listDisp.InsertItem(i,(char*)(_bstr_t)Holder);}

m_listDisp.SetRedraw(TRUE);

}

m_strNum.Format("%d",iCount);theApp.m_pRs->MoveNext();i++;

Holder=theApp.m_pRs->GetCollect("Min_number");if(Holder.vt!=VT_NULL)

m_listDisp.SetItemText(i,4,(char*)(_bstr_t)Holder);

Holder=theApp.m_pRs->GetCollect("Current_number");if(Holder.vt!=VT_NULL)

Holder=theApp.m_pRs->GetCollect("Max_number");if(Holder.vt!=VT_NULL)

m_listDisp.SetItemText(i,3,(char*)(_bstr_t)Holder);m_listDisp.SetItemText(i,2,(char*)(_bstr_t)Holder);

Holder=theApp.m_pRs->GetCollect("G_name");if(Holder.vt!=VT_NULL)

m_listDisp.SetItemText(i,1,(char*)(_bstr_t)Holder);

3.函數(shù)的調(diào)用關(guān)系圖

庫存管理系統(tǒng)系統(tǒng)管理進(jìn)貨管理出貨管理報(bào)表統(tǒng)計(jì)信息查詢身份驗(yàn)證注冊用戶修改刪除用戶修改密碼出庫單填寫獲取采購員信息日月報(bào)表報(bào)表入庫單填寫填寫貨品信息修改最低庫存貨品查詢庫存查詢報(bào)表查詢

4.調(diào)試分析

a,調(diào)試中遇到的問題及對問題的解決方法

調(diào)試中出現(xiàn)無法編譯的情況,經(jīng)檢原因?yàn)椴榇a寫錯(cuò),以及各函數(shù)的調(diào)用之間產(chǎn)生矛盾等等問題,最后經(jīng)老師和同學(xué)的幫助找出問題所在,加以改正,最終的是到一個(gè)較完整的程序。

b,算法的時(shí)間復(fù)雜度和空間復(fù)雜度時(shí)間復(fù)雜度為O(n)空間復(fù)雜度為S(n)

5.測試結(jié)果

1.登陸界面

2.主界面

3.商品入庫

4.商品出庫

5.入庫信息

6.商品信息

6.源程序(帶注釋)

//AlertDlg.cpp:implementationfile

#include"stdafx.h"#include"GMS.h"#include"AlertDlg.h"

#ifdef_DEBUG

#definenewDEBUG_NEW#undefTHIS_FILE

staticcharTHIS_FILE[]=__FILE__;#endif

///////////////////////////////////////////////////////////////////////////////CAlertDlgdialog

CAlertDlg::CAlertDlg(CWnd*pParent/*=NULL*/){}

voidCAlertDlg::DoDataExchange(CDataExchange*pDX){

CDialog::DoDataExchange(pDX);

13

:CDialog(CAlertDlg::IDD,pParent)

//{{AFX_DATA_INIT(CAlertDlg)

//NOTE:theClassWizardwilladdmemberinitializationhere

//}}AFX_DATA_INIT}

BEGIN_MESSAGE_MAP(CAlertDlg,CDialog)

//{{AFX_MSG_MAP(CAlertDlg)

ON_BN_CLICKED(IDC_BUTTON_OK,OnButtonOk)//}}AFX_MSG_MAP

//{{AFX_DATA_MAP(CAlertDlg)

DDX_Control(pDX,IDC_LIST_LOWDISP,m_listLowDisp);DDX_Control(pDX,IDC_LIST_HIGHDISP,m_listHighDisp);//}}AFX_DATA_MAP

END_MESSAGE_MAP()

///////////////////////////////////////////////////////////////////////////////CAlertDlgmessagehandlers

voidCAlertDlg::OnButtonOk(){}

BOOLCAlertDlg::OnInitDialog(){

CDialog::OnInitDialog();

m_listLowDisp.InsertColumn(0,"商品編號");m_listLowDisp.InsertColumn(1,"商品名稱");m_listLowDisp.InsertColumn(2,"當(dāng)前庫存");

14

OnOK();

//TODO:Addyourcontrolnotificationhandlercodehere

RECTrect;intwid;

RefreshData();

15

m_listLowDisp.InsertColumn(3,"最大庫容");m_listLowDisp.InsertColumn(4,"最小庫容");

m_listLowDisp.GetWindowRect(&rect);wid=rect.right-rect.left;

m_listLowDisp.SetColumnWidth(0,wid/5);m_listLowDisp.SetColumnWidth(1,wid/5);m_listLowDisp.SetColumnWidth(2,wid/5);m_listLowDisp.SetColumnWidth(3,wid/5);m_listLowDisp.SetColumnWidth(4,wid/5);

m_listLowDisp.SetExtendedStyle(LVS_EX_FULLROWSELECT);

m_listHighDisp.InsertColumn(0,"商品編號");m_listHighDisp.InsertColumn(1,"商品名稱");m_listHighDisp.InsertColumn(2,"當(dāng)前庫存");m_listHighDisp.InsertColumn(3,"最大庫容");m_listHighDisp.InsertColumn(4,"最小庫容");

m_listHighDisp.GetWindowRect(&rect);wid=rect.right-rect.left;

m_listHighDisp.SetColumnWidth(0,wid/5);m_listHighDisp.SetColumnWidth(1,wid/5);m_listHighDisp.SetColumnWidth(2,wid/5);m_listHighDisp.SetColumnWidth(3,wid/5);m_listHighDisp.SetColumnWidth(4,wid/5);

m_listHighDisp.SetExtendedStyle(LVS_EX_FULLROWSELECT);}

voidCAlertDlg::RefreshData(){

m_listLowDisp.DeleteAllItems();m_listLowDisp.SetRedraw(FALSE);

_variant_tHolder,strQuery;

//TODO:Addextrainitializationhere

returnTRUE;//returnTRUEunlessyousetthefocustoacontrol//EXCEPTION:OCXPropertyPagesshouldreturnFALSE

strQuery="select*fromgoodswhereCurrent_number//高于

strQuery="select*fromgoodswhereCurrent_number>=Max_number";

theApp.ADOExecute(theApp.m_pRs,strQuery);m_listHighDisp.DeleteAllItems();m_listHighDisp.SetRedraw(FALSE);

m_listLowDisp.SetRedraw(TRUE);

}

theApp.m_pRs->MoveNext();i++;

Holder=theApp.m_pRs->GetCollect("Min_number");if(Holder.vt!=VT_NULL)

m_listLowDisp.SetItemText(i,4,(char*)(_bstr_t)Holder);

Holder=theApp.m_pRs->GetCollect("Current_number");if(Holder.vt!=VT_NULL)

Holder=theApp.m_pRs->GetCollect("Max_number");if(Holder.vt!=VT_NULL)

m_listLowDisp.SetItemText(i,3,(char*)(_bstr_t)Holder);m_listLowDisp.SetItemText(i,2,(char*)(_bstr_t)Holder);

if(Holder.vt!=VT_NULL)

m_listLowDisp.SetItemText(i,1,(char*)(_bstr_t)Holder);

iCount=theApp.m_pRs->GetRecordCount();

18

if(0==iCount)

return;

theApp.m_pRs->MoveFirst();

i=0;

while(!theApp.m_pRs->adoEOF){

Holder=theApp.m_pRs->GetCollect("G_code");if(Holder.vt!=VT_NULL)

m_listHighDisp.InsertItem(i,(char*)(_bstr_t)Holder);

Holder=theApp.m_pRs->GetCollect("G_name");if(Holder.vt!=VT_NULL)

m_listHighDisp.SetItemText(i,1,(char*)(_bstr_t)Holder);

}

Holder=theApp.m_pRs->GetCollect("Current_number");if(Holder.vt!=VT_NULL)

Holder=theApp.m_pRs->GetCollect("Max_number");if(Holder.vt!=VT_NULL)

m_listHighDisp.SetItemText(i,3,(char*)(_bstr_t)Holder);m_listHighDisp.SetItemText(i,2,(char*)(_bstr_t)Holder);

Holder=theApp.m_pRs->GetCollect("Min_number");if(Holder.vt!=VT_NULL)

m_listHighDisp.SetItemText(i,4,(char*)(_bstr_t)Holder);

theApp.m_pRs->MoveNext();i++;

m_listHighDisp.SetRedraw(TRUE);

總結(jié)

這學(xué)期已接近尾聲,它對我所產(chǎn)生的影響卻是巨大的。作為計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的學(xué)生,這段時(shí)間的學(xué)習(xí)過程讓我們學(xué)到了很多知識,然而真正運(yùn)用于實(shí)踐的并不多,放假前的這次課程設(shè)計(jì)恰是對我們過去兩年所學(xué)的一次總結(jié),我們可以在老師的幫助下自己來嘗試開發(fā)一個(gè)小型項(xiàng)目,把所學(xué)的單純的理論知識變成為實(shí)際的操作經(jīng)驗(yàn),而不再是眼高手低。

此次庫存管理系統(tǒng)開發(fā)讓我學(xué)習(xí)到很多知識,現(xiàn)總結(jié)如下:

系統(tǒng)開發(fā)的過程中,我深刻體會(huì)到了以前上課老師經(jīng)常提起的一個(gè)問題,那就是:一個(gè)系統(tǒng)開發(fā)的過程中編碼不是最重要的,重要的是對系統(tǒng)進(jìn)行分析以及建立恰當(dāng)?shù)南到y(tǒng)模型。有了一個(gè)好的系統(tǒng)模型之后,我們再將其劃分成幾個(gè)模塊,那樣做起來就會(huì)容易得多。本系統(tǒng)中采用了生命周期法進(jìn)行系統(tǒng)的開發(fā),就體現(xiàn)了該模塊化設(shè)計(jì)思想。

在該庫存管理系統(tǒng)設(shè)計(jì)中,從系統(tǒng)的實(shí)用性出發(fā),我能夠在開發(fā)該系統(tǒng)時(shí)站在用戶的角度看問題,本著用戶操作界面友好、清晰、易學(xué)易用的原則進(jìn)行設(shè)計(jì)。如開發(fā)過程中我盡可能地設(shè)想記錄為空,輸入為空,輸入出錯(cuò)等邊界條件,然后在這些邊界上,設(shè)置出錯(cuò)檢測,使系統(tǒng)能自動(dòng)捕獲出錯(cuò)點(diǎn),給出提示,允許用戶重新進(jìn)行操作,使系統(tǒng)能夠安全的運(yùn)行下去,而不是退出系統(tǒng)。

文章的前面講到了本系統(tǒng)數(shù)據(jù)庫是使用SQLServer201*進(jìn)行設(shè)置的,也講到了它的優(yōu)點(diǎn),這里就不多說了,但是在本次設(shè)計(jì)中,我發(fā)現(xiàn)了VisualC#的一種應(yīng)用編程接口ADO(ActiveXDataObjects)。它是一種面向?qū)ο蟮、與語言無關(guān)的應(yīng)用編程接口,具有易于使用、高速度、低內(nèi)存支出和占用磁盤較少,可以使用所有支持ODBC的數(shù)據(jù)庫等優(yōu)點(diǎn);使用ADO可以實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)庫的鏈接,從而避免以往靜態(tài)方式連接數(shù)據(jù)庫的一些缺點(diǎn)。這些知識對我本次的系統(tǒng)開發(fā)有著很大的幫助。

開發(fā)期間,我學(xué)會(huì)了有目的的去學(xué)習(xí)一些將要用到的東西,仔細(xì)地考慮工作流程的規(guī)律和步驟,充分利用手中的開發(fā)工具,利用其所具備的功能,盡量使自己的開發(fā)在代碼上實(shí)現(xiàn)少而精確、讓用戶能夠盡量簡單地進(jìn)行操作。但是在檢測過程中,還是出現(xiàn)了很多的不足之處,這些都是要在今后的工作中需要努力改進(jìn)和完善的。

在這次畢業(yè)設(shè)計(jì)中,我遇到了很多困難,這主要是由于我開發(fā)軟件的經(jīng)驗(yàn)不足,工具的應(yīng)用也不夠熟練,雖然VisualC#.NET用的語言是C#,但是由于以前基礎(chǔ)不夠扎實(shí),對我來說可以算是一個(gè)全新的嘗試,整個(gè)開發(fā)過程并不是很順利,卻使我從中充分體會(huì)到學(xué)習(xí)的快樂,系統(tǒng)也在從理論到實(shí)踐,再從實(shí)踐到理論的反復(fù)中一步步得到完善。

雖然,這次系統(tǒng)開發(fā)由于個(gè)人水平及時(shí)間有限等原因,只能完成一些基本的功能,程序代碼不夠簡練,好多設(shè)想也未能得到實(shí)現(xiàn),這不能不說是個(gè)很大的遺憾,F(xiàn)有系統(tǒng)還存在著以下問題:第一點(diǎn),不能實(shí)現(xiàn)界面動(dòng)態(tài)轉(zhuǎn)換功能。由于技術(shù)原因,我只能用Panel控件實(shí)現(xiàn)靜態(tài)的界面轉(zhuǎn)換;第二點(diǎn),功能模塊不夠全面。作為庫存管理系統(tǒng),系統(tǒng)設(shè)計(jì)中還能加上備品備件管理和系統(tǒng)維護(hù)等功能模塊,可是由于時(shí)間比較緊迫,該想法未能實(shí)施。由于我第一次開發(fā)一個(gè)完整的數(shù)據(jù)庫管理系統(tǒng),不足之處在所難免,敬請各位老師、領(lǐng)導(dǎo)批評指正,我會(huì)在以后的工作中加以完善和改進(jìn)。

總之,這次的系統(tǒng)開發(fā),實(shí)現(xiàn)了我自己動(dòng)手完成一個(gè)系統(tǒng)開發(fā)的目標(biāo),也學(xué)習(xí)到很多東西,不只是實(shí)踐經(jīng)驗(yàn),還有一些做事的道理:在工作時(shí),要盡量把要遇到的問題考慮周全,提前做好準(zhǔn)備,那樣就不會(huì)在遇到問題時(shí)有措手不及的感覺;做事一定要不斷地去嘗試,然后盡自己最大的努力去完成它,人的發(fā)展?jié)摿κ蔷薮蟮,不要一開始就否定自己,低估自己,雖然不能說只要努力就會(huì)取得成功,但是如果不努力,就永遠(yuǎn)不會(huì)成功。

參考文獻(xiàn)

1嚴(yán)蔚敏,吳偉民.《數(shù)據(jù)結(jié)構(gòu)(C語言版)》.清華大學(xué)出版社.

2嚴(yán)蔚敏,吳偉民.《數(shù)據(jù)結(jié)構(gòu)題集(C語言版)》.清華大學(xué)出版社.3《DATASTRUCTUREWITHC++》.WilliamFord,WilliamTopp.清華大學(xué)出版社(影印版).

4譚浩強(qiáng).《c語言程序設(shè)計(jì)》.清華大學(xué)出版社.

5.?dāng)?shù)據(jù)結(jié)構(gòu)與算法分析(Java版),APracticalIntroductiontoDataStructuresandAlgorithmAnalysisJavaEditionCliffordA.Shaffer,張銘,劉曉丹譯電子工業(yè)出版社201*年1月

致謝

在本次課程設(shè)計(jì)中,我要特別感謝我的指導(dǎo)老師王旭陽,從她身上我學(xué)到了很多東西。王老師認(rèn)真負(fù)責(zé)的工作態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神都使我受益匪淺。她無論在理論上還是在實(shí)踐中,都給予我很大的幫助,幫助我解決了不少的難點(diǎn),使得系統(tǒng)能夠逐步完善,我也從中得到不少提高,對我以后的工作和學(xué)習(xí)都有著巨大的幫助,感謝她耐心的輔導(dǎo)并表示衷心的感謝!

此外,還要對那些在我系統(tǒng)開發(fā)過程中幫助過我的同學(xué)一并表示衷心的感謝!

附件Ⅰ部分源程序代碼

//ViewDlg.cpp:implementationfile//

#include"stdafx.h"#include"GMS.h"#include"ViewDlg.h"

#ifdef_DEBUG

#definenewDEBUG_NEW#undefTHIS_FILE

staticcharTHIS_FILE[]=__FILE__;#endif

///////////////////////////////////////////////////////////////////////////////CViewDlgdialog

CViewDlg::CViewDlg(CWnd*pParent/*=NULL*/){}

voidCViewDlg::DoDataExchange(CDataExchange*pDX)

23

:CDialog(CViewDlg::IDD,pParent)

//{{AFX_DATA_INIT(CViewDlg)m_strNum=_T("");//}}AFX_DATA_INIT{}

BEGIN_MESSAGE_MAP(CViewDlg,CDialog)

//{{AFX_MSG_MAP(CViewDlg)

ON_BN_CLICKED(IDC_BUTTON_OK,OnButtonOk)//}}AFX_MSG_MAP

CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CViewDlg)

DDX_Control(pDX,IDC_LIST_DISP,m_listDisp);DDX_Text(pDX,IDC_EDIT_NUM,m_strNum);//}}AFX_DATA_MAP

END_MESSAGE_MAP()

///////////////////////////////////////////////////////////////////////////////CViewDlgmessagehandlers

voidCViewDlg::Init(intiKind){}

voidCViewDlg::SetTitle(){

switch(m_iKind){case1:

SetWindowText(_T("商品信息"));break;

24

this->m_iKind=iKind;}

voidCViewDlg::SetStyle(){

RECTrect;intwid;switch(m_iKind){case1:

m_listDisp.InsertColumn(0,"商品編號");m_listDisp.InsertColumn(1,"商品名稱");m_listDisp.InsertColumn(2,"當(dāng)前庫存");m_listDisp.InsertColumn(3,"最大庫容");m_listDisp.InsertColumn(4,"最小庫容");

25

case2:

SetWindowText(_T("商家信息"));break;

case3:

SetWindowText(_T("入庫信息"));break;

case4:

SetWindowText(_T("出庫信息"));break;

case5:}

SetWindowText(_T("操作日志"));break;

m_listDisp.GetWindowRect(&rect);wid=rect.right-rect.left;

m_listDisp.SetColumnWidth(0,wid/6);m_listDisp.SetColumnWidth(1,wid/6);m_listDisp.SetColumnWidth(2,wid/6);m_listDisp.SetColumnWidth(3,wid/6);m_listDisp.SetColumnWidth(4,wid/6);m_listDisp.SetColumnWidth(5,wid/6);

m_listDisp.SetExtendedStyle(LVS_EX_FULLROWSELECT);

break;

m_listDisp.GetWindowRect(&rect);wid=rect.right-rect.left;

m_listDisp.SetColumnWidth(0,wid/5);m_listDisp.SetColumnWidth(1,wid/5);m_listDisp.SetColumnWidth(2,wid/5);m_listDisp.SetColumnWidth(3,wid/5);m_listDisp.SetColumnWidth(4,wid/5);

m_listDisp.SetExtendedStyle(LVS_EX_FULLROWSELECT);break;case2:

m_listDisp.InsertColumn(0,"商家編號");m_listDisp.InsertColumn(1,"商家名稱");m_listDisp.InsertColumn(2,"商家地址");m_listDisp.InsertColumn(3,"負(fù)責(zé)人");m_listDisp.InsertColumn(4,"電話");m_listDisp.InsertColumn(5,"Email");

case3:

m_listDisp.InsertColumn(0,"商品編號");

m_listDisp.GetWindowRect(&rect);wid=rect.right-rect.left;

m_listDisp.SetColumnWidth(0,wid/5);m_listDisp.SetColumnWidth(1,wid/5);m_listDisp.SetColumnWidth(2,wid/5);m_listDisp.SetColumnWidth(3,wid/5);m_listDisp.SetColumnWidth(4,wid/5);

27

m_listDisp.InsertColumn(1,"商家編號");m_listDisp.InsertColumn(2,"入庫數(shù)量");m_listDisp.InsertColumn(3,"購入價(jià)格");m_listDisp.InsertColumn(4,"購入日期");

m_listDisp.GetWindowRect(&rect);wid=rect.right-rect.left;

m_listDisp.SetColumnWidth(0,wid/5);m_listDisp.SetColumnWidth(1,wid/5);m_listDisp.SetColumnWidth(2,wid/5);m_listDisp.SetColumnWidth(3,wid/5);m_listDisp.SetColumnWidth(4,wid/5);

m_listDisp.SetExtendedStyle(LVS_EX_FULLROWSELECT);

break;

case4:

m_listDisp.InsertColumn(0,"商品編號");m_listDisp.InsertColumn(1,"出庫數(shù)量");m_listDisp.InsertColumn(2,"庫存管理員");m_listDisp.InsertColumn(3,"出庫負(fù)責(zé)人");m_listDisp.InsertColumn(4,"出庫日期");}

voidCViewDlg::ViewGoods(){

m_listDisp.DeleteAllItems();m_listDisp.SetRedraw(FALSE);

_variant_tHolder,strQuery;}

m_listDisp.SetExtendedStyle(LVS_EX_FULLROWSELECT);break;case5:

m_listDisp.InsertColumn(0,"操作員");m_listDisp.InsertColumn(1,"事件");m_listDisp.InsertColumn(2,"時(shí)間");m_listDisp.GetWindowRect(&rect);wid=rect.right-rect.left;

m_listDisp.SetColumnWidth(0,wid/3);m_listDisp.SetColumnWidth(1,wid/3);m_listDisp.SetColumnWidth(2,wid/3);

strQuery="select*fromgoods";

theApp.ADOExecute(theApp.m_pRs,strQuery);

intiCount=theApp.m_pRs->GetRecordCount();

if(0==iCount)

return;

29

theApp.m_pRs->MoveFirst();

inti=0;

while(!theApp.m_pRs->adoEOF){

Holder=theApp.m_pRs->GetCollect("G_code");if(Holder.vt!=VT_NULL)

m_listDisp.InsertItem(i,(char*)(_bstr_t)Holder);

Holder=theApp.m_pRs->GetCollect("G_name");if(Holder.vt!=VT_NULL)

m_listDisp.SetItemText(i,1,(char*)(_bstr_t)Holder);

Holder=theApp.m_pRs->GetCollect("Current_number");if(Holder.vt!=VT_NULL)

Holder=theApp.m_pRs->GetCollect("Max_number");if(Holder.vt!=VT_NULL)

m_listDisp.SetItemText(i,3,(char*)(_bstr_t)Holder);m_listDisp.SetItemText(i,2,(char*)(_bstr_t)Holder);

Holder=theApp.m_pRs->GetCollect("Min_number");if(Holder.vt!=VT_NULL)

m_listDisp.SetItemText(i,4,(char*)(_bstr_t)Holder);

}

theApp.m_pRs->MoveNext();i++;

m_strNum.Format("%d",iCount);}

voidCViewDlg::ViewProvider(){

m_listDisp.DeleteAllItems();m_listDisp.SetRedraw(FALSE);

_variant_tHolder,strQuery;m_listDisp.SetRedraw(TRUE);

strQuery="select*fromprovider";

theApp.ADOExecute(theApp.m_pRs,strQuery);

intiCount=theApp.m_pRs->GetRecordCount();

Holder=theApp.m_pRs->GetCollect("Provider_address");if(Holder.vt!=VT_NULL)

30

if(0==iCount)

return;

theApp.m_pRs->MoveFirst();

inti=0;

while(!theApp.m_pRs->adoEOF){

Holder=theApp.m_pRs->GetCollect("Provider_code");if(Holder.vt!=VT_NULL)

m_listDisp.InsertItem(i,(char*)(_bstr_t)Holder);

Holder=theApp.m_pRs->GetCollect("Provider_name");if(Holder.vt!=VT_NULL)

m_listDisp.SetItemText(i,1,(char*)(_bstr_t)Holder);}

voidCViewDlg::ViewInlib(){

m_listDisp.DeleteAllItems();m_listDisp.SetRedraw(FALSE);

_variant_tHolder,strQuery;

31

m_listDisp.SetItemText(i,2,(char*)(_bstr_t)Holder);

Holder=theApp.m_pRs->GetCollect("Provider_person");if(Holder.vt!=VT_NULL)

m_listDisp.SetItemText(i,3,(char*)(_bstr_t)Holder);

Holder=theApp.m_pRs->GetCollect("Provider_telphone");if(Holder.vt!=VT_NULL)

m_listDisp.SetItemText(i,4,(char*)(_bstr_t)Holder);

Holder=theApp.m_pRs->GetCollect("Provider_email");if(Holder.vt!=VT_NULL)

m_listDisp.SetItemText(i,5,(char*)(_bstr_t)Holder);

}

theApp.m_pRs->MoveNext();i++;

m_strNum.Format("%d",iCount);

m_listDisp.SetRedraw(TRUE);

strQuery="select*frominlib";

theApp.ADOExecute(theApp.m_pRs,strQuery);

intiCount=theApp.m_pRs->GetRecordCount();

32

if(0==iCount)

return;

theApp.m_pRs->MoveFirst();

inti=0;

while(!theApp.m_pRs->adoEOF){

Holder=theApp.m_pRs->GetCollect("Goods_code");if(Holder.vt!=VT_NULL)

m_listDisp.InsertItem(i,(char*)(_bstr_t)Holder);

Holder=theApp.m_pRs->GetCollect("Provider_code");if(Holder.vt!=VT_NULL)

m_listDisp.SetItemText(i,1,(char*)(_bstr_t)Holder);

Holder=theApp.m_pRs->GetCollect("In_number");if(Holder.vt!=VT_NULL)

m_listDisp.SetItemText(i,2,(char*)(_bstr_t)Holder);

Holder=theApp.m_pRs->GetCollect("In_Price");if(Holder.vt!=VT_NULL)

m_listDisp.SetItemText(i,3,(char*)(_bstr_t)Holder);

Holder=theApp.m_pRs->GetCollect("In_Date");if(Holder.vt!=VT_NULL)

m_listDisp.SetItemText(i,4,(char*)(_bstr_t)Holder);}

voidCViewDlg::ViewOutlib(){

m_listDisp.DeleteAllItems();m_listDisp.SetRedraw(FALSE);

_variant_tHolder,strQuery;m_listDisp.SetRedraw(TRUE);

}

m_strNum.Format("%d",iCount);theApp.m_pRs->MoveNext();i++;

strQuery="select*frominlib";

theApp.ADOExecute(theApp.m_pRs,strQuery);

intiCount=theApp.m_pRs->GetRecordCount();

Holder=theApp.m_pRs->GetCollect("Out_number");

33

if(0==iCount)

return;

theApp.m_pRs->MoveFirst();

inti=0;

while(!theApp.m_pRs->adoEOF){

Holder=theApp.m_pRs->GetCollect("Goods_code");if(Holder.vt!=VT_NULL)

m_listDisp.InsertItem(i,(char*)(_bstr_t)Holder);}

BOOLCViewDlg::OnInitDialog(){

CDialog::OnInitDialog();SetTitle();SetStyle();switch(m_iKind){case1:

ViewGoods();break;

34}

if(Holder.vt!=VT_NULL)

m_listDisp.SetItemText(i,1,(char*)(_bstr_t)Holder);

Holder=theApp.m_pRs->GetCollect("Out_person");if(Holder.vt!=VT_NULL)

m_listDisp.SetItemText(i,2,(char*)(_bstr_t)Holder);

Holder=theApp.m_pRs->GetCollect("taker");if(Holder.vt!=VT_NULL)

m_listDisp.SetItemText(i,3,(char*)(_bstr_t)Holder);

Holder=theApp.m_pRs->GetCollect("Out_date");if(Holder.vt!=VT_NULL)

m_listDisp.SetItemText(i,4,(char*)(_bstr_t)Holder);

theApp.m_pRs->MoveNext();i++;

m_strNum.Format("%d",iCount);

m_listDisp.SetRedraw(TRUE);}

voidCViewDlg::OnButtonOk(){

OnOK();

//TODO:Addyourcontrolnotificationhandlercodehere}case2:

ViewProvider();break;

case3:

ViewInlib();break;

case4:

ViewOutlib();break;

case5:}

UpdateData(false);

//TODO:Addextrainitializationhere

returnTRUE;//returnTRUEunlessyousetthefocustoacontrol//EXCEPTION:OCXPropertyPagesshouldreturnFALSE

ViewLog();break;

voidCViewDlg::ViewLog(){

m_listDisp.DeleteAllItems();m_listDisp.SetRedraw(FALSE);

_variant_tHolder,strQuery;

strQuery="select*fromlog";

theApp.ADOExecute(theApp.m_pRs,strQuery);

intiCount=theApp.m_pRs->GetRecordCount();}

m_listDisp.SetRedraw(TRUE);

if(0==iCount)

return;

theApp.m_pRs->MoveFirst();inti=0;

while(!theApp.m_pRs->adoEOF){}

m_strNum.Format("%d",iCount);

Holder=theApp.m_pRs->GetCollect("Admin_name");if(Holder.vt!=VT_NULL)

m_listDisp.InsertItem(i,(char*)(_bstr_t)Holder);

Holder=theApp.m_pRs->GetCollect("do_what");if(Holder.vt!=VT_NULL)

m_listDisp.SetItemText(i,1,(char*)(_bstr_t)Holder);

Holder=theApp.m_pRs->GetCollect("do_date");if(Holder.vt!=VT_NULL)

m_listDisp.SetItemText(i,2,(char*)(_bstr_t)Holder);

theApp.m_pRs->MoveNext();i++;

友情提示:本文中關(guān)于《服裝倉儲(chǔ)貨品管理技巧》給出的范例僅供您參考拓展思維使用,服裝倉儲(chǔ)貨品管理技巧:該篇文章建議您自主創(chuàng)作。

來源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請聯(lián)系我們及時(shí)刪除。


服裝倉儲(chǔ)貨品管理技巧》由互聯(lián)網(wǎng)用戶整理提供,轉(zhuǎn)載分享請保留原作者信息,謝謝!
鏈接地址:http://www.seogis.com/gongwen/615982.html
相關(guān)文章