📄 frmpositionlist.frm
字号:
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.Resultset = 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
Dim intSortCol As Integer
'Dim intSortType As Integer
Me.MousePointer = vbHourglass
With msgTerm
'保存当前排序列
strOldSort = cboFindKind.Text '排序的列名
intSortCol = mclsList.SortCol '排序的列
strOldText = .TextMatrix(.Row, intSortCol) '排序的内容
'intSortType = mclsList.ListSet.ColumnOrderType(intSortCol) '排序的方式
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
'恢复以前排序列
' mclsList.ListSet.ColumnOrderType(intSortCol) = intSortType
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, 24, 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 PurchaseSale()
End Sub
'商品货位一览表
Private Sub PositionTable()
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 Position SET blnIsInActive = 0 WHERE strPositionCode 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.msgPosition
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 Position SET blnIsInActive = " & 1 & " WHERE strPositioncode='" & strCode & "' Or strPositionCode like '" & strCode & "-*'"
Else
strSql = "UPDATE Position SET blnIsInActive = " & 0 & " WHERE strPositioncode 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 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
Private Function UpDatePreFlage() As Boolean
Dim i As Integer
Dim intCol
' Dim intSortCol As Integer
'Dim intSortType As Integer
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
'intSortCol = mclsList.SortCol
'intSortType = mclsList.ListSet.ColumnOrderType(intSortCol)
strOldCol = cboFindKind.Text
strOldSort = txtFind.Text
strOldCode = CodePrefix(.TextMatrix(.Row, GetCol("货位编码")))
intCol = GetCol("末级标志")
If intCol > 0 Then
strSql = "select blnIsDetail from Position where strPositioncode='" & strOldCode & "'"
Set recTemplete = gclsBase.BaseDB.OpenRecordset(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
'mclsList.ListSet.ColumnOrderType(intSortCol) = intSortType
cboFindKind.Text = strOldCol
cboFindKind.Text = strOldCol
txtFind.Text = strOldSort
' .Redraw = True
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.UpdateControls
' mclsList.FlexGrid.Refresh
datTerm.Resultset.Close
'Set datTerm.Recordset = Nothing
' datTerm.Resultset.rdoColumns.Count
' mclsList.FlexGrid.Cols = 0
' mclsList.FlexGrid.Cols = datTerm.Resultset.rdoColumns.Count
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 + -