【正文】
set @pihao=ltrim(rtrim(@pihao)) set @outprice=ltrim(rtrim(@outprice)) set @approvalno=ltrim(rtrim(@approvalno)) set @supname=ltrim(rtrim(@supname)) if exists (select DrugCode,DrugKind,PiHao,ApprovalNo from Drug_Stock where DrugCode = ltrim(rtrim(@drugcode)) and DrugKind=ltrim(rtrim(@drugkind)) and PiHao=ltrim(rtrim(@pihao)) and OutPrice=ltrim(rtrim(@outprice)) and ApprovalNo=ltrim(rtrim(@approvalno)) and SupName=ltrim(rtrim(@supname))) /*更新結(jié)存*/ begin update Drug_Stock set EndAmount = EndAmount+@sumsl where DrugCode = ltrim(rtrim(@drugcode)) and DrugKind=ltrim(rtrim(@drugkind)) and PiHao=ltrim(rtrim(@pihao)) and OutPrice=ltrim(rtrim(@outprice)) and ApprovalNo=ltrim(rtrim(@approvalno)) and SupName=ltrim(rtrim(@supname)) end else if not exists (select DrugCode,DrugKind,PiHao,ApprovalNo from Drug_Stock where DrugCode = ltrim(rtrim(@drugcode)) and DrugKind=ltrim(rtrim(@drugkind)) and PiHao=ltrim(rtrim(@pihao)) and OutPrice=ltrim(rtrim(@outprice)) and ApprovalNo=ltrim(rtrim(@approvalno)) and SupName=ltrim(rtrim(@supname))) /*新增條目*/ begin /*通過參數(shù)提取當前游標所在行的值,添加到庫存表*/ INSERT INTO Drug_Stock (DrugId, DrugCode, DrugName, DrugeName, DrugKind, PiHao,Unit, InPrice, Ratio, OutPrice,EndAmount ,Producer, Supname, DrugClass, MedicareType, ApprovalNo, GMP, InTime, ExpiryDate, PharmacyName) values( @drugid,@drugcode,@drugname,@drugename,@drugkind,@pihao,@unit,@inprice,@ratio,@outprice,@sumsl,@producer,@supname,@drugclass,@medicaretype,@approvalno,@gmp,@intime,@expirydate,@pharmacyname)end /*獲取下一藥品編號、規(guī)格、批號、數(shù)量...*/ end close cur deallocate cur 藥品調(diào)撥模塊的實現(xiàn)首先點擊錄入按鈕,將會生成本次出庫的藥品單號,可選擇領(lǐng)料部門,在藥品名稱方框中輸入要查詢的庫存藥品,同時鍵入回車鍵,將在庫存藥品中顯示庫存中藥品的一些詳細信息,選中所要調(diào)撥的藥品按下回車或是雙擊該藥品,此藥品講進入出庫藥品欄中,填寫該藥品的數(shù)量,按回車將會自動生成此次出庫的總金額,同時在出庫藥品框的下方藥費合計方框中,將顯示此次出庫藥品的總金額,點擊保存此藥品講進入出庫表中,出庫狀態(tài)表中的狀態(tài)字段設(shè)置為出庫,同時執(zhí)行減藥品庫存表中減庫存數(shù)量操作。也可以點擊刪除按鈕刪除此出庫藥品欄中選中的藥品,或者是在保存進入出庫表后,點擊退藥按鈕,將此次出庫藥品從出庫表中的狀態(tài)字段設(shè)置為退庫,同時執(zhí)行加庫存操作。圖示如下:實現(xiàn)退藥TuiYao的存儲過程主要代碼如下所示:declare cur cursor for select DrugCode,DrugKind,PiHao,ApprovalNo,OutAmount from Drug_Out where BillId=ltrim(rtrim(@billid)) order by DrugCode open cur fetch next from cur into @drugcode,@drugkind,@pihao,@approvalno,@sumsl /*逐一獲取藥品編號、批號、數(shù)量*/ while @@fetch_status = 0 begin set @drugcode=ltrim(rtrim(@drugcode)) set @drugkind=ltrim(rtrim(@drugkind)) set @pihao=ltrim(rtrim(@pihao)) set @approvalno=ltrim(rtrim(@approvalno)) /*更新結(jié)存*/ update Drug_Stock set EndAmount = EndAmount@sumsl where DrugCode = ltrim(rtrim(@drugcode)) and DrugKind=ltrim(rtrim(@drugkind)) and PiHao=ltrim(rtrim(@pihao))and ApprovalNo=ltrim(rtrim(@approvalno)) fetch next from cur into @drugcode,@drugkind,@pihao,@approvalno,@sumsl /*獲取下一藥品編號、批號、數(shù)量*/ end close cur deallocate cur 實現(xiàn)更新庫存UpdateDrugStock的存儲過程主要:declare cur cursor for select DrugCode,DrugKind,PiHao,ApprovalNo,OutAmount from Drug_Out where BillId=ltrim(rtrim(@billid)) order by DrugCode open cur fetch next from cur into @drugcode,@drugkind,@pihao,@approvalno,@sumsl /*逐一獲取藥品編號、批號、數(shù)量*/ while @@fetch_status = 0 begin set @drugcode=ltrim(rtrim(@drugcode)) set @drugkind=ltrim(rtrim(@drugkind)) set @pihao=ltrim(rtrim(@pihao)) set @approvalno=ltrim(rtrim(@approvalno)) /*更新結(jié)存*/ update Drug_Stock set EndAmount = EndAmount@sumsl where DrugCode = ltrim(rtrim(@drugcode)) and DrugKind=ltrim(rtrim(@drugkind)) and PiHao=ltrim(rtrim(@pihao))and ApprovalNo=ltrim(rtrim(@approvalno)) fetch next from cur into @drugcode,@drugkind,@pihao,@approvalno,@sumsl /*獲取下一藥品編號、批號、數(shù)量*/ end close cur deallocate cur 藥品有效期模塊的實現(xiàn)可選擇查看失效藥品的種類,同時可選擇查看到某個日期截止的失效藥品信息。圖示如下: 月出庫藥品數(shù)量統(tǒng)計模塊對于某年每月的藥品出庫數(shù)量進行統(tǒng)計并以折線圖形界面的形式顯示出來。主要研究目的是:通過對各月份某種藥品的出庫數(shù)量,我們可以研究某些疾病如流感的發(fā)病高峰期,及時做好預(yù)防和庫存藥品補充的工作。其界面圖如下:具體使用到得一些畫圖函數(shù)如下所示:Bitmap bmap=new Bitmap(500,500) /定義圖像大小;(stream,imagecodecinfo) /將圖像保存到指定的輸出流;Graphics gph /定義或創(chuàng)建gdi繪圖對像;PointF cpt /定義二維平面中x,y坐標;DrawString(string,font,brush,ponitf)