求助!VB中的打印问题
我有一个用SQL作的表,在VB中经过查询,生成记录集ADODC1,现想用data_report数据报表设计器打印出来,该怎么做?我看书上都是用现成的数据表作的报表,我的纪...
我有一个用SQL作的表,在VB中经过查询,生成记录集ADODC1,现想用data_report数据报表设计器打印出来,该怎么做?
我看书上都是用现成的数据表作的报表,我的纪录集ADODC1是动态的,不知应怎样做?
是这样,设计环境时不是要connection和command吗?代码怎么写?要与ADODC1连上。另外设计报表时要将字段拖入表格中,未查询时表未生成,怎么拖啊?
另外,设计报表时的DataRember和DataSource怎么写?
关键就是怎样使报表设计器和数据表正确建立连接关系?有现成代码吗? 展开
我看书上都是用现成的数据表作的报表,我的纪录集ADODC1是动态的,不知应怎样做?
是这样,设计环境时不是要connection和command吗?代码怎么写?要与ADODC1连上。另外设计报表时要将字段拖入表格中,未查询时表未生成,怎么拖啊?
另外,设计报表时的DataRember和DataSource怎么写?
关键就是怎样使报表设计器和数据表正确建立连接关系?有现成代码吗? 展开
1个回答
展开全部
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。
如何才能把网格控件显示的表格数据从屏幕上搬到打印机上呢?使用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。
参考资料: http://www0.ccidnet.com/school/enter/2000/06/30/70_825.html
深圳前海友联思壮科技有限公司_
2022-08-12 广告
2022-08-12 广告
您可能遇到这些问题,您的企业是否正在面临以下业务挑战?1、库存量大,盘点耗时长供应链流程混乱,库存盘点准确率低,每次盘点都需要大量人力盘点,耗时耗力? 2、账目混乱、实际与账面不符进出库账目记录不清晰,财务对账困难,盘点库存与实际库存金额不...
点击进入详情页
本回答由深圳前海友联思壮科技有限公司_提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询