2009-12-17 113 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