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