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

📄

📁 VB开发的ERP系统
💻
📖 第 1 页 / 共 4 页
字号:
        CxbbGrid.TextMatrix(1, Jsqte) = Trim(RecTemp.Fields("ItemName") & "")
        CxbbGrid.FixedAlignment(Jsqte) = 4
        CxbbGrid.ColAlignment(Jsqte) = 6
        CxbbGrid.ColFormat(Jsqte) = "#,##0." + String(Xtjexsws, "0")
        CxbbGrid.ColWidth(Jsqte) = Dbl_ColWidth
        Jsqte = Jsqte + 1
        RecTemp.MoveNext
    Loop
    
    Xt_Wait.Show
    Xt_Wait.Refresh
    
    '加快显示速度
    CxbbGrid.Redraw = False
    
    '生成查询结果
    Call Sub_Query
    
    CxbbGrid.Redraw = True
    
    Xt_Wait.Hide
    
End Sub

Private Sub GsToolbar_ButtonClick(ByVal Button As MSComctlLib.Button)       '网格格式调整
    Select Case Button.Key
    Case "bcgs"                                          '保存表格格式
        Call Bcwggs(CxbbGrid, GridCode, GridStr)
    Case "hfmrgs"                                        '恢复默认格式
        Call Hfmrgs(CxbbGrid, GridCode, GridStr)
    Case "szxsxm"                                        '设置显示项目
        Call Szxsxm(CxbbGrid, GridCode)
    End Select
End Sub

Private Sub SzToolbar_ButtonClick(ByVal Button As MSComctlLib.Button)
    Select Case Button.Key
    Case "ymsz"                                          '页面设置
        Dyymctbl.Show 1
    Case "yl"                                            '预 览
        Call bbyl(True)
    Case "dy"                                            '打 印
        Call bbyl(False)
    Case "cx"                                            '查 询
        ZF_Bm_FrmDlzCxTj.Show 1
    Case "pz"                                            '凭 证
        Call CxbbGrid_DblClick
    Case "bz"                                            '帮 助
        Call F1bz
    Case "fh"                                            '退 出
        Unload Me
    End Select
End Sub

Private Sub Sub_Query()                                    '生成查询结果
    Dim Rec_AccMultiItem As New ADODB.Recordset     '临时使用多栏帐栏目动态集
    Dim RecTemp As New ADODB.Recordset              '临时使用动态集
    Dim Sqlstr As String                            '查询字符串
    Dim Coljsq As Long                              '网格列计数器
    Dim Jsqte As Long                               '临时动态计数器
    Dim Str_Ccode As String                         '查询会计科目
    Dim Int_BPeriod As Integer                      '查询起始会计期间
    Dim Int_EPeriod As Integer                      '查询终止会计期间
    Dim Int_Year As Integer                         '查询会计年度
    Dim Bln_IncluNotBook As Boolean                 '是否包含未记帐凭证
    Dim Bln_CqGcShow As Boolean                     '是否显示承前过次
    Dim Int_Zdzyhs As Integer                       '正式帐页指定报表行数
    Dim Int_DqPeriod As Integer                     '查询进行当前会计期间
    Dim Lng_MonthCount As Long                      '本月明细帐记录条数
    Dim Lng_YearCount As Long                       '本年明细帐记录条数
    Dim Str_Dept As String                          '所选部门代码
    
    
    Dim Dbl_Qcyete#                                 '期初金额
    Dim Dbl_Jejfhj#, Dbl_Jedfhj#                    '本期合计(金额)
    Dim Dbl_Jejflj#, Dbl_Jedflj#                    '截止累计(金额)
    Dim Dbl_Qmyete#                                 '期末金额
    
    Dim Dbl_JejfhjDlz() As Double, Dbl_JedfhjDlz() As Double          '本期合计(金额)多栏部分
    Dim Dbl_JejfljDlz() As Double, Dbl_JedfljDlz() As Double          '截止累计(金额)多栏部分
    
    
    '以下为用户自定义部分[
    
    '清除原查询数据
    CxbbGrid.Rows = CxbbGrid.FixedRows
    
    '得到查询起始和截止会计期间,并判断是否包含未记帐凭证
    
    If ZF_Bm_FrmDlzCxTj.Imgebo_Dlz.ComboItems.count = 0 Then
        Exit Sub
    End If
    
    
    With ZF_Bm_FrmDlzCxTj
        
        Lab_AccMultiName.Caption = GetComboKey(ZF_Bm_FrmDlzCxTj.Imgebo_Dlz, 1)                                      '多栏名称
        Lab_TitleText(0).Caption = ZF_Bm_FrmDlzCxTj.Combo_Kjqj(0).Text & "--" & ZF_Bm_FrmDlzCxTj.Combo_Kjqj(1).Text    '会计期间
        
        Str_Dept = .LrText(0).Tag
        
        Int_Year = Int(Mid(.Combo_Kjqj(0).Text, 1, 4))
        Int_BPeriod = Int(Mid(.Combo_Kjqj(0).Text, 6, 2))
        Int_EPeriod = Int(Mid(.Combo_Kjqj(1).Text, 6, 2))
        
        
        '是否包含未记帐凭证
        If .Chk_NotBook.Value = 1 Then
            Bln_IncluNotBook = True
        Else
            Bln_IncluNotBook = False
        End If
        
        '是否显示承前过次,如显示则将页面设置指定行数控制为>1且必须指定报表行数打印输出
        If .Chk_CqGcShow = 1 Then
            Bln_CqGcShow = True
            Dyymctbl.ZdhsCheck.Enabled = False
            Dyymctbl.ZdhsCheck.Value = 1
            Dyymctbl.BbhsText.Enabled = False
            Dyymctbl.BbhsVScroll.Enabled = False
            Dyymctbl.BbhsText.Text = .LrText(1).Text
        Else
            Bln_CqGcShow = False
            Dyymctbl.ZdhsCheck.Enabled = True
            Dyymctbl.BbhsText.Enabled = True
            Dyymctbl.BbhsVScroll.Enabled = True
        End If
        Int_Zdzyhs = Val(.LrText(1).Text)
        
    End With
    
    '初始化各种值
    Dbl_Qcyete = 0
    
    Dbl_Jejfhj = 0
    Dbl_Jedfhj = 0
    
    Dbl_Jejflj = 0
    Dbl_Jedflj = 0
    
    ReDim Dbl_JejfhjDlz(CxbbGrid.Cols - 1)
    ReDim Dbl_JedfhjDlz(CxbbGrid.Cols - 1)
    ReDim Dbl_JejfljDlz(CxbbGrid.Cols - 1)
    ReDim Dbl_JedfljDlz(CxbbGrid.Cols - 1)
    
    Lng_MonthCount = 0
    Lng_YearCount = 0
    
    Jsqte = CxbbGrid.FixedRows - 1
    
    '1.计算期初余额(金额),并计算截止查询起始会计期间累计数据
    Sqlstr = " SELECT Cwzz_AccMultiItem.Ccode,Qcyehj=IsNull(SUM(Cwzz_AccSumAssi.Qcye),0),Mjjehj=IsNull(SUM(Cwzz_AccSumAssi.Mjje),0),Mdjehj=IsNull(SUM(Cwzz_AccSumAssi.Mdje),0), " & _
    " Byjfljjehj=IsNull(SUM(Cwzz_AccSumAssi.Byjfljje),0),Bydfljjehj=IsNull(SUM(Cwzz_AccSumAssi.Bydfljje),0) FROM Cwzz_AccMultiItem LEFT OUTER JOIN " & _
    " Cwzz_AccSumAssi ON Cwzz_AccMultiItem.Ccode = Cwzz_AccSumAssi.Ccode And Cwzz_AccSumAssi.Year=" & Int_Year & _
    " And Cwzz_AccSumAssi.deptcode='" & Str_Dept & "'" & _
    " And Cwzz_AccSumAssi.Period=" & Int_BPeriod & " WHERE Cwzz_AccMultiItem.AccMultiCode = '" & Str_AccMultiCode & "' Group By Cwzz_AccMultiItem.Ccode"
    
    Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
    Do While Not RecTemp.EOF
        Dbl_Qcyete = Dbl_Qcyete + RecTemp.Fields("Qcyehj")
        
        '截止累计数据需要减掉本会计期间相应记帐数据
        Dbl_Jejflj = Dbl_Jejflj + RecTemp.Fields("Byjfljjehj") - RecTemp.Fields("Mjjehj")
        Dbl_Jedflj = Dbl_Jedflj + RecTemp.Fields("Bydfljjehj") - RecTemp.Fields("Mdjehj")
        Dbl_JejfljDlz(Fun_CcodeCol(RecTemp.Fields("Ccode"))) = Dbl_JejfljDlz(Fun_CcodeCol(RecTemp.Fields("Ccode"))) + RecTemp.Fields("Byjfljjehj") - RecTemp.Fields("Mjjehj")
        Dbl_JedfljDlz(Fun_CcodeCol(RecTemp.Fields("Ccode"))) = Dbl_JedfljDlz(Fun_CcodeCol(RecTemp.Fields("Ccode"))) + RecTemp.Fields("Bydfljjehj") - RecTemp.Fields("Mdjehj")
        
        RecTemp.MoveNext
    Loop
    
    '如果包含未记帐凭证则计算小于查询起始会计期间包含科目借贷方合计
    If Bln_IncluNotBook Then
        Set Rec_AccMultiItem = Cw_DataEnvi.DataConnect.Execute("Select Ccode From Cwzz_AccMultiItem Where AccMultiCode='" & Str_AccMultiCode & "' Order By AnalyseOri Desc")
        Do While Not Rec_AccMultiItem.EOF
            Sqlstr = "SELECT Jfjehj=isnull(Sum(Jfje),0) ,Dfjehj=isnull(Sum(Dfje),0) From Cwzz_V_AccVouch Where BookFlag=0 And Ccode like '" & Trim(Rec_AccMultiItem.Fields("Ccode")) & "%' And Year=" & Int_Year & _
            " And Period<" & Int_BPeriod & " And DeptCode='" & Str_Dept & "'"
            Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
            If Not RecTemp.EOF Then
                Dbl_Qcyete = Dbl_Qcyete + RecTemp.Fields("Jfjehj") - RecTemp.Fields("Dfjehj")
                
                '计算相应截止查询起始会计期间累计数据
                Dbl_Jejflj = Dbl_Jejflj + RecTemp.Fields("Jfjehj")
                Dbl_Jedflj = Dbl_Jedflj + RecTemp.Fields("Dfjehj")
                Dbl_JejfljDlz(Fun_CcodeCol(Trim(Rec_AccMultiItem.Fields("Ccode")))) = Dbl_JejfljDlz(Fun_CcodeCol(Trim(Rec_AccMultiItem.Fields("Ccode")))) + RecTemp.Fields("Jfjehj")
                Dbl_JedfljDlz(Fun_CcodeCol(Trim(Rec_AccMultiItem.Fields("Ccode")))) = Dbl_JedfljDlz(Fun_CcodeCol(Trim(Rec_AccMultiItem.Fields("Ccode")))) + RecTemp.Fields("Dfjehj")
            End If
            
            Rec_AccMultiItem.MoveNext
        Loop
        
    End If
    
    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, Dbl_Qcyete)
    
    
    '2.读取查询会计期间范围内所有符合条件明细帐数据(以年度+会计期间),并写入网格
    
    '记录当前会计期间
    Int_DqPeriod = Int_BPeriod
    
    '筛选所有符合条件数据
    Sqlstr = "SELECT DISTINCT b.* FROM dbo.Cwzz_AccMultiItem a, dbo.Cwzz_V_AccVouchAss b" & _
    " WHERE a.AccMultiCode = '" & Str_AccMultiCode & "' AND RTRIM(b.Ccode) LIKE RTRIM(a.Ccode) + '%'" & _
    " And b.Year=" & Int_Year & " And b.Period>=" & Int_BPeriod & " And b.Period<=" & Int_EPeriod & " And DeptCode='" & Str_Dept & "'"
    
    If Not Bln_IncluNotBook Then
        Sqlstr = Sqlstr & " And b.BookFlag=1"
    End If
    Sqlstr = Sqlstr & " Order By b.Year,b.Period,b.Ddate,b.VouchID,b.SerialID"
    
    Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
    
    With RecTemp
        
        Do While Not .EOF
            
            Str_Ccode = Trim(.Fields("Ccode"))          '此条明细帐记录
            
            If .Fields("Jfje") <> 0 Then
                If Fun_CcodeCol(Str_Ccode, "借") = 0 Then
                    GoTo Wxjl
                End If
            Else
                If Fun_CcodeCol(Str_Ccode, "贷") = 0 Then
                    GoTo Wxjl
                End If
            End If
            
            '当前进行会计期间发生变化则添加本月合计及本年累计
            If .Fields("Period") <> Int_DqPeriod Then
                '显示本月合计
                If Lng_MonthCount <> 0 Then
                    CxbbGrid.AddItem ""
                    Jsqte = Jsqte + 1
                    
                    '输出本月合计
                    Call Sub_OutPeriodSum(Jsqte, Int_DqPeriod, Dbl_Jejfhj, Dbl_Jedfhj, Dbl_JejfhjDlz(), Dbl_JedfhjDlz())
                    
                    '输出余额
                    Call Sub_OutBalance(Jsqte, Dbl_Qcyete)
                End If
                
                '重新初始化本月合计数据
                Dbl_Jejfhj = 0
                Dbl_Jedfhj = 0
                
                Lng_MonthCount = 0
                
                For szjsq = 0 To CxbbGrid.Cols - 1
                    Dbl_JejfhjDlz(szjsq) = 0
                    Dbl_JedfhjDlz(szjsq) = 0
                Next szjsq
                
                '显示本年累计
                If Lng_YearCount <> 0 Then
                    CxbbGrid.AddItem ""
                    Jsqte = Jsqte + 1
                    
                    '输出本年累计
                    Call Sub_OutYearSum(Jsqte, Int_DqPeriod, Dbl_Jejflj, Dbl_Jedflj, Dbl_JejfljDlz(), Dbl_JedfljDlz())
                    
                    '输出余额
                    Call Sub_OutBalance(Jsqte, Dbl_Qcyete)
                End If
                
                '修改当前会计期间
                Int_DqPeriod = .Fields("Period")
                
            End If        '显示本月合计,本年累计完毕
            
            
            '显示明细数据
            CxbbGrid.AddItem ""
            Jsqte = Jsqte + 1
            
            '本月、本年记录计数器+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
            
            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

⌨️ 快捷键说明

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