我一直在寻找好几天,但我发现了很多,但这并不总是有意义的。我正在尝试在桌面VB.NET应用程序中创建一个单页报表(使用Microsoft Report& ReportViewer
,以便在客户端计算机上不需要安装外部实用程序),该报表显示来自查询的一个记录的信息(查询在表之间有多个连接,在访问时工作得很好)。
我已设法创建一个datasource
,dataset
在设计器中显示查询结果,并通过将报表数据/数据集中的对象拖到报表上来构建报表以查看我喜欢的内容。如何在运行时指定要显示的查询中的哪条记录?
最初,我创建了一个函数,它获取记录ID并返回包含我需要的记录的DataSet
,这就是我的表单显示信息的方式(数据编辑和添加是分开处理的)。有没有办法可以在运行时将报表的数据源更改为此函数,然后将报表直接发送到PDF或打印机?
答案 0 :(得分:1)
您可以使用以下代码在运行时设置数据源:
(rv1是您正在使用的报告查看器) dim bs as bindingsource
rv1.LocalReport.DataSources.Clear()
rv1.LocalReport.ReportEmbeddedResource = "namespace.ReportName.rdlc"
bs.DataSource = dsyourdataset
bs.DataMember = "tablename"
Dim rds As New ReportDataSource
rds.Name = "nametomatchnameonreport"
rds.Value = bs
rv1.LocalReport.DataSources.Add(rds)
对于没有GUI直接打印,this link有一些代码可以使用。