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

📄 frmac_detailselectprint2.frm

📁 一个用VB写的财务软件源码
💻 FRM
📖 第 1 页 / 共 5 页
字号:
       Exit Sub
    End If
     
   '开始科目为非空和终止代码空
    If sKmCodeStart = "" And sKmCodeEnd <> "" Then
       sTemp = ""
       iLenEnd = Len(sKmCodeEnd)
       If GetDetailKm(sTemp) Then
          For i = LBound(arySubject) To UBound(arySubject)
               If Left(arySubject(i).sSubjectCode, iLenEnd) <= Trim(sKmCodeEnd) Then
                  ReDim Preserve arySubDetail(UBound(arySubDetail) + 1)
                  arySubDetail(j).sSubjectCode = arySubject(i).sSubjectCode
                  arySubDetail(j).sSubjectName = arySubject(i).sSubjectName
                  arySubDetail(j).IsEndKm = arySubject(i).IsEndKm
                  j = j + 1
               End If
         Next i
       End If
      Exit Sub
    End If
   
   
    '判断开始和终止代码是否是同一科目下
    '是
   
   iLenStart = Len(sKmCodeStart)
   iLenEnd = Len(sKmCodeEnd)
   
    If (GetRootParentKmdm(sKmCodeStart) = GetRootParentKmdm(sKmCodeEnd)) Then
       sTemp = GetRootParentKmdm(sKmCodeEnd)
       If GetDetailKm(sTemp) Then
          For i = LBound(arySubject) To UBound(arySubject)
               If Left(arySubject(i).sSubjectCode, iLenStart) >= Trim(sKmCodeStart) And Left(arySubject(i).sSubjectCode, iLenEnd) <= Trim(sKmCodeEnd) Then
                  ReDim Preserve arySubDetail(UBound(arySubDetail) + 1)
                  arySubDetail(j).sSubjectCode = arySubject(i).sSubjectCode
                  arySubDetail(j).sSubjectName = arySubject(i).sSubjectName
                  arySubDetail(j).IsEndKm = arySubject(i).IsEndKm
                  j = j + 1
              End If
         Next i
      End If
     Else
     '不是同一级科目
         
         Call GetFKm(GetRootParentKmdm(sKmCodeStart), GetRootParentKmdm(sKmCodeEnd))
         For i = LBound(sFirstLevel) To UBound(sFirstLevel)
            sTemp = sFirstLevel(i).sSubjectCode
            
            If GetDetailKm(sTemp) Then
                For k = LBound(arySubject) To UBound(arySubject)
                   If Left(arySubject(k).sSubjectCode, iLenStart) >= Trim(sKmCodeStart) And Left(arySubject(k).sSubjectCode, iLenEnd) <= Trim(sKmCodeEnd) Then
                          ReDim Preserve arySubDetail(UBound(arySubDetail) + 1)
                          arySubDetail(j).sSubjectCode = arySubject(k).sSubjectCode
                          arySubDetail(j).sSubjectName = arySubject(k).sSubjectName
                          arySubDetail(j).IsEndKm = arySubject(k).IsEndKm
                          j = j + 1
                    End If
                Next k
            End If
         Next i
   End If
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
    
'        .ShowSideLabel 0, PageNo - 1
'        .ShowTopLabel 0, PageNo - 1

        If g_CH = -1 Then
            .SetDefaultRowHeight PageNo - 1, 1, 23
        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_sGeneralSubjectName & "明细账"
        .SetRowHeight 1, 26, ROW_TITLE, PageNo - 1

    'Comment
        .SetRowHeight 1, 23, ROW_SUBJCODE, PageNo - 1
        .SetRowHeight 1, 23, ROW_SUBJNAME, PageNo - 1
'        .SetRowHeight 1, 40, ROW_TITLE, PageNo - 1
'    'Comment
'        .SetRowHeight 1, 19, ROW_ACCOUNTFORMAT, PageNo - 1
'        .SetRowHeight 1, 19, ROW_SUBJCODE, PageNo - 1
'        .SetRowHeight 1, 19, 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, 10
        .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, 10
        .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, 10
        .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
        
        '为了左对齐, 在字符串尾部加空格;
        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
        For i = ROW_HEAD1 To ROW_HEAD2
            For j = COL_START To COL_END
                .SetCellAlign j, i, PageNo - 1, 36
                .SetCellTextStyle j, i, PageNo - 1, 2
            .SetCellFont j, i, PageNo - 1, .FindFontIndex("仿宋_GB2312", 1)
            .SetCellFontSize j, i, PageNo - 1, 11
            .SetCellFontStyle j, i, PageNo - 1, 2
            Next j
            .SetRowHeight 1, 25.9, i, PageNo - 1
        Next i
        
        '设置列宽
        For i = LBound(m_iColWidth) To UBound(m_iColWidth)
            .SetColWidth 1, m_iColWidth(i), i, PageNo - 1
        Next i
        .SetColWidth 1, 3, COL_END + 1, PageNo - 1
        
        '合并单元格
        .MergeCells COL_SERIAL, ROW_HEAD1, COL_SERIAL, ROW_HEAD2
        .MergeCells COL_MONTH, ROW_HEAD1, COL_DAY, ROW_HEAD1
        .MergeCells COL_TYPE, ROW_HEAD1, COL_BILL, ROW_HEAD1
        .MergeCells COL_SUMMARY, ROW_HEAD1, COL_SUMMARY, ROW_HEAD2
        .MergeCells COL_UNIT_PRICE, ROW_HEAD1, COL_UNIT_PRICE, ROW_HEAD2
        .MergeCells COL_EXCHANGE_RATE, ROW_HEAD1, COL_EXCHANGE_RATE, ROW_HEAD2
        .MergeCells COL_DEBIT_MONEY, ROW_HEAD1, COL_DEBIT_MONEY, ROW_HEAD2
        .MergeCells COL_CREDIT_MONEY, ROW_HEAD1, COL_CREDIT_MONEY, ROW_HEAD2
        .MergeCells COL_DIRECTION, ROW_HEAD1, COL_DIRECTION, ROW_HEAD2
        .MergeCells COL_BALANCE_MONEY, ROW_HEAD1, COL_BALANCE_MONEY, ROW_HEAD2
        .MergeCells COL_SEPARATE, ROW_HEAD1, COL_SEPARATE, ROW_HEAD2
        .MergeCells COL_MAN, ROW_HEAD1, COL_MAN, ROW_HEAD2
        .MergeCells COL_LOGOUT_YEAR, ROW_HEAD1, COL_LOGOUT_NUMBER, ROW_HEAD1
        
        If chkModePrint.value = 0 Then
            '设置内容
            .SetCellString COL_SERIAL, ROW_HEAD1, PageNo - 1, "序号"
            .SetCellString COL_MONTH, ROW_HEAD1, PageNo - 1, m_sYear & "年"
            .SetCellString COL_MONTH, ROW_HEAD2, PageNo - 1, "月"
            .SetCellString COL_DAY, ROW_HEAD2, PageNo - 1, "日"
            .SetCellString COL_TYPE, ROW_HEAD1, PageNo - 1, "记账凭证"
            .SetCellString COL_TYPE, ROW_HEAD2, PageNo - 1, "种类"
            .SetCellString COL_NUMBER, ROW_HEAD2, PageNo - 1, "号数"
            .SetCellString COL_BILL, ROW_HEAD2, PageNo - 1, "单据号"
            .SetCellString COL_SUMMARY, ROW_HEAD1, PageNo - 1, "摘要"
            .SetCellString COL_UNIT_PRICE, ROW_HEAD1, PageNo - 1, "单价"
            .SetCellString COL_EXCHANGE_RATE, ROW_HEAD1, PageNo - 1, "汇率"
            .SetCellString COL_DEBIT_MONEY, ROW_HEAD1, PageNo - 1, "借方"
            .SetCellString COL_DEBIT_AMOUNT, ROW_HEAD2, PageNo - 1, "数量"
            .SetCellString COL_DEBIT_FOREIGN, ROW_HEAD2, PageNo - 1, "外币"
            .SetCellString COL_DEBIT_MONEY, ROW_HEAD2, PageNo - 1, "金额"
            .SetCellString COL_CREDIT_MONEY, ROW_HEAD1, PageNo - 1, "贷方"
            .SetCellString COL_CREDIT_AMOUNT, ROW_HEAD2, PageNo - 1, "数量"
            .SetCellString COL_CREDIT_FOREIGN, ROW_HEAD2, PageNo - 1, "外币"
            .SetCellString COL_CREDIT_MONEY, ROW_HEAD2, PageNo - 1, "金额"
            .SetCellString COL_DIRECTION, ROW_HEAD1, PageNo - 1, "方向"
            .SetCellString COL_BALANCE_MONEY, ROW_HEAD1, PageNo - 1, "余额"
            .SetCellString COL_BALANCE_AMOUNT, ROW_HEAD2, PageNo - 1, "数量"
            .SetCellString COL_BALANCE_FOREIGN, ROW_HEAD2, PageNo - 1, "外币"
            .SetCellString COL_BALANCE_MONEY, ROW_HEAD2, PageNo - 1, "金额"
            .SetCellString COL_MAN, ROW_HEAD1, PageNo - 1, "会计事项原处理人"
            .SetCellString COL_LOGOUT_YEAR, ROW_HEAD1, PageNo - 1, "注销的对方"
            .SetCellString COL_LOGOUT_YEAR, ROW_HEAD2, PageNo - 1, "年"
            .SetCellString COL_LOGOUT_MONTH, ROW_HEAD2, PageNo - 1, "月"
            .SetCellString COL_LOGOUT_DAY, ROW_HEAD2, PageNo - 1, "日"
            .SetCellString COL_LOGOUT_TYPE, ROW_HEAD2, PageNo - 1, "字"
            .SetCellString COL_LOGOUT_NUMBER, ROW_HEAD2, PageNo - 1, "号"
        End If
    'Text
        For i = ROW_GRID_START To .GetRows(PageNo - 1) - 1
            For j = COL_START To COL_END
                .SetCellFont j, i, PageNo - 1, .FindFontIndex("宋体", 1)
                .SetCellFontSize j, i, PageNo - 1, 11
                .SetCellFontStyle j, i, PageNo - 1, 0
            Next j
            
            .SetRowHeight 0, 63.2, i, PageNo - 1
            .SetCellAlign COL_SERIAL, i, PageNo - 1, 36
            .SetCellAlign COL_MONTH, i, PageNo - 1, 36
            .SetCellAlign COL_DAY, i, PageNo - 1, 36
            .SetCellAlign COL_TYPE, i, PageNo - 1, 36
            .SetCellAlign COL_NUMBER, i, PageNo - 1, 36
            .SetCellAlign COL_SUMMARY, i, PageNo - 1, 33
            .SetCellAlign COL_BILL, i, PageNo - 1, 33
            
                Cllr.SetCellNumType COL_UNIT_PRICE, i, PageNo - 1, 1
                Cllr.SetCellSeparator COL_UNIT_PRICE, i, PageNo - 1, 2
                Cllr.SetCellDigital COL_UNIT_PRICE, i, PageNo - 1, 2
                Cllr.SetCellAlign COL_UNIT_PRICE, i, PageNo - 1, 32 + 2

                
                Cllr.SetCellNumType COL_EXCHANGE_RATE, i, PageNo - 1, 1
                Cllr.SetCellSeparator COL_EXCHANGE_RATE, i, PageNo - 1, 2
                Cllr.SetCellDigital COL_EXCHANGE_RATE, i, PageNo - 1, 2
                Cllr.SetCellAlign COL_EXCHANGE_RATE, i, PageNo - 1, 32 + 2
                
                Cllr.SetCellNumType COL_DEBIT_AMOUNT, i, PageNo - 1, 1
                Cllr.SetCellSeparator COL_DEBIT_AMOUNT, i, PageNo - 1, 2
                Cllr.SetCellDigital COL_DEBIT_AMOUNT, i, PageNo - 1, 4
                Cllr.SetCellAlign COL_DEBIT_AMOUNT, i, PageNo - 1, 32 + 2
                
                Cllr.SetCellNumType COL_DEBIT_FOREIGN, i, PageNo - 1, 1
                Cllr.SetCellSeparator COL_DEBIT_FOREIGN, i, PageNo - 1, 2
                Cllr.SetCellDigital COL_DEBIT_FOREIGN, i, PageNo - 1, 2
                Cllr.SetCellAlign COL_DEBIT_FOREIGN, i, PageNo - 1, 32 + 2
                
                Cllr.SetCellNumType COL_DEBIT_MONEY, i, PageNo - 1, 1
                Cllr.SetCellSeparator COL_DEBIT_MONEY, i, PageNo - 1, 2
                Cllr.SetCellDigital COL_DEBIT_MONEY, i, PageNo - 1, 2
                Cllr.SetCellAlign COL_DEBIT_MONEY, i, PageNo - 1, 32 + 2
                
                Cllr.SetCellNumType COL_CREDIT_AMOUNT, i, PageNo - 1, 1
                Cllr.SetCellSeparator COL_CREDIT_AMOUNT, i, PageNo - 1, 2
                Cllr.SetCellDigital COL_CREDIT_AMOUNT, i, PageNo - 1, 2
                Cllr.SetCellAlign COL_CREDIT_AMOUNT, i, PageNo - 1, 32 + 2
                
                Cllr.SetCellNumType COL_CREDIT_FOREIGN, i, PageNo - 1, 1
                Cllr.SetCellSeparator COL_CREDIT_FOREIGN, i, PageNo - 1, 2
                Cllr.SetCellDigital COL_CREDIT_FOREIGN, i, PageNo - 1, 2
                Cllr.SetCellAlign COL_CREDIT_FOREIGN, i, PageNo - 1, 32 + 2
                
                Cllr.SetCellNumType COL_CREDIT_MONEY, i, PageNo - 1, 1
                Cllr.SetCellSeparator COL_CREDIT_MONEY, i, PageNo - 1, 2
                Cllr.SetCellDigital COL_CREDIT_MONEY, i, PageNo - 1, 2
                Cllr.SetCellAlign COL_CREDIT_MONEY, i, PageNo - 1, 32 + 2
                
                .SetCellAlign COL_DIRECTION, i, PageNo - 1, 36
                
                Cllr.SetCellNumType COL_BALANCE_AMOUNT, i, PageNo - 1, 1
                Cllr.SetCellSeparator COL_BALANCE_AMOUNT, i, PageNo - 1, 2
                Cllr.SetCellDigital COL_BALANCE_AMOUNT, i, PageNo - 1, 2
                Cllr.SetCellAlign COL_BALANCE_AMOUNT, i, PageNo - 1, 32 + 2
                
                Cllr.SetCellNumType COL_BALANCE_FOREIGN, i, PageNo - 1, 1
                Cllr.SetCellSeparator COL_BALANCE_FOREIGN, i, PageNo - 1, 2
                Cllr.SetCellDigital COL_BALANCE_FOREIGN, i, PageNo - 1, 2
                Cllr.SetCellAlign COL_BALANCE_FOREIGN, i, PageNo - 1, 32 + 2
                
                Cllr.SetCellNumType COL_BALANCE_MONEY, i, PageNo - 1, 1
                Cllr.SetCellSeparator COL_BALANCE_MONEY, i, PageNo - 1, 2
                Cllr.SetCellDigital COL_BALANCE_MONEY, i, PageNo - 1, 2
                Cllr.SetCellAlign COL_BALANCE_MONEY, i, PageNo - 1, 32 + 2
               

            .SetCellAlign COL_MAN, i, PageNo - 1, 36
        Next i
        .MergeCells .GetCols(PageNo - 1) - 1, ROW_HEAD1, .GetCols(PageNo - 1) - 1, .GetRows(PageNo - 1) - 1
    If chkModePrint.value = 0 Then
        'Draw Line
        .DrawGridLine COL_START, ROW_HEAD1, .GetCols(PageNo - 1), .GetRows(PageNo - 1) - 1, 1, 3, .FindColorIndex(RGB(0, 0, 0), 1)
        .DrawGridLine COL_SERIAL, ROW_HEAD1, COL_DAY, ROW_HEAD1, 5, 2, .FindColorIndex(RGB(0, 0, 0), 1)
        .DrawGridLine COL_SERIAL, ROW_HEAD1, .GetCols(PageNo - 1), .GetRows(PageNo - 1) - 2, 5, 2, .FindColorIndex(RGB(0, 0, 0), 1)
        .DrawGridLine COL_MONTH, ROW_HEAD1, .GetCols(PageNo - 1), .GetRows(PageNo - 1) - 1, 2, 2, .FindColorIndex(RGB(0, 0, 0), 1)
    End If
    'Print Corp & Date & Time
        .SetRows .GetRows(PageNo - 1) + 1, PageNo - 1
        i = .GetRows(PageNo - 1) - 1
        .MergeCells COL_START, i, COL_DEBIT_FOREIGN, i
        .MergeCells COL_DEBIT_MONEY, i, COL_END, i
        .SetCellAlign COL_START, i, PageNo - 1, 33
        .SetCellAlign COL_DEBIT_MONEY, i, PageNo - 1, 34
        .SetCellFont COL_START, i, Pag

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -