📄 frmgetdrug.frm
字号:
usp.Load
spd.Row = -1
spd.Col = 11
spd.Lock = True
FillData 1
If gtydSysConfig.RegPrint Then
btg.KeyEnabled(3) = False
End If
End Sub
Public Sub FillData(ByVal Num As Integer)
Dim i As Integer
Dim tmpObj As clsGetDrug
Dim Sickobj As clsSick
Dim DcCode As String
Set Sickobj = New clsSick
Sickobj.SkSerialByQuery = AllGetDrugObj.Item(Num).SkSerial
gfnFillDataBySickRegInfo Me, Sickobj
chkBaby.value = IIf(AllGetDrugObj.Item(Num).IsBaby, 1, 0)
txtSkID = AllGetDrugObj.Item(Num).SkID
spd.Redraw = False
spd.MaxRows = 0
For Each tmpObj In AllGetDrugObj.Item(Num)
DcCode = tmpObj.DcCode
spd.MaxRows = spd.MaxRows + 1
spd.Row = spd.MaxRows
spd.Col = 1
spd.Text = tmpObj.ADVSerial
spd.Col = 2
spd.Text = tmpObj.Num
spd.Col = 3
spd.Text = tmpObj.ItemName
spd.Col = 4
spd.Text = tmpObj.batchid & "\" & tmpObj.model
spd.Col = 5
spd.Text = tmpObj.FreqDes
spd.Col = 6
spd.Text = Format(tmpObj.ModelAmount, "#######0.####") & tmpObj.ModelUnit
spd.Col = 7
spd.Text = tmpObj.unit
spd.Col = 8
spd.Text = tmpObj.Mount
spd.Col = 9
spd.Text = tmpObj.Cprice
Select Case tmpObj.Status And 3
Case 0
spd.Col = 10
spd.value = 0
spd.Lock = False
spd.Col = 11
spd.value = 0
Case 1
spd.Col = 10
spd.value = 1
spd.Lock = False
spd.Col = 11
spd.value = 0
Case 2
spd.Col = 10
spd.value = 0
spd.Lock = True
spd.Col = 11
spd.value = 1
Case 3
spd.Col = 10
spd.value = 1
spd.Lock = True
spd.Col = 11
spd.value = 1
End Select
If tmpObj.NotStoreAmount Then
spd.Col = 10
spd.Lock = True
Else
spd.Lock = False
End If
spd.Col = 12
If gdbobj.GetRs("select DcName From m_Doctor where dcCode='" & DcCode & "'") > 0 Then
spd.Text = gdbobj.Rs(0)
End If
spd.Col = 13
spd.Text = Format(tmpObj.BeginDate, "yyyy-mm-dd hh:mm:ss")
spd.BlockMode = True
spd.Row = spd.MaxRows
spd.Row2 = spd.MaxRows
spd.Col = 1
spd.Col2 = spd.MaxCols
If tmpObj.NotStoreAmount Then
spd.ForeColor = RGB(255, 0, 0)
Else
spd.ForeColor = RGB(0, 0, 0)
End If
spd.BlockMode = False
Next
spd.Redraw = True
AllGetDrugObj.Item(Num).RemFair = Sickobj.RemFair
If AllGetDrugObj.Item(Num).CanKeep Then
btg.KeyEnabled(0) = True
btg.KeyEnabled(1) = True
btg.KeyEnabled(2) = True
btg.KeyEnabled(3) = True
Else
btg.KeyEnabled(0) = False
btg.KeyEnabled(1) = False
btg.KeyEnabled(2) = False
btg.KeyEnabled(3) = False
End If
End Sub
Private Sub btg_Click(ByVal WhichB As Integer)
Dim i As Integer, SkID As String
Dim Obj As Object, ErrDes As String, Row As Long, Col As Long
Select Case WhichB
Case 0
For i = 1 To spd.MaxRows
spd.Row = i
spd.Col = 11
If spd.value = 0 Then
spd.Col = 10
spd.value = 1
End If
Next i
Case 1
For i = 1 To spd.MaxRows
spd.Row = i
spd.Col = 11
If spd.value = 0 Then
spd.Col = 10
spd.value = 0
End If
Next i
Case 2
Set Obj = ValidInput(ErrDes, Row, Col)
If Not (Obj Is Nothing) Then
MsgBox ErrDes, vbCritical
hisActiveSpreadCell spd, Row, Col
Exit Sub
End If
loaddata
Me.MousePointer = 11
If Not AllGetDrugObj.Item(Lct.CurPos).Save Then
Me.MousePointer = 0
If AllGetDrugObj.Item(Lct.CurPos).allFlag Then
Set NoStorefrm = New frmNoStore
Set NoStorefrm.DrugAmountsObj = AllGetDrugObj.Item(Lct.CurPos).DrugAmountsObj
NoStorefrm.Show
Else
MsgBox gdbobj.ErrDes, vbCritical
End If
Else
AllGetDrugObj.Item(Lct.CurPos).SetStatus
Me.MousePointer = 0
FillData Lct.CurPos
' btg.KeyEnabled(3) = False
If gtydSysConfig.ifGetMarkPrint Then
MsgBox "此病人记帐完成!请打开打印机,打印摆药单!", vbInformation
printspd
Else
MsgBox "此病人记帐完成!", vbInformation
End If
End If
Case 3
printspd
Case 4
Unload Me
Case 5
SkID = InputBox("请输入病人病案号:", "记帐病人查询")
i = AllGetDrugObj.SkIDIndex(SkID)
If i > 0 Then
Lct.CurPos = i
End If
End Select
End Sub
Private Sub Form_Load()
hisFormToCenter Me, frmMain
InitForm
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set frmGetDrug = Nothing
End Sub
Private Sub Lct_PosChanged(ByVal Pos As Long, ByVal OldPos As Long)
FillData Pos
End Sub
Private Sub NoStorefrm_act(Opt As Integer)
changflag Opt
End Sub
Private Sub spd_LeaveCell(ByVal Col As Long, ByVal Row As Long, ByVal NewCol As Long, ByVal NewRow As Long, Cancel As Boolean)
gpdSpreadControl spd, Col, Row, NewCol, NewRow
End Sub
Private Function ValidInput(ErrDes As String, Row As Long, Col As Long) As Object
Dim i As Integer, Having As Boolean
Dim Flag As Integer, Mark As Boolean
For i = 1 To spd.MaxRows
spd.Row = i
spd.Col = 10
Flag = spd.value
spd.Col = 11
If spd.value = 0 And Flag = 1 Then
Having = True
End If
If spd.value = 1 Then Mark = True
Next i
If Not Having Then
If Mark Then
ErrDes = "已经记过帐不能记账!"
Else
ErrDes = "请选择记帐项目!"
End If
Set ValidInput = spd
Row = 1
Col = 10
Exit Function
End If
End Function
Private Sub loaddata()
Dim tmpObj As clsGetDrug
Dim ADVSerial As String
Dim Num As Integer, i As Integer
For i = 1 To spd.MaxRows
spd.Row = i
spd.Col = 10
If spd.value = 1 Then
spd.Col = 1
ADVSerial = spd.Text
spd.Col = 2
Num = Val(spd.Text)
Set tmpObj = AllGetDrugObj.ADVItem(ADVSerial, Num)
If Not (tmpObj Is Nothing) Then
If (tmpObj.Status And 2) = 0 Then
tmpObj.Status = 1
End If
End If
Else
spd.Col = 1
ADVSerial = spd.Text
spd.Col = 2
Num = Val(spd.Text)
Set tmpObj = AllGetDrugObj.ADVItem(ADVSerial, Num)
If Not (tmpObj Is Nothing) Then
spd.Col = 11
If spd.value = 1 Then
tmpObj.Status = 2
Else
tmpObj.Status = 0
End If
End If
End If
Next i
End Sub
Private Sub spd_RightClick(ByVal ClickType As Integer, ByVal Col As Long, ByVal Row As Long, ByVal MouseX As Long, ByVal MouseY As Long)
Call usp.RightClick
End Sub
Private Sub changflag(Flag As Integer)
Dim i As Integer
Dim TmpItem As clsGetDrug
Dim tmpObj As clsSickGetDrug
For i = 1 To AllGetDrugObj.Item(Lct.CurPos).DrugAmountsObj.Count
If AllGetDrugObj.Item(Lct.CurPos).DrugAmountsObj(i).Storage < AllGetDrugObj.Item(Lct.CurPos).DrugAmountsObj(i).Amount Then
If AllGetDrugObj.Item(Lct.CurPos).CanKeep Then
For Each TmpItem In AllGetDrugObj.Item(Lct.CurPos)
If TmpItem.ItemCode = AllGetDrugObj.Item(Lct.CurPos).DrugAmountsObj(i).ItemCode Then
If (TmpItem.Status And 2) = 0 Then
TmpItem.Status = 0
End If
End If
Next
End If
End If
Next i
FillData Lct.CurPos
End Sub
Private Sub printspd()
Dim i As Integer
Dim Flag As Integer
Dim selenum As Integer
spd.PrintHeader = " /fz""12"" /fb1 " & "住院病人摆药单" _
& " /n/n" _
& "/fz""10"" /fb0 病案号:" & txtSkID _
& Space(6) & "姓名:" & lblName _
& Space(6) & "性别:" & lblSex _
& Space(6) & "入院日期:" & Format(gfnGetTime, gstrCHINA_DATE) _
& Space(4) & "病区:" & lblDepCode _
& Space(4) & "打印日期:" & gfnGetTime(gstrCHINA_DATE) & "/r/n"
spd.PrintRowHeaders = False
spd.PrintShadows = False
spd.PrintMarginLeft = 0
spd.PrintUseDataMax = False
selenum = 0
For i = 1 To spd.MaxRows
spd.Row = i
spd.Col = 10
Flag = spd.value
'spd.Col = 11
If spd.value = 0 And Flag = 0 Then
spd.RowHidden = True
Else
If spd.value = 1 Then selenum = selenum + 1
End If
Next i
If selenum > 0 Then
spd.Action = SS_ACTION_PRINT
Else
MsgBox "请先选择记账后再打印!", vbCritical
End If
For i = 1 To spd.MaxRows
spd.Row = i
spd.RowHidden = False
Next i
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -