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

📄 frmac_generalmodeprint.frm

📁 一个用VB写的财务软件源码
💻 FRM
📖 第 1 页 / 共 3 页
字号:
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 + -