📄 frmac_generalmodeprint.frm
字号:
VERSION 5.00
Object = "{7802D41A-28B0-43C4-95EA-17B7E32337D1}#1.0#0"; "CellCtrl5.ocx"
Begin VB.Form frmAC_GeneralModePrint
Caption = "总账套打"
ClientHeight = 4695
ClientLeft = 60
ClientTop = 345
ClientWidth = 6705
Icon = "frmAC_GeneralModePrint.frx":0000
LinkTopic = "Form1"
MDIChild = -1 'True
ScaleHeight = 4695
ScaleWidth = 6705
Begin CELL50Lib.Cell Cllr
Height = 4455
Left = 120
TabIndex = 0
Top = 240
Width = 6495
_Version = 65536
_ExtentX = 11456
_ExtentY = 7858
_StockProps = 0
End
End
Attribute VB_Name = "frmAC_GeneralModePrint"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'本模块只针对金额式账页进行套打,其他暂没考虑。2002.03.27
Option Explicit
'明细账
'与日记账相比,少一个本日合计
'Cell单元格对齐方式: 33 = 左对齐, 34 = 右对齐, 36 = 居中对齐;
Const ROWS_PAGE = 30 '每页行数
Const COL_START = 1 '开始列数
Const COL_SERIAL = 1 '序号
Const COL_MONTH = 2 '月
Const COL_DAY = 3 '日
Const COL_TYPE = 4 '凭证种类
Const COL_NUMBER = 5 '凭证号码
Const COL_BILL = 6 '单据号
Const COL_SUMMARY = 7 '摘要
Const COL_UNIT_PRICE = 8 '单价
Const COL_EXCHANGE_RATE = 9 '汇率
Const COL_DEBIT_AMOUNT = 10 '借方数量
Const COL_DEBIT_FOREIGN = 11 '借方外币
Const COL_DEBIT_MONEY = 12 '借方金额
Const COL_CREDIT_AMOUNT = 13 '贷方数量
Const COL_CREDIT_FOREIGN = 14 '贷方外币
Const COL_CREDIT_MONEY = 15 '贷方金额
Const COL_DIRECTION = 16 '方向
Const COL_BALANCE_AMOUNT = 17 '数量余额
Const COL_BALANCE_FOREIGN = 18 '外币余额
Const COL_BALANCE_MONEY = 19 '金额余额
Const COL_SEPARATE = 20 '分隔线
Const COL_MAN = 21 '会计事项原处理人
Const COL_LOGOUT_YEAR = 22 '注销年
Const COL_LOGOUT_MONTH = 23 '注销月
Const COL_LOGOUT_DAY = 24 '注销日
Const COL_LOGOUT_TYPE = 25 '注销字
Const COL_LOGOUT_NUMBER = 26 '注销号
Const COL_END = 26 '结束列
Const ROW_TITLE = 1 '标题
Const ROW_ACCOUNTFORMAT = 2 '账页格式行
Const ROW_SUBJCODE = 3 '页眉科目代码
Const ROW_SUBJNAME = 4 '页眉科目名称
Const ROW_HEAD1 = 5 '页标头行1
Const ROW_HEAD2 = 6 '页标头行2
Const ROW_GRID_START = 7 '表格开始行
Const CRB_LINE = vbBlack '表格线颜色
'金额式账页缺省列宽
Const COLWIDTH_MONEY = "45,33,34,46,50,108,296,0,0,0,0,170,0,0,140,37,0,0,134,24,76,57,30,30,30,0"
'数量金额式账页缺省列宽
Const COLWIDTH_AMOUNT = "40,30,30,50,50,50,220,100,0,120,0,120,120,0,120,25,120,0,120,6,60,50,30,30,30,50"
'外币金额式账页缺省列宽
Const COLWIDTH_FOREIGN = "40,30,30,50,50,50,220,0,100,0,120,120,0,120,120,25,0,120,120,6,60,50,30,30,30,50"
'数量外币式账页缺省列宽
Const COLWIDTH_AMOUNT_FOREIGN = "40,30,30,50,50,50,220,100,100,120,120,120,120,120,120,25,120,120,120,6,60,50,30,30,30,50"
Private Type udtKm
sSubjectCode As String
sSubjectName As String
End Type
Dim sFirstLevel() As udtKm '存放一级科目代码范围
Dim arySubject() As udtKm '存放明细科目名称范围
Dim arySubDetail() As udtKm
Dim m_bAmount As Boolean
Dim m_bForeign As Boolean
Dim m_sSldw As String
Dim m_sWbdw As String
Dim m_sEnterName As String
Private m_bFormLoad As Boolean
Private m_sGenSubjectName As String
Private m_sGenSubjectCode As String
Private m_sPrintSubjectName As String
Private m_sPrintSubjectCode As String
Private m_sDefaultColWidth As String
Private m_iColWidthTemp() As String
Private m_iColWidth() As String
Private m_sSubjCode As String
Private m_sSubjName As String
Public usAccountType As String '账页类型
Public usAccountFormat As String '账页格式
Public ubVisible As Boolean
Public ubHappen As Boolean '是否有发生
Public ubIncludeNoHappen As Boolean '不发生的也打印
Private Sub form_load()
Dim i As Integer
Dim j As Integer
m_bFormLoad = True
usAccountType = "总账套账"
usAccountFormat = "金额式"
Select Case usAccountFormat
Case "金额式"
m_sDefaultColWidth = COLWIDTH_MONEY
Case "数量金额式"
m_sDefaultColWidth = COLWIDTH_AMOUNT
Case "外币金额式"
m_sDefaultColWidth = COLWIDTH_FOREIGN
Case "数量外币式"
m_sDefaultColWidth = COLWIDTH_AMOUNT_FOREIGN
End Select
'求出各列的宽度(设置套打的列宽,xiao)
i = 1
ReDim m_iColWidth(1 To i)
For j = 1 To Len(m_sDefaultColWidth)
If j = 1 Then
m_iColWidth(i) = Mid(m_sDefaultColWidth, j, 1)
ElseIf Mid(m_sDefaultColWidth, j, 1) <> "," Then
m_iColWidth(i) = m_iColWidth(i) & Mid(m_sDefaultColWidth, j, 1)
Else
i = i + 1
ReDim Preserve m_iColWidth(1 To i)
End If
Next j
m_iColWidthTemp = m_iColWidth
'
' For i = LBound(arySubDetail) + 1 To UBound(arySubDetail)
' cboSubject.AddItem arySubDetail(i).sSubjectCode & "=" & arySubDetail(i).sSubjectName
' Next i
' If cboSubject.ListCount <> 0 Then
' cboSubject.ListIndex = 0
' End If
With Cllr
'将CELL不可见,防止清除CELL控件内容时屏幕闪烁;
.Login "南京伊康计算机工程公司", "11010504", "0060-1733-7722-3004"
.OpenFile App.Path + "\CellFiles\GeneralModePrint.cll", ""
Cllr.SetCols 1, 0
Cllr.SetRows 1, 0
.SetCols COL_END + 2, 0
.SetRows ROW_GRID_START + ROWS_PAGE, 0
.SetDefaultFont .FindFontIndex("宋体", 1), 10 '字体; 9号字, 0=粗体, 宋体
.WorkbookReadonly = True '表格只读
.AllowSizeColInGrid = True
End With
m_bFormLoad = False
End Sub
Private Sub Form_Resize()
Cllr.Width = Me.ScaleWidth
Cllr.Height = Me.ScaleHeight
End Sub
Private Sub SetGrid(ByVal PageNo As Long, Optional ByVal FactRows As Long, Optional ByVal iPageStart As Integer = 0)
Dim i As Long, j As Long
Dim iAmountLen As Integer '数量单位字符串的长度
Dim iForeignlen As Integer '外币单位字符串的长度
Dim iPageNoLen As Integer '页号字符串的长度
Dim maxLen As Integer '最大字符串的长度
With Cllr
.SetCurSheet PageNo - 1
.SetRows FactRows, PageNo - 1
.SetCols COL_END + 2, PageNo - 1
.SetSelectMode PageNo - 1, 2
.SetFixedCol COL_START, COL_BILL
.SetFixedRow ROW_TITLE, ROW_HEAD2
' .PrintSetMargin 10, 25, 23, 23
.PrintSetPaper 39
.PrintSetOrient 0
.ShowSideLabel 0, PageNo - 1 '行标不可见
.ShowTopLabel 0, PageNo - 1 '列标不可见
.SetDefaultRowHeight PageNo - 1, 1, 25.5
' If g_CH = -1 Then
' .SetDefaultRowHeight PageNo - 1, 1, 25.5
' End If
'
'Title
.SetCellAlign COL_START, ROW_TITLE, PageNo - 1, 36
.SetCellFont COL_START, ROW_TITLE, PageNo - 1, .FindFontIndex("黑体", 1)
.SetCellFontSize COL_START, ROW_TITLE, PageNo - 1, 19
.SetCellFontStyle COL_START, ROW_TITLE, PageNo - 1, 10
.MergeCells COL_START, ROW_TITLE, COL_END, ROW_TITLE
.SetCellString COL_START, ROW_TITLE, PageNo - 1, m_sGenSubjectName & IIf(GetKmJc(m_sPrintSubjectCode) = 0, "总账", "")
.SetRowHeight 1, 26, ROW_TITLE, PageNo - 1
'Comment
.SetRowHeight 1, 23, ROW_SUBJCODE, PageNo - 1
.SetRowHeight 1, 23, ROW_SUBJNAME, PageNo - 1
.MergeCells COL_START, ROW_SUBJNAME, COL_BALANCE_FOREIGN, ROW_SUBJNAME
.MergeCells COL_BALANCE_MONEY, ROW_SUBJNAME, COL_END, ROW_SUBJNAME
'如果是数量账或者外币账, 则设置数量单位和外币单位格
If m_bAmount Or m_bForeign Then
If m_bAmount And m_bForeign Then
.MergeCells COL_START, ROW_ACCOUNTFORMAT, COL_BALANCE_FOREIGN, ROW_ACCOUNTFORMAT
.MergeCells COL_BALANCE_MONEY, ROW_ACCOUNTFORMAT, COL_END, ROW_ACCOUNTFORMAT
.SetCellFont COL_BALANCE_MONEY, ROW_ACCOUNTFORMAT, PageNo - 1, .FindFontIndex("楷体_GB2312", 1)
.SetCellFontSize COL_BALANCE_MONEY, ROW_ACCOUNTFORMAT, PageNo - 1, 10
.SetCellFontStyle COL_BALANCE_MONEY, ROW_ACCOUNTFORMAT, PageNo - 1, 0
.SetCellAlign COL_BALANCE_MONEY, ROW_ACCOUNTFORMAT, PageNo - 1, 34
Else
.MergeCells COL_START, ROW_ACCOUNTFORMAT, COL_END, ROW_ACCOUNTFORMAT
End If
.MergeCells COL_START, ROW_SUBJCODE, COL_BALANCE_FOREIGN, ROW_SUBJCODE
.MergeCells COL_BALANCE_MONEY, ROW_SUBJCODE, COL_END, ROW_SUBJCODE
.SetCellFont COL_BALANCE_MONEY, ROW_SUBJCODE, PageNo - 1, .FindFontIndex("楷体_GB2312", 1)
.SetCellFontSize COL_BALANCE_MONEY, ROW_SUBJCODE, PageNo - 1, 10
.SetCellFontStyle COL_BALANCE_MONEY, ROW_SUBJCODE, PageNo - 1, 0
.SetCellAlign COL_BALANCE_MONEY, ROW_SUBJCODE, PageNo - 1, 34
Else
.MergeCells COL_START, ROW_ACCOUNTFORMAT, COL_END, ROW_ACCOUNTFORMAT
.MergeCells COL_START, ROW_SUBJCODE, COL_END, ROW_SUBJCODE
End If
.SetCellFont COL_START, ROW_SUBJCODE, PageNo - 1, .FindFontIndex("楷体_GB2312", 1)
.SetCellFontSize COL_START, ROW_SUBJCODE, PageNo - 1, 12
.SetCellFontStyle COL_START, ROW_SUBJCODE, PageNo - 1, 0
.SetCellFont COL_START, ROW_SUBJNAME, PageNo - 1, .FindFontIndex("楷体_GB2312", 1)
.SetCellFontSize COL_START, ROW_SUBJNAME, PageNo - 1, 12
.SetCellFontStyle COL_START, ROW_SUBJNAME, PageNo - 1, 0
.SetCellAlign COL_BALANCE_MONEY, ROW_SUBJNAME, PageNo - 1, 34
.SetCellFont COL_BALANCE_MONEY, ROW_SUBJNAME, PageNo - 1, .FindFontIndex("楷体_GB2312", 1)
.SetCellFontSize COL_BALANCE_MONEY, ROW_SUBJNAME, PageNo - 1, 12
.SetCellFontStyle COL_BALANCE_MONEY, ROW_SUBJNAME, PageNo - 1, 0
.SetCellString COL_START, ROW_SUBJCODE, PageNo - 1, " " & m_sPrintSubjectCode
.SetCellString COL_START, ROW_SUBJNAME, PageNo - 1, " " & m_sPrintSubjectName
.SetCellFont COL_MONTH, ROW_HEAD1, PageNo - 1, .FindFontIndex("楷体_GB2312", 1)
.SetCellFontSize COL_MONTH, ROW_HEAD1, PageNo - 1, 12
.SetCellFontStyle COL_MONTH, ROW_HEAD1, PageNo - 1, 0
.SetCellAlign COL_MONTH, ROW_HEAD1, PageNo - 1, 33
.SetCellString COL_MONTH, ROW_HEAD1, PageNo - 1, "" & glo.sOperateYear
'为了左对齐, 在字符串尾部加空格;
If m_bAmount Then
iAmountLen = LenB("数量单位:" & m_sSldw)
iForeignlen = LenB("外币币名:" & m_sWbdw)
iPageNoLen = LenB("第" & "页") + Len(CStr(PageNo)) + 2
If iAmountLen > iForeignlen Then
maxLen = iAmountLen
Else
maxLen = iForeignlen
End If
If m_bForeign Then
.SetCellString COL_BALANCE_MONEY, ROW_ACCOUNTFORMAT, PageNo - 1, "数量单位:" & m_sSldw & _
String(maxLen - iAmountLen, " ")
.SetCellString COL_BALANCE_MONEY, ROW_SUBJCODE, PageNo - 1, "外币币名:" & m_sWbdw & _
String(maxLen - iForeignlen, " ")
Else
.SetCellString COL_BALANCE_MONEY, ROW_SUBJCODE, PageNo - 1, "数量单位:" & m_sSldw & _
String(maxLen - iAmountLen, " ")
End If
ElseIf m_bForeign Then
.SetCellString COL_BALANCE_MONEY, ROW_SUBJCODE, PageNo - 1, "外币币名:" & m_sWbdw & _
String(maxLen - iForeignlen, " ")
End If
.SetCellString COL_BALANCE_MONEY, ROW_SUBJNAME, PageNo - 1, " " & CStr(PageNo + iPageStart) & "" & _
String(maxLen - iPageNoLen, " ")
'Head
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -