⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmgetdrugcondition.frm

📁 医院门诊医生工作站,vb6 SqlServer
💻 FRM
📖 第 1 页 / 共 2 页
字号:
                        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 + -