📄 frmac_generalmodeprint.frm
字号:
'求表格总行数
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 + -