2009-12-17 108 views
1

我想在运行时在web窗体页面上动态设置ReportViewer。 我的ReportViewer看起来像这样的aspx页面上...动态设置ReportViewer

<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'提供。

任何帮助将是伟大的。

回答

1

RDLC中的数据源名称为CaseLoadForecastReportResultCV,在名称的前面添加了一些额外的内容。如果你只需要改变你的代码,这

ReportDataSource rds = new ReportDataSource("CaseLoadForecastReportResultCV", answer);

它应该工作。 RDLC是XML且易于阅读,您可以阅读其中的数据源部分,或者在Visual Studio中加载报告并集中报告设计器,转至报告菜单并选择数据源以查看数据源的所有名称。

+0

工作! 谢谢 C- – 2009-12-21 15:03:06