📄 frmac_generalresult.frm
字号:
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 + -