|
本帖最后由 陈晓龙 于 2016-3-11 08:57 编辑
今天遇到个难题,药品请购流程,有2个表,一个总表和一个明细表,两个表都需要从his提取数据,进行流程审批。客户想通过药品请购总表,输入单据编号,就可以把his的数据,填充到总表和明细表里面。那么该如何实现呢?
1.首先把总表单据编号这个字段,设置为他表选择。这个是根据客户提供的sql语句,提取his里面的药品请购基本信息。
2.在药品请购的编辑窗体,功能管理里,写自动填充药品明细信息的代码。实现如下:
'药品请领明细查询
dim sql="Select a.单据编号,VJ.编号 药品编号,VJ.名称 药品名称,规格,D.药品单位,DW.名称 As 生产厂商,D.生产批号,convert(char(10),K.有效期至,120) 有效期至,数量,单价,金额 From D请领单 A Inner Join D请领数据 D On A.单据编号 = D.单据编号 Inner Join VJ药品卫材 VJ On D.编号 = VJ.编号 Inner Join T库存药品 K On D.库存流水 = K.库存流水 Left Join T生产单位 DW On K.生产单位 = DW.编号 where A.状态 = 'N' Order by 行序"
'连接his数据库
dim dt=ExecuteSelect("HIS",sql)
'把药品明细添加到下面表格中
药品请领明细编辑.RefreshData()
dim dt_gs=药品请领明细编辑.DataTable
dim dr_gs
for each dr in dt.Rows
dr_gs=dt_gs.NewRow()
dr_gs["ID"]=guid()
dr_gs["药品编号"]=dr["药品编号"]
dr_gs["药品名称"]=dr["药品名称"]
dr_gs["规格"]=dr["规格"]
dr_gs["单位"]=dr["药品单位"]
dr_gs["生产厂家"]=dr["生产厂商"]
dr_gs["生产批号"]=dr["生产批号"]
dr_gs["有效期至"]=dr["有效期至"]
dr_gs["数量"]=dr["数量"]
dr_gs["单价"]=dr["单价"]
dr_gs["金额"]=dr["金额"]
dt_gs.Rows.Add(dr_gs)
next
3.在药品请领的总表,事件管理—字段值变化事件,里面写触发值变化事件的代码。实现代码如下:
'触发单据编号,就自动提取之前在功能管理写的填充数据代码。
dim e = Me.GetEventArgs()
if e.FieldName="单据编号" then
Call("填充数据")
end if
|
|