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

📄

📁 VB开发的ERP系统
💻
📖 第 1 页 / 共 3 页
字号:
            Else
                Year = !Year
                Period = !Period - 1
            End If
            
            SqlStr1 = "SELECT Gdzc_Total.[Year], Gdzc_Total.Period, Gdzc_Sort.FASortName, " _
                & "SUM(Gdzc_Total.FAValueEndM) AS FAValueEndM, " _
                & "SUM(Gdzc_DetailedForm.DeprValue) AS DeprValue, SUM(Gdzc_Total.FAValueInM) " _
                & "AS FAValueInM, SUM(Gdzc_Total.FAValueOutM) AS FAValueOutM " _
                & "FROM Gdzc_Total LEFT OUTER JOIN " _
                & "Gdzc_DetailedForm ON Gdzc_Total.Period = Gdzc_DetailedForm.Period AND " _
                & "Gdzc_Total.[Year] = Gdzc_DetailedForm.[Year] AND " _
                & "Gdzc_Total.FASortCode = Gdzc_DetailedForm.FASortCode LEFT OUTER JOIN " _
                & "Gdzc_Sort ON Gdzc_Total.FASortCode = Gdzc_Sort.FASortCode " _
                & "where Gdzc_Total.Year=" & Val(Year) & " and Gdzc_Total.Period=" & Val(Period) _
                & " and Gdzc_Sort.FASortName='" & Trim(!FASortName) & "'" _
                & " GROUP BY Gdzc_Total.[Year], Gdzc_Total.Period, Gdzc_Sort.FASortName"
            Set rstemp = Cw_DataEnvi.DataConnect.Execute(SqlStr1)
            If Not rstemp.EOF Then
                CxbbGrid.TextMatrix(Jsqte, Sydz("004", GridStr(), Szzls)) = Trim(rstemp!DeprValue & "")                                 '上月折旧额
                CxbbGrid.TextMatrix(Jsqte, Sydz("005", GridStr(), Szzls)) = Trim(rstemp!FAValueInM & "")                                '上月增加原值
                CxbbGrid.TextMatrix(Jsqte, Sydz("006", GridStr(), Szzls)) = Trim(rstemp!FAValueOutM & "")                               '上月减少原值
                CxbbGrid.TextMatrix(Jsqte, Sydz("009", GridStr(), Szzls)) = Trim(rstemp!FAvalueEndM & "")                               '上月资产原值
                CxbbGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)) = Trim(Format(Val(Val(rstemp!DeprValue) / Val(rstemp!FAvalueEndM)) * 100, "##0.00") & "")         '月分类折旧率
            End If
            rstemp.Close
            Set rstemp = Nothing
            CxbbGrid.TextMatrix(Jsqte, Sydz("001", GridStr(), Szzls)) = Trim(!Year & "." & Format(!Period, "00") & "")                               '会计期间
            CxbbGrid.TextMatrix(Jsqte, Sydz("008", GridStr(), Szzls)) = Trim(!DeprValue & "")                                           '本月折旧额
            CxbbGrid.TextMatrix(Jsqte, Sydz("010", GridStr(), Szzls)) = Trim(!FAvalueEndM & "")                                         '本月资产原值
            CxbbGrid.TextMatrix(Jsqte, Sydz("002", GridStr(), Szzls)) = Trim(!FASortName & "")                                          '类别名称
            CxbbGrid.TextMatrix(Jsqte, Sydz("007", GridStr(), Szzls)) = Trim(Val(Val(!DeprValue) - Val(CxbbGrid.TextMatrix(Jsqte, Sydz("004", GridStr(), Szzls)))) & "")    '应增减折旧额
            CxbbGrid.RowHeight(Jsqte) = Sjhgd
            .MoveNext
            Jsqte = Jsqte + 1
            
            '合计行处理
            If Not .EOF Then
                If Trim(!Year & "." & Format(!Period, "00") & "") <> Trim(CxbbGrid.TextMatrix(Jsqte - 1, Sydz("001", GridStr(), Szzls))) Then
                    year1 = LeftChar(CxbbGrid.TextMatrix(Jsqte - 1, Sydz("001", GridStr(), Szzls)))
                    period1 = RightChar(CxbbGrid.TextMatrix(Jsqte - 1, Sydz("001", GridStr(), Szzls)))
                    
                    '上月原值和本月原值合计
                    SqlStr1 = "SELECT Year, Period, SUM(FAValueEndM) AS FAValueEndM, SUM(FAValueStartM) " _
                        & "AS FAValueStartM From Gdzc_Total where Year=" & Val(year1) & " and Period=" & Val(period1) _
                        & "GROUP BY Year,Period"
                    Set rstemp = Cw_DataEnvi.DataConnect.Execute(SqlStr1)
                    If Not rstemp.EOF Then
                        CxbbGrid.TextMatrix(Jsqte, Sydz("001", GridStr(), Szzls)) = "本期合计"                                          '会计期间
                        CxbbGrid.TextMatrix(Jsqte, Sydz("009", GridStr(), Szzls)) = Trim(rstemp!FAValueStartM & "")                     '上月资产原值
                        CxbbGrid.TextMatrix(Jsqte, Sydz("010", GridStr(), Szzls)) = Trim(rstemp!FAvalueEndM & "")                       '本月资产原值
                    End If
                    rstemp.Close
                    Set rstemp = Nothing
                    
                    '本月折旧
                    Set rstemp = New ADODB.Recordset
                    rstemp.Open "SELECT SUM(DeprValue) AS deprValue From Gdzc_DetailedForm where year=" & Val(year1) & " and period=" & Val(period1) & " GROUP BY [Year], Period", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
                    If Not rstemp.EOF Then
                        CxbbGrid.TextMatrix(Jsqte, Sydz("008", GridStr(), Szzls)) = Trim(rstemp!DeprValue & "")                         '本月折旧额
                    End If
                    rstemp.Close
                    Set rstemp = Nothing
                    
                    '上个期间
                    If Val(period1) = 1 Then
                        year1 = year1 - 1
                        period1 = 12
                    Else
                        period1 = period1 - 1
                    End If
                    
                    '上月折旧额
                    Set rstemp = New ADODB.Recordset
                    rstemp.Open "SELECT SUM(DeprValue) AS deprValue From Gdzc_DetailedForm where year=" & Val(year1) & " and period=" & Val(period1) & " GROUP BY [Year], Period", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
                    If Not rstemp.EOF Then
                        CxbbGrid.TextMatrix(Jsqte, Sydz("004", GridStr(), Szzls)) = Trim(rstemp!DeprValue & "")                         '上月折旧额
                    End If
                    rstemp.Close
                    Set rstemp = Nothing
                    
                    '上月原值增加和上月原值减少
                    Set rstemp = New ADODB.Recordset
                    rstemp.Open "SELECT SUM(FAValueInM) AS FAValueInM, SUM(FAValueOutM) AS FAValueOutM " _
                        & "From Gdzc_Total where year=" & Val(year1) & " and Period=" & Val(period1) & "GROUP BY [Year], Period", _
                        Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
                    If Not rstemp.EOF Then
                        CxbbGrid.TextMatrix(Jsqte, Sydz("005", GridStr(), Szzls)) = Trim(rstemp!FAValueInM & "")                        '上月增加原值
                        CxbbGrid.TextMatrix(Jsqte, Sydz("006", GridStr(), Szzls)) = Trim(rstemp!FAValueOutM & "")                       '上月减少原值
                    End If
                    rstemp.Close
                    Set rstemp = Nothing
                    
                    '应增减折旧额
                    CxbbGrid.TextMatrix(Jsqte, Sydz("007", GridStr(), Szzls)) = Trim(Val(Val(CxbbGrid.TextMatrix(Jsqte, Sydz("008", GridStr(), Szzls))) - Val(CxbbGrid.TextMatrix(Jsqte, Sydz("004", GridStr(), Szzls)))) & "")     '应增减折旧额
                    
                    For Row_Num = 0 To CxbbGrid.Cols - 1
                        CxbbGrid.Cell(flexcpBackColor, Jsqte, Row_Num) = &HFFFF00
                    Next Row_Num
                            
                    Jsqte = Jsqte + 1
                End If
            Else
                year1 = LeftChar(CxbbGrid.TextMatrix(Jsqte - 1, Sydz("001", GridStr(), Szzls)))
                period1 = RightChar(CxbbGrid.TextMatrix(Jsqte - 1, Sydz("001", GridStr(), Szzls)))
                
                '上月原值和本月原值合计
                SqlStr1 = "SELECT [Year], Period, SUM(FAValueEndM) AS FAValueEndM,SUM(FAValueStartM) " _
                    & "AS FAValueStartM From Gdzc_Total where Year=" & Val(year1) & " and Period=" & Val(period1) _
                    & "GROUP BY Year,Period"
                Set rstemp = Cw_DataEnvi.DataConnect.Execute(SqlStr1)
                If Not rstemp.EOF Then
                    CxbbGrid.TextMatrix(Jsqte, Sydz("001", GridStr(), Szzls)) = "本期合计"                                              '会计期间
                    CxbbGrid.TextMatrix(Jsqte, Sydz("009", GridStr(), Szzls)) = Trim(rstemp!FAValueStartM & "")                         '上月资产原值
                    CxbbGrid.TextMatrix(Jsqte, Sydz("010", GridStr(), Szzls)) = Trim(rstemp!FAvalueEndM & "")                           '本月资产原值
                End If
                rstemp.Close
                Set rstemp = Nothing
                
                '本月折旧
                Set rstemp = New ADODB.Recordset
                rstemp.Open "SELECT SUM(DeprValue) AS deprValue From Gdzc_DetailedForm where year=" & Val(year1) & " and period=" & Val(period1) & " GROUP BY [Year], Period", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
                If Not rstemp.EOF Then
                    CxbbGrid.TextMatrix(Jsqte, Sydz("008", GridStr(), Szzls)) = Trim(rstemp!DeprValue & "")                             '本月折旧额
                End If
                rstemp.Close
                Set rstemp = Nothing
                
                
                '上个期间
                If Val(period1) = 1 Then
                    year1 = year1 - 1
                    period1 = 12
                Else
                    period1 = period1 - 1
                End If
                
                '上月折旧额
                Set rstemp = New ADODB.Recordset
                rstemp.Open "SELECT SUM(DeprValue) AS deprValue From Gdzc_DetailedForm where year=" & Val(year1) & " and period=" & Val(period1) & " GROUP BY [Year], Period", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
                If Not rstemp.EOF Then
                    CxbbGrid.TextMatrix(Jsqte, Sydz("004", GridStr(), Szzls)) = Trim(rstemp!DeprValue & "")                             '上月折旧额
                End If
                rstemp.Close
                Set rstemp = Nothing
                
                '上月原值增加和上月原值减少
                Set rstemp = New ADODB.Recordset
                rstemp.Open "SELECT SUM(FAValueInM) AS FAValueInM, SUM(FAValueOutM) AS FAValueOutM " _
                    & "From Gdzc_Total where year=" & Val(year1) & " and Period=" & Val(period1) & "GROUP BY [Year], Period", _
                    Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
                If Not rstemp.EOF Then
                    CxbbGrid.TextMatrix(Jsqte, Sydz("005", GridStr(), Szzls)) = Trim(rstemp!FAValueInM & "")                            '上月增加原值
                    CxbbGrid.TextMatrix(Jsqte, Sydz("006", GridStr(), Szzls)) = Trim(rstemp!FAValueOutM & "")                           '上月减少原值
                End If
                rstemp.Close
                Set rstemp = Nothing
                
                '应增减折旧额
                CxbbGrid.TextMatrix(Jsqte, Sydz("007", GridStr(), Szzls)) = Trim(Val(Val(CxbbGrid.TextMatrix(Jsqte, Sydz("008", GridStr(), Szzls))) - Val(CxbbGrid.TextMatrix(Jsqte, Sydz("004", GridStr(), Szzls)))) & "")     '应增减折旧额
                
                For Row_Num = 0 To CxbbGrid.Cols - 1
                    CxbbGrid.Cell(flexcpBackColor, Jsqte, Row_Num) = &HFFFF00
                Next Row_Num
                        
                Jsqte = Jsqte + 1
            End If
        Loop
    End With
    
    '为零时清空单元格
    Call Txt_Clear

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) = " "
    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

'*****************************************************
'[>>自定义函数
'取右字符串
Function RightChar(str As String) As String
    
    If str = "" Then Exit Function
    Dim i As Integer
    i = InStrRev(str, ".")
    RightChar = Mid(str, i + 1)

End Function

'取左字符串
Function LeftChar(str As String) As String
    
    If str = "" Then Exit Function
    Dim i As Integer
    i = InStr(str, ".")
    LeftChar = Mid(str, 1, i - 1)

End Function

'为零时清空单元格
Function Txt_Clear()
    
    Dim Row_Integer, Col_Integer As Integer         '行数和列数变量
    
    For Row_Integer = CxbbGrid.FixedRows To CxbbGrid.Rows - 1
        For Col_Integer = 2 To CxbbGrid.Cols - 1
            If Val(CxbbGrid.TextMatrix(Row_Integer, Col_Integer)) = 0 Then
                CxbbGrid.TextMatrix(Row_Integer, Col_Integer) = ""
            End If
        Next Col_Integer
    Next Row_Integer

End Function
'<<]
'****************************************************

⌨️ 快捷键说明

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