1

ReportViewerWebフォームページで実行時に動的に設定したい。私のReportViewerはaspxページで次のように見えます…</p>

<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を実行するために次のことを行います…</ p>

// 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'のデータソースインスタンスが提供されていません。

どんな助けでも素晴らしいでしょう。

4

1 に答える 1

1

RDLC内のデータソースの名前はCaseLoadForecastReportResultCVです。名前の前にいくつかの追加情報が追加されています。コードをこれに変更するだけの場合

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

動作するはずです。RDLCはXMLで読みやすく、その中のデータソースセクションを読み取るか、Visual Studioでレポートをロードし、レポートデザイナーに焦点を合わせて、[レポート]メニューに移動し、[データソース]を選択してデータソースのすべての名前を表示できます。

于 2009-12-19T08:29:17.943 に答える