VB6报表生成器让轻松报表轻松打 日期:2005年7月13日 人气:352 查看:[大字体 中字体 小字体] VB提供了多个网格控件,如DBGrid,FlexGrid等,在程序中可以用来显示、录入数据,而且可以直接显示数据库里的数据,但是这些网格控件没有提供打印功能,用这些网格控件只能在屏幕上显示表格数据,这是网格控件功能上的一个缺憾。 如何才能把网格控件显示的表格数据从屏幕上搬到打印机上呢,使用VB 6.0提供的报表生成器,就能实现数据报表的生成和打印。本文将介绍打印数据报表的几个技巧。 数据报表设计器 Microsoft数据报表设计器(Microsoft Data Report designer)是一个多功能的报表生成器,其特色是创建联合分层结构报表。同数据源(Data Environment designer数据环境设计器)一起使用,可以从几个不同的相关表创建报表。除创建可打印报表之外,还可以将报表导出到 HTML 或文本格式文件中。 采用如下方法调用数据报表设计器,单击[工程]?[添加 Data Report],向工程中添加一个数据报表设计器,在一个工程中可以添加多个数据报表设计器,用于设计多个报表。如果“添加 Data Report”没有在“工程”菜单上列出,则单击[部件],出现“部件”对话框,单击“设计器”选项卡。并单击[Data Report]把设计器添加到菜单上。 在“工程”菜单上只列出四种ActiveX设计器,其余的设计器放在“工程”菜单的“更多 ActiveX 设计器”子菜单中。 有关上述控件的使用方法请参阅VB的联机帮助。 实现数据报表打印 我们摸索出了几个VB的联机帮助中没有介绍的技巧,但是在编程中非常实用,供大家参考。 (一)数据源动态选择数据库文件 我们为数据环境设计器(Data Environment designer)的“Connection1”设置相关数据库时,把数据源定在了一个数据库文件上,这样就不能实现一个数据报表设计器动态选择相关数据库。以下代码的加入将实现数据源的动态选择。实现过程如下: 进入DataEnvironment1的代码窗口。在DataEnvironment1的Initialize()事件中加入代码: Private Sub DataEnvironment_Initialize() ′建立数据源 Dim sjklj As String sjklj = App.Path , ″\″ ,″ Biblio.mdb″ ′变量sjklj将存放数据库文件“Biblio.mdb” 的路径 sjklj=″Provider=Microsoft.Jet.OLE DB.3.51; , Persist Security Info=False;Data Source=″,sjklj ′设置相关数据源 DataEnvironment1.Connection1.ConnectionString =sjklj End Sub 这样我们就可以使用代码在程序中随时为数据环境设置数据源了。 (二)如何卸载数据源 使用上述方法设置数据库,如果再修改为另一个数据库,程序依然调用第一次设置的数据库,这是为什么呢, 关于这个问题的解决方法在VB的联机帮助中没有介绍。经过细心研究我们考虑出了一种解决方法:我们需要先将原来的数据源卸载,再使数据环境设计器与修改后的数据库相关。对于卸载一个控件,VB提供了Unload方法,对于数据环境设计器这种方法同样适用。我们只需在实现显示数据报表的事件过程中的Show语句前加入:Unload DataEnvironment1即可。 (三)实现对报表打印边距的编辑 数据报表设计器提供给编程者编辑打印报表边距的功能。DataReport有两个属性: 1.LeftMargin属性:编辑打印报表的左边距; 2.TopMargin属性:编辑打印报表的上边距。 同样在Show语句前加入以下代码便可实现对报表的左边距和上边距进行编辑了: lm = InputBox(″请输入打印左边距(mm)″, ″打印 ,左边距″, ″25″) tm = InputBox(″请输入打印上边距(mm)″, ″打印 ,上边距″, ″25″) DataReport1.LeftMargin = lm , 56.7 DataReport1.TopMargin = tm , 56.7 运行程序,单击[打印]按钮时,窗口上将出现一消息框,提示你输入边距数值,单位是毫米,如果用户不输入则程序默认边距为25mm。 本文来源:https://www.wddqw.com/doc/f8df56ec747f5acfa1c7aa00b52acfc788eb9f3d.html