📄 frmfilter.frm
字号:
If lngTemp > 0 Then
strRootRath = Left(strRootRath, lngTemp - 1)
End If
blnSpec = False
Select Case Trim(strRootRath)
Case "科目"
If blnAccount = True Then
If mstrTagCond(1) <> "" Then
mstrTagCond(1) = mstrTagCond(1) & " and " & mstrSelected(Index, 8)
Else
mstrTagCond(1) = mstrSelected(Index, 8)
End If
blnSpec = True
End If
Case "单位"
If blnCustomer = True Then
If mstrTagCond(2) <> "" Then
mstrTagCond(2) = mstrTagCond(2) & " and " & mstrSelected(Index, 8)
Else
mstrTagCond(2) = mstrSelected(Index, 8)
End If
blnSpec = True
End If
Case "部门"
If blnDepartment = True Then
If mstrTagCond(3) <> "" Then
mstrTagCond(3) = mstrTagCond(3) & " and " & mstrSelected(Index, 8)
Else
mstrTagCond(3) = mstrSelected(Index, 8)
End If
blnSpec = True
End If
Case "员工"
If blnEmployee = True Then
If mstrTagCond(4) <> "" Then
mstrTagCond(4) = mstrTagCond(4) & " and " & mstrSelected(Index, 8)
Else
mstrTagCond(4) = mstrSelected(Index, 8)
End If
blnSpec = True
End If
Case "工程"
If blnJob = True Then
If mstrTagCond(5) <> "" Then
mstrTagCond(5) = mstrTagCond(5) & " and " & mstrSelected(Index, 8)
Else
mstrTagCond(5) = mstrSelected(Index, 8)
End If
blnSpec = True
End If
Case "统计"
If blnClass1 = True Then
If mstrTagCond(6) <> "" Then
mstrTagCond(6) = mstrTagCond(6) & " and " & mstrSelected(Index, 8)
Else
mstrTagCond(6) = mstrSelected(Index, 8)
End If
blnSpec = True
End If
Case "项目"
If blnClass2 = True Then
If mstrTagCond(9) <> "" Then
mstrTagCond(9) = mstrTagCond(9) & " and " & mstrSelected(Index, 8)
Else
mstrTagCond(9) = mstrSelected(Index, 8)
End If
blnSpec = True
End If
Case "商品"
If blnItem = True Then
If mstrTagCond(8) <> "" Then
mstrTagCond(8) = mstrTagCond(8) & " and " & mstrSelected(Index, 8)
Else
mstrTagCond(8) = mstrSelected(Index, 8)
End If
blnSpec = True
End If
Case "货位"
If blnPosition = True Then
If mstrTagCond(10) <> "" Then
mstrTagCond(10) = mstrTagCond(10) & " and " & mstrSelected(Index, 8)
Else
mstrTagCond(10) = mstrSelected(Index, 8)
End If
blnSpec = True
End If
Case mstrPeriodName
If blnPeriod = True And mstrSelected(Index, 11) = mstrPeriodName Then
If mstrTagCond(7) <> "" Then
mstrTagCond(7) = mstrTagCond(7) & " and " & mstrSelected(Index, 8)
Else
mstrTagCond(7) = mstrSelected(Index, 8)
End If
blnSpec = True
End If
End Select
End If
'生成strWhere子句
If blnSpec = False Then
If Trim(mstrWhere) = "" And Trim(mstrSelected(Index, 8)) <> "" Then
mstrWhere = Trim(mstrSelected(Index, 8))
ElseIf Trim(mstrWhere) <> "" And Trim(mstrSelected(Index, 8)) <> "" Then
mstrWhere = mstrWhere & " and " & Trim(mstrSelected(Index, 8))
End If
'1999-12-02
If Trim(mstrSelected(Index, 8)) <> "" Then
If InStr(UCase(Trim(mstrSelected(Index, 8))), "SUM(") > 0 Or InStr(UCase(Trim(mstrSelected(Index, 8))), "MIN(") > 0 Or _
InStr(UCase(Trim(mstrSelected(Index, 8))), "AVG(") > 0 Or InStr(UCase(Trim(mstrSelected(Index, 8))), "MAX(") > 0 Or _
InStr(UCase(Trim(mstrSelected(Index, 8))), "FIRST(") > 0 Or InStr(UCase(Trim(mstrSelected(Index, 8))), "LAST(") > 0 Or _
InStr(UCase(Trim(mstrSelected(Index, 8))), "COUNT(") > 0 Then
If mstrHaving = "" Then
mstrHaving = Trim(mstrSelected(Index, 8))
Else
mstrHaving = mstrHaving & " And " & Trim(mstrSelected(Index, 8))
End If
Else
If mstrWhereing = "" Then
mstrWhereing = Trim(mstrSelected(Index, 8))
Else
mstrWhereing = mstrWhereing & " And " & Trim(mstrSelected(Index, 8))
End If
End If
End If
'1999-12-02
End If
Index = Index + 1
Loop
rs.Close
gclsBase.BaseWorkSpace.CommitTrans
'生成特殊条件
mstrCond = ""
If mIntTag <> 0 Then
mstrCond = mstrTagCond(1)
mstrCond = mstrCond & "`" & mstrTagCond(2)
mstrCond = mstrCond & "`" & mstrTagCond(3)
mstrCond = mstrCond & "`" & mstrTagCond(4)
mstrCond = mstrCond & "`" & mstrTagCond(5)
mstrCond = mstrCond & "`" & mstrTagCond(6)
mstrCond = mstrCond & "`" & mstrTagCond(7)
mstrCond = mstrCond & "`" & mstrTagCond(8)
mstrCond = mstrCond & "`" & mstrTagCond(9)
mstrCond = mstrCond & "`" & mstrTagCond(10)
End If
Exit Sub
ErrHandle:
gclsBase.BaseWorkSpace.RollBacktrans
End Sub
Private Sub CmdNo_Click()
Unload Me
End Sub
Private Sub CmdReset_Click()
Dim Index As Long
For Index = 1 To MsgFilter.Rows - 2
mCurLineOfSelect = MsgFilter.RowData(Index)
If mCurLineOfSelect > 0 Then
tvwFilter.Nodes(mCurLineOfSelect).Tag = Right(tvwFilter.Nodes(mCurLineOfSelect).Tag, Len(tvwFilter.Nodes(mCurLineOfSelect).Tag) - 1)
End If
Next
MsgFilter.Rows = 2
MsgFilter.RowHeight(1) = 0
Erase mstrSelected
mCurentline = 1
If tvwFilter.Nodes.Count = 0 Then Exit Sub
tvwFilter_nodeClick tvwFilter.Nodes(1)
tvwFilter.Nodes(1).Selected = True
End Sub
Private Sub dateone_lostfocus()
Dim Index As Long
Dim index2 As Long
If Trim(DateOne.Text) = "" Then
'删出当前行
If Left(tvwFilter.Nodes(mCurLineOfSelect).Tag, 1) = "*" Then
DelCurentline
End If
Else
'Add One line of dateclass.
Modifyrefertext1
mstrSelected(mCurentline, 5) = DateOne.Text
mstrSelected(mCurentline, 6) = ""
mstrSelected(mCurentline, 7) = ""
mstrSelected(mCurentline, 8) = "Decode(isdate(" & Trim(mstrSelected(mCurentline, 2)) & "),1,To_date(" & Trim(mstrSelected(mCurentline, 2)) & ",'" & "yyyy-mm-dd" & "'" & ") = to_date(" & Trim(mstrSelected(mCurentline, 5)) & ",'" & "yyyy-mm-dd" & "'" & ",0)"
AddSelectedTag
MsgFilter.TextMatrix(mCurentline, 1) = Trim(mstrSelected(mCurentline, 5))
AddMsgFilter
End If
End Sub
'初始化已选条件表表头
Private Sub InitChooseGrd()
Dim Count As Integer
With MsgFilter
.Rows = 2
.Cols = 2
For Count = 0 To .Cols - 1
.FixedAlignment(Count) = 4
Next Count
.TextMatrix(0, 0) = "过滤项目"
.TextMatrix(0, 1) = "过滤条件"
.ColWidth(0) = 1250
.ColWidth(1) = 2600
.RowHeight(1) = 0
.ColAlignment(1) = 1
End With
End Sub
Private Sub Form_Activate()
SetHelpID 10007
tvwFilter.SetFocus
End Sub
Private Sub Form_Load()
On Error GoTo ErrHandle
Utility.LoadFormResPicture Me
tvwFilter.ImageList = frmMain.ImageListFilter
Me.Left = 300
Me.top = 900
ReferText2.SeekCol = "-1,1"
' ReferText1.Locked = True
ReferText2.Locked = False
ReferText1.SelStart = 0
#If conVersionType = 1 Then
strCondVersionField = " And (ViewField.bytVersion IN (1,3,7,5,9,11,13,15,17,19,21,23,25,27,29,31))"
strCondVersionEnum = " And (EnumTable.bytVersion IN (1,3,7,5,9,11,13,15,17,19,21,23,25,27,29,31))"
strCondVersion = "(1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31)"
#Else
#If conVersionType = 2 Then
#Else
#If conVersionType = 4 Then
strCondVersionField = " And (ViewField.bytVersion IN (4,5,6,7,12,13,14,15,20,21,22,23,28,29,30,31))"
strCondVersionEnum = " And (EnumTable.bytVersion IN (4,5,6,7,12,13,14,15,20,21,22,23,28,29,30,31))"
strCondVersion = "(4,5,6,7,12,13,14,15,20,21,22,23,28,29,30,31)"
#ElseIf conVersionType = 8 Then
strCondVersionField = " And (ViewField.bytVersion IN (8,9,10,11,12,13,14,15,24,25,26,27,28,29,30,31))"
strCondVersionEnum = " And (EnumTable.bytVersion IN (8,9,10,11,12,13,14,15,24,25,26,27,28,29,30,31))"
strCondVersion = "(8,9,10,11,12,13,14,15,24,25,26,27,28,29,30,31)"
#Else
strCondVersionField = " And (ViewField.bytVersion IN (16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31))"
strCondVersionEnum = " And (EnumTable.bytVersion IN (16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31))"
strCondVersion = "(16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31)"
#End If
#End If
#End If
If gclsBase.AccountSys = 3 Or gclsBase.AccountSys = 4 Then
strCondHospital = " And (viewField.blnNotHospital=0) "
Else
strCondHospital = ""
End If
Exit Sub
ErrHandle:
Unload Me
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set mclsHook = Nothing
Utility.UnLoadFormResPicture Me
End Sub
'钩子:处理msgFilter 的键盘事件
Private Sub mclsHook_OnMessage(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long, bCancel As Long)
If Msg = WM_KEYUP Then
If wParam = vbKeyUp Or wParam = vbKeyDown Then
MsgFilter_click
End If
End If
End Sub
Private Sub ReferText1_ItemNotExist()
mItemNotExit = True
End Sub
Private Sub ReferText1_KeyPress(KeyAscii As Integer)
mblnRefertext1 = True
End Sub
'触发ReferText1_Click 事件标志
Private Sub ReferText1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
mblnRefertext1 = True
End Sub
Private Sub ReferText2_KeyPress(KeyAscii As Integer)
mblnRefertext2 = True
End Sub
'触发ReferText2_Click 事件标志
Private Sub ReferText2_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
mblnRefertext2 = True
End Sub
Private Sub tvwFilter_Collapse(ByVal Node As msComctlLib.Node)
Node.iMage = "closed"
If tvwFilter.SelectedItem = Node Then
tvwFilter_nodeClick tvwFilter.SelectedItem
End If
End Sub
'加子接点
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -