📄 frmclassitemlist.frm
字号:
UpdateMenuStatus
'初始化查找复合列表框
mclsList.InitcboFindKind
If chkShowAll.Value = 0 Then mclsList.DoShowAll False
End Sub
'栏目设置
Private Sub mclsMainControl_EditColumn()
Dim strFind As String
Dim strSort As String
Dim intCount As Integer
With msgTerm
strFind = .TextMatrix(.Row, mclsList.SortCol)
strSort = cboFindKind.Text
If mclsList.ListSet.ShowListSet(intViewID) Then
.Redraw = False
msgTerm.Cols = 0
Set datTerm.Resultset = GetList()
If Not datTerm.Resultset.EOF Then datTerm.Resultset.MoveLast
datTerm.Resultset.Close
'Set datTerm.Recordset = Nothing
mclsList.SetFlexGrid
UpdateMenuStatus
'初始化查找复合列表框
mclsList.InitcboFindKind
For intCount = 0 To cboFindKind.ListCount - 1
If cboFindKind.list(intCount) = strSort Then
txtFind.Text = strFind
Exit For
End If
Next intCount
If chkShowAll.Value = 0 Then mclsList.DoShowAll False
.Redraw = True
End If
End With
End Sub
'搜索
Private Sub mclsMainControl_EditSearch()
frmTreeFind.ShowFind
End Sub
'刷新
Private Sub mclsMainControl_ToolRefresh()
Dim strOldSort As String
Dim strOldText As String
Me.MousePointer = vbHourglass
With msgTerm
'保存当前排序列
strOldSort = cboFindKind.Text
strOldText = .TextMatrix(.Row, mclsList.SortCol)
mclsList.SaveListColWidth
.Redraw = False
'刷新列表记录
.Cols = 0
Set datTerm.Resultset = GetList()
If Not datTerm.Resultset.EOF Then datTerm.Resultset.MoveLast
datTerm.Resultset.Close
'Set datTerm.Resultset = Nothing
mclsList.SetFlexGrid
'恢复以前排序列
cboFindKind.Text = strOldSort
.Redraw = False
If .Rows > 1 Then
txtFind.Text = strOldText
End If
If chkShowAll.Value = 0 Then mclsList.DoShowAll False
'更新菜单状态
UpdateMenuStatus
.Redraw = True
End With
Me.MousePointer = vbDefault
End Sub
'打印
Private Sub mclsMainControl_FilePrint()
Dim myPrintclass As PrintClass
Set myPrintclass = New PrintClass
myPrintclass.PrintList gclsBase.BaseDB, mclsList.FlexGrid, 20, Me.Caption & "," & gclsBase.BaseName & "," & gclsBase.OperatorName
End Sub
'响应“编辑”菜单
Private Sub mclsMainControl_ListEditMenu(ByVal intIndex As Integer)
Select Case intIndex
Case 0:
mclsMainControl_EditEdit
Case 1:
mclsMainControl_EditNew
Case 2:
mclsMainControl_EditDel
Case 4:
mclsMainControl_EditInActive
Case 5:
mclsMainControl_EditShowAll
Case 7:
mclsMainControl_EditUse
Case 8
mclsMainControl_EditSearch
Case 9:
mclsMainControl_EditNotepad
Case 11:
mclsMainControl_EditFilter
Case 12:
mclsMainControl_EditColumn
Case 14:
mclsMainControl_ToolRefresh
Case 15:
mclsMainControl_FilePrint
End Select
End Sub
'
' 编辑菜单
'
Private Sub MakeListEditMenu()
Dim intCnt As Integer
With frmMain
For intCnt = .mnuListEditMenu.Count - 1 To 1 Step -1
Unload .mnuListEditMenu(intCnt)
Next
Utility.CloneMenu .mnuEditEdit, .mnuListEditMenu(0)
Load .mnuListEditMenu(1)
Utility.CloneMenu .mnuEditNew, .mnuListEditMenu(1)
Load .mnuListEditMenu(2)
Utility.CloneMenu .mnuEditDel, .mnuListEditMenu(2)
.mnuListEditMenu(2).Caption = "删除(&D)"
Load .mnuListEditMenu(3)
Utility.CloneMenu .mnuEditBar2, .mnuListEditMenu(3)
Load .mnuListEditMenu(4)
Utility.CloneMenu .mnuEditInActive, .mnuListEditMenu(4)
.mnuListEditMenu(4).Caption = "停用(&H)"
Load .mnuListEditMenu(5)
Utility.CloneMenu .mnuEditShowAll, .mnuListEditMenu(5)
Load .mnuListEditMenu(6)
Utility.CloneMenu .mnuEditBar2, .mnuListEditMenu(6)
Load .mnuListEditMenu(7)
Utility.CloneMenu .mnuEditUse, .mnuListEditMenu(7)
Load .mnuListEditMenu(8)
Utility.CloneMenu .mnuEditSearch, .mnuListEditMenu(8)
Load .mnuListEditMenu(9)
Utility.CloneMenu .mnuEditNotepad, .mnuListEditMenu(9)
Load .mnuListEditMenu(10)
Utility.CloneMenu .mnuEditBar2, .mnuListEditMenu(10)
Load .mnuListEditMenu(11)
Utility.CloneMenu .mnuEditFilter, .mnuListEditMenu(11)
Load .mnuListEditMenu(12)
Utility.CloneMenu .mnuEditColumn, .mnuListEditMenu(12)
Load .mnuListEditMenu(13)
Utility.CloneMenu .mnuEditBar2, .mnuListEditMenu(13)
Load .mnuListEditMenu(14)
Utility.CloneMenu .mnuToolRefresh, .mnuListEditMenu(14)
Load .mnuListEditMenu(15)
Utility.CloneMenu .mnuFilePrint, .mnuListEditMenu(15)
End With
End Sub
'
' 报表菜单
'
Private Sub MakeListReportMenu()
Dim intCnt As Integer
With frmMain
For intCnt = .mnuListReportMenu.Count - 1 To 1 Step -1
Unload .mnuListReportMenu(intCnt)
Next
' Utility.CloneMenu .mnuReportQuick, .mnuListReportMenu(0)
' Load .mnuListReportMenu(1)
' Utility.CloneMenu .mnuEditBar2, .mnuListReportMenu(1)
'
' Load .mnuListReportMenu(2)
.mnuListReportMenu(0).Caption = "项目核算一览表(&T)"
.mnuListReportMenu(0).Enabled = True
.mnuListReportMenu(0).Visible = True
End With
End Sub
'“钩子”事件
Private Sub mclsSubClass_WndProc(Msg As Long, wParam As Long, lParam As Long, Result As Long)
'“钩子”事件处理
mclsList.HookProc Msg, wParam, lParam, mclsSubClass
End Sub
'记帐凭照
Private Sub AccountVoucher()
End Sub
'项目核算一览表
Public Sub ClassTable()
Report.ShowListReport 304, 324
End Sub
Private Sub CeaseLower()
Dim Flage As String
Dim Code As String
Dim strOldSortCol As String
Dim strOldSortText As String
Dim strSql As String
Dim intSortCol As Integer
Dim blnreStore As Boolean
Dim intResponse As String
Dim blnRemark As Boolean
Dim intOldRow As Integer
blnreStore = False
With mclsList.FlexGrid
strOldSortCol = cboFindKind.Text
strOldSortText = .TextMatrix(.Row, mclsList.SortCol)
intOldRow = .Row
blnRemark = TermIsInActive
For intSortCol = 2 To .FixedCols - 1
If .TextMatrix(0, intSortCol) = "项目编码" Then
Code = .TextMatrix(.Row, intSortCol)
Exit For
End If
Next intSortCol
If mclsList.ListSet.ColumnOrderType(intSortCol - 1) <> 1 Then
cboFindKind.Text = "项目编码" '排序
txtFind.Text = Code
blnreStore = True
End If
Dim intNewRow As Integer
If UpdateIsActive(Code, Not blnRemark) Then
If chkShowAll.Value Then
If .TextMatrix(.Row, 1) = "" Then
.TextMatrix(.Row, 1) = "√"
Else
.TextMatrix(.Row, 1) = ""
End If
Else
.TextMatrix(.Row, 1) = "√"
.RowHeight(.Row) = 0
' mclsList.SetFlexRow
End If
Flage = .TextMatrix(.Row, 1)
If Flage <> "" Then
intNewRow = .Row + 1
Code = Code & "-"
Do
If intNewRow > .Rows - 1 Then Exit Do
If InStr(1, .TextMatrix(intNewRow, intSortCol), Code) = 0 Then
Exit Do
Else
.TextMatrix(intNewRow, 1) = Flage
If chkShowAll.Value <> 1 Then .RowHeight(intNewRow) = 0
intNewRow = intNewRow + 1
End If
Loop
Else
Dim i As Integer
.TextMatrix(.Row, 1) = Flage
i = 1
If .Row < .Rows - 1 Then
If .TextMatrix(.Row + 1, intSortCol) Like .TextMatrix(.Row, intSortCol) & "-*" Then
intResponse = ShowMsg(Me.hwnd, "是否取消所有下级的停用标记", vbYesNo, Me.Caption)
If intResponse = vbYes Then
strSql = "UPDATE Class2 SET blnIsInActive = 0 WHERE strClassCode like '" & .TextMatrix(.Row, intSortCol) & "-*'"
If gclsBase.ExecSQL(strSql) Then
Do Until Not .TextMatrix(.Row + i, intSortCol) Like .TextMatrix(.Row, intSortCol) & "-*"
.TextMatrix(.Row + i, 1) = Flage
If .Row + i = .Rows - 1 Then
Exit Do
Else
i = i + 1
End If
Loop
End If
End If
End If
End If
If CodePrefix(.TextMatrix(.Row, intSortCol)) <> "" Then
Do Until CodePrefix(.TextMatrix(.Row, intSortCol)) = ""
' If .RowHeight(.Row) > 0 Then
txtFind.Text = CodePrefix(.TextMatrix(.Row, intSortCol))
.TextMatrix(.Row, 1) = Flage
Loop
End If
End If
If chkShowAll.Value <> 1 Then mclsList.SetFlexRow
gclsSys.SendMessage CStr(Me.hwnd), Message.msgClass2
End If
'恢复旧的排序
If blnreStore Then
cboFindKind.Text = strOldSortCol
txtFind.Text = strOldSortText
End If
End With
End Sub
Private Function UpdateIsActive(ByVal strCode As String, ByVal blnIsInActive As Boolean) As Boolean
Dim strSql As String
If blnIsInActive Then
strSql = "UPDATE Class2 SET blnIsInActive = " & 1 & " WHERE strClasscode='" & strCode & "' Or strClassCode like '" & strCode & "-*'"
Else
strSql = "UPDATE Class2 SET blnIsInActive = " & 0 & " WHERE strClasscode in ('" & strCode
Do Until CodePrefix(strCode) = ""
strCode = CodePrefix(strCode)
strSql = strSql & "','" & strCode
Loop
strSql = strSql & "')"
End If
UpdateIsActive = gclsBase.ExecSQL(strSql)
End Function
Private Function CurrCodeName() As String
Dim strCode As String
Dim strName As String
Dim i As Integer
With mclsList.FlexGrid
If .Row > 0 Then
For i = 0 To mclsList.ListSet.FixColumns - 1
If .TextMatrix(0, 2 + i) = "项目编码" Then
strCode = .TextMatrix(.Row, 2 + i)
ElseIf .TextMatrix(0, i + 2) = "项目名称" Then
strName = .TextMatrix(.Row, 2 + i)
End If
Next
End If
End With
CurrCodeName = Trim(strCode) & " " & Trim(strName)
End Function
Private Function UpDatePreFlage() As Boolean
Dim i As Integer
Dim intCol
Dim strOldSort As String
Dim strOldCol As String
Dim strSql As String
Dim recTemplete As rdoResultset
Dim strOldCode As String
With mclsList.FlexGrid
'.Redraw = False
strOldCol = cboFindKind.Text
strOldSort = txtFind.Text
strOldCode = CodePrefix(.TextMatrix(.Row, GetCol("项目编码")))
intCol = GetCol("末级标志")
If intCol > 0 Then
strSql = "select blnIsDetail from account where straccountcode='" & strOldCode & "'"
Set recTemplete = gclsBase.BaseDB.OpenResultset(strSql, dbOpenForwardOnly)
If Not recTemplete.EOF Then
If recTemplete!blnIsDetail Then
If mclsList.ListSet.ColumnOrderType(GetCol("项目编码") - 1) <> 1 Then cboFindKind.Text = "项目编码"
txtFind.Text = strOldCode 'CodePrefix(.TextMatrix(.Row, GetCol("科目编码")))
.TextMatrix(.Row, intCol) = "是"
End If
End If
recTemplete.Close
End If
cboFindKind.Text = strOldCol
cboFindKind.Text = strOldCol
txtFind.Text = strOldSort
' .Redraw = True
End With
End Function
Private Function GetCol(ByVal strColName As String) As Integer
Dim i As Integer
With mclsList.FlexGrid
For i = 1 To .Cols - 1
If .TextMatrix(0, i) = strColName Then
GetCol = i
Exit For
End If
Next
End With
End Function
Public Sub BindingResultset()
Me.Hide
Set datTerm.Resultset = GetList()
If Not datTerm.Resultset.EOF Then datTerm.Resultset.MoveLast
datTerm.Refresh
datTerm.Resultset.Close
'Set datTerm.Recordset = Nothing
mclsList.SetFlexGrid
mclsList.InitcboFindKind
mclsList.FlexNoChange = False
mclsList.FindNoChange = False
With msgTerm
If .Rows > 1 Then msgTerm.Row = 1
.col = 0
.ColSel = .Cols - 1
End With
Debug.Print "Load End: ", Timer
mclsList.DoShowAll False
UpdateMenuStatus
Me.Show
Me.ZOrder 0
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -