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

📄

📁 VB开发的ERP系统
💻
📖 第 1 页 / 共 3 页
字号:
    '生成查询结果
    Call Sub_Query
    
    CxbbGrid.Redraw = True
    
    Xt_Wait.Hide
End Sub

Private Sub Sub_Query()                                    '生成查询结果
    Dim Rec_Query As New ADODB.Recordset        '查询结果动态集
    Dim RecTemp As New ADODB.Recordset          '临时使用动态集
    Dim Str_QueryCondi As String                '用户录入查询条件
    Dim Sqlstr As String                        '查询字符串
    Dim Coljsq As Long                          '网格列计数器
    Dim Jsqte As Long                           '临时动态计数器
    Dim Int_LevTe As Integer                    '编码级数计数器
    Dim Str_Parent As String                    '上级科目号
    Dim Lng_ParCol As Long                      '上级科目所在列
    Dim Str_CclassIndex As String               '科目类别索引号
    Dim Int_VouchNoMax As Integer               '实际最大凭证号
    Dim Int_VouchNoMin As Integer               '实际最小凭证号
    
    '以下为用户自定义部分[
    
    With PZ_FrmPzhztj
        
        '显示查询条件
        
        Lab_TitleText(0).Caption = .Combo_Kjqj.Text   '会计期间
        
        If Trim(.Imgebo_VouchClass.Text) <> "" Then   '凭证范围
            Lab_TitleText(1).Caption = .Combo_Pzfw.Text & Mid(Trim(.Imgebo_VouchClass.Text), Len(Trim(GetComboKey(.Imgebo_VouchClass, 0))) + 1, Len(Trim(.Imgebo_VouchClass.Text)))
        Else
            Lab_TitleText(1).Caption = .Combo_Pzfw.Text
        End If
        
        Str_QueryCondi = " where 1=1 "
        For Jsqte = 1 To 26
            Select Case Jsqte
                
            Case 1   '凭证范围
                Select Case Trim(.Combo_Pzfw.Text)
                Case "未记帐凭证"
                    Str_QueryCondi = Str_QueryCondi & " and BookFlag=0"
                Case "记帐凭证"
                    Str_QueryCondi = Str_QueryCondi & " and BookFlag=1"
                End Select
                
            Case 2   '凭证类别
                If GetComboKey(.Imgebo_VouchClass, 0) <> "" Then
                    Str_QueryCondi = Str_QueryCondi & " and VouchClassCode='" & Trim(GetComboKey(.Imgebo_VouchClass, 0)) & "'"
                End If
                
            Case 3   '会计期间
                Str_QueryCondi = Str_QueryCondi & " and Year='" & Mid(Trim(.Combo_Kjqj.Text), 1, 4) & "' and Period='" & Mid(Trim(.Combo_Kjqj.Text), 6, 2) & "'"
                
            Case 4   '凭证号范围(起始)
                Str_QueryCondi = Str_QueryCondi & " and VouchNo>= " & Val(.LrText(0).Text)
                
            Case 5   '凭证号范围(终止)
                If Val(.LrText(1)) <> 0 Then
                    Str_QueryCondi = Str_QueryCondi & " and VouchNo<= " & Val(.LrText(1).Text)
                End If
            End Select
        Next Jsqte
    End With
    
    '计算并显示实际最大、最小凭证号
    Sqlstr = "SELECT MAX(VouchNo) VouchNoMax,Min(VouchNo) VouchNoMin From Cwzz_V_AccVouch" & Str_QueryCondi
    Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
    If Not IsNull(RecTemp.Fields("VouchNoMax")) Then
        Int_VouchNoMax = RecTemp.Fields("VouchNoMax")
    End If
    If Not IsNull(RecTemp.Fields("VouchNoMin")) Then
        Int_VouchNoMin = RecTemp.Fields("VouchNoMin")
    End If
    
    '显示实际凭证号范围
    Lab_TitleText(2).Caption = ""
    If Int_VouchNoMin <> 0 Then
        Lab_TitleText(2).Caption = Mid(Trim(Str(10000 + Int_VouchNoMin)), 2, 4) + "-"
    End If
    If Int_VouchNoMax <> 0 Then
        Lab_TitleText(2).Caption = Lab_TitleText(2).Caption + Mid(Trim(Str(10000 + Int_VouchNoMax)), 2, 4)
    End If
    
    '显示查询结果
    
    Sqlstr = "SELECT c.*, d.ForeignCurrName FROM " & _
    " (SELECT A.*, B.Cname,B.ForeignCurrCode, B.measure,B.CodeLevel,B.Cclass FROM " & _
    " (SELECT SUM(Jfje) Jfjehj, SUM(Dfje) Dfjehj,SUM(WbJfje) WbJfjehj,SUM(WbDfje) WbDfjehj,SUM(Jfsl) Jfslhj,SUM(Dfsl) Dfslhj, Ccode From Cwzz_V_AccVouch " & _
    Str_QueryCondi & " GROUP BY Ccode) A LEFT OUTER JOIN " & _
    " Cwzz_AccCode B ON A.Ccode = B.Ccode) C " & _
    " LEFT OUTER JOIN Gy_ForeignCurrency d ON c.ForeignCurrCode = d.ForeignCurrCode Order by C.Ccode"
    Set Rec_Query = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
    With Rec_Query
        CxbbGrid.Rows = CxbbGrid.FixedRows
        CxbbGrid.Rows = CxbbGrid.FixedRows + .RecordCount
        Jsqte = CxbbGrid.FixedRows
        Do While Not .EOF
            
            Str_CclassIndex = Fun_GetIndex("Cwzz_kmlx", Trim(.Fields("Cclass")))
            
            '1.添加末级科目合计数据
            If .Fields("CodeLevel") <= Int(PZ_FrmPzhztj.LrText(2).Text) Then
                If Jsqte >= CxbbGrid.Rows Then
                    CxbbGrid.AddItem ""
                End If
                
                '添加科目类别和科目编码(目的为了排序)
                CxbbGrid.TextMatrix(Jsqte, 0) = Str_CclassIndex + Trim(.Fields("Ccode"))
                
                CxbbGrid.TextMatrix(Jsqte, Sydz("001", GridStr(), Szzls)) = Trim(.Fields("Ccode"))
                CxbbGrid.TextMatrix(Jsqte, Sydz("002", GridStr(), Szzls)) = Trim(.Fields("Cname"))
                CxbbGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)) = Trim(.Fields("ForeignCurrName") & "")
                CxbbGrid.TextMatrix(Jsqte, Sydz("004", GridStr(), Szzls)) = Trim(.Fields("Measure") & "")
                If .Fields("Jfjehj") <> 0 Then                                                                     '借方金额合计
                    CxbbGrid.TextMatrix(Jsqte, Sydz("005", GridStr(), Szzls)) = Trim(Str(.Fields("Jfjehj")))
                End If
                If .Fields("Dfjehj") <> 0 Then                                                                     '贷方金额合计
                    CxbbGrid.TextMatrix(Jsqte, Sydz("006", GridStr(), Szzls)) = Trim(Str(.Fields("Dfjehj")))
                End If
                If .Fields("WbJfjehj") <> 0 And Trim(.Fields("ForeignCurrName") & "") <> "" Then                   '外币借方金额合计
                    CxbbGrid.TextMatrix(Jsqte, Sydz("007", GridStr(), Szzls)) = Trim(Str(.Fields("WbJfjehj")))
                End If
                If .Fields("WbDfjehj") <> 0 And Trim(.Fields("ForeignCurrName") & "") <> "" Then                   '外币贷方金额合计
                    CxbbGrid.TextMatrix(Jsqte, Sydz("008", GridStr(), Szzls)) = Trim(Str(.Fields("WbDfjehj")))
                End If
                If .Fields("Jfslhj") <> 0 Then                                                                     '借方数量合计
                    CxbbGrid.TextMatrix(Jsqte, Sydz("009", GridStr(), Szzls)) = Trim(Str(.Fields("Jfslhj")))
                End If
                If .Fields("Dfslhj") <> 0 Then                                                                     '贷方数量合计
                    CxbbGrid.TextMatrix(Jsqte, Sydz("010", GridStr(), Szzls)) = Trim(Str(.Fields("Dfslhj")))
                End If
                CxbbGrid.RowHeight(Jsqte) = Sjhgd
                Jsqte = Jsqte + 1
            End If
            
            '2.累计上级科目数据
            For Int_LevTe = 1 To Int(PZ_FrmPzhztj.LrText(2).Text)
                If Mid(Trim(.Fields("Ccode")), 1, Int_CodeScheme(Int_LevTe)) <> Trim(.Fields("Ccode")) Then
                    Str_Parent = Trim(Mid(Trim(.Fields("Ccode")), 1, Int_CodeScheme(Int_LevTe)))
                    Lng_ParCol = CxbbGrid.FindRow(Str_Parent, , Sydz("001", GridStr(), Szzls))
                    If Lng_ParCol = -1 Then
                        If Jsqte >= CxbbGrid.Rows Then
                            CxbbGrid.AddItem ""
                        End If
                        CxbbGrid.RowHeight(Jsqte) = Sjhgd
                        CxbbGrid.TextMatrix(Jsqte, 0) = Str_CclassIndex + Str_Parent
                        CxbbGrid.TextMatrix(Jsqte, Sydz("001", GridStr(), Szzls)) = Str_Parent
                        Set RecTemp = Cw_DataEnvi.DataConnect.Execute("Select Cwzz_AccCode.Cname FROM Cwzz_AccCode Where Ccode='" & Str_Parent & "'")
                        If Not RecTemp.EOF Then
                            CxbbGrid.TextMatrix(Jsqte, Sydz("002", GridStr(), Szzls)) = Trim(RecTemp.Fields("Cname"))
                        End If
                        
                        If Val(CxbbGrid.TextMatrix(Jsqte, Sydz("005", GridStr(), Szzls))) + .Fields("Jfjehj") <> 0 Then
                            CxbbGrid.TextMatrix(Jsqte, Sydz("005", GridStr(), Szzls)) = Trim(Str(Val(CxbbGrid.TextMatrix(Jsqte, Sydz("005", GridStr(), Szzls))) + .Fields("Jfjehj")))
                        Else
                            CxbbGrid.TextMatrix(Jsqte, Sydz("005", GridStr(), Szzls)) = ""
                        End If
                        If Val(CxbbGrid.TextMatrix(Jsqte, Sydz("006", GridStr(), Szzls))) + .Fields("Dfjehj") <> 0 Then
                            CxbbGrid.TextMatrix(Jsqte, Sydz("006", GridStr(), Szzls)) = Trim(Str(Val(CxbbGrid.TextMatrix(Jsqte, Sydz("006", GridStr(), Szzls))) + .Fields("Dfjehj")))
                        Else
                            CxbbGrid.TextMatrix(Jsqte, Sydz("006", GridStr(), Szzls)) = ""
                        End If
                        Jsqte = Jsqte + 1
                    Else
                        If Val(CxbbGrid.TextMatrix(Lng_ParCol, Sydz("005", GridStr(), Szzls))) + .Fields("Jfjehj") <> 0 Then
                            CxbbGrid.TextMatrix(Lng_ParCol, Sydz("005", GridStr(), Szzls)) = Trim(Str(Val(CxbbGrid.TextMatrix(Lng_ParCol, Sydz("005", GridStr(), Szzls))) + .Fields("Jfjehj")))
                        Else
                            CxbbGrid.TextMatrix(Lng_ParCol, Sydz("005", GridStr(), Szzls)) = ""
                        End If
                        If Val(CxbbGrid.TextMatrix(Lng_ParCol, Sydz("006", GridStr(), Szzls))) + .Fields("Dfjehj") <> 0 Then
                            CxbbGrid.TextMatrix(Lng_ParCol, Sydz("006", GridStr(), Szzls)) = Trim(Str(Val(CxbbGrid.TextMatrix(Lng_ParCol, Sydz("006", GridStr(), Szzls))) + .Fields("Dfjehj")))
                        Else
                            CxbbGrid.TextMatrix(Lng_ParCol, Sydz("006", GridStr(), Szzls)) = ""
                        End If
                    End If
                Else
                    Exit For
                End If
            Next Int_LevTe
            
            '3.按科目类别累计
            Lng_ParCol = CxbbGrid.FindRow(Trim(.Fields("Cclass")) + "类合计", , Sydz("002", GridStr(), Szzls))
            If Lng_ParCol = -1 Then
                If Jsqte >= CxbbGrid.Rows Then
                    CxbbGrid.AddItem ""
                End If
                CxbbGrid.RowHeight(Jsqte) = Sjhgd
                CxbbGrid.TextMatrix(Jsqte, 0) = Str_CclassIndex + "合计"
                CxbbGrid.TextMatrix(Jsqte, Sydz("002", GridStr(), Szzls)) = Trim(.Fields("Cclass")) + "类合计"
                
                If Val(CxbbGrid.TextMatrix(Jsqte, Sydz("005", GridStr(), Szzls))) + .Fields("Jfjehj") <> 0 Then
                    CxbbGrid.TextMatrix(Jsqte, Sydz("005", GridStr(), Szzls)) = Trim(Str(Val(CxbbGrid.TextMatrix(Jsqte, Sydz("005", GridStr(), Szzls))) + .Fields("Jfjehj")))
                Else
                    CxbbGrid.TextMatrix(Jsqte, Sydz("005", GridStr(), Szzls)) = ""
                End If
                If Val(CxbbGrid.TextMatrix(Jsqte, Sydz("006", GridStr(), Szzls))) + .Fields("Dfjehj") <> 0 Then
                    CxbbGrid.TextMatrix(Jsqte, Sydz("006", GridStr(), Szzls)) = Trim(Str(Val(CxbbGrid.TextMatrix(Jsqte, Sydz("006", GridStr(), Szzls))) + .Fields("Dfjehj")))
                Else
                    CxbbGrid.TextMatrix(Jsqte, Sydz("006", GridStr(), Szzls)) = ""
                End If
                CxbbGrid.Cell(flexcpBackColor, Jsqte, 0, , CxbbGrid.Cols - 1) = Lab_Color(0).BackColor
                Jsqte = Jsqte + 1
            Else
                If Val(CxbbGrid.TextMatrix(Lng_ParCol, Sydz("005", GridStr(), Szzls))) + .Fields("Jfjehj") <> 0 Then
                    CxbbGrid.TextMatrix(Lng_ParCol, Sydz("005", GridStr(), Szzls)) = Trim(Str(Val(CxbbGrid.TextMatrix(Lng_ParCol, Sydz("005", GridStr(), Szzls))) + .Fields("Jfjehj")))
                Else
                    CxbbGrid.TextMatrix(Lng_ParCol, Sydz("005", GridStr(), Szzls)) = ""
                End If
                If Val(CxbbGrid.TextMatrix(Lng_ParCol, Sydz("006", GridStr(), Szzls))) + .Fields("Dfjehj") <> 0 Then
                    CxbbGrid.TextMatrix(Lng_ParCol, Sydz("006", GridStr(), Szzls)) = Trim(Str(Val(CxbbGrid.TextMatrix(Lng_ParCol, Sydz("006", GridStr(), Szzls))) + .Fields("Dfjehj")))
                Else
                    CxbbGrid.TextMatrix(Lng_ParCol, Sydz("006", GridStr(), Szzls)) = ""
                End If
            End If
            
            .MoveNext
        Loop
    End With
    
    '截取无用行
    CxbbGrid.Rows = Jsqte
    
    '将网格按科目编码排序
    With CxbbGrid
        .Col = 0
        .Sort = flexSortStringAscending
    End With
    
    '计算本币发生总合计
    Sqlstr = "SELECT SUM(Jfje) Jfjehj, SUM(Dfje) Dfjehj From Cwzz_V_AccVouch " & _
    Str_QueryCondi
    Set Rec_Query = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
    
    With Rec_Query
        If Not .EOF Then
            CxbbGrid.AddItem ""
            Jsqte = CxbbGrid.Rows - 1
            CxbbGrid.RowHeight(Jsqte) = Sjhgd
            CxbbGrid.TextMatrix(Jsqte, Sydz("002", GridStr(), Szzls)) = "合计"
            If .Fields("Jfjehj") <> 0 Then
                CxbbGrid.TextMatrix(Jsqte, Sydz("005", GridStr(), Szzls)) = .Fields("Jfjehj")
            End If
            If .Fields("Dfjehj") <> 0 Then
                CxbbGrid.TextMatrix(Jsqte, Sydz("006", GridStr(), Szzls)) = .Fields("Dfjehj")
            End If
        End If
    End With
    
    '计算各外币发生合计(去掉本位币)
    
    Sqlstr = "Select b.*,c.ForeignCurrName From (SELECT SUM(WbJfje) WbJfjehj, SUM(WbDfje) WbDfjehj,a.ForeignCurrCode From Cwzz_V_AccVouch a" & _
    Str_QueryCondi & "Group By a.ForeignCurrCode) b LEFT OUTER JOIN Gy_ForeignCurrency c ON b.ForeignCurrCode = c.ForeignCurrCode"
    Set Rec_Query = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
    
    With Rec_Query
        Do While Not .EOF
            
            If Trim(.Fields("ForeignCurrCode")) <> "" And Trim(.Fields("ForeignCurrCode")) <> XtSCurrCode Then
                CxbbGrid.AddItem ""
                Jsqte = CxbbGrid.Rows - 1
                CxbbGrid.RowHeight(Jsqte) = Sjhgd
                CxbbGrid.TextMatrix(Jsqte, Sydz("002", GridStr(), Szzls)) = Trim(.Fields("ForeignCurrName")) & "合计"
                If .Fields("WbJfjehj") <> 0 Then
                    CxbbGrid.TextMatrix(Jsqte, Sydz("007", GridStr(), Szzls)) = .Fields("WbJfjehj")
                End If
                If .Fields("WbDfjehj") <> 0 Then
                    CxbbGrid.TextMatrix(Jsqte, Sydz("008", GridStr(), Szzls)) = .Fields("WbDfjehj")
                End If
            End If
            
            .MoveNext
        Loop
    End With
    
    ']以上为用户自定义部分
    
End Sub

Private Sub bbyl(bbylte As Boolean)                    '报表打印预览
    Dim Bbzbt$, Bbxbt() As String, bbxbtzzxs() As Integer, Bbxbtgs As Integer
    Dim Bbbwh() As String, Bbbwhzzxs() As Integer, Bbbwhgs As Integer
    Bbxbtgs = 1                                          '报 表 小 标 题 行 数
    Bbbwhgs = 0                                          '报 表 表 尾 行 数
    ReDim Bbxbt(1 To Bbxbtgs)
    ReDim bbxbtzzxs(1 To Bbxbtgs)
    If Bbbwhgs <> 0 Then
        ReDim Bbbwh(1 To Bbbwhgs)
        ReDim Bbbwhzzxs(1 To Bbbwhgs)
    End If
    Bbzbt = ReportTitle
    Bbxbt(1) = Space(2) + "会计期间:" + Lab_TitleText(0) + Space(5) + "凭证范围:" + Lab_TitleText(1) + Space(5) + "凭证号:" + Lab_TitleText(2)
    bbxbtzzxs(1) = 1                                    '报表行组织形式(0-居左 1-居中 2-居右)
    Call Scyxsjb(CxbbGrid)                               '生成报表数据
    Call Scdybb(Dyymctbl, Bbzbt, Bbxbt(), bbxbtzzxs(), Bbxbtgs, Bbbwh(), Bbbwhzzxs(), Bbbwhgs, bbylte)
    If Not bbylte Then
        Unload DY_Tybbyldy
    End If
End Sub

⌨️ 快捷键说明

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