我在这里有点傻。我所见过的大多数教程都使用向导或内置(或现成)数据集创建报告。我在运行时使用查询构建数据集,因此我不太确定如何采用到目前为止所见过的查询。
通常,当我创建一个报告时,它是一个记录报告,RDLC文件中的字段可以很容易地使用参数填充。但是,下面我要做的工作类似于创建一个SELECT查询。所以我想做的是,我想做一份这样的报告:
Status: Approved
PID | Name | Address
1 | Name 1 | Address 1
2 | Name 2 | Address 2
===========================
Status: Denied
PID | Name | Address
3 | Name 3 | Address 3
4 | Name 4 | Address 4我对此有几个问题:
我在RDLC文件中创建了一个虚拟数据集,以便能够使用Tablix,就像我在几个线程中看到的那样。我非常希望我能够使用我从零开始创建的数据集,而不是使用向导。
私有子btnGenerateReport_Click(发送方作为对象,e作为EventArgs)将btnGenerateReport.Click Dim查询处理为String query = BuildQuery() SQLControl = New SQLControl Try = String.Empty,然后SQLControl.QueryParams(查询)如果SQLControl.SQLDS.Tables(0).Rows.Count >0,那么FetchData()如果结束,如果将ex捕获为异常MsgBox(ex.Message,MsgBoxStyle.Exclamation,“报表制造者”(Report)结束尝试End Sub Private () Dim dataSource As ReportDataSource Dim PID As Integer Dim Name As String Dim ApplicationStatus As String Dim Address As String rvPreview.Reset() rvPreview.LocalReport.ReportPath = "C:\Users\xxx\Documents\Visual 2015\Projects\My Project 1\My Project 1\Reports\myReport.rdlc“rvPreview.LocalReport.DataSources.Clear() dataSource = New ReportDataSource() _rparams = New List(( ReportParameter),其中SQLControl.SQLDS.Tables(0) For x为整数=0 To .Rows.Count -1 PID = .Rows(x).Item("PID") Name = .Rows(x).Item("LName") & ",“& .Rows(x).Item("FName") ApplicationStatus = .Rows(x).Item("ApplicationStatus") Address = .Rows(x).Item("StreetAddress") &”& .Rows(x).Item("City") _rparams.Add(New ReportParameter("PID",PID)) _rparams.Add(“Name”),(名称)_rparams.Add(新ReportParameter("ApplicationStatus",ApplicationStatus)) _rparams.Add(新ReportParameter (“地址”,地址)),每个param作为ReportParameter在_rparams rvPreview.LocalReport.SetParameters(_rparams)下一个x rvPreview.RefreshReport()以End Sub结尾
发布于 2016-08-27 21:44:25
在开始时,我必须提到我在C#中使用RDLC报告,但是解决方案在vb.net中应该是非常相似的。
stream与上面的对象相同,但该代码位于另一个类中,它可以访问报表查看器对象)。
ReportViewerControl.LocalReport.LoadReportDefinition(new StreamReader(小溪);System.Data.DataTable类的对象(在下面的代码中,我将这个对象称为yourTableObject ),对该表中的行使用System.Data.DataRow类。当您将所有数据放入表中时,可以使用如下代码将其提供给报表
//我使用DataSet1作为数据集名称,因为您在报表定义ReportDataSource rds =(“DataSet1”,yourTableObject)中使用了这个名称;
当然,提供的表应该具有与报表定义中的数据集相同的字段。https://stackoverflow.com/questions/39042681
复制相似问题