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

📄 -

📁 VB开发的ERP系统
💻
📖 第 1 页 / 共 4 页
字号:
    End Select

End Sub

Private Sub Timer1_Timer()                                 '在窗体激活后调入查询程序
    
    Timer1.Enabled = False
    Xt_Wait.Show
    Xt_Wait.Refresh
   
    '加快显示速度
    CxbbGrid.Redraw = False
 
    '生成查询结果
    Call Sub_Query(0)
   
    CxbbGrid.Redraw = True
    
    Xt_Wait.Hide

End Sub

Private Sub Sub_Query(Int_QueryType As Integer)                                     '生成查询结果(Define)
    
    '过程参数:Int_QueryType 0-"点确定按钮"查询  1-"刷新"查询
    Dim Rec_Query As New ADODB.Recordset        '查询结果动态集
    Dim Coljsq As Long                          '网格列计数器
    Dim jsqte As Integer                        '临时动态计数器
    Dim TempForCur As String                    '临时币别代码
    Dim BanTotal(8) As Single                   '计算客户余额合计

    '以下为自定义部分[
 
    If Int_QueryType = 0 Then   '0-"点确定按钮"查询
        With Report_FrmCusQuery
            
            '填充表头部门内容
            Report_FrmCusList.Lab_Dept = "部门: " & .LrText(3).Text
            Report_FrmCusList.Lab_Person = "经办人: " & .LrText(4).Text
            Report_FrmCusList.Lab_Kjqj = "会计期间: " & .Cmb_Kjqj.Text
            If Trim(.LrText(2).Text) <> "" Then
                Report_FrmCusList.Lab_Foreign = "币别: " & .LrText(2).Text
                TempForCur = Trim(.LrText(2).Tag)
            Else
                Report_FrmCusList.Lab_Foreign = "币别: " & XtSCurrName
                TempForCur = XtSCurrCode
            End If
            
            '生成查询条件
            Str_QueryCondi = " where 1=1 and RPFlag = 'AR' "
         
            For jsqte = 1 To 6
                Select Case jsqte
                    Case 1  '会计期间
                        If Trim(.Cmb_Kjqj.Text) <> "" Then
                            Str_QueryCondi = Str_QueryCondi & " and KjYear = " & Val(Mid(.Cmb_Kjqj.Text, 1, 4)) & " And Period = " & Val(Mid(.Cmb_Kjqj.Text, 6, 2))
                        End If
                    Case 2  '客户(起)
                        If Trim(.LrText(0).Text) <> "" Then
                            Str_QueryCondi = Str_QueryCondi & " and PsCode >= '" & Trim(.LrText(0).Tag) & "'"
                        End If
                    Case 3  '客户(止)
                        If Trim(.LrText(1).Text) <> "" Then
                            Str_QueryCondi = Str_QueryCondi & " and PsCode <= '" & Trim(.LrText(1).Tag) & "'"
                        End If
                    Case 4  '币别
                        If Trim(.LrText(2).Text) <> "" Then
                            Str_QueryCondi = Str_QueryCondi & " And ForeignCurrCode='" & Trim(.LrText(2).Tag) & "'"
                        End If
                    Case 5  '部门
                        If Trim(.LrText(3).Text) <> "" Then
                            Str_QueryCondi = Str_QueryCondi & " And DeptCode= '" & Trim(.LrText(3).Tag) & "'"
                        End If
                    Case 6 '经办人
                        If Trim(.LrText(4).Text) <> "" Then
                            Str_QueryCondi = Str_QueryCondi & " And PersonCode= '" & Trim(.LrText(4).Tag) & "'"
                        End If
                
                End Select
            Next jsqte
        End With
    Else
        '1-"刷新"查询
        If Str_QueryCondi = "" Then
            Str_QueryCondi = " where 1=2 "
        End If
    End If
     
    Sqlstr = "SELECT PsCode,CusName,Sum(YbNcye)YbNcye ,Sum(YbQcye)YbQcye,Sum(YbYsje)YbYsje,Sum(YbSsje)YbSsje, " & _
             " Sum(YbQmye)YbQmye,Sum(BbNcye)BbNcye,Sum(BbQcye)BbQcye,Sum(BbYsje)BbYsje,Sum(BbSsje)BbSsje, " & _
             " Sum(BbQmye)BbQmye FROM Ar_v_CurBalanceList " & Str_QueryCondi & " Group By PsCode,CusName Order By PsCode,CusName"

    Set Rec_Query = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
    With Rec_Query
        CxbbGrid.Rows = CxbbGrid.FixedRows
        jsqte = CxbbGrid.FixedRows
        Do While Not .EOF
            CxbbGrid.AddItem ""
            
            '[>>自定义填充内容
            CxbbGrid.TextMatrix(jsqte, Sydz("001", GridStr(), Szzls)) = Trim(.Fields("PsCode") & "")             '客户编码
            CxbbGrid.TextMatrix(jsqte, Sydz("002", GridStr(), Szzls)) = Trim(.Fields("CusName") & "")            '客户名称
            
            '期初借贷方向
            Select Case Val(.Fields!BbQcye)
                Case Is < 0
                    CxbbGrid.TextMatrix(jsqte, Sydz("003", GridStr(), Szzls)) = "贷"
                Case Is > 0
                    CxbbGrid.TextMatrix(jsqte, Sydz("003", GridStr(), Szzls)) = "借"
                Case Else
                    CxbbGrid.TextMatrix(jsqte, Sydz("003", GridStr(), Szzls)) = "平"
            End Select
            If Val(.Fields!BbQcye) <> 0 Then
                CxbbGrid.TextMatrix(jsqte, Sydz("005", GridStr(), Szzls)) = Abs(Val(.Fields("BbQcye")))          '本币期初余额
            End If
            CxbbGrid.TextMatrix(jsqte, Sydz("007", GridStr(), Szzls)) = Val(Val(.Fields("BbYsje")))              '本币应收金额
            CxbbGrid.TextMatrix(jsqte, Sydz("009", GridStr(), Szzls)) = Val(Val(.Fields("BbSsJe")))              '本币实收金额
            
            '期末借贷方向
            Select Case Val(.Fields!BbQmye)
                Case Is < 0
                    CxbbGrid.TextMatrix(jsqte, Sydz("010", GridStr(), Szzls)) = "贷"
                Case Is > 0
                    CxbbGrid.TextMatrix(jsqte, Sydz("010", GridStr(), Szzls)) = "借"
                Case Else
                    CxbbGrid.TextMatrix(jsqte, Sydz("010", GridStr(), Szzls)) = "平"
            End Select
            
            If Val(.Fields!BbQmye) <> 0 Then
                CxbbGrid.TextMatrix(jsqte, Sydz("012", GridStr(), Szzls)) = Abs(Val(.Fields("BbQmye")))          '本币期末余额
            End If
            
            If TempForCur <> XtSCurrCode Then
                If Val(.Fields!BbQcye) <> 0 Then
                    CxbbGrid.TextMatrix(jsqte, Sydz("004", GridStr(), Szzls)) = Abs(Val(.Fields("YbQcye")))      '原币期初余额
                End If
                CxbbGrid.TextMatrix(jsqte, Sydz("006", GridStr(), Szzls)) = Val(Val(.Fields("YbYsje")))          '原币应收金额
                CxbbGrid.TextMatrix(jsqte, Sydz("008", GridStr(), Szzls)) = Val(Val(.Fields("YbSsje")))          '原币实收金额
                If Val(.Fields!BbQmye) <> 0 Then
                    CxbbGrid.TextMatrix(jsqte, Sydz("011", GridStr(), Szzls)) = Abs(Val(.Fields("YbQmye")))      '原币期末余额
                End If
            End If

            '<<]
            '计算客户余额合计
            BanTotal(1) = BanTotal(1) + .Fields("YbQcye")   '原币期初余额合计
            BanTotal(2) = BanTotal(2) + .Fields("BbQcye")   '本币期初余额合计
            BanTotal(3) = BanTotal(3) + .Fields("YbYsje")   '原币应收金额合计
            BanTotal(4) = BanTotal(4) + .Fields("Bbysje")   '本币应收金额合计
            BanTotal(5) = BanTotal(5) + .Fields("YbSsje")   '原币实收金额合计
            BanTotal(6) = BanTotal(6) + .Fields("BbSsje")   '本币实收金额合计
            BanTotal(7) = BanTotal(7) + .Fields("YbQmye")   '原币期末余额合计
            BanTotal(8) = BanTotal(8) + .Fields("BbQmye")   '原币期末余额合计
            
            '设置数据行高度(Fixed)
            CxbbGrid.RowHeight(jsqte) = Sjhgd
            
            '动态集指针加1,同时将计数器加1(Fixed)
            .MoveNext
            jsqte = jsqte + 1
            
            If .EOF Then
                CxbbGrid.AddItem ""
                CxbbGrid.RowHeight(jsqte) = Sjhgd
                CxbbGrid.TextMatrix(jsqte, Sydz("002", GridStr(), Szzls)) = "  合  计"              '摘要
                If BanTotal(2) <> 0 Then
                    If BanTotal(2) < 0 Then                                                         '借贷方向
                        CxbbGrid.TextMatrix(jsqte, Sydz("003", GridStr(), Szzls)) = "贷"
                    Else
                        CxbbGrid.TextMatrix(jsqte, Sydz("003", GridStr(), Szzls)) = "借"
                    End If
                Else
                    CxbbGrid.TextMatrix(jsqte, Sydz("003", GridStr(), Szzls)) = "平"
                End If
                If BanTotal(1) <> 0 And TempForCur <> XtSCurrCode Then                              '原币期初余额
                    CxbbGrid.TextMatrix(jsqte, Sydz("004", GridStr(), Szzls)) = Abs(BanTotal(1))
                End If
                If BanTotal(2) <> 0 Then                                                            '本币期初余额
                    CxbbGrid.TextMatrix(jsqte, Sydz("005", GridStr(), Szzls)) = Abs(BanTotal(2))
                End If
                If TempForCur <> XtSCurrCode Then                                                   '原币本期应收
                    CxbbGrid.TextMatrix(jsqte, Sydz("006", GridStr(), Szzls)) = Val(BanTotal(3))
                End If
                CxbbGrid.TextMatrix(jsqte, Sydz("007", GridStr(), Szzls)) = Val(BanTotal(4))        '本币本期应收
                If TempForCur <> XtSCurrCode Then                                                   '原币本期实收
                    CxbbGrid.TextMatrix(jsqte, Sydz("008", GridStr(), Szzls)) = Val(BanTotal(5))
                End If
                CxbbGrid.TextMatrix(jsqte, Sydz("009", GridStr(), Szzls)) = Val(BanTotal(6))        '本币本期实收
                If BanTotal(8) <> 0 Then
                    If BanTotal(8) < 0 Then                                                         '借贷方向
                        CxbbGrid.TextMatrix(jsqte, Sydz("010", GridStr(), Szzls)) = "贷"
                    Else
                        CxbbGrid.TextMatrix(jsqte, Sydz("010", GridStr(), Szzls)) = "借"
                    End If
                Else
                    CxbbGrid.TextMatrix(jsqte, Sydz("010", GridStr(), Szzls)) = "平"
                End If
                If BanTotal(7) <> 0 And TempForCur <> XtSCurrCode Then                              '原币期末余额
                    CxbbGrid.TextMatrix(jsqte, Sydz("011", GridStr(), Szzls)) = Abs(BanTotal(7))
                End If
                If BanTotal(8) <> 0 Then                                                            '本币期末余额
                    CxbbGrid.TextMatrix(jsqte, Sydz("012", GridStr(), Szzls)) = Abs(BanTotal(8))
                End If
                
                 '合计清零
                For I = 1 To 8
                    BanTotal(I) = 0
                Next I
                
                '设置合计行颜色
                CxbbGrid.Cell(flexcpBackColor, jsqte, 0, , CxbbGrid.Cols - 1) = "&H00F7F3EC"
                jsqte = jsqte + 1
            End If
        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 = 2                                          '报 表 小 标 题 行 数
    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) + Fun_FormatOutPut(Lab_Dept, 25) + Fun_FormatOutPut(Lab_Person, 25) + Fun_FormatOutPut(Lab_Kjqj, 25) + Fun_FormatOutPut(Lab_Foreign, 25)
    bbxbtzzxs(1) = 0                                     '报表行组织形式(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 + -