如何基于单个记录在VB.NET中创建报告(在运行时指定密钥记录)

时间:2013-10-03 02:26:45

标签: vb.net ms-access rdlc

我一直在寻找好几天,但我发现了很多,但这并不总是有意义的。我正在尝试在桌面VB.NET应用程序中创建一个单页报表(使用Microsoft Report& ReportViewer,以便在客户端计算机上不需要安装外部实用程序),该报表显示来自查询的一个记录的信息(查询在表之间有多个连接,在访问时工作得很好)。 我已设法创建一个datasourcedataset在设计器中显示查询结果,并通过将报表数据/数据集中的对象拖到报表上来构建报表以查看我喜欢的内容。如何在运行时指定要显示的查询中的哪条记录? 最初,我创建了一个函数,它获取记录ID并返回包含我需要的记录的DataSet,这就是我的表单显示信息的方式(数据编辑和添加是分开处理的)。有没有办法可以在运行时将报表的数据源更改为此函数,然后将报表直接发送到PDF或打印机?

1 个答案:

答案 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有一些代码可以使用。