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

📄 frmac_generalresult.frm

📁 一个用VB写的财务软件源码
💻 FRM
📖 第 1 页 / 共 5 页
字号:
        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
                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
               '求本期合计的余额
            If dDebit_Money - dCredit_Money > 0 Then
                 sHappenDirection = "借"
            ElseIf dDebit_Money - dCredit_Money = 0 Then
                 sHappenDirection = "平"
            Else
                 sHappenDirection = "贷"
            End If
            Cllr.SetCellString COL_DIRECTION, i, Cllr.GetCurSheet, sHappenDirection
            If dDebit_Amount - dCredit_Amount <> 0 Then
                Cllr.SetCellDouble COL_BALANCE_AMOUNT, i, Cllr.GetCurSheet, Abs(dDebit_Amount - dCredit_Amount)
            End If
            If dDebit_Foreign - dCredit_Foreign <> 0 Then
               Cllr.SetCellDouble COL_BALANCE_FOREIGN, i, Cllr.GetCurSheet, Abs(dDebit_Foreign - dCredit_Foreign)
            End If
            If dDebit_Money - dCredit_Money <> 0 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
            Call SetGrid
            Cllr.Visible = True
            For i = 1 To Cllr.GetTotalSheets
               Cllr.SetSheetLabel i - 1, "第" & i & "页"
            Next i
            
            '为了防止装填账页格式时触发cboaccountformat_click事件时,出现系统提示账页格式已改变;
            '所以将此程序在此调用
            Call SetAccountFormat(cboAccountFormat, m_bAmount, m_bForeign)
            fMainForm.MousePointer = vbDefault
            Me.Show
        End If
        .Close
    End With
End Sub


'显示查总账结果
Public Sub ShowResultIncludeNotRec()
    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 bFound As Boolean                      '未记账凭证存在标志
    Dim bNotRecordFlag As Boolean              '未记账的月份标记

    
    fMainForm.MousePointer = vbHourglass
    
   '设置科目名称和代码
    m_sSubjCode = arySubDetail(cboSubject.ListIndex + 1).sSubjectCode
    m_sSubjName = arySubDetail(cboSubject.ListIndex + 1).sSubjectName

   '得到打印时显示的科目代码和名称以及总账科目
    If glo.bSeparateSubject Then
        m_sPrintSubjectCode = SeparateSubject(glo.sAccountID, m_sSubjCode)
    Else
        m_sPrintSubjectCode = m_sSubjCode
    End If
    m_sPrintSubjectName = GetSubjectFullPath(glo.sAccountID, m_sSubjCode)
    
    If InStr(1, m_sPrintSubjectName, "\") > 0 Then
        m_sGenSubjectName = Mid(m_sPrintSubjectName, 1, InStr(1, m_sPrintSubjectName, "\") - 1)
    Else
        m_sGenSubjectName = m_sPrintSubjectName
    End If
    
    '得到当前账套的单位名称
    m_sEnterName = GetDWMC
    If m_sEnterName = "" Then
        Exit Sub
    End If
    
   '将CELL不可见,防止清除CELL控件内容时屏幕闪烁;
    Cllr.Visible = False
''    CllR.DoSetTotalPages 1
    Cllr.ResetContent

    
    '得到一个科目数量单位和外币单位
    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
       
    Set rstTemp = New ADODB.Recordset
    rstTemp.CursorLocation = adUseClient
    m_iYear = glo.sOperateYear
    sSQL = "SELECT * FROM tSYS_SubSysUsed WHERE AccountID = '" & glo.sAccountID & _
            "' AND SubSysID = '" & gloSys.sSubSysId & "'"
    With rstTemp
        .Open sSQL, gloSys.cnnSYS, adOpenStatic, adLockReadOnly
        If .RecordCount > 0 Then
            '如果注册年份大于账务子系统启用年份, 查询开始月份等于1;
            '否则如果注册年份等于账务子系统启用年份, 查询开始月份等于账务子系统启用月份;
            '否则报错;
            If glo.sOperateYear > .Fields("BeginYear").value Then
                m_iFromMonth = 1
            ElseIf glo.sOperateYear = .Fields("BeginYear").value Then
                m_iFromMonth = .Fields("BeginMonth").value
            Else
                MsgBox "注册年份不能小于账务子系统启用年份", vbCritical
                Unload Me
                Exit Sub
            End If
            
            ' 取到记账的最大月份
            '如记账年份等于操作年份,则记账的最大月份等于记账月份
            If glo.sOperateYear = .Fields("modiyear") Then
               ijzMaxMonth = .Fields("modimonth")
            ElseIf glo.sOperateYear > .Fields("modiyear") Then
               ijzMaxMonth = 1
            End If
            
            
            '如果注册年份大于账务子系统结账年份, 则求查询截止月份(0);
            '否则如果注册年份等于账务子系统结账年份, 则求查询截止月份(结账月份);
            '否则查询截止月份等于12月份;
'            If glo.sOperateYear > .Fields("ModiYear").Value Then
'                m_iToMonth = GetToMonth(0)
'            ElseIf glo.sOperateYear = .Fields("ModiYear").Value Then
'                m_iToMonth = GetToMonth(.Fields("ModiMonth").Value)
'            Else
                m_iToMonth = 12
'            End If
        End If
        .Close
    End With
    
    Call GetNotRecordData(bFound)
    Call GetEveryMonthLJ(maxKjqj)
    
     '求表格总行数
    Cllr.SetRows ROW_GRID_START + 1 + 2 * (IIf(m_iToMonth = 0, 0, maxKjqj - m_iFromMonth + 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

⌨️ 快捷键说明

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