我想在运行时在webform页面上动态设置ReportViewer
。
我的ReportViewer在aspx页面上看起来像这样......
<rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana"
Font-Size="8pt" Height="90%"
Width="100%" OnReportError="ReportViewer1_ReportError">
</rsweb:ReportViewer>
我的班级看起来像......
namespace S43G.CV
{
[Serializable]
public class CaseLoadForecastReportResultCV
{
public Int64 M3Fe { get; set; }
public Int64 M3Grad { get; set; }
public Int64 M6Grad { get; set; }
public Int64 M12Grad { get; set; }
public Int64 Total { get; set; }
public Int64 GroupPart { get; set; }
public Int64 Year { get; set; }
}
}
在后面的代码中,我执行以下操作来运行ReportViewer ...
// get a list from db
List<CaseLoadForecastReportResultCV> answer = svyCaseBllHdl.GetCaseLoadForcastReport(userInput);
// Reset the ReportViewer
ReportViewer1.Reset();
ReportViewer1.LocalReport.Dispose();
ReportViewer1.LocalReport.DataSources.Clear();
// build the Report Data Source
ReportDataSource rds = new ReportDataSource("S43G_CV_CaseLoadForecastReportResultCV", answer);
// set new values for ReportViewer
ReportViewer1.LocalReport.ReportPath = "S4_Reports/CaseLoadForecast.rdlc";
ReportViewer1.LocalReport.DataSources.Add(rds);
ReportViewer1.LocalReport.Refresh();
我得到的错误如下:
尚未为数据源'CaseLoadForecastReportResultCV'提供数据源实例。
任何帮助都会很棒。
答案 0 :(得分:1)
您的RDLC中的数据源名称为CaseLoadForecastReportResultCV
,您的名称前面附加了一些额外的内容。如果您只是将代码更改为此
ReportDataSource rds = new ReportDataSource("CaseLoadForecastReportResultCV", answer);
它应该工作。 RDLC是XML并且易于阅读,您可以读取其中的数据源部分,或者在Visual Studio中加载报表并重点关注报表设计器,转到“报表”菜单并选择“数据源”以查看数据源的所有名称。 / p>