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

📄 frmagewizard.frm

📁 金算盘软件代码
💻 FRM
📖 第 1 页 / 共 5 页
字号:
    End If
    
    If Not mblnPeriodInsertFinish Then
        strMsg = "帐龄分析区间设置未完成,请设置帐龄分析区间。"
        strTitle = "错误操作:参数不足"
        ShowMsg Me.hWnd, strMsg, vbOKOnly + vbCritical, strTitle
        tabQueryWizard.Tab = 2
        msgPeriod.SetFocus
        Exit Sub
    End If
    
'    If optSumed1.Value Then                       '只显示汇总数据
     If mclsAgeWizard.IsGrouped = True Then
        With mclsAgeWizard
'            .IsGrouped = True
            For i = 0 To .ColNumber - 1
                If .ColIsChoosed(i) Then
                    If InStr(.colDesc(i), "额") = 0 And InStr(.colDesc(i), "天数") = 0 Then .ColType(i) = 5
                    blnHaveSumColumn = True
                End If
            Next i
        End With
        
        If Not blnHaveSumColumn Then
            strMsg = "汇总分析条件不充分,请选择单位,部门等分组栏目。"
            strTitle = "错误操作:参数不足"
            ShowMsg Me.hWnd, strMsg, vbOKOnly + vbCritical, strTitle
            tabQueryWizard.Tab = 3
            lstSelectCols.SetFocus
            If lstSelectCols.ListCount > 0 Then
                lstSelectCols.ListIndex = 0
            End If
            Exit Sub
        End If
'    Else
'        mclsAgeWizard.IsGrouped = False
    End If
    
'    PeriodRefresh                           '刷新区间
    
'    If mclsAgeWizard.IsNewWizard Then mclsAgeWizard.AddReport       '是新建报表则在 Report 中添加一条记录
    
    mclsFilter.KeyID = mclsAgeWizard.AgeReportID            '保存查询条件
'    mclsFilter.UpdateCond
        Dim IndexRow As Integer
    
    With msgPeriod
        For i = 0 To .Rows - 2
            If IsNumeric(.TextMatrix(i + 1, 1)) Then
                IndexRow = IndexRow + 1
            End If
        Next
        If Not (IndexRow = 1 And IsNumeric(.TextMatrix(1, 1)) And Trim(.TextMatrix(1, 1)) <> "1") Then
            mclsAgeWizard.PeriodNumber = IndexRow + 1 ' .Rows  ' intCount           '将区间写入类模块
            mclsAgeWizard.PeriodName(0) = "未过期"                   '第一个区间默认为 "未过期"
            mclsAgeWizard.PeriodDay(0) = -9999
            IndexRow = 0
            For i = 0 To .Rows - 2 ' intCount - 1
                If IsNumeric(.TextMatrix(i + 1, 1)) Then
                    mclsAgeWizard.PeriodName(IndexRow + 1) = .TextMatrix(i + 1, 0)
                    mclsAgeWizard.PeriodDay(IndexRow + 1) = CInt(.TextMatrix(i + 1, 1))
                    IndexRow = IndexRow + 1
                End If
            Next i
         Else                               '只有一个分析区间时,增加一个区间
            mclsAgeWizard.PeriodNumber = 3 ' .Rows  ' intCount           '将区间写入类模块
            mclsAgeWizard.PeriodName(0) = "未过期"                   '第一个区间默认为 "未过期"
            mclsAgeWizard.PeriodDay(0) = -9999
            If .TextMatrix(1, 1) = 2 Then
                mclsAgeWizard.PeriodName(1) = "过期1天"
            Else
                mclsAgeWizard.PeriodName(1) = "过期1~" & .TextMatrix(1, 1) - 1 & "天"
            End If
            mclsAgeWizard.PeriodDay(1) = 1
            mclsAgeWizard.PeriodName(2) = "过期" & .TextMatrix(1, 1) & "天以上"
            mclsAgeWizard.PeriodDay(2) = .TextMatrix(1, 1)
         End If
    End With
    mclsAgeWizard.AgePre = 2
    mclsAgeWizard.strWhere = mclsFilter.GetCond()
    mblnOk = True
    Unload Me                       '退出
    
End Sub

'下一步
Private Sub cmdAgeNext_Click()
    With tabQueryWizard
        
        .Tab = .Tab + 1
        CmdReset.Visible = False
        If .Tab = 4 Then
            cmdAgeFinish.Enabled = True
            cmdAgeNext.Enabled = False
        Else
            If .Tab = 2 Then
                msgPeriod.SetFocus
            ElseIf .Tab = 1 Then
                CmdReset.Visible = True
            End If
            cmdAgeFinish.Enabled = False
            cmdAgeNext.Enabled = True
        End If
        cmdAgePrev.Enabled = True
    End With
    mblnEnterClick = False
    txtInput_LostFocus
End Sub

'上一步
Private Sub cmdAgePrev_Click()
    With tabQueryWizard
        
        .Tab = .Tab - 1
        CmdReset.Visible = False
        If .Tab = 0 Then
            cmdAgePrev.Enabled = False
            txtAgeName.SetFocus
        Else
            If .Tab = 2 Then
                msgPeriod.SetFocus
            ElseIf .Tab = 1 Then
                CmdReset.Visible = True
            End If
            cmdAgePrev.Enabled = True
        End If
        cmdAgeNext.Enabled = True
        cmdAgeFinish.Enabled = False
    End With
    mblnEnterClick = False
    txtInput_LostFocus
End Sub

'检查是否固定栏目
Private Function ColIsFixed(ByVal intIndex As Integer) As Boolean
    Dim strStr, strFixed As String
    Dim intI As Integer
    
    strStr = lstSelectCols.list(intIndex)
    strFixed = GetNoXString(strStr, 7, String(20, " "))
    
    If UCase(strFixed) = UCase("true") Then
        ColIsFixed = True
    Else
        ColIsFixed = False
    End If
    
End Function

'删除所有已选栏目
Private Sub cmdDelAllColumns_Click()
    Dim i As Integer
    Dim intCount As Integer
    
    intCount = lstSelectCols.ListCount
    
    If intCount > 0 Then
        For i = 1 To intCount
            If Not ColIsFixed(i - 1) Then
                lstChooseCols.AddItem lstSelectCols.list(i - 1)
            End If
        Next i
    End If
    
    If intCount > 0 Then
        For i = 1 To intCount
            lstSelectCols.ListIndex = intCount - i
            If Not ColIsFixed(lstSelectCols.ListIndex) Then
                lstSelectCols.RemoveItem (lstSelectCols.ListIndex)
            End If
        Next i
    End If
    
    cmdDelAllColumns.Enabled = False
    If lstSelectCols.ListIndex >= 0 Then
        cmdDelColumn.Enabled = True
        chkGroup.Enabled = True
        If InStr(lstSelectCols.Text, "金额") = 0 And InStr(lstSelectCols.Text, "天数") = 0 Then
            lblSort.Enabled = True
            cboSort.Enabled = True
        Else
            lblSort.Enabled = False
            cboSort.Enabled = False
        End If
    Else
        cmdDelColumn.Enabled = False
        chkGroup.Enabled = False
        cboSort.Enabled = False
        lblSort.Enabled = False
    End If
    
    lstChooseCols.ListIndex = 0
    If lstChooseCols.ListIndex < 0 Then
        cmdAddColumn.Enabled = False
    Else
        cmdAddColumn.Enabled = True
    End If
    cmdAddAllColumns.Enabled = True
    AdjustDataLimit
End Sub

'删除选定已选栏目
Private Sub cmdDelColumn_Click()
    Dim intIndex As Integer
    With lstSelectCols
        If .ListCount > 0 Then
            If (.ListIndex >= 0) And (Not ColIsFixed(.ListIndex)) Then
                lstChooseCols.AddItem .list(.ListIndex)
                intIndex = .ListIndex
                .RemoveItem (.ListIndex)
                lstChooseCols.ListIndex = lstChooseCols.ListCount - 1
            Else
                ShowMsg Me.hWnd, "该栏目是固定栏目,不可删除。", vbOKOnly + vbCritical, "操作错误"
            End If
            
            If intIndex < .ListCount Then
                .ListIndex = intIndex
            ElseIf intIndex = .ListCount Then
                If .ListCount > 0 Then
                    .ListIndex = .ListCount - 1
                End If
            End If
            
        End If
    End With
    
    If lstSelectCols.ListIndex < 0 Then
        cmdDelColumn.Enabled = False
        chkGroup.Enabled = False
        cboSort.Enabled = False
        lblSort.Enabled = False
    Else
        cmdDelColumn.Enabled = True
        chkGroup.Enabled = True
        If InStr(lstSelectCols.Text, "金额") = 0 And InStr(lstSelectCols.Text, "天数") = 0 Then
            lblSort.Enabled = True
            cboSort.Enabled = True
        Else
            lblSort.Enabled = False
            cboSort.Enabled = False
        End If
    End If
    
    If lstSelectCols.ListCount <= 0 Then
        cmdDelAllColumns.Enabled = False
    Else
        cmdDelAllColumns.Enabled = True
    End If
    
    If lstChooseCols.ListIndex >= 0 Then
        cmdAddColumn.Enabled = True
    Else
        cmdAddColumn.Enabled = False
    End If
    
    cmdAddAllColumns.Enabled = True
    AdjustDataLimit
End Sub

'调用   表头表尾设置窗体
'Private Sub cmdHeadTail_Click()
''    Dim frm As New frmCustomerField
''    frm.SetHeadTail mclsAgeWizard
''    Set frm = Nothing
'End Sub

'删除区间中所选定的行(项)
Private Sub cmdPeriodDelete_Click()
    With msgPeriod
        Dim Index As Long
        If .Rows > 1 And .RowSel > 0 And .ColSel = 1 Then
            For Index = .RowSel To .Rows - 2
                .TextMatrix(Index, 1) = .TextMatrix(Index + 1, 1)
            Next
            .Rows = .Rows - 1
            For Index = 1 To .Rows - 1
                If Index = .Rows - 1 Then
                    .TextMatrix(Index, 0) = "过期" & .TextMatrix(Index, 1) & "天以上"
                Else
                    .TextMatrix(Index, 0) = "过期" & .TextMatrix(Index, 1) & "~" & .TextMatrix(Index + 1, 1) - 1 & "天"
                End If
            Next
'            .TextMatrix(.RowSel, .ColSel) = "Del"
            mintPeriodRow = .RowSel
            
'            PeriodRefresh
'            .Rows = msgPeriod.Rows - 1
'            .ColSel = 1
            If mintPeriodRow < .Rows Then
                .RowSel = mintPeriodRow
            Else
                mintPeriodRow = mintPeriodRow - 1
                .RowSel = mintPeriodRow
            End If
        End If
        
        If msgPeriod.Rows = 1 Then
            cmdPeriodDelete.Enabled = False
        End If
        
    End With
End Sub

'在所选定的行(项)上面增加一行区间(项)
Private Sub cmdPeriodInsert_Click()
    Dim intCount, intIndex As Integer
    
    intCount = msgPeriod.Rows
    mblnPeriodInsertFinish = False
    With msgPeriod
        If .RowSel < 0 Or .ColSel <> 1 Then
            .RowSel = 0
            .ColSel = 1
            .SetFocus
            Exit Sub
        End If
        .Rows = .Rows + 1
        .ColAlignment(0) = flexAlignLeftCenter
        .ColAlignment(1) = flexAlignRightCenter
        For intIndex = .Rows - 1 To .RowSel + 2 Step -1 ' .RowSel + 2 Step -1
            .TextMatrix(intIndex, 0) = .TextMatrix(intIndex - 1, 0)
            .TextMatrix(intIndex, 1) = .TextMatrix(intIndex - 1, 1)
        Next intIndex
        .RowSel = IIf(.Rows <> 2, .RowSel + 1, 1)
        .TextMatrix(.RowSel, 0) = ""
        .TextMatrix(.RowSel, 1) = ""
    End With
    cmdPeriodDelete.Enabled = True
    cmdPeriodInsert.Enabled = False
    msgPeriod_DblClick
    mblnPeriodInsert = True
End Sub

'栏目顺序
Private Sub cmdSerial_Click(Index As Integer)
    Dim S1 As String
    
    Select Case Index
        Case 0:
            With lstSelectCols
                If .ListIndex > 0 Then
                    S1 = .list(.ListIndex)
                    .list(.ListIndex) = .list(.ListIndex - 1)
                    .list(.ListIndex - 1) = S1
                    .ListIndex = .ListIndex - 1
                    If .ListIndex = 0 Then
                        cmdSerial(0).Enabled = False
                    End If
                End If
            End With

        Case 1:
            With lstSelectCols
                If .ListIndex < .ListCount And .ListIndex >= 0 Then
                    S1 = .list(.ListIndex)
                    .list(.ListIndex) = .list(.ListIndex + 1)
                    .list(.ListIndex + 1) = S1
                    .ListIndex = .ListIndex + 1
                    If .ListIndex = .ListCount - 1 Then
                        cmdSerial(1).Enabled = False
                    End If
                End If
            End With
                
    End Select
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -