求助!VB中的打印问题

我有一个用SQL作的表,在VB中经过查询,生成记录集ADODC1,现想用data_report数据报表设计器打印出来,该怎么做?我看书上都是用现成的数据表作的报表,我的纪... 我有一个用SQL作的表,在VB中经过查询,生成记录集ADODC1,现想用data_report数据报表设计器打印出来,该怎么做?
我看书上都是用现成的数据表作的报表,我的纪录集ADODC1是动态的,不知应怎样做?
是这样,设计环境时不是要connection和command吗?代码怎么写?要与ADODC1连上。另外设计报表时要将字段拖入表格中,未查询时表未生成,怎么拖啊?
另外,设计报表时的DataRember和DataSource怎么写?
关键就是怎样使报表设计器和数据表正确建立连接关系?有现成代码吗?
展开
 我来答
网海1书生
科技发烧友

2009-12-14 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26225

向TA提问 私信TA
展开全部
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。

参考资料: http://www0.ccidnet.com/school/enter/2000/06/30/70_825.html

深圳前海友联思壮科技有限公司_
2022-08-12 广告
您可能遇到这些问题,您的企业是否正在面临以下业务挑战?1、库存量大,盘点耗时长供应链流程混乱,库存盘点准确率低,每次盘点都需要大量人力盘点,耗时耗力? 2、账目混乱、实际与账面不符进出库账目记录不清晰,财务对账困难,盘点库存与实际库存金额不... 点击进入详情页
本回答由深圳前海友联思壮科技有限公司_提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式