医药GSP管理系统 第4页
图3 药品信息管理运行结果
“药品信息管理”界面主要用于查询、添加、修改和删除药品信息;根据药品剂型自动生成药品编号;根据药品的通用名自动生成药品简称;可以利用记录定位按钮实现精确记录定位;支持快速浏览药品信息等功能。
(1)在“医药GSP管理系统”项目中,利用Class_Frm类创建新表单,名称为“药品信息管理”。
(2)在表单中添加Text控件、Label控件、Pageframe控件、Edit控件、Combo控件、Grid控件和Shape控件(用于修饰界面)和Button_Y控件、Button_F控件。
(3)重要控件的重要属性如表2所示。
表2 重要属性及值
对象 |
属性 |
值 |
Class_Frm12 |
BorderStyle |
0 – 无边框 |
Class_Frm12 |
TitleBar |
0 – 关闭 |
Combo1 |
RowSource |
Tab_DoseType.剂型 |
Combo1、Combo2、Combo4 |
RowSourceType |
6 – 字段 |
Combo1、Combo2、Combo3、Combo5、Combo6 |
Style |
2 - 下拉列表框 |
Combo2 |
RowSource |
Tab_Unit.单位名称 |
Combo3、Combo6 |
RowSource |
有,无 |
Combo5 |
RowSource |
年,月,天 |
Combo5 |
RowSourceType |
1 – 值 |
Text11 |
InputMask |
9999 |
PF |
PageCount |
2 |
PF |
TabStyle |
1 – 非两端 |
(4)为表单创建方法程序List_Sele。
由于在设计数据库时,遵循数据规范化原则,在药品信息表中生产厂家是以厂家编号字段存储,药品的库存上/下限信息保存在库存上下限表中,所以在显示药品信息时,需要应用SQL语句的内联接查询出药品的完整信息并显示在表格中,程序代码如下:
SELECT Tab_drug.药品编号, Tab_drug.通用名, Tab_drug.曾用名,Tab_drug.英文名,;
Tab_drug.简称, Tab_drug.剂型, Tab_drug.规格,Tab_drug.包装, Tab_drug.单位,;
Tab_drug.成份, Tab_drug.性状,Tab_drug.药理毒理, Tab_drug.适应症, Tab_drug.用法用量,;
Tab_drug.不良反应,Tab_drug.禁忌, Tab_drug.注意事项, Tab_drug.药物过量, Tab_drug.贮藏,;
Tab_drug.有效期, Tab_drug.有效期单位,Tab_drug.注册商标, Tab_drug.批准文号,;
Tab_wlunit.全称 AS 生产厂家, Tab_Wlunit.编号 AS 厂家编号,Tab_drug.产地,Tab_drug.备注,;
Tab_kc_confine.库存上限 AS 上限,Tab_kc_confine.库存下限 AS 下限;
FROM yygsp!tab_drug INNER JOIN yygsp!tab_wlunit ;
ON Tab_drug.生产厂家 = Tab_wlunit.编号;
INNER JOIN yygsp!tab_kc_confine ;
ON Tab_drug.药品编号 = Tab_kc_confine.药品编号 Into Cursor Temp_Drug
Thisform.PF.P2.Grid1.ColumnCount=-1 &&设置表格的列数数据表中的字段数
Thisform.PF.P2.Grid1.RecordSource="Temp_Drug"
在“添加”按钮的Button_Click事件中添加如下代码实现自动生成以“PJ”为标识的药品编号。
Set Procedure To Procedure\UsedPrg &&打开过程文件
Select Tab_Drug
*调用自定义函数生成药品编号
Thisform.PF.P1.text1.Value=AutoNO("Tab_Drug","药品编号","PJ","7","")
在Combo1的InteractiveChange事件中添加如下代码实现根据用户选择的剂型自动生成七位的药品编号。
Set Procedure To Procedure\UsedPrg &&打开过程文件
Select 剂型标识 From Tab_DoseType Where 剂型=This.Value Into Cursor Temp_D
Thisform.PF.P1.text1.Value=AutoNO("Tab_Drug","药品编号",Temp_D.剂型标识,"7",;
"Left(药品编号,2)=Alltrim(Temp_D.剂型标识)") &&调用自定义函数生成药品编号
在“厂家编号”文本框的LostFocus事件中实现用户输入厂家编号后,自动填入厂家名称,如果不存在则给予提示。
Select 全称 From Tab_WLUnit Where Alltrim(Tab_WLUnit.编号)=Alltrim(This.Value) ;
Into Cursor Temp_WLUnit
Go Top
If Eof()
Messagebox("无效的单位编号!",48,"系统提示:")
This.Value=""
This.Parent.Combo4.Setfocus
Else
This.Parent.Combo4.DisplayValue=Temp_WLUnit.全称
Endif
在“厂家名称”下拉列表框的InterActiveChange事件中添加如下代码实现自动填入厂家编号的功能。
Select Tab_WLUnit
Select 编号,全称 From Tab_WLUnit Where 全称=Alltrim(This.Value) Into Cursor Temp_WLUnit
If !Empty(Temp_WLUnit.编号)
This.Parent.Text5.Value=Alltrim(Temp_WLUnit.编号)
Endif
在“保存”按钮的Button_Click事件中的代码主要实现保存用户新添加的药品信息或修改后的药品信息,关键代码如下:
If Flag=1 &&单击“添加”按钮后单击“保存”按钮
Locat For 通用名=alltrim(Thisform.PF.P1.Text2.Value) And;
规格=alltrim(Thisform.PF.P1.Text8.Value) And;
剂型=alltrim(Thisform.PF.P1.Combo1.Value) And;
产地=alltrim(Thisform.PF.P1.Text1.Value)
If Found()
Messagebox("该药品信息已经添加!",48,"系统提示:")
Else
Insert into Tab_Drug Values(NO,TYName,CYName,YWName,JC,JX,GG,BZ,;
DW,CF,XZ,YLDL,SYZ,YFYL,BLFY,JJ,ZYSX,YWGL,ZC,YXQ,YXQDW,ZCSB,;
PZWH,cCD,SCCJ,Memo) &&保存药品信息
Insert into Tab_KC_confine Values(NO,0,SX,XX) &&保存药品库存上下限信息
Messagebox("药品信息添加成功!",48,"系统提示:")
Flag=0
Endif
Endif
If Flag=2 &&单击“修改”按钮后单击“保存”按钮
Update Tab_Drug Set 药品编号=NO,通用名=TYName,曾用名=CYName,英文名=YWName,;
简称=JC,规格=GG,包装=BZ,单位=DW,成份=CF,性状=XZ,药理毒理=YLDL,适应症=SYZ,;
用法用量=YFYL,不良反应=BLFY,禁忌=JJ,注意事项=ZYSX,药物过量=YWGL,贮藏=ZC,;
有效期=YXQ,有效期单位=YXQDW,注册商标=ZCSB,批准文号=PZWH,产地=cCD,;
生产厂家=SCCJ,备注=Memo Where 药品编号=NO &&修改药品信息
Update Tab_KC_confine Set 库存上限=SX,库存下限=XX Where 药品编号=NO
Messagebox("药品信息修改成功!",48,"系统提示:")
Flag=0
Endif
“删除”按钮主要实现判断所要删除的药品在库存中是否还有,如果没有则删除该药品信息和该药品的库存上下限信息,否则提示该药品信息不能删除。
在“查询”按钮的Button_Click事件中添加如下代码实现根据用户在控件中选择的查询条件进行查询,当用户选择“Like”操作符时,执行模糊查询。
QFields=Alltrim(Thisform.Combo1.Value)
Operate=Alltrim(Thisform.Combo2.Value)
QValue=Alltrim(Thisform.Text1.Value)
SELECT Tab_drug.药品编号, Tab_drug.通用名, Tab_drug.曾用名,Tab_drug.英文名,;
Tab_drug.简称, Tab_drug.剂型, Tab_drug.规格,Tab_drug.包装, Tab_drug.单位,;
Tab_drug.成份, Tab_drug.性状,Tab_drug.药理毒理, Tab_drug.适应症,;
Tab_drug.用法用量, Tab_drug.不良反应,Tab_drug.禁忌, Tab_drug.注意事项,;
Tab_drug.药物过量, Tab_drug.贮藏, Tab_drug.有效期, Tab_drug.有效期单位,;
Tab_drug.注册商标, Tab_drug.批准文号, Tab_wlunit.全称 AS 生产厂家,;
Tab_Wlunit.编号 AS 厂家编号,Tab_drug.产地,Tab_drug.备注,;
Tab_kc_confine.库存上限 AS 上限,Tab_kc_confine.库存下限 AS 下限;
FROM yygsp!tab_drug INNER JOIN yygsp!tab_wlunit ;
ON Tab_drug.生产厂家 = Tab_wlunit.编号;
INNER JOIN yygsp!tab_kc_confine ;
ON Tab_drug.药品编号 = Tab_kc_confine.药品编号 ;
Into Cursor Temp_Drug1
If Operate="Like"
*模糊查询
SELECT * FROM Temp_Drug1 Where &QFields. Like'%&QValue.%' Into Cursor Temp_Drug
Else
SELECT * FROM Temp_Drug1 Where &QFields. ='&QValue.' Into Cursor Temp_Drug
Endif
用户单击导航功能按钮中的“采购/入库管理”按钮,在功能子菜单中选择“入库登记”菜单项,进入“入库登记”界面,该界面运行结果如图4所示。 若图片无法显示请联系QQ752018766
上一页 [1] [2] [3] [4] [5] [6] [7] [8] 下一页