医药GSP管理系统 第5页
图5 销售开单运行结果
“销售开单”界面采用智能化表格式数据录入,实现一次销售多种药品的功能。程序中还加入了自动生成销售票号、自动计算合计金额等功能,为了方便用户操作,程序还提供了如下功能:当用户在“药品编号”列输入药品编号的前几个字符或按“PageDown”键,系统将自动利用列表框显示相关药品信息。使用“↓”键或“↑”键选择药品,按回车键该药品的基本信息自动添加到表格中。同时按照GSP认证的有关规定,在药品销售时还遵循“先进先出”原则。
(1)在“医药GSP管理系统”项目中,利用Class_Frm类创建新表单,名称为“销售开单”。
(2)在表单中添加Text控件、Label控件、Combo控件、List控件、Grid控件、Shape控件(用于修饰界面)和Button_F控件。
(3)重要控件的重要属性如表4所示。
表4 重要属性及值
对象 |
属性 |
值 |
Combo1 |
RowSource |
tab_jsfs.结算方式 |
Combo1、Combo2 |
RowSourceType |
6 – 字段 |
List1 |
ColumnCount |
6 |
List1 |
ColumnWidth |
50,85,60,95,95,90 |
List1 |
ItemTips |
.T. – 真 |
Grid1 |
ColumnCount |
18 |
Grid1 |
DeleteMark |
.F. |
(4)为表单创建方法程序AddListValue。
在Grid1.Column9.Text1控件(数量)的KeyPress事件中添加如下代码实现当用户按下回车键时,自动计算药品金额并判断库存数量,如果该批号的药品数量不足,则提示从下一批号销售,自动计算从下一批号销售的数量。
If nKeyCode=13
Option=Thisform.Grid1.Column9.Text1.Value*Thisform.Grid1.Column11.Text1.Value
Thisform.Grid1.Column12.Text1.Value=Option &&自动计算金额
Select Temp_YP
If Temp_YP.库存数量<This.Value
CZ=This.Value-Temp_YP.库存数量
Messagebox("该批号药品的库存数量不足,需要从下一批号销售["+;
Alltrim(Str(CZ))+"]个。",48,"系统提示:")
This.Value=Temp_YP.库存数量
P_YPNO=Temp_YP.药品编号
P_SCPH=Temp_YP.生产批号
Dime Next_PH(1)
Next_PH=""
Select Top 1 生产批号 From Tab_KC Where 药品编号=P_YPNO And 生产批号>P_SCPH ;
Order By 生产批号 Into Array Next_PH
If Empty(Next_PH)
Messagebox("该药品无下一批号的产品,只能销售["+;
Alltrim(Str(Temp_YP.库存数量))+"]。",48,"系统提示:")
Else
P_SCPH=Next_PH
Endif
EndIf
Endif
“保存”按钮主要完成将销售信息分别保存在销售登记主表、销售登记备份表(在实现按销售票号进行销售退货时应用该表)和销售登记明细表中,并修改库存信息表和库存上下限表中的库存数量,并将销售事件插入库存明细表中,最后设置相应控件是否有效,其关键代码如下:
Select Temp_XS
If Thisform.Text6.value=0
Messagebox("请输入要销售的药品!",48,"系统提示:")
Return
Endif
Insert into Tab_Sell_Main alues(NO,KH,LXR,PZS,HPZS,HJJE,MDate,MTime,JSFS,KPY,SKY,BGY,FHY)
Select Temp_XS
Go Top
Do While !Eof() And Temp_XS.数量!=0 And Temp_XS.单价!=0
YPNO=Temp_XS.药品编号
Select 编号 AS 货位编号 From Tab_PackHouse Where 名称=Temp_XS.货位 Into Array HWBH
SCPH=Temp_XS.产品批号
SCDate=Temp_XS.生产日期
YXQZ=Temp_XS.有效期至
SL=Temp_XS.数量
DW=Temp_XS.单位
DJ=Temp_XS.单价
JE=Temp_XS.金额
WGZL=Temp_XS.外观质量
BZZL=Temp_XS.包装质量
Insert into Tab_Sell_Detail ;
Values(NO,YPNO,HWBH,SCPH,SCDate,YXQZ,SL,DW,DJ,JE,WGZL,BZZL)&&保存销售明细信息
Insert into Tab_Sell_Bak alues(NO,YPNO,HWBH,SCPH,SCDate,YXQZ,SL,DW,DJ,JE,WGZL,BZZL)
*保存库存信息
DIME AKCSL(1) &&定义一文数组
AKCSL=0
Select 库存数量 From Tab_KC Where 药品编号=YPNO And 生产批号=SCPH Into Array AKCSL
Update Tab_KC Set 库存数量=库存数量-SL,单价=DJ,金额=库存数量*单价;
Where 药品编号=YPNO And 生产批号=SCPH
Update Tab_KC_Confine Set Tab_KC_Confine.库存数量=Tab_KC_Confine.库存数量-SL;
Where 药品编号=YPNO
Dime Y_SL(1)
Y_SL(1)=0
Select Top 1 库存 From Tab_KC_Detail Where 药品编号=YPNO Order By 时间 DESC ;
Into Array Y_SL
Insert Into Tab_KC_Detail Values(YPNO,"销售",SL,Y_SL-SL,DT,NO) &&插入库存明细表
Skip
EndDo
Messagebox("药品销售完成!",48,"系统提示:")
sele Temp_XS
Zap
用户单击导航功能按钮中的“系统管理”按钮,在功能子菜单中选择“权限设置”菜单项,进入“权限设置”界面,该界面运行结果如图6所示。
图4 入库登记运行结果若图片无法显示请联系QQ752018766
上一页 [1] [2] [3] [4] [5] [6] [7] [8] 下一页