2009-12-17 2 views
1

웹 폼 페이지에서 런타임에 ReportViewer을 동적으로 설정하려고합니다. 내의 ReportViewer는동적으로 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; } 
    } 
} 

나는
// 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(); 

내가 얻을 오류는 다음입니다 ...의 ReportViewer를 실행하려면 다음은 않습니다 뒤에 :

데이터 소스 인스턴스는 없었다 데이터 소스 'CaseLoadForecastReportResultCV'에 대해 제공됩니다.

도움이 될 것입니다.

답변

1

RDLC의 데이터 소스 이름이 CaseLoadForecastReportResultCV 인 경우 이름 앞에 몇 가지 추가 정보가 추가됩니다. 그냥이

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

에 코드를 변경하는 경우 그것은 작동합니다. RDLC는 XML이며 쉽게 읽을 수 있습니다. 데이터 소스 섹션을 읽거나 Visual Studio에서 보고서를로드하고 보고서 디자이너에 초점을 맞춘 다음 보고서 메뉴로 이동하여 데이터 원본을 선택하여 데이터 원본의 모든 이름을 볼 수 있습니다.

+0

그건 작동합니다! 감사합니다. C- –