📄 frmgetdrugcondition.frm
字号:
Set frmGetDrug.AllGetDrugObj = AllGetDrugObj
frmGetDrug.Show
Else
Set frmGetDrugByDepart.AllGetDrugObj = AllGetDrugObj
frmGetDrugByDepart.DepName = Right(lst.Text, Len(lst.Text) - InStr(lst.Text, " "))
frmGetDrugByDepart.Show
End If
Unload Me
End If
Case 1
init
Case 2
Unload Me
End Select
End Sub
Private Sub DebInfoObj_Out()
Dim DepName As String
DepName = Right(lst.Text, Len(lst.Text) - InStr(lst.Text, " "))
Set DebInfoObj = Nothing
If OptType(1).value Then
Set frmGetDrug.AllGetDrugObj = AllGetDrugObj
frmGetDrug.Show
Else
Set frmGetDrugByDepart.AllGetDrugObj = AllGetDrugObj
frmGetDrugByDepart.DepName = DepName
frmGetDrugByDepart.Show
End If
Unload Me
End Sub
Private Sub Form_Load()
hisFormToCenter Me, frmMain
InitForm
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set frmGetDrugCondition = Nothing
End Sub
Private Sub GetData()
Dim tmpObj As clsSickGetDrug, Index As Integer, GetDrugObj As clsGetDrug
Dim DepCode As String
Dim tmprs As Recordset
Dim i As Integer, IsBaby As Boolean
Dim SQL As String
DepCode = left(lst.Text, InStr(lst.Text, " ") - 1)
Call gdbobj.DBExec("delete house_drugtmp where dscode='" & gtydSysConfig.DepCode & "'")
SQL = "insert house_drugtmp select dscode,itemcode,batchid,amount from house_drugbus where dscode='" & gtydSysConfig.DepCode & "'"
Call gdbobj.DBExec(SQL)
SQL = "SELECT SickInfo.SkSerial,SickInfo.BedID,m_SickRegInfo.Name," _
& "ADVDetail.ADVSerial,ADVDetail.Num,sickinfo.DcCode,SickInfo.DepCode," _
& "ADVDetail.ItemCode,ADVDetail.ModelAmount,(SickInfo.PrePay -SickInfo.Fair) as 'RemFair'," _
& "m_Drug.ItemName,m_Drug.Model,m_Drug.Flag as 'DFlag',m_Drug.Gprice,ADVMain.ADVUsID," _
& "m_Drug.Cprice,m_Drug.BaseUnit,ADVMain.ADVFreqID,ADVMain.flag,SickInfo.Status,null as Amount," _
& "ADVMain.EndDate,ADVDetail.PrevEndDate,ADVDetail.SFlag,ADVMain.BeginDate,ADVMain.BeginDcCode,m_SickRegInfo.sex,AFair " _
& "FROM (((ADVMain INNER JOIN ADVDetail ON ADVMain.ADVSerial = ADVDetail.ADVSerial " _
& " AND ADVMain.DepCode like '" & DepCode & "%' ) " _
& "INNER JOIN m_Drug ON ADVDetail.ItemCode = m_Drug.ItemCode) " _
& "INNER JOIN SickInfo ON ADVMain.SkSerial = SickInfo.SkSerial AND SickInfo.Status & 1 =0) " _
& "INNER JOIN m_SickRegInfo ON SickInfo.SkID = m_SickRegInfo.SkID " _
& "left JOIN SickArrear ON advmain.Skserial = sickarrear.skserial " _
& "WHERE (ADVDetail.SFlag & 1) =0 AND (ADVMain.Flag & 2) =0 " _
& gfnMakeLimit(gtydSysConfig.ItemCode, "m_Drug.ItemCode") _
& "AND (DateDiff(day,ADVMain.EndDate,ADVDetail.PrevEndDate)< 0 OR ADVMain.EndDate IS NULL ) " _
& "AND (ADVMain.Flag & 4) =4 and sflag & 1=0 " _
& "AND DateDiff(day,getdate(),ADVDetail.PrevEndDate) < " & txtDays & " ORDER BY SickInfo.BedID"
' 未停,审核,未结束,该科或其下级科,非自带药, 结束日期>记帐日期 记帐日期-当前日期 < 天
'不包括结束的一天
Set tmprs = gdbobj.GetNewRs(SQL)
If tmprs Is Nothing Then
SQL = "SELECT SickInfo.SkSerial,SickInfo.BedID,m_SickRegInfo.Name," _
& "ADVDetail.ADVSerial,ADVDetail.Num,sickinfo.DcCode,SickInfo.DepCode," _
& "ADVDetail.ItemCode,ADVDetail.ModelAmount,(SickInfo.PrePay -SickInfo.Fair) as 'RemFair'," _
& "m_Drug.ItemName,m_Drug.Model,m_Drug.Flag as 'DFlag',m_Drug.Gprice,ADVMain.ADVUsID," _
& "m_Drug.Cprice,m_Drug.BaseUnit,ADVMain.ADVFreqID,ADVMain.flag,SickInfo.Status ,null as Amount," _
& "ADVMain.EndDate,ADVDetail.PrevEndDate,ADVDetail.SFlag,ADVMain.BeginDate,ADVMain.BeginDcCode,m_SickRegInfo.sex,0 as AFair " _
& "FROM (((ADVMain INNER JOIN ADVDetail ON ADVMain.ADVSerial = ADVDetail.ADVSerial " _
& " AND ADVMain.DepCode like '" & DepCode & "%' ) " _
& "INNER JOIN m_Drug ON ADVDetail.ItemCode = m_Drug.ItemCode) " _
& "INNER JOIN SickInfo ON ADVMain.SkSerial = SickInfo.SkSerial AND SickInfo.Status & 1 =0) " _
& "INNER JOIN m_SickRegInfo ON SickInfo.SkID = m_SickRegInfo.SkID " _
& "WHERE (ADVDetail.SFlag & 1) =0 AND (ADVMain.Flag & 2) =0 " _
& gfnMakeLimit(gtydSysConfig.ItemCode, "m_Drug.ItemCode") _
& "AND (DateDiff(day,ADVMain.EndDate,ADVDetail.PrevEndDate)< 0 OR ADVMain.EndDate IS NULL ) " _
& "AND (ADVMain.Flag & 4) =4 and sflag & 1=0 " _
& "AND DateDiff(day,getdate(),ADVDetail.PrevEndDate) < " & txtDays & " ORDER BY SickInfo.BedID"
Set tmprs = gdbobj.GetNewRs(SQL)
End If
If Not (tmprs Is Nothing) Then
If tmprs.RecordCount >= 1 Then
Set AllGetDrugObj = New clsAllGetDrug
Index = 0
Do Until tmprs.EOF
IsBaby = IIf((tmprs!Flag And 2 ^ (4 - 1)) <> 0, True, False)
Set tmpObj = AllGetDrugObj.ItemBySick(tmprs!SkSerial, IsBaby)
If tmpObj Is Nothing Then
Set tmpObj = New clsSickGetDrug
tmpObj.SkSerial = tmprs!SkSerial
tmpObj.Name = tmprs!Name
tmpObj.BedID = IIf(IsNull(tmprs!BedID), "", tmprs!BedID)
tmpObj.IsBaby = IsBaby
tmpObj.DepCode = tmprs!DepCode
tmpObj.DcCode = IIf(IsNull(tmprs!BeginDcCode), "", tmprs!BeginDcCode)
tmpObj.RemFair = tmprs!RemFair
tmpObj.afair = IIf(IsNull(tmprs!afair), 0, tmprs!afair)
tmpObj.Sex = IIf(IsNull(tmprs!Sex), "男", mSex(tmprs!Sex))
If (tmprs!Status And 8) Then
tmpObj.CanDeb = True
End If
AllGetDrugObj.Add tmpObj
End If
Set GetDrugObj = tmpObj.Add(tmprs!ADVSerial, tmprs!Num, tmprs!EndDate, _
tmprs!Cprice, tmprs!gprice, tmprs!BaseUnit, _
tmprs!ADVFreqID, tmprs!ADVUsID, tmprs!PrevEndDate, tmprs!ModelAmount, _
tmprs!model, tmprs!ItemName, tmprs!ItemCode, _
tmprs!DFlag, _
IIf((tmprs!Flag And 1) = 0, True, False), tmprs!BeginDate)
GetDrugObj.DcCode = IIf(IsNull(tmprs!BeginDcCode), "", tmprs!BeginDcCode)
GetDrugObj.Amount = IIf(IsNull(tmprs!Amount), 0, tmprs!Amount)
GetDrugObj.SFlag = tmprs!SFlag
Call GetDrugObj.GetMount(txtDays)
GetDrugObj.CanKeep = tmpObj.CanKeep
CheckStoreBatch tmpObj, GetDrugObj
'GetDrugObj.GetStoreAmount
tmprs.MoveNext
Loop
End If
End If
End Sub
Public Sub CheckStoreBatch(tmpObj As clsSickGetDrug, GetDrugObj As clsGetDrug)
Dim tmprs As Recordset
Dim TotalAmount As Integer, Amount As Integer
Dim first As Boolean
Dim Num As Integer
Amount = GetDrugObj.Mount
Num = GetDrugObj.Num
first = True
'NotStoreAmount = False
Set tmprs = gdbobj.GetNewRs("select house_drugtmp.BatchID,house_drugtmp.Amount,Cprice,Gprice from house_drugtmp " _
& "inner join house_DrugBus on house_DrugBus.itemcode=house_drugtmp.itemcode " _
& " and house_drugbus.dscode=house_drugtmp.dscode and house_drugbus.batchid=house_drugtmp.batchid " _
& "where house_drugtmp.dscode='" & gtydSysConfig.DepCode & "' and house_drugtmp.itemcode='" & GetDrugObj.ItemCode & "'and house_drugtmp.amount<>0")
Do While Not tmprs.EOF
If Not GetDrugObj.CanKeep Then Exit Do
TotalAmount = TotalAmount + tmprs!Amount
tmprs.MoveNext
Loop
If TotalAmount >= GetDrugObj.Mount Then
tmprs.MoveFirst
Do While Not tmprs.EOF
If Not first Then
Set GetDrugObj = tmpObj.Add(GetDrugObj.ADVSerial, Num, GetDrugObj.EndDate, _
GetDrugObj.Cprice, GetDrugObj.gprice, GetDrugObj.unit, _
GetDrugObj.ADVFreqID, GetDrugObj.ADVUsID, GetDrugObj.PreMarkDate, _
GetDrugObj.ModelAmount, GetDrugObj.model, GetDrugObj.ItemName, _
GetDrugObj.ItemCode, GetDrugObj.Flag, GetDrugObj.IsTemp, GetDrugObj.BeginDate)
GetDrugObj.DcCode = GetDrugObj.DcCode
GetDrugObj.SFlag = GetDrugObj.SFlag
GetDrugObj.CanKeep = tmpObj.CanKeep
End If
GetDrugObj.batchid = tmprs!batchid
If gtydSysConfig.IfDecStore Then
GetDrugObj.Cprice = tmprs!Cprice
GetDrugObj.gprice = tmprs!gprice
End If
If Amount < tmprs!Amount Then
Call gdbobj.DBExec("update house_drugtmp set amount=amount-" & Amount _
& " where dscode='" & gtydSysConfig.DepCode & "' and itemcode='" & GetDrugObj.ItemCode & "' and batchid='" & GetDrugObj.batchid & "'")
GetDrugObj.Mount = Amount
Exit Do
Else
Call gdbobj.DBExec("update house_drugtmp set amount=0 where dscode='" & gtydSysConfig.DepCode _
& "'and itemcode='" & GetDrugObj.ItemCode & "'and batchid='" & GetDrugObj.batchid & "'")
GetDrugObj.Mount = tmprs!Amount
Amount = Amount - tmprs!Amount
End If
tmprs.MoveNext
first = False
Num = Num + 1
Loop
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -