i-

来自「VB开发的ERP系统」· 代码 · 共 1,236 行 · 第 1/5 页

TXT
1,236
字号
            End If
            '初始化各种值
            Bln_Empty = True
            Dbl_Qcyete = IIf(IsNull(Rec_Query.Fields("Qcyehj")), 0, Rec_Query.Fields("Qcyehj"))
            Dbl_Qcslte = IIf(IsNull(Rec_Query.Fields("Qcslhj")), 0, Rec_Query.Fields("Qcslhj"))
            Dbl_Qcwbte = IIf(IsNull(Rec_Query.Fields("Qcwbhj")), 0, Rec_Query.Fields("Qcwbhj"))
            
            Dbl_Jejfhj = IIf(IsNull(Rec_Query.Fields("Mjjehj")), 0, Rec_Query.Fields("Mjjehj"))
            Dbl_Jedfhj = IIf(IsNull(Rec_Query.Fields("Mdjehj")), 0, Rec_Query.Fields("Mdjehj"))
            Dbl_Sljfhj = IIf(IsNull(Rec_Query.Fields("Mjslhj")), 0, Rec_Query.Fields("Mjslhj"))
            Dbl_Sldfhj = IIf(IsNull(Rec_Query.Fields("Mdslhj")), 0, Rec_Query.Fields("Mdslhj"))
            Dbl_Wbjfhj = IIf(IsNull(Rec_Query.Fields("Mjwbhj")), 0, Rec_Query.Fields("Mjwbhj"))
            Dbl_Wbdfhj = IIf(IsNull(Rec_Query.Fields("Mdwbhj")), 0, Rec_Query.Fields("Mdwbhj"))
            
            '[Begin zjz 2001-06-16 修改无累计数据
            Dbl_Jejflj = IIf(IsNull(Rec_Query.Fields("Byjfljjehj")), 0, Rec_Query.Fields("Byjfljjehj"))
            Dbl_Jedflj = IIf(IsNull(Rec_Query.Fields("Bydfljjehj")), 0, Rec_Query.Fields("Bydfljjehj"))
            Dbl_Sljflj = IIf(IsNull(Rec_Query.Fields("Byjfljslhj")), 0, Rec_Query.Fields("Byjfljslhj"))
            Dbl_Sldflj = IIf(IsNull(Rec_Query.Fields("Bydfljslhj")), 0, Rec_Query.Fields("Bydfljslhj"))
            Dbl_Wbjflj = IIf(IsNull(Rec_Query.Fields("Byjfljwbhj")), 0, Rec_Query.Fields("Byjfljwbhj"))
            Dbl_Wbdflj = IIf(IsNull(Rec_Query.Fields("Bydfljwbhj")), 0, Rec_Query.Fields("Bydfljwbhj"))
            'End zjz]
            
            Dbl_Qmyete = Dbl_Qcyete + Dbl_Jejfhj - Dbl_Jedfhj
            Dbl_Qmslte = Dbl_Qcslte + Dbl_Sljfhj - Dbl_Sldfhj
            Dbl_Qmwbte = Dbl_Qcwbte + Dbl_Wbjfhj - Dbl_Wbdfhj
            
            Str_Ccode = Trim(.Fields("Ccode"))
            Str_CclassIndex = Trim(.Fields("Item_Index")) & ""
            
            '添加科目类别和科目编码(目的为了排序)
            CxbbGrid.TextMatrix(Jsqte, 0) = Str_CclassIndex + Str_Ccode
            CxbbGrid.TextMatrix(Jsqte, 1) = Str_CclassIndex
            CxbbGrid.TextMatrix(Jsqte, 2) = .Fields("CodeLevel")
            
            CxbbGrid.TextMatrix(Jsqte, Sydz("001", GridStr(), Szzls)) = Trim(.Fields("Ccode"))              '科目编码
            CxbbGrid.TextMatrix(Jsqte, Sydz("002", GridStr(), Szzls)) = Trim(.Fields("Cname") & "")         '科目名称
            
            '将期初数据写入网格
            If Dbl_Qcyete = 0 Then
                CxbbGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)) = "平"     '期初方向
                If Rec_Query.Fields("EndFlag") And Dbl_Qcslte <> 0 Then
                    CxbbGrid.TextMatrix(Jsqte, Sydz("006", GridStr(), Szzls)) = Dbl_Qcslte
                End If
                If Rec_Query.Fields("EndFlag") And Rec_Query.Fields("ForeignFlag") And Dbl_Qcwbte <> 0 Then
                    CxbbGrid.TextMatrix(Jsqte, Sydz("007", GridStr(), Szzls)) = Dbl_Qcwbte
                End If
            Else
                If Dbl_Qcyete > 0 Then
                    CxbbGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)) = "借"
                    CxbbGrid.TextMatrix(Jsqte, Sydz("004", GridStr(), Szzls)) = Dbl_Qcyete
                    CxbbGrid.TextMatrix(Jsqte, Sydz("008", GridStr(), Szzls)) = Dbl_Qcyete
                    If Rec_Query.Fields("EndFlag") And Dbl_Qcslte <> 0 Then
                        CxbbGrid.TextMatrix(Jsqte, Sydz("006", GridStr(), Szzls)) = Dbl_Qcslte
                    End If
                    If Rec_Query.Fields("EndFlag") And Rec_Query.Fields("ForeignFlag") And Dbl_Qcwbte <> 0 Then
                        CxbbGrid.TextMatrix(Jsqte, Sydz("007", GridStr(), Szzls)) = Dbl_Qcwbte
                    End If
                Else
                    CxbbGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)) = "贷"
                    CxbbGrid.TextMatrix(Jsqte, Sydz("005", GridStr(), Szzls)) = -Dbl_Qcyete
                    CxbbGrid.TextMatrix(Jsqte, Sydz("008", GridStr(), Szzls)) = -Dbl_Qcyete
                    If Rec_Query.Fields("EndFlag") And Dbl_Qcslte <> 0 Then
                        CxbbGrid.TextMatrix(Jsqte, Sydz("006", GridStr(), Szzls)) = -Dbl_Qcslte
                    End If
                    If Rec_Query.Fields("EndFlag") And Rec_Query.Fields("ForeignFlag") And Dbl_Qcwbte <> 0 Then
                        CxbbGrid.TextMatrix(Jsqte, Sydz("007", GridStr(), Szzls)) = -Dbl_Qcwbte
                    End If
                End If
            End If
            '将期间合计数据写入网格
            If Dbl_Jejfhj <> 0 Then
                CxbbGrid.TextMatrix(Jsqte, Sydz("009", GridStr(), Szzls)) = Dbl_Jejfhj       '本期发生.借方
                CxbbGrid.TextMatrix(Jsqte, Sydz("013", GridStr(), Szzls)) = Dbl_Jejfhj       '本期借方发生.金额
            End If
            If Dbl_Jedfhj <> 0 Then
                CxbbGrid.TextMatrix(Jsqte, Sydz("010", GridStr(), Szzls)) = Dbl_Jedfhj       '本期发生.贷方
                CxbbGrid.TextMatrix(Jsqte, Sydz("016", GridStr(), Szzls)) = Dbl_Jedfhj       '本期贷方发生.金额
            End If
            '仅有末级科目才显示数量,外币
            If Rec_Query.Fields("EndFlag") Then
                If Dbl_Sljfhj <> 0 Then
                    CxbbGrid.TextMatrix(Jsqte, Sydz("011", GridStr(), Szzls)) = Dbl_Sljfhj   '本期借方发生.数量
                End If
                If Dbl_Sldfhj <> 0 Then
                    CxbbGrid.TextMatrix(Jsqte, Sydz("014", GridStr(), Szzls)) = Dbl_Sldfhj   '本期贷方发生.数量
                End If
            End If
            If Rec_Query.Fields("EndFlag") And Rec_Query.Fields("ForeignFlag") Then
                If Dbl_Wbjfhj <> 0 Then
                    CxbbGrid.TextMatrix(Jsqte, Sydz("012", GridStr(), Szzls)) = Dbl_Wbjfhj   '本期借方发生.外币
                End If
                If Dbl_Wbdfhj <> 0 Then
                    CxbbGrid.TextMatrix(Jsqte, Sydz("015", GridStr(), Szzls)) = Dbl_Wbdfhj   '本期贷方发生.外币
                End If
            End If
            '将截止累计数据写入网格
            If Dbl_Jejflj <> 0 Then
                CxbbGrid.TextMatrix(Jsqte, Sydz("017", GridStr(), Szzls)) = Dbl_Jejflj       '累计发生.借方
                CxbbGrid.TextMatrix(Jsqte, Sydz("021", GridStr(), Szzls)) = Dbl_Jejflj       '累计借方发生.金额
            End If
            If Dbl_Jedflj <> 0 Then
                CxbbGrid.TextMatrix(Jsqte, Sydz("018", GridStr(), Szzls)) = Dbl_Jedflj       '累计发生.贷方
                CxbbGrid.TextMatrix(Jsqte, Sydz("024", GridStr(), Szzls)) = Dbl_Jedflj       '累计贷方发生.金额
            End If
            '仅有末级科目才显示数量,外币
            If Rec_Query.Fields("EndFlag") Then
                If Dbl_Sljflj <> 0 Then
                    CxbbGrid.TextMatrix(Jsqte, Sydz("019", GridStr(), Szzls)) = Dbl_Sljflj   '累计借方发生.数量
                End If
                If Dbl_Sldflj <> 0 Then
                    CxbbGrid.TextMatrix(Jsqte, Sydz("022", GridStr(), Szzls)) = Dbl_Sldflj   '累计贷方发生.数量
                End If
            End If
            If Rec_Query.Fields("EndFlag") And Rec_Query.Fields("ForeignFlag") Then
                If Dbl_Wbjflj <> 0 Then
                    CxbbGrid.TextMatrix(Jsqte, Sydz("020", GridStr(), Szzls)) = Dbl_Wbjflj   '累计借方发生.外币
                End If
                If Dbl_Wbdflj <> 0 Then
                    CxbbGrid.TextMatrix(Jsqte, Sydz("023", GridStr(), Szzls)) = Dbl_Wbdflj   '累计贷方发生.外币
                End If
            End If
            '将期末数据写入网格
            If Dbl_Qmyete = 0 Then
                CxbbGrid.TextMatrix(Jsqte, Sydz("025", GridStr(), Szzls)) = "平"     '期初方向
                If Rec_Query.Fields("EndFlag") And Dbl_Qmslte <> 0 Then
                    CxbbGrid.TextMatrix(Jsqte, Sydz("028", GridStr(), Szzls)) = Dbl_Qmslte
                End If
                If Rec_Query.Fields("EndFlag") And Dbl_Qmwbte <> 0 Then
                    CxbbGrid.TextMatrix(Jsqte, Sydz("029", GridStr(), Szzls)) = Dbl_Qmwbte
                End If
            Else
                If Dbl_Qmyete > 0 Then
                    CxbbGrid.TextMatrix(Jsqte, Sydz("025", GridStr(), Szzls)) = "借"
                    CxbbGrid.TextMatrix(Jsqte, Sydz("026", GridStr(), Szzls)) = Dbl_Qmyete
                    CxbbGrid.TextMatrix(Jsqte, Sydz("030", GridStr(), Szzls)) = Dbl_Qmyete
                    If Rec_Query.Fields("EndFlag") And Dbl_Qmslte <> 0 Then
                        CxbbGrid.TextMatrix(Jsqte, Sydz("028", GridStr(), Szzls)) = Dbl_Qmslte
                    End If
                    If Rec_Query.Fields("EndFlag") And Rec_Query.Fields("ForeignFlag") And Dbl_Qmwbte <> 0 Then
                        CxbbGrid.TextMatrix(Jsqte, Sydz("029", GridStr(), Szzls)) = Dbl_Qmwbte
                    End If
                Else
                    CxbbGrid.TextMatrix(Jsqte, Sydz("025", GridStr(), Szzls)) = "贷"
                    CxbbGrid.TextMatrix(Jsqte, Sydz("027", GridStr(), Szzls)) = -Dbl_Qmyete
                    CxbbGrid.TextMatrix(Jsqte, Sydz("030", GridStr(), Szzls)) = -Dbl_Qmyete
                    If Rec_Query.Fields("EndFlag") And Dbl_Qmslte <> 0 Then
                        CxbbGrid.TextMatrix(Jsqte, Sydz("028", GridStr(), Szzls)) = -Dbl_Qmslte
                    End If
                    If Rec_Query.Fields("EndFlag") And Rec_Query.Fields("ForeignFlag") And Dbl_Qmwbte <> 0 Then
                        CxbbGrid.TextMatrix(Jsqte, Sydz("029", GridStr(), Szzls)) = -Dbl_Qmwbte
                    End If
                End If
            End If
            CxbbGrid.RowHeight(Jsqte) = Sjhgd
            '如果用户要求删除为零数据
            If Bln_RemoveEmpty Then
                If Dbl_Qcyete <> 0 Or Dbl_Qcslte <> 0 Or Dbl_Qcwbte <> 0 Then
                    Bln_Empty = False
                End If
                If Dbl_Jejfhj <> 0 Or Dbl_Jedfhj <> 0 Or Dbl_Sljfhj <> 0 Or Dbl_Sldfhj <> 0 Or Dbl_Wbjfhj <> 0 Or Dbl_Wbdfhj <> 0 Then
                    Bln_Empty = False
                End If
                If Dbl_Jejflj <> 0 Or Dbl_Jedflj <> 0 Or Dbl_Sljflj <> 0 Or Dbl_Sldflj <> 0 Or Dbl_Wbjflj <> 0 Or Dbl_Wbdflj <> 0 Then
                    Bln_Empty = False
                End If
            Else
                Bln_Empty = False
            End If
            If Bln_Empty Then
                CxbbGrid.RemoveItem Jsqte
            Else
                Jsqte = Jsqte + 1
            End If
            '移动到下一条记录
            .MoveNext
        Loop
    End With
    
    '将网格按科目类别+编码排序
    With CxbbGrid
        .Col = 0
        .Sort = flexSortStringAscending
    End With
    
    '判断是否进行科目类别合计
    If Bln_ClassSum Then
        Call Sub_ClassSum
    End If
End Sub

Private Sub Sub_ClassSum()                             '按科目类别汇总数据
    Dim Rowjsq As Long                          '临时网格计数器
    Dim Dbl_Qcjfye#, Dbl_Qcdfye#                '期初金额(借贷合计)
    Dim Dbl_Jejfhj#, Dbl_Jedfhj#                '本期合计(金额)
    Dim Dbl_Jejflj#, Dbl_Jedflj#                '截止累计(金额)
    Dim Dbl_Qmjfye#, Dbl_Qmdfye#                '期末金额(借贷合计)
    Dim Dbl_Qcyete#                             '期初余额
    Dim Dbl_Qmyete#                             '期末余额
    Dim Str_ClassIndex As String                '科目类别索引号
    
    Bln_ClassSum = False
    With CxbbGrid
        Str_ClassIndex = ""
        If .Rows > .FixedRows Then
            Str_ClassIndex = Trim(CxbbGrid.TextMatrix(.FixedRows, 1))
        End If
        Rowjsq = .FixedRows
        Do While Rowjsq <= .Rows - 1
            '仅累加一级科目
            If Val(CxbbGrid.TextMatrix(Rowjsq, 2)) = 1 And Str_ClassIndex = Trim(CxbbGrid.TextMatrix(Rowjsq, 1)) Then
                Dbl_Qcjfye = Dbl_Qcjfye + Val(.TextMatrix(Rowjsq, Sydz("004", GridStr(), Szzls)))
                Dbl_Qcdfye = Dbl_Qcdfye + Val(.TextMatrix(Rowjsq, Sydz("005", GridStr(), Szzls)))
                Dbl_Jejfhj = Dbl_Jejfhj + Val(.TextMatrix(Rowjsq, Sydz("009", GridStr(), Szzls)))
                Dbl_Jedfhj = Dbl_Jedfhj + Val(.TextMatrix(Rowjsq, Sydz("010", GridStr(), Szzls)))
                Dbl_Jejflj = Dbl_Jejflj + Val(.TextMatrix(Rowjsq, Sydz("017", GridStr(), Szzls)))
                Dbl_Jedflj = Dbl_Jedflj + Val(.TextMatrix(Rowjsq, Sydz("018", GridStr(), Szzls)))
                Dbl_Qmjfye = Dbl_Qmjfye + Val(.TextMatrix(Rowjsq, Sydz("025", GridStr(), Szzls)))
                Dbl_Qmdfye = Dbl_Qmdfye + Val(.TextMatrix(Rowjsq, Sydz("026", GridStr(), Szzls)))
            End If
            If Str_ClassIndex <> Trim(CxbbGrid.TextMatrix(Rowjsq, 1)) Then
                CxbbGrid.AddItem "", Rowjsq
                CxbbGrid.RowHeight(Rowjsq) = Sjhgd
                CxbbGrid.TextMatrix(Rowjsq, 0) = Str_ClassIndex + "合计"
                CxbbGrid.TextMatrix(Rowjsq, Sydz("002", GridStr(), Szzls)) = Fun_GetContent("Cwzz_kmlx", Str_ClassIndex) + "类合计"
                CxbbGrid.Cell(flexcpBackColor, Rowjsq, 0, , CxbbGrid.Cols - 1) = Lab_Color(0).BackColor
                '显示数据
                '1.显示期初余额
                Dbl_Qcyete = Dbl_Qcjfye - Dbl_Qcdfye
                If Dbl_Qcyete = 0 Then
                    CxbbGrid.TextMatrix(Rowjsq, Sydz("003", GridStr(), Szzls)) = "平"     '期初方向
                Else
                    If Dbl_Qcyete > 0 Then
                        CxbbGrid.TextMatrix(Rowjsq, Sydz("003", GridStr(), Szzls)) = "借"
                        CxbbGrid.TextMatrix(Rowjsq, Sydz("004", GridStr(), Szzls)) = Dbl_Qcyete
                        CxbbGrid.TextMatrix(Rowjsq, Sydz("008", GridStr(), Szzls)) = Dbl_Qcyete
                    Else
                        CxbbGrid.TextMatrix(Rowjsq, Sydz("003", GridStr(), Szzls)) = "贷"
                        CxbbGrid.TextMatrix(Rowjsq, Sydz("005", GridStr(), Szzls)) = -Dbl_Qcyete
                        CxbbGrid.TextMatrix(Rowjsq, Sydz("008", GridStr(), Szzls)) = -Dbl_Qcyete
                    End If
                End If
                '2.显示期间合计数据
                If Dbl_Jejfhj <> 0 Then
                    CxbbGrid.TextMatrix(Rowjsq, Sydz("009", GridStr(), Szzls)) = Dbl_Jejfhj       '本期发生.借方
                    CxbbGrid.TextMatrix(Rowjsq, Sydz("013", GridStr(), Szzls)) = Dbl_Jejfhj       '本期借方发生.金额
                End If
                If Dbl_Jedfhj <> 0 Then

⌨️ 快捷键说明

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