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

📄 frmpositionlist.frm

📁 金算盘软件代码
💻 FRM
📖 第 1 页 / 共 3 页
字号:
        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 + -