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

📄 frmac_generalmodeprint.frm

📁 一个用VB写的财务软件源码
💻 FRM
📖 第 1 页 / 共 3 页
字号:
            '求表格总行数
            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
                dBalance_Money = .Fields("ljj" & Format(k, "00")).value - _
                        .Fields("ljd" & Format(k, "00")).value
                        
                If dBalance_Money > 0 Then
                    sDireciton = "借"
                ElseIf dBalance_Money = 0 Then
                    sDireciton = "平"
                Else
                    sDireciton = "贷"
                    dBalance_Amount = -dBalance_Amount
                    dBalance_Foreign = -dBalance_Foreign
                End If

                Cllr.SetCellString COL_MONTH, i, Cllr.GetCurSheet, k
                Cllr.SetCellString COL_DAY, i, Cllr.GetCurSheet, Day(GetPeriodTo(k))
                Cllr.SetCellString COL_SUMMARY, i, Cllr.GetCurSheet, "[ 本  月  合  计 ]"
                
                
            If Abs(dDebit_Amount) > 0.0001 Then
                Cllr.SetCellDouble COL_DEBIT_AMOUNT, i, Cllr.GetCurSheet, dDebit_Amount
            End If
            If Abs(dDebit_Foreign) > 0.0001 Then
                Cllr.SetCellDouble COL_DEBIT_FOREIGN, i, Cllr.GetCurSheet, dDebit_Foreign
            End If
            If Abs(dDebit_Money) > 0.0001 Then
                ubHappen = True
                Cllr.SetCellDouble COL_DEBIT_MONEY, i, Cllr.GetCurSheet, dDebit_Money
            End If
            If Abs(dCredit_Amount) > 0.0001 Then
                Cllr.SetCellDouble COL_CREDIT_AMOUNT, i, Cllr.GetCurSheet, dCredit_Amount
            End If
            If Abs(dCredit_Foreign) > 0.0001 Then
                Cllr.SetCellDouble COL_CREDIT_FOREIGN, i, Cllr.GetCurSheet, dCredit_Foreign
            End If
            If Abs(dCredit_Money) > 0.0001 Then
                ubHappen = True
                Cllr.SetCellDouble COL_CREDIT_MONEY, i, Cllr.GetCurSheet, dCredit_Money
            End If
               '求本期合计的余额
            If dDebit_Money - dCredit_Money > 0 Then
                 sHappenDirection = "借"
            ElseIf Abs(dDebit_Money - dCredit_Money) < 0.005 Then
                 sHappenDirection = "平"
            Else
                 sHappenDirection = "贷"
            End If
            Cllr.SetCellString COL_DIRECTION, i, Cllr.GetCurSheet, sHappenDirection
            If Abs(dDebit_Amount - dCredit_Amount) > 0.0001 Then
                Cllr.SetCellDouble COL_BALANCE_AMOUNT, i, Cllr.GetCurSheet, Abs(dDebit_Amount - dCredit_Amount)
            End If
            If Abs(dDebit_Foreign - dCredit_Foreign) > 0.0001 Then
               Cllr.SetCellDouble COL_BALANCE_FOREIGN, i, Cllr.GetCurSheet, Abs(dDebit_Foreign - dCredit_Foreign)
            End If
            If Abs(dDebit_Money - dCredit_Money) > 0.0001 Then
               Cllr.SetCellDouble COL_BALANCE_MONEY, i, Cllr.GetCurSheet, Abs(dDebit_Money - dCredit_Money)
            End If
                
                '求本期累计
                i = i + 1
                dDebit_Amount = .Fields("ljjsl" & Format(k, "00")).value - .Fields("ljjsl00").value
                dDebit_Foreign = .Fields("ljjwb" & Format(k, "00")).value - .Fields("ljjwb00").value
                dDebit_Money = .Fields("ljj" & Format(k, "00")).value - .Fields("ljj00").value
                
                dCredit_Amount = .Fields("ljdsl" & Format(k, "00")).value - .Fields("ljdsl00").value
                dCredit_Foreign = .Fields("ljdwb" & Format(k, "00")).value - .Fields("ljdwb00").value
                dCredit_Money = .Fields("ljd" & Format(k, "00")).value - .Fields("ljd00").value
               
                Cllr.SetCellString COL_MONTH, i, Cllr.GetCurSheet, k
                Cllr.SetCellString COL_SUMMARY, i, Cllr.GetCurSheet, "[ 本  年  累  计 ]"
            If Abs(dDebit_Amount) > 0.0001 Then
                Cllr.SetCellDouble COL_DEBIT_AMOUNT, i, Cllr.GetCurSheet, dDebit_Amount
            End If
            If Abs(dDebit_Foreign) > 0.0001 Then
                Cllr.SetCellDouble COL_DEBIT_FOREIGN, i, Cllr.GetCurSheet, dDebit_Foreign
            End If
            If Abs(dDebit_Money) > 0.0001 Then
                Cllr.SetCellDouble COL_DEBIT_MONEY, i, Cllr.GetCurSheet, dDebit_Money
            End If
            If Abs(dCredit_Amount) > 0.0001 Then
                Cllr.SetCellDouble COL_CREDIT_AMOUNT, i, Cllr.GetCurSheet, dCredit_Amount
            End If
            If Abs(dCredit_Foreign) > 0.0001 Then
                Cllr.SetCellDouble COL_CREDIT_FOREIGN, i, Cllr.GetCurSheet, dCredit_Foreign
            End If
            If Abs(dCredit_Money) > 0.0001 Then
                Cllr.SetCellDouble COL_CREDIT_MONEY, i, Cllr.GetCurSheet, dCredit_Money
            End If
                Cllr.SetCellString COL_DIRECTION, i, Cllr.GetCurSheet, sDireciton
            If Abs(dBalance_Amount) > 0.0001 Then
                Cllr.SetCellDouble COL_BALANCE_AMOUNT, i, Cllr.GetCurSheet, dBalance_Amount
            End If
            If Abs(dBalance_Foreign) > 0.0001 Then
                Cllr.SetCellDouble COL_BALANCE_FOREIGN, i, Cllr.GetCurSheet, dBalance_Foreign
            End If
            If Abs(dBalance_Money) > 0.0001 Then
                Cllr.SetCellDouble COL_BALANCE_MONEY, i, Cllr.GetCurSheet, Abs(dBalance_Money)
            End If
            Next k
            
            Cllr.Visible = True
            For i = 1 To Cllr.GetTotalSheets
               Cllr.SetSheetLabel i - 1, "第" & i & "页"
               Call SetGrid(i, ROWS_PAGE + ROW_GRID_START + 1, iPageStart)
            Next i
            iPageStart = iPageStart + Cllr.GetTotalSheets
            ShowResult = iPageStart
            '为了防止装填账页格式时触发cboaccountformat_click事件时,出现系统提示账页格式已改变;
            '所以将此程序在此调用
'            Call SetAccountFormat(cboAccountFormat, m_bAmount, m_bForeign)
            fMainForm.MousePointer = vbDefault
'            Me.Show
        End If
        .Close
    End With
End Function

Public Sub uPrint()
Dim frmPage As frmPageSet
    Dim lTotalPages As Long, i As Long
    If ubVisible = False Then
        For i = 0 To Cllr.GetTotalSheets - 1
            Cllr.SetCurSheet i
            Cllr.PrintSheet 0, i
        Next i
    Else
        lTotalPages = Cllr.GetTotalSheets
        Set frmPage = New frmPageSet
        With frmPage
            .uiMaxPage = lTotalPages
            .uiPresentPage = Cllr.GetCurSheet + 1
            .Show 1
            If .Ok Then
                For i = .uiFromPage To .uiToPage
                    If Not .uiSzFsSet Then
                      MsgBox "请插入纸张...", vbInformation
                    End If
                    Cllr.SetCurSheet i - 1
                    Cllr.PrintSheet 0, i - 1
                Next i
            End If
        End With
        Unload frmPage
    End If
End Sub

Public Sub uPreview()
    Cllr.PrintPreview 1, Cllr.GetCurSheet
    If Cllr.GetTotalSheets > 1 Then
        Cllr.DeleteSheet 1, Cllr.GetTotalSheets - 1
    End If
    Cllr.SaveFile App.Path & "\CellFiles\GeneralModePrint.cll", 1
    Cllr.closefile
End Sub
'从凭证表中求出会计期间等于(结账月份+1)的已记账凭证的记录数;
'如果iToMonth = 0 则判断年初1月份已记账凭证的记录数;
Private Function GetToMonth(ByVal iToMonth As Integer) As Integer
    Dim rstTemp As ADODB.Recordset
    
    Set rstTemp = New ADODB.Recordset
    With rstTemp
        .CursorLocation = adUseClient
        .Open "SELECT COUNT(*) iCount FROM tZW_Pzsj" & glo.sOperateYear & _
                " WHERE kjqj = " & iToMonth + 1 & " AND xgbz='2'", _
                glo.cnnMain, adOpenStatic, adLockReadOnly
        If .Fields("iCount").value = 0 Then
            GetToMonth = iToMonth
        Else
            GetToMonth = iToMonth + 1
        End If
    End With
    Set rstTemp = Nothing
   
End Function

⌨️ 快捷键说明

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