i-

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

TXT
1,398 行
字号
    Dbl_Qcwbte = 0
    
    DayDbl_Jejfhj = 0
    DayDbl_Jedfhj = 0
    DayDbl_Sljfhj = 0
    DayDbl_Sldfhj = 0
    DayDbl_Wbjfhj = 0
    DayDbl_Wbdfhj = 0
    
    Dbl_Jejfhj = 0
    Dbl_Jedfhj = 0
    Dbl_Sljfhj = 0
    Dbl_Sldfhj = 0
    Dbl_Wbjfhj = 0
    Dbl_Wbdfhj = 0
    
    Dbl_Jejflj = 0
    Dbl_Jedflj = 0
    Dbl_Sljflj = 0
    Dbl_Sldflj = 0
    Dbl_Wbjflj = 0
    Dbl_Wbdflj = 0
    
    Lng_DayCount = 0
    Lng_MonthCount = 0
    Lng_YearCount = 0
    
    Jsqte = CxbbGrid.FixedRows - 1
    
    '1.计算期初余额(金额,数量,外币),并计算截止查询起始会计期间累计数据
    Sqlstr = "SELECT * From Cwzz_AccSum Where Ccode='" & Str_Ccode & "' And Year=" & Int_Year & _
    " And Period=" & Int_BPeriod
    Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
    If Not RecTemp.EOF Then
        Dbl_Qcyete = RecTemp.Fields("Qcye")
        Dbl_Qcslte = RecTemp.Fields("Qcsl")
        Dbl_Qcwbte = RecTemp.Fields("Qcwb")
        
        '截止累计数据需要减掉本会计期间相应记帐数据
        Dbl_Jejflj = RecTemp.Fields("Byjfljje") - RecTemp.Fields("Mjje")
        Dbl_Jedflj = RecTemp.Fields("Bydfljje") - RecTemp.Fields("Mdje")
        Dbl_Sljflj = RecTemp.Fields("Byjfljsl") - RecTemp.Fields("Mjsl")
        Dbl_Sldflj = RecTemp.Fields("Bydfljsl") - RecTemp.Fields("Mdsl")
        Dbl_Wbjflj = RecTemp.Fields("Byjfljwb") - RecTemp.Fields("Mjwb")
        Dbl_Wbdflj = RecTemp.Fields("Bydfljwb") - RecTemp.Fields("Mdwb")
    End If
    
    '如果包含未记帐凭证则计算小于查询起始会计期间包含科目借贷方合计
    If Bln_IncluNotBook Then
        Sqlstr = "SELECT Sum(Jfje) as Jfjehj,Sum(Dfje) as Dfjehj,Sum(Jfsl) as Jfslhj,Sum(Dfsl) as Dfslhj" & _
        ",Sum(Wbjfje) as Wbjfjehj,Sum(Wbdfje) as Wbdfjehj From Cwzz_V_AccVouch Where BookFlag=0 And Ccode like '" & Str_Ccode & "%' And Year=" & Int_Year & _
        " And Period<" & Int_BPeriod
        Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
        If Not RecTemp.EOF Then
            Dbl_Qcyete = Dbl_Qcyete + Val(RecTemp.Fields("Jfjehj") & "") - Val(RecTemp.Fields("Dfjehj") & "")
            Dbl_Qcslte = Dbl_Qcslte + Val(RecTemp.Fields("Jfslhj") & "") - Val(RecTemp.Fields("Dfslhj") & "")
            Dbl_Qcwbte = Dbl_Qcwbte + Val(RecTemp.Fields("Wbjfjehj") & "") - Val(RecTemp.Fields("Wbdfjehj") & "")
            
            '计算相应截止查询起始会计期间累计数据
            Dbl_Jejflj = Dbl_Jejflj + Val(RecTemp.Fields("Jfjehj") & "")
            Dbl_Jedflj = Dbl_Jedflj + Val(RecTemp.Fields("Dfjehj") & "")
            Dbl_Sljflj = Dbl_Sljflj + Val(RecTemp.Fields("Jfslhj") & "")
            Dbl_Sldflj = Dbl_Sldflj + Val(RecTemp.Fields("Dfslhj") & "")
            Dbl_Wbjflj = Dbl_Wbjflj + Val(RecTemp.Fields("Wbjfjehj") & "")
            Dbl_Wbdflj = Dbl_Wbdflj + Val(RecTemp.Fields("Wbdfjehj") & "")
        End If
    End If
    
    
    '判断按月查询还是按日查询分别作不同的处理(按月查询输出期初余额,而按日合计则输出昨日余额)
    If Not Bln_QueryDay Then
        If (Dbl_Qcyete <> 0 Or (Bln_EndFlag And (Dbl_Qcslte <> 0 Or Dbl_Qcwbte <> 0))) Or Bln_QcZeroShow Then    '如果期初数据为零,且用户选择不输出则不显示此行数据
            CxbbGrid.AddItem ""
            Jsqte = Jsqte + 1
            
            '将期初数据写入网格(第1会计期间为上年结转,其余会计期间为期初余额)
            If Int_BPeriod = 1 Then
                CxbbGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)) = "上年结转"
            Else
                CxbbGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)) = "期初余额"
            End If
            
            '输出余额
            Call Sub_OutBalance(Jsqte, Bln_EndFlag, Bln_ForeignFlag, Dbl_Qcyete, Dbl_Qcslte, Dbl_Qcwbte)
        End If
    Else
        
        '计算昨日余额
        If Bln_IncluNotBook Then   '判断是否包含未记帐凭证
            Sqlstr = "SELECT Sum(Jfje) as Jfjehj,Sum(Dfje) as Dfjehj,Sum(Jfsl) as Jfslhj,Sum(Dfsl) as Dfslhj" & _
            ",Sum(Wbjfje) as Wbjfjehj,Sum(Wbdfje) as Wbdfjehj From Cwzz_V_AccVouch Where Ccode like '" & Str_Ccode & "%' And Year=" & Int_Year & _
            " And Period>=" & Int_BPeriod & " And DDate<'" & Dtm_BeginDay & "'"
        Else
            Sqlstr = "SELECT Sum(Jfje) as Jfjehj,Sum(Dfje) as Dfjehj,Sum(Jfsl) as Jfslhj,Sum(Dfsl) as Dfslhj" & _
            ",Sum(Wbjfje) as Wbjfjehj,Sum(Wbdfje) as Wbdfjehj From Cwzz_V_AccVouch Where BookFlag='1' And Ccode like '" & Str_Ccode & "%' And Year=" & Int_Year & _
            " And Period>=" & Int_BPeriod & " And DDate<'" & Dtm_BeginDay & "'"
        End If
        Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
        If Not RecTemp.EOF Then
            Dbl_Qcyete = Dbl_Qcyete + Val(RecTemp.Fields("Jfjehj") & "") - Val(RecTemp.Fields("Dfjehj") & "")
            Dbl_Qcslte = Dbl_Qcslte + Val(RecTemp.Fields("Jfslhj") & "") - Val(RecTemp.Fields("Dfslhj") & "")
            Dbl_Qcwbte = Dbl_Qcwbte + Val(RecTemp.Fields("Wbjfjehj") & "") - Val(RecTemp.Fields("Wbdfjehj") & "")
            
            Dbl_Jejflj = Dbl_Jejflj + Val(RecTemp.Fields("Jfjehj") & "")
            Dbl_Jedflj = Dbl_Jedflj + Val(RecTemp.Fields("Dfjehj") & "")
            Dbl_Sljflj = Dbl_Sljflj + Val(RecTemp.Fields("Jfslhj") & "")
            Dbl_Sldflj = Dbl_Sldflj + Val(RecTemp.Fields("Dfslhj") & "")
            Dbl_Wbjflj = Dbl_Wbjflj + Val(RecTemp.Fields("Wbjfjehj") & "")
            Dbl_Wbdflj = Dbl_Wbdflj + Val(RecTemp.Fields("Wbdfjehj") & "")
        End If
        
        If (Dbl_Qcyete <> 0 Or (Bln_EndFlag And (Dbl_Qcslte <> 0 Or dnl_qcwbte <> 0))) Or Bln_QcZeroShow Then    '如果期初数据为零,且用户选择不输出则不显示此行数据
            CxbbGrid.AddItem ""
            Jsqte = Jsqte + 1
            
            '将期初数据写入网格(昨日余额)
            CxbbGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)) = "昨日余额"
            
            '输出余额
            Call Sub_OutBalance(Jsqte, Bln_EndFlag, Bln_ForeignFlag, Dbl_Qcyete, Dbl_Qcslte, Dbl_Qcwbte)
        End If
        
    End If
    
    '2.读取查询会计期间范围内所有符合条件明细帐数据(以年度+会计期间),并写入网格
    
    Bln_NotFirst = False
    
    '筛选所有符合条件数据
    
    If Not Bln_QueryDay Then
        Sqlstr = "SELECT *" & _
        " From Cwzz_V_AccVouchAss Where Ccode like '" & Str_Ccode & "%'And Year=" & Int_Year & _
        " And Period>=" & Int_BPeriod & " And Period<=" & Int_EPeriod
    Else
        Sqlstr = "SELECT *" & _
        " From Cwzz_V_AccVouchAss Where Ccode like '" & Str_Ccode & "%'" & _
        " And DDate>='" & Dtm_BeginDay & "' And DDate<='" & Dtm_EndDay & "'"
    End If
    If Not Bln_IncluNotBook Then
        Sqlstr = Sqlstr & " And BookFlag=1"
    End If
    Sqlstr = Sqlstr & " Order By Year,Period,Ddate,VouchID,SerialID"
    
    Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
    
    With RecTemp
        
        Do While Not .EOF
            If Bln_NotFirst Then
                
                If .Fields("DDate") <> Dtm_DqDay Then
                    '显示本日合计
                    If Lng_DayCount <> 0 Then
                        CxbbGrid.AddItem ""
                        Jsqte = Jsqte + 1
                        
                        '输出本日合计
                        Call Sub_OutDaySum(Jsqte, Bln_EndFlag, Bln_ForeignFlag, Dtm_DqDay, Dbl_DayJejfhj, Dbl_DayJedfhj, Dbl_DaySljfhj, Dbl_DaySldfhj, Dbl_DayWbjfhj, Dbl_DayWbdfhj)
                        
                        '输出余额
                        Call Sub_OutBalance(Jsqte, Bln_EndFlag, Bln_ForeignFlag, Dbl_Qcyete, Dbl_Qcslte, Dbl_Qcwbte)
                    End If
                    
                    '重新初始化本日合计数据
                    Dbl_DayJejfhj = 0
                    Dbl_DayJedfhj = 0
                    Dbl_DaySljfhj = 0
                    Dbl_DaySldfhj = 0
                    Dbl_DayWbjfhj = 0
                    Dbl_DayWbdfhj = 0
                    
                    Lng_DayCount = 0
                End If
                
                '当前进行会计期间发生变化则添加本月合计及本年累计
                If .Fields("Period") <> Int_DqPeriod Then
                    '显示本月合计
                    If Lng_MonthCount <> 0 Then
                        CxbbGrid.AddItem ""
                        Jsqte = Jsqte + 1
                        
                        '输出本月合计
                        Call Sub_OutPeriodSum(Jsqte, Bln_EndFlag, Bln_ForeignFlag, Int_DqPeriod, Dbl_Jejfhj, Dbl_Jedfhj, Dbl_Sljfhj, Dbl_Sldfhj, Dbl_Wbjfhj, Dbl_Wbdfhj)
                        
                        '输出余额
                        Call Sub_OutBalance(Jsqte, Bln_EndFlag, Bln_ForeignFlag, Dbl_Qcyete, Dbl_Qcslte, Dbl_Qcwbte)
                    End If
                    
                    '重新初始化本月合计数据
                    Dbl_Jejfhj = 0
                    Dbl_Jedfhj = 0
                    Dbl_Sljfhj = 0
                    Dbl_Sldfhj = 0
                    Dbl_Wbjfhj = 0
                    Dbl_Wbdfhj = 0
                    
                    Lng_MonthCount = 0
                    
                    '显示本年累计
                    If Lng_YearCount <> 0 Then
                        CxbbGrid.AddItem ""
                        Jsqte = Jsqte + 1
                        
                        '输出本年累计
                        Call Sub_OutYearSum(Jsqte, Bln_EndFlag, Bln_ForeignFlag, Int_DqPeriod, Dbl_Jejflj, Dbl_Jedflj, Dbl_Sljflj, Dbl_Sldflj, Dbl_Wbjflj, Dbl_Wbdflj)
                        
                        '输出余额
                        Call Sub_OutBalance(Jsqte, Bln_EndFlag, Bln_ForeignFlag, Dbl_Qcyete, Dbl_Qcslte, Dbl_Qcwbte)
                    End If
                    
                    
                End If        '显示本月合计,本年累计完毕
            End If
            
            Bln_NotFirst = True
            
            '显示明细数据
            CxbbGrid.AddItem ""
            Jsqte = Jsqte + 1
            
            '本日、本月、本年记录计数器+1
            Lng_DayCount = Lng_DayCount + 1
            Lng_MonthCount = Lng_MonthCount + 1
            Lng_YearCount = Lng_YearCount + 1
            
            '未记帐明细分录变色显示
            If .Fields("BookFlag") = 0 Then
                CxbbGrid.Cell(flexcpBackColor, Jsqte, 0, , CxbbGrid.Cols - 1) = Lab_Color(0).BackColor
            End If
            
            '修改当前会计期间,当前日期
            Int_DqPeriod = .Fields("Period")
            Dtm_DqDay = .Fields("DDate")
            
            CxbbGrid.TextMatrix(Jsqte, 0) = .Fields("VouchId")              '凭证ID
            
            If IsDate(.Fields("Ddate")) Then
                CxbbGrid.TextMatrix(Jsqte, Sydz("001", GridStr(), Szzls)) = .Fields("Ddate")                    '日期
            End If
            CxbbGrid.TextMatrix(Jsqte, Sydz("002", GridStr(), Szzls)) = Trim(.Fields("VouchClassCode") & "") + "-" + Mid(Trim(Str(10000 + .Fields("VouchNo"))), 2, 4) '凭证字号
            CxbbGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)) = Trim(.Fields("Digest") & "")           '摘要
            
            '部门
            If Trim(.Fields("DeptName") & "") <> "" Then
                CxbbGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)) = CxbbGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)) + " " + Trim(.Fields("DeptName") & "")
            End If
            '个人
            If Trim(.Fields("PersonName") & "") <> "" Then
                CxbbGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)) = CxbbGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)) + " " + Trim(.Fields("PersonName") & "")
            End If
            '客户
            If Trim(.Fields("CusName") & "") <> "" Then
                CxbbGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)) = CxbbGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)) + " " + Trim(.Fields("CusName") & "")
            End If
            '项目
            If Trim(.Fields("ItemName") & "") <> "" Then
                CxbbGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)) = CxbbGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)) + " " + Trim(.Fields("ItemName") & "")
            End If
            
            If .Fields("Jfje") <> 0 Then                                                                       '借方金额
                CxbbGrid.TextMatrix(Jsqte, Sydz("006", GridStr(), Szzls)) = .Fields("Jfje")
                CxbbGrid.TextMatrix(Jsqte, Sydz("009", GridStr(), Szzls)) = .Fields("Jfje")
            End If
            If .Fields("Dfje") <> 0 Then                                                                       '贷方金额
                CxbbGrid.TextMatrix(Jsqte, Sydz("010", GridStr(), Szzls)) = .Fields("Dfje")
                CxbbGrid.TextMatrix(Jsqte, Sydz("013", GridStr(), Szzls)) = .Fields("Dfje")
            End If
            
            '只有末级科目才显示数量和外币,数量不为零则计算单价
            If Bln_EndFlag Then
                If .Fields("Jfsl") <> 0 Then                                                                    '借方数量
                    CxbbGrid.TextMatrix(Jsqte, Sydz("007", GridStr(), Szzls)) = .Fields("Jfsl")
                    If .Fields("Jfje") <> 0 Then
                        CxbbGrid.TextMatrix(Jsqte, Sydz("004", GridStr(), Szzls)) = Format(.Fields("Jfje") / .Fields("Jfsl"), "##." + String(Xtdjxsws, "0"))
                    Else
                        CxbbGrid.TextMatrix(Jsqte, Sydz("004", GridStr(), Szzls)) = Format(.Fields("Dfje") / .Fields("Jfsl"), "##." + String(Xtdjxsws, "0"))
                    End If
                End If
                If .Fields("Dfsl") <> 0 Then                                                                    '贷方数量

⌨️ 快捷键说明

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