毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

医药GSP管理系统 第8页

更新时间:2008-4-14:  来源:毕业论文


 

“入库登记”界面采用智能化表格式数据录入,实现一次录入多种药品的功能。同时加入了自动生成入库票号、自动计算合计金额和根据药品信息表中的有效期和生产日期自动计算有效期至等功能。

1.表单设计

1)在“医药GSP管理系统”项目中,利用Class_Frm类创建新表单,名称为“入库登记”。

2)在表单中添加Text控件、Label控件、Combo控件、Grid控件(在该控件的第1列、第2列、第17列和第18列分别加入Combo控件并将该件设置为默认控件)、Shape控件(用于修饰界面)和Button_Y控件、Button_F控件。

3)重要控件的重要属性如表3所示。

3                            重要属性及值

对象

属性

Combo1

RowSource

tab_jsfs.结算方式

Combo1Combo2

RowSourceType

6 – 字段

Text2

Value

{}

Grid1

ColumnCount

12

Grid1

DeleteMark

.F.

2.代码设计

Grid1.Column9.Text1控件(数量)的LostFocus事件中添加如下代码实现自动计算金额并判断该药品的库存数量是否超出库存上限,如果超出,那么要求用户做出选择。当用户选择“是”时继续入库,否则删除该条记录。

Option=Thisform.Grid1.Column9.Text1.Value*Thisform.Grid1.Column11.Text1.Value

Thisform.Grid1.Column12.Text1.Value=Option

YPNO=Alltrim(Thisform.Grid1.Column1.Combo1.DisplayValue)

Select * From Tab_KC_Confine Where 药品编号=YPNO Into Cursor Temp_SXX

If Temp_SXX.库存数量+This.Value>Temp_SXX.库存上限

        If Messagebox("库存数量超出库存上限,是否入库?",4+32,"系统提示:")=7

                Select Temp_RK

                If Reccount("Temp_RK")!=1

                        Set Deleted On     &&忽略标有删除标记的记录

                        Delete For 药品编号=YPNO  &&逻辑删除

                        go bottom

                        Thisform.Grid1.Column1.Combo1.Setfocus

                        thisform.grid1.ActivateCell(reccount(),1)  &&激活表格控件中的一个单元格

                        Thisform.Refresh

                Endif

        Endif

EndIf

Grid1.Column15.Text1控件(生产日期)的LostFocus事件中添加如下代码实现根据输入的生产日期和药品信息表中的有效期自动计算“有效期至”列的值,并判断该药品是否过期,如果过期将禁止入库。

Select * From Tab_Drug Where 药品编号=Alltrim(Thisform.Grid1.Column1.Combo1.Value) ;

 Into Cursor Temp_YXQ

Do Case Temp_YXQ.有效期单位

        Case Temp_YXQ.有效期单位=""

                YXQ=Temp_YXQ.有效期*12

                THisform.Grid1.Column16.Text1.value=Gomonth(This.Value,YXQ)

        Case Temp_YXQ.有效期单位=""

                YXQ=Temp_YXQ.有效期

                THisform.Grid1.Column16.Text1.value=Gomonth(This.Value,YXQ)

        Case Temp_YXQ.有效期单位=""   

                THisform.Grid1.Column16.Text1.value=This.Value+Temp_YXQ.有效期

EndCase

YPNO=Alltrim(THisform.Grid1.Column1.Combo1.value)

If THisform.Grid1.Column16.Text1.value<=Date()

        Messagebox("该药品已经过期,不可以入库!",48,"系统提示:")

        Select Temp_RK

        Set Deleted On &&忽略标有删除标记的记录

                 Delete For 药品编号=YPNO  &&逻辑删除

        Set Procedure To Procedure\UsedPrg  &&打开过程文件

        RecSum=DelCount()     &&调用自定义函数获取已经打上删除标记的记录个数

        If RecCount("Temp_RK")-RecSum=0

                         append blank

                thisform.refresh

        Endif

        go bottom

        Thisform.Grid1.Column1.Combo1.Setfocus

                 thisform.grid1.ActivateCell(reccount(),1)  &&激活表格控件中的一个单元格

        Thisform.Refresh

Endif

Grid1.Column17.Combo1控件(仓库)的Init事件中添加如下代码实现在“仓库”下拉列表框中显示有货位信息的仓库名称。

*利用自连接实现只显示有货位信息的仓库名称

Select CK.名称 From Tab_PackHouse CK Join Tab_PackHouse HW ON CK.编号=HW.上级编号 And;

 CK.类型=0Group By CK.编号 INTO Cursor Temp_CK

This.RowSourceType=6

This.RowSource="Temp_CK.名称"

this.listindex=1

Grid1.Column17.Combo1控件(仓库)的KeyPress事件中添加如下代码实现根据用户选择的仓库在下一个组合框中列出该仓库的货位信息。

*当控件失去焦点时,根据用户选择的仓库在下一个组合框中列出该仓库的货位信息

CKName=Alltrim(Thisform.Grid1.Column17.Combo1.Value)

Select 编号 From Tab_PackHouse Where 名称=CKName Into Cursor Temp_CKNO

Select 名称 From Tab_PackHouse Where 类型=1 And 上级编号=Temp_CKNO.编号;

 INTO Cursor Temp_HW

Thisform.Grid1.Column18.Combo1.Value="Temp_HW.名称"

Thisform.Grid1.Column18.Combo1.listindex=1

Grid1.Column20.Combo1控件(包装质量)的KeyPress事件中添加如下代码实现当用户按下回车键时,判断用户输入信息的正确性,并询问用户是否继续录入入库信息,并统计器品种数、货品总数和合计金额。

If nKeyCode=13

        Nodefault &&屏蔽对回车响应的缺省操作

        Option=Thisform.Grid1.Column9.Text1.Value*Thisform.Grid1.Column11.Text1.Value

        Thisform.Grid1.Column12.Text1.Value=Option

        If Empty(Thisform.Grid1.Column1.Combo1.DisplayValue)

                Messagebox("请选择入库的药品!",48,"系统提示:")

        else

                ……    &&判断入库数量和单价是否零,如果为零,则给予提示并返回

                select Temp_RK 

                Select 药品编号 From Temp_RK Group By 药品编号 Into Cursor Temp_PZS  &&统计品种数

                Thisform.Text6.Value=Reccount("Temp_PZS")

                select Temp_RK

                If Messagebox("是否继续入库?",4+32,'系统提示:')=6

                        append blank

                        thisform.refresh

                        RecSum=RecSum+1

                        go bottom

                        Thisform.Grid1.Column1.Combo1.Setfocus

                        thisform.grid1.ActivateCell(reccount()+1,1)  &&激活表格控件中的一个单元格

                        Thisform.Grid1.Column1.Combo1.ListIndex=1

                Else

                        Thisform.Text10.Setfocus

                Endif                      

                Select Sum(数量) AS 货品总数 ,Sum(金额) AS 合计金额 From Temp_RK;

         Into Cursor Temp_HJ

                Thisform.Text7.Value=Temp_HJ.货品总数

                Thisform.Text8.Value=Temp_HJ.合计金额

                select Temp_RK

        endif

Endif

“保存”按钮主要完成将入库信息分别保存在入库登记主表和入库登记明细表中,并判断库存信息表中是否存在该药品信息,如果存在则修改该药品数量,否则在库存信息表中添加该药品信息,并将入库事件插入库存明细表中,最后设置相应控件是否有效,其关键代码如下:

Insert into Tab_Inhouse_Main Values(NO,GYS,LXR,PZS,HPZS,HJJE,MDate,;

 MTime,JSFS,KPY,YSJL,CGY,YSY,BGY)  &&保存入库信息

Select Temp_RK

Go Top

Do While !Eof() And Temp_RK.数量!=0 And Temp_RK.单价!=0

        ……     &&此处省略了从临时表中分别取出入库信息的代码,如:YPNO=Temp_RK.药品编号

        Insert into Tab_Inhouse_Detail Values(NO,YPNO,HWBH,SCPH,SCDate,YXQZ,SL,;

         DW,DJ,JE,PFJ,LSJ,WGZL,BZZL)  &&保存入库明细信息

        *保存库存信息

        DIME AKCSL(1)  &&定义一文数组

        AKCSL=0

        Select 库存数量 From Tab_KC Where 药品编号=YPNO And 生产日期=SCDate Into Array AKCSL

        If AKCSL=0

                Insert into Tab_KC ;

         Values(YPNO,HWBH,SCPH,SCDate,YXQZ,SL,DW,DJ,JE,PFJ,LSJ,WGZL,BZZL)

        Else

                Update Tab_KC Set 库存数量=库存数量+SL,单价=DJ,金额=库存数量*单价;

                 Where 药品编号=YPNO And 生产日期=SCDate           

        Endif

        Update Tab_KC_Confine Set 库存数量=库存数量+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_RK

Zap     &&清空临时入库信息表

4.4  销售开单

用户单击导航功能按钮中的“销售管理”按钮,在功能子菜单中选择“销售开单”菜单项,进入“销售开单”界面,该界面运行结果如图5所示。

上一页  [1] [2] [3] [4] [5] [6] [7] [8] 

医药GSP管理系统 第8页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。