📄 modtemplate.bas
字号:
Attribute VB_Name = "ModTemplate"
Option Explicit
'**************************************************************
'*模块名称:ModTemplate
'*模块功能:模板文件的操作
'*说明:
'*
'*备注:
'*
'*作者:chlf78
'*日期:2002-04-16 21:30:38
'***************************************************************
Private Const ModalName = "ModTemplate"
'**************************************************************
'*名称:funSaveTemplate
'*功能:保存到模板文件
'*传入参数:
'* rpt --报表对象
'* filename --模板文件位置
'*返回参数:
'* 是否保存成功
'*作者:chlf78
'*日期:2002-04-16 21:36:03
'***************************************************************
Public Function funSaveTemplate(rpt As Report, FileName As String) As Boolean
On Error GoTo err_proc
Dim cnt As Integer '*对象的数目
Dim i As Integer
Dim cText
With rpt
'*保存页面信息
funSaveTemplate = SetIni(FileName, "page", "width", CStr(.width))
funSaveTemplate = funSaveTemplate And SetIni(FileName, "page", "height", CStr(.height))
funSaveTemplate = funSaveTemplate And SetIni(FileName, "page", "orient", CStr(.orient))
funSaveTemplate = funSaveTemplate And SetIni(FileName, "page", "leftmargin", CStr(.LeftMargin))
funSaveTemplate = funSaveTemplate And SetIni(FileName, "page", "rightmargin", CStr(.RightMargin))
funSaveTemplate = funSaveTemplate And SetIni(FileName, "page", "topmargin", CStr(.TopMargin))
funSaveTemplate = funSaveTemplate And SetIni(FileName, "page", "bottommargin", CStr(.BottomMargin))
funSaveTemplate = funSaveTemplate And SetIni(FileName, "page", "align", CStr(.Align))
'*保存表头表尾页头页尾左部标签集合右部标签集合
cnt = .Header.texts.Count
funSaveTemplate = funSaveTemplate And SetIni(FileName, "count", "header", CStr(cnt))
i = 1
For Each cText In .Header.texts.Items
funSaveTemplate = funSaveTemplate And cText.Save(FileName, "header" & CStr(i))
i = i + 1
Next
cnt = .Footer.texts.Count
funSaveTemplate = funSaveTemplate And SetIni(FileName, "count", "footer", CStr(cnt))
i = 1
For Each cText In .Footer.texts.Items
funSaveTemplate = funSaveTemplate And cText.Save(FileName, "footer" & CStr(i))
i = i + 1
Next
cnt = .Title.texts.Count
funSaveTemplate = funSaveTemplate And SetIni(FileName, "count", "title", CStr(cnt))
i = 1
For Each cText In .Title.texts.Items
funSaveTemplate = funSaveTemplate And cText.Save(FileName, "title" & CStr(i))
i = i + 1
Next
cnt = .Tail.texts.Count
funSaveTemplate = funSaveTemplate And SetIni(FileName, "count", "tail", CStr(cnt))
i = 1
For Each cText In .Tail.texts.Items
funSaveTemplate = funSaveTemplate And cText.Save(FileName, "tail" & CStr(i))
i = i + 1
Next
cnt = .LeftSection.texts.Count
funSaveTemplate = funSaveTemplate And SetIni(FileName, "count", "leftsection", CStr(cnt))
i = 1
For Each cText In .LeftSection.texts.Items
funSaveTemplate = funSaveTemplate And cText.Save(FileName, "leftsection" & CStr(i))
i = i + 1
Next
cnt = .RightSection.texts.Count
funSaveTemplate = funSaveTemplate And SetIni(FileName, "count", "rightsection", CStr(cnt))
i = 1
For Each cText In .RightSection.texts.Items
funSaveTemplate = funSaveTemplate And cText.Save(FileName, "rightsection" & CStr(i))
i = i + 1
Next
'*保存页头页尾表头表尾左部标签集合右部标签集合的对齐参照
funSaveTemplate = funSaveTemplate And SetIni(FileName, "align", "header", .Header.AlignMode)
funSaveTemplate = funSaveTemplate And SetIni(FileName, "align", "footer", .Footer.AlignMode)
funSaveTemplate = funSaveTemplate And SetIni(FileName, "align", "title", .Title.AlignMode)
funSaveTemplate = funSaveTemplate And SetIni(FileName, "align", "tail", .Tail.AlignMode)
funSaveTemplate = funSaveTemplate And SetIni(FileName, "align", "leftsection", .LeftSection.AlignMode)
funSaveTemplate = funSaveTemplate And SetIni(FileName, "align", "rightsection", .RightSection.AlignMode)
'*保存列头信息
Set cText = .ColHeader.GetText(1, 1)
funSaveTemplate = funSaveTemplate And cText.Save(FileName, "colheader")
'*保存正文信息
cnt = .Content.Cols
funSaveTemplate = funSaveTemplate And SetIni(FileName, "count", "cols", CStr(cnt))
'*保存每一列的信息
For i = 1 To cnt
funSaveTemplate = funSaveTemplate And .Content.GetColText(i).Save(FileName, "col" & CStr(i))
funSaveTemplate = funSaveTemplate And SetIni(FileName, "col" & CStr(i), "merge", .Content.GetMergeCol(i))
Next i
End With
Exit Function
'*错误处理
err_proc:
funSaveTemplate = False
End Function
'**************************************************************
'*名称:funReadTemplate
'*功能:从模板文件中读取配置
'*传入参数:
'* rpt --报表对象
'* filename --模板文件位置
'*返回参数:
'* 是否保存成功
'*作者:chlf78
'*日期:2002-04-16 22:31:24
'***************************************************************
Public Function funReadTemplate(rpt As Report, FileName As String) As Boolean
On Error GoTo err_proc
Dim cnt As Integer '*对象的数目
Dim i As Integer
Dim cText As clsText
With rpt
'*读取页面信息
.SetPrinter CSng(GetIni(FileName, "page", "width")), _
CSng(GetIni(FileName, "page", "height")), _
CInt(GetIni(FileName, "page", "orient"))
.SetMargin CSng(GetIni(FileName, "page", "leftmargin")), _
CSng(GetIni(FileName, "page", "rightmargin")), _
CSng(GetIni(FileName, "page", "topmargin")), _
CSng(GetIni(FileName, "page", "bottommargin"))
.Align = CInt(GetIni(FileName, "page", "align"))
'*读取表头表尾页头页尾左部标签集合右部标签集合
cnt = CInt(GetIni(FileName, "count", "header"))
Set .Header = Nothing
Set .Header = New clsCollection
For i = 1 To cnt
Set cText = New clsText
cText.Read FileName, "header" & CStr(i)
.Header.AddText cText.tag, cText
Set cText = Nothing
Next
cnt = CInt(GetIni(FileName, "count", "footer"))
Set .Footer = Nothing
Set .Footer = New clsCollection
For i = 1 To cnt
Set cText = New clsText
cText.Read FileName, "footer" & CStr(i)
.Footer.AddText cText.tag, cText
Set cText = Nothing
Next
cnt = CInt(GetIni(FileName, "count", "title"))
Set .Title = Nothing
Set .Title = New clsCollection
For i = 1 To cnt
Set cText = New clsText
cText.Read FileName, "title" & CStr(i)
.Title.AddText cText.tag, cText
Set cText = Nothing
Next
cnt = CInt(GetIni(FileName, "count", "tail"))
Set .Tail = Nothing
Set .Tail = New clsCollection
For i = 1 To cnt
Set cText = New clsText
cText.Read FileName, "tail" & CStr(i)
.Tail.AddText cText.tag, cText
Set cText = Nothing
Next
cnt = CInt(GetIni(FileName, "count", "leftsection"))
Set .LeftSection = Nothing
Set .LeftSection = New clsCollection
For i = 1 To cnt
Set cText = New clsText
cText.Read FileName, "leftsection" & CStr(i)
.LeftSection.AddText cText.tag, cText
Set cText = Nothing
Next
cnt = CInt(GetIni(FileName, "count", "rightsection"))
Set .RightSection = Nothing
Set .RightSection = New clsCollection
For i = 1 To cnt
Set cText = New clsText
cText.Read FileName, "rightsection" & CStr(i)
.RightSection.AddText cText.tag, cText
Set cText = Nothing
Next
'*保存页头页尾表头表尾的对齐参照
.Header.AlignMode = CInt(GetIni(FileName, "align", "header"))
.Footer.AlignMode = CInt(GetIni(FileName, "align", "footer"))
.Title.AlignMode = CInt(GetIni(FileName, "align", "title"))
.Tail.AlignMode = CInt(GetIni(FileName, "align", "tail"))
.LeftSection.AlignMode = CInt(GetIni(FileName, "align", "leftsection"))
.RightSection.AlignMode = CInt(GetIni(FileName, "align", "rightsection"))
'*读取正文信息
cnt = CInt(GetIni(FileName, "count", "cols"))
'*读取每一列的信息
For i = 1 To cnt
Set cText = New clsText
cText.Read FileName, "col" & CStr(i)
.Content.SetColText i, cText
Set cText = Nothing
'*设置合并列
.Content.SetMergeCol i, CBool(GetIni(FileName, "col" & CStr(i), "merge"))
Next i
'*读取列头信息
Set cText = New clsText
cText.Read FileName, "colheader"
Dim j As Integer
Dim tmpStr As String
Dim tmpWidth As Single
Dim tmpLeft As Single
Dim tmpTop As Single
Dim mText As clsText
For i = 1 To .ColHeader.Cols
For j = 1 To .ColHeader.rows
Set mText = .ColHeader.GetText(i, j)
With mText
tmpStr = .stringX
tmpWidth = .width
tmpLeft = .left
tmpTop = .Top
cText.Clone mText
.stringX = tmpStr
.width = tmpWidth
.width = rpt.Content.GetColText(i).width
.left = tmpLeft
.Top = tmpTop
.height = .rowheight
End With
Next j
Next i
Set cText = Nothing
.CalPage
End With
funReadTemplate = True
Exit Function
'*错误处理
err_proc:
funReadTemplate = False
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -