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

📄 frmac_bookresultprint.frm

📁 一个用VB写的财务软件源码
💻 FRM
📖 第 1 页 / 共 5 页
字号:
    gcD = 0
    gcJSL = 0
    gcDSL = 0
    gcJWB = 0
    gcDWB = 0
    
End Sub
'添加本日合计、本月合计、本年累计
Private Sub AppendTotalRows(ByVal PreKjqj As Integer, ByVal PrePzrq As Date, Optional ByVal iPageStart As Integer = 0)
    Dim rstTotal As ADODB.Recordset
    Dim sSQL As String
    
    '填入一行:本日合计
    CurRow = CurRow + 1
    lCount = lCount + 1
    If (lCount Mod ROWS_PAGE) = 0 Then Call AppendChangePageRow(1, iPageStart)
    Call AppendOneRow(ROW_GRID_START + lCount - 1, CurRow - ROW_GRID_START + 1, _
            PreKjqj, Day(PrePzrq), "", "", "", "[  本  日  合  计  ]", 0, 0, sFX, _
            Abs(brhjJSL - brhjDSL), Abs(brhjJWB - brhjDWB), Abs(brhjJ - brhjD), "", _
            brhjJSL, brhjJWB, brhjJ, brhjDSL, brhjDWB, brhjD)
    
    '填入一行:本期合计
    
    If (lCount Mod ROWS_PAGE) = 0 Then
     Call AppendChangePageRow(1, iPageStart)
      Call AppendOneRow(ROW_GRID_START + lCount - 1, CurRow - ROW_GRID_START + 1, _
            PreKjqj, Day(PrePzrq), "", "", "", "[  本  日  合  计  ]", 0, 0, sFX, _
            Abs(brhjJSL - brhjDSL), Abs(brhjJWB - brhjDWB), Abs(brhjJ - brhjD), "", _
            brhjJSL, brhjJWB, brhjJ, brhjDSL, brhjDWB, brhjD)
      CurRow = CurRow + 1
    lCount = lCount + 1
    Else
     CurRow = CurRow + 1
    lCount = lCount + 1
    End If
    Call AppendOneRow(ROW_GRID_START + lCount - 1, CurRow - ROW_GRID_START + 1, _
            PreKjqj, 0, "", "", "", "[  本  月  合  计  ]", 0, 0, sFX, _
            IIf(sFX = "借", dYESL, -dYESL), IIf(sFX = "借", dYEWB, -dYEWB), _
            IIf(sFX = "借", dYE, -dYE), _
            "", byhjJSL, byhjJWB, byhjJ, byhjDSL, byhjDWB, byhjD)
            
            
    Set rstTotal = New ADODB.Recordset
     '计算本期累计数(累计到前一张凭证的月份)
        'JFSL00     JFWB00      JF00        DFSL00      DFWB00      DF00
        'JFSL02     JFWB02      JF02        DFSL02      DFWB02      DF02
    sSQL = "SELECT ljjsl00 jfsl00,ljjwb00 jfwb00,ljj00 jf00," _
                & "ljdsl00 dfsl00,ljdwb00 dfwb00,ljd00 df00," _
                & "ljjsl" & Format(PreKjqj, "00") & " jfsl02," _
                    & "ljjwb" & Format(PreKjqj, "00") & " jfwb02," _
                    & "ljj" & Format(PreKjqj, "00") & " jf02," _
                & "ljdsl" & Format(PreKjqj, "00") & " dfsl02," _
                    & "ljdwb" & Format(PreKjqj, "00") & " dfwb02," _
                    & "ljd" & Format(PreKjqj, "00") & " df02" _
                & " FROM tZW_balance" & m_sYear & " WHERE kmdm='" & m_sSubjCode & "'"
   With rstTotal
        .CursorLocation = adUseClient
        .Open sSQL, glo.cnnMain, adOpenStatic, adLockReadOnly
        bnljJ = .Fields("jf02").value - .Fields("jf00").value
        bnljJSL = .Fields("jfsl02").value - .Fields("jfsl00").value
        bnljJWB = .Fields("jfwb02").value - .Fields("jfwb00").value
        bnljD = .Fields("df02").value - .Fields("df00").value
        bnljDSL = .Fields("dfsl02").value - .Fields("dfsl00").value
        bnljDWB = .Fields("dfwb02").value - .Fields("dfwb00").value
        .Close
    End With
    '填入一行:本期累计
   
    If (lCount Mod ROWS_PAGE) = 0 Then
      Call AppendChangePageRow(1, iPageStart)
      Call AppendOneRow(ROW_GRID_START + lCount - 1, CurRow - ROW_GRID_START + 1, _
            PreKjqj, 0, "", "", "", "[  本  月  合  计  ]", 0, 0, sFX, _
            IIf(sFX = "借", dYESL, -dYESL), IIf(sFX = "借", dYEWB, -dYEWB), _
            IIf(sFX = "借", dYE, -dYE), _
            "", byhjJSL, byhjJWB, byhjJ, byhjDSL, byhjDWB, byhjD)
       CurRow = CurRow + 1
    lCount = lCount + 1
    Else
     CurRow = CurRow + 1
    lCount = lCount + 1
    End If
    Call AppendOneRow(ROW_GRID_START + lCount - 1, CurRow - ROW_GRID_START + 1, _
            PreKjqj, 0, "", "", "", "[  本  年  累  计  ]", 0, 0, sFX, _
            IIf(sFX = "借", dYESL, -dYESL), IIf(sFX = "借", dYEWB, -dYEWB), _
            IIf(sFX = "借", dYE, -dYE), "", _
            bnljJSL, bnljJWB, bnljJ, bnljDSL, bnljDWB, bnljD)
    If (lCount Mod ROWS_PAGE) = 0 Then
      Call AppendChangePageRow(1, iPageStart)
     Call AppendOneRow(ROW_GRID_START + lCount - 1, CurRow - ROW_GRID_START + 1, _
            PreKjqj, 0, "", "", "", "[  本  年  累  计  ]", 0, 0, sFX, _
            IIf(sFX = "借", dYESL, -dYESL), IIf(sFX = "借", dYEWB, -dYEWB), _
            IIf(sFX = "借", dYE, -dYE), "", _
            bnljJSL, bnljJWB, bnljJ, bnljDSL, bnljDWB, bnljD)
      
    End If
    Call InitVariant

End Sub

'在转页时加入一个过次行和一个承前行
Private Sub AppendChangePageRow(ByVal iOption As Integer, Optional ByVal iPageStart As Integer = 0)
    If (dYE > 0 And sFX <> "借") Or (dYE < 0 And sFX = "借") Then
        If sFX = "借" Then
            sFX = "贷"
        Else
            sFX = "借"
        End If
    End If
    If iOption <> 0 Then
        Call AppendOneRow(ROW_GRID_START + lCount - 1, CurRow - ROW_GRID_START + 1, 0, 0, "", "", "", _
                "[  过    次    页  ]", 0, 0, sFX, IIf(sFX = "借", dYESL, -dYESL), _
                IIf(sFX = "借", dYEWB, -dYEWB), IIf(sFX = "借", dYE, -dYE), "", _
                 gcJSL, gcJWB, gcJ, gcDSL, gcDWB, gcD)
    End If
    lPage = lPage + 1
    Cllr.InsertSheet Cllr.GetTotalSheets, 1
    Call SetGrid(lPage, ROW_GRID_START + lCount, iPageStart)
    Cllr.SetCurSheet lPage
    Cllr.SetRows ROW_GRID_START + ROWS_PAGE, lPage
    Cllr.SetCols COL_END + 2, lPage

    CurRow = CurRow + 1
    lCount = 1
    Call AppendOneRow(ROW_GRID_START + lCount - 1, CurRow - ROW_GRID_START + 1, 0, 0, "", "", "", _
            "[  承    前    页  ]", 0, 0, sFX, IIf(sFX = "借", dYESL, -dYESL), _
            IIf(sFX = "借", dYEWB, -dYEWB), IIf(sFX = "借", dYE, -dYE), "", _
             gcJSL, gcJWB, gcJ, gcDSL, gcDWB, gcD)
    CurRow = CurRow + 1
    lCount = lCount + 1
    gcJ = 0
    gcD = 0
    gcDSL = 0
    gcDWB = 0
    gcJSL = 0
    gcJWB = 0
End Sub

'显示查总账结果
Public Function ShowGeneralResult(Optional ByVal iPageStart As Integer = 0) As Integer
    Dim rstTemp As ADODB.Recordset
    Dim maxKjqj As Integer                      '当前已记账凭证的最大会计期间
    Dim StartDate As Date                       '查询开始日期
    Dim sSQL As String
    Dim dDebit_Amount As Double, dDebit_Foreign As Double, dDebit_Money As Double
    Dim dCredit_Amount As Double, dCredit_Foreign As Double, dCredit_Money As Double
    Dim sDireciton As String
    Dim sHappenDirection As String
    Dim dBalance_Amount As Double, dBalance_Foreign As Double, dBalance_Money As Double
    Dim i As Long, j As Long, k As Long
    Dim m_iFromMonth As Integer
    Dim m_iToMonth As Integer
    m_iFromMonth = m_sFromMonth
    m_iToMonth = m_sToMonth
    ShowGeneralResult = iPageStart
    fMainForm.MousePointer = vbHourglass
      
   '得到打印时显示的科目代码和名称以及总账科目
    m_sPrintSubjectCode = m_sSubjCode
    
    m_sPrintSubjectName = GetSubjectFullPath(glo.sAccountID, m_sSubjCode)
    If InStr(1, m_sPrintSubjectName, "\") > 0 Then
        m_sDaySubjectName = Mid(m_sPrintSubjectName, InStr(1, m_sPrintSubjectName, "\") + 1)
    Else
        m_sDaySubjectName = m_sPrintSubjectName
    End If
    
    '得到当前账套的单位名称
    m_sEnterName = GetDWMC
    If m_sEnterName = "" Then
        ShowGeneralResult = iPageStart
        Exit Function
    End If
    
    '得到一个科目数量单位和外币单位
    Call GetSldwAndWbdw(m_sSubjCode, m_sSldw, m_sWbdw)
    If m_sSldw <> "" Then
        m_bAmount = True
    Else
        m_bAmount = False
    End If
    If m_sWbdw <> "" Then
        m_bForeign = True
    Else
        m_bForeign = False
    End If
        
    '将CELL不可见,防止清除CELL控件内容时屏幕闪烁;
    Cllr.Visible = False

    Cllr.ResetContent
    Set rstTemp = New ADODB.Recordset
    rstTemp.CursorLocation = adUseClient
'    m_iYear = glo.sOperateYear
     
    '从科目表中取出科目名称、年(期)初累计数、年(期)初月到十二月的累计数
    sSQL = "SELECT ljjsl00,ljjwb00,ljj00,ljdsl00,ljdwb00,ljd00"
    For i = m_iFromMonth - 1 To 12
        sSQL = sSQL & ",ljjsl" & Format(i, "00") & ",ljjwb" & Format(i, "00") & ",ljj" & Format(i, "00") & _
                      ",ljdsl" & Format(i, "00") & ",ljdwb" & Format(i, "00") & ",ljd" & Format(i, "00")
    Next i
    sSQL = sSQL & " FROM tZW_balance" & glo.sOperateYear & " WHERE kmdm = '" & m_sSubjCode & "'"
    With rstTemp
        .Open sSQL, glo.cnnMain, adOpenStatic, adLockReadOnly
        If .RecordCount > 0 Then
            '求表格总行数
            Cllr.SetRows ROW_GRID_START + ROWS_PAGE + 1, Cllr.GetCurSheet
            Cllr.SetCols COL_END + 2, Cllr.GetCurSheet                              '表格列数
            '设置单元格的显示风格
            For i = ROW_GRID_START To Cllr.GetRows(Cllr.GetCurSheet) - 1
                For j = COL_START To COL_END
                    Cllr.SetCellFont j, i, Cllr.GetCurSheet, Cllr.FindFontIndex("宋体", 1)
                    Cllr.SetCellFontSize j, i, Cllr.GetCurSheet, 9
                    Cllr.SetCellFontStyle j, i, Cllr.GetCurSheet, 0
                Next j
                Cllr.SetCellAlign COL_MONTH, i, Cllr.GetCurSheet, 32 + 4
                Cllr.SetCellAlign COL_DAY, i, Cllr.GetCurSheet, 32 + 4
                Cllr.SetCellAlign COL_SUMMARY, i, Cllr.GetCurSheet, 32 + 4
                
                Cllr.SetCellNumType COL_DEBIT_AMOUNT, i, Cllr.GetCurSheet, 1
                Cllr.SetCellSeparator COL_DEBIT_AMOUNT, i, Cllr.GetCurSheet, 2
                Cllr.SetCellDigital COL_DEBIT_AMOUNT, i, Cllr.GetCurSheet, 3
                
                Cllr.SetCellNumType COL_DEBIT_FOREIGN, i, Cllr.GetCurSheet, 1
                Cllr.SetCellSeparator COL_DEBIT_FOREIGN, i, Cllr.GetCurSheet, 2
                Cllr.SetCellDigital COL_DEBIT_FOREIGN, i, Cllr.GetCurSheet, 2
                
                Cllr.SetCellNumType COL_DEBIT_MONEY, i, Cllr.GetCurSheet, 1
                Cllr.SetCellSeparator COL_DEBIT_MONEY, i, Cllr.GetCurSheet, 2
                Cllr.SetCellDigital COL_DEBIT_MONEY, i, Cllr.GetCurSheet, 2
                
                Cllr.SetCellNumType COL_CREDIT_AMOUNT, i, Cllr.GetCurSheet, 1
                Cllr.SetCellSeparator COL_CREDIT_AMOUNT, i, Cllr.GetCurSheet, 2
                Cllr.SetCellDigital COL_CREDIT_AMOUNT, i, Cllr.GetCurSheet, 3
                
                Cllr.SetCellNumType COL_CREDIT_FOREIGN, i, Cllr.GetCurSheet, 1
                Cllr.SetCellSeparator COL_CREDIT_FOREIGN, i, Cllr.GetCurSheet, 2
                Cllr.SetCellDigital COL_CREDIT_FOREIGN, i, Cllr.GetCurSheet, 2
                
                Cllr.SetCellNumType COL_CREDIT_MONEY, i, Cllr.GetCurSheet, 1
                Cllr.SetCellSeparator COL_CREDIT_MONEY, i, Cllr.GetCurSheet, 2
                Cllr.SetCellDigital COL_CREDIT_MONEY, i, Cllr.GetCurSheet, 2
                
                Cllr.SetCellAlign COL_DIRECTION, i, Cllr.GetCurSheet, 32 + 4
                
                Cllr.SetCellNumType COL_BALANCE_AMOUNT, i, Cllr.GetCurSheet, 1
                Cllr.SetCellSeparator COL_BALANCE_AMOUNT, i, Cllr.GetCurSheet, 2
                Cllr.SetCellDigital COL_BALANCE_AMOUNT, i, Cllr.GetCurSheet, 3
                
                Cllr.SetCellNumType COL_BALANCE_FOREIGN, i, Cllr.GetCurSheet, 1
                Cllr.SetCellSeparator COL_BALANCE_FOREIGN, i, Cllr.GetCurSheet, 2
                Cllr.SetCellDigital COL_BALANCE_FOREIGN, i, Cllr.GetCurSheet, 2
                
                
                Cllr.SetCellNumType COL_BALANCE_MONEY, i, Cllr.GetCurSheet, 1
                Cllr.SetCellSeparator COL_BALANCE_MONEY, i, Cllr.GetCurSheet, 2
                Cllr.SetCellDigital COL_BALANCE_MONEY, i, Cllr.GetCurSheet, 2
            Next i
            
            '求年初余额(期初余额)
            dBalance_Amount = .Fields("ljjsl" & Format(m_iFromMonth - 1, "00")).value - _
                                .Fields("ljdsl" & Format(m_iFromMonth - 1, "00")).value
            dBalance_Foreign = .Fields("ljjwb" & Format(m_iFromMonth - 1, "00")).value - _
                                .Fields("ljdwb" & Format(m_iFromMonth - 1, "00")).value
            dBalance_Money = .Fields("ljj" & Format(m_iFromMonth - 1, "00")).value - _
                                .Fields("ljd" & Format(m_iFromMonth - 1, "00")).value
            If dBalance_Money > 0 Then
                sDireciton = "借"
            ElseIf dBalance_Money = 0 Then
                sDireciton = "平"
            Else
                sDireciton = "贷"
                '此时dBlance_Money小于零;
                '如果dBalance_Amount(或者dBalance_Foreign)等于 -dBalance_Amount(或者 - dBalance_Foreign)
                dBalance_Amount = -dBalance_Amount
                dBalance_Foreign = -dBalance_Foreign
            End If
            i = ROW_GRID_START
            
            StartDate = CDate(GetPeriodFrom(m_iFromMonth))
            Cllr.SetCellString COL_MONTH, i, Cllr.GetCurSheet, Month(StartDate)
            Cllr.SetCellString COL_DAY, i, Cllr.GetCurSheet, Day(StartDate)
            Cllr.SetCellString COL_SUMMARY, i, Cllr.GetCurSheet, IIf(m_iFromMonth = 1, "[ 上  年  结  转 ]", "[ 期  初  余  额 ]")
            Cllr.SetCellString COL_DIRECTION, i, Cllr.GetCurSheet, sDireciton
        If dBalance_Amount <> 0 Then
            Cllr.SetCellDouble COL_BALANCE_AMOUNT, i, Cllr.GetCurSheet, dBalance_Amount
        End If
        If dBalance_Foreign <> 0 Then
            Cllr.SetCellDouble COL_BALANCE_FOREIGN, i, Cllr.GetCurSheet, dBalance_Foreign
        End If
        If Abs(dBalance_Money) <> 0 Then
            Cllr.SetCellDouble COL_BALANCE_MONEY, i, Cllr.GetCurSheet, Abs(dBalance_Money)
        End If
            
            '从年(期)初月份到十二月份,求出当前输入科目的累计余额;
            For k = m_iFromMonth To m_iToMonth
                '求本期合计
                i = i + 1
                dDebit_Amount = .Fields("ljjsl" & Format(k, "00")).value - _
                                .Fields("ljjsl" & Format(k - 1, "00")).value
                dDebit_Foreign = .Fields("ljjwb" & Format(k, "00")).value - _
                                 .Fields("ljjwb" & Format(k - 1, "00")).value
                dDebit_Money = .Fields("ljj" & Format(k, "00")).value - _
                               .Fields("ljj" & Format(k - 1, "00")).value
                               
                dCredit_Amount = .Fields("ljdsl" & Format(k, "00")).value - _
                                 .Fields("ljdsl" & Format(k - 1, "00")).value
                dCredit_Foreign = .Fields("ljdwb" & Format(k, "00")).value - _
                                  .Fields("ljdwb" & Format(k - 1, "00")).value
                dCredit_Money = .Fields("ljd" & Format(k, "00")).value - _
                                .Fields("ljd" & Format(k - 1, "00")).value
                                
                '求出本年累计余额
                dBalance_Amount = .Fields("ljjsl" & Format(k, "00")).value - _
                        .Fields("ljdsl" & Format(k, "00")).value
                dBalance_Foreign = .Fields("ljjwb" & Format(k, "00")).value - _
                        .Fields("ljdwb" & Format(k, "00")).value

⌨️ 快捷键说明

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