- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在VB中打印复杂报表.
在VB中打印复杂报表
44 现代电子技术2001年
在VB中打印复杂报表
雍震姚君遗
(合肥工业大学网络系统研究所合肥230009)
摘要在数据库开发过程中,常常会遇到报表打印的问题,本文介绍了VB的几种报表打印
方法,其中详细分析了用VB控制Excel生成报表的方法。
关键词管理信息系统报表ActiveX模板
l概述
在数据库管理信息系统中,报表处于非常重要
的地位。任何系统不论界面多么友好,操作多么方
便,但最终的输出仍要通过报表来体现,所以报表
功能的强弱往往是衡量一个系统好坏的重要指标。
VB作为一种专业化的数据库开发工具,也提供了
对报表功能的支持,象VB 5.O中Crystal Reports
(水晶报表)和VB 6.O中新增加的Datareport都可
以处理一些简单的数据库报表输出,但用户要求的
报表格式往往非常复杂,无规则、嵌套打印、斜线、
交叉线是困扰开发人员的最大问题。在制表方面,
Excel是一个优秀的表格设计工具,支持各种复杂
的表格格式,所以我们可以结合VB和Excel的优
点设计一种打印报表的方法,即利用VB操作Excel
来生成复杂的报表。
2解决思路
大多数大型ActiveX—enabled应用程序和其
它ActiveX部件,在它们的对象层次中都提供了一
个顶层外部可创建对象。该对象提供了对该层次中
其它对象的访问,并且还提供对整个应用程序起作
用的方法和属性。例如,每个Microsoft Office应用
程序提供了一个顶层AppIication对象。
2.1 在VB中引用Excel对象
下面语句显示了在VB 6.O对Microsoft Excel
的Application对象的引用:(在运行代码前,先选
择“工程”菜单中的“引用”,从中选定“Microsoft
Excel 8.0 0bject I。ibrary”)
Dim xlApp As Excel.Application
Set xlApp—New Excel.Application
然后,可以用这个变量来访问在Excel应用程序中
的从属对象、以及这些对象的属性和方法。例如:
Set xlApp—Createobject(”Excel.Application”)
‘激活Excel应用程序
x1App.Visible—False
’隐藏Excel应用程序窗口
Dim xlsFile As String
Dim xlBook As Excel.Workbook
Set xlBook=x1App.Workbooks.Open(xlsFile)
‘打开工作簿,xlsFile为一个Excel文件
Dim xlsheet As Excel.Worksheet
Set xlSheet—xlBook.Worksheets(1)
’设定工作表
这样就可以通过xlSheet的Cell属性来对
Excel文件的每个单元格进行控制。
2.2 用Excel设计报表的模板文件
Excel 97/2000是一个非常优秀的创建报表的
工具。它提供的单元格任意合并、拆分和绘图功能
基本上能够满足设计所有复杂报表的需求。它对任
意一个单元格的格式随意控制,为设计报表提供了
强大的支持。根据用户提供的报表,我们可以很快
在Excel里生成模板文件,做成模板主要是为了方
便以后的修改,例如用户需要打印几百张学生基本
信息表,但其格式都是一致的,并且随着时间和实
际情况的变化,表格格式有可能需要改变,这时我
们只要将模板文件稍加修改即可。
生成工作表前可记录下要填充内容的单元格编
号和该单元格内要填充的数据字段以方便程序的编
写。如:(以VB 6.o附带的数据库BIBI。IO.MDB中
万方数据
第3期雍震等:在VB中打印复杂报表45
的Authors表为例)
Cell(i,2) Au—ID Cell(?,4) Author
Cen(i,6) year born
(i表示单元格的行,2,4,6表示单元格的列)
在程序里不要直接对模板文件进行操作,只需
要拷贝模板文件的一个副本进行操作即可。如下面
的例子:
Dim strS0urce,strDestination As St“ng
strSource—App.Path&”\Excels\Authors.xls”
‘Authors.xls就是一个模板文件
strDestination=App.Path 8L”\、Excels\、Temp.xls”
FileCopy strSource,strDestination
’将模板文件拷贝到一个临时文件
2.3生成工作表内容
下面就可以给各单元格赋值了。如:
dataAuthors.Recordset.MoveLast
文档评论(0)