动态设置 ReportViewer

发布于 2024-08-14 16:48:38 字数 1597 浏览 2 评论 0原文

我想在运行时在 Web 表单页面上动态设置 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”提供数据源实例。

任何帮助都会很棒。

I want to dynamically setup the ReportViewer at run time on a webform page.
My ReportViewer looks like this on the aspx page…

<rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana"
                    Font-Size="8pt" Height="90%"
                    Width="100%" OnReportError="ReportViewer1_ReportError">
</rsweb:ReportViewer>

My class looks like this….

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; }
    }
}

In the code behind I do the following to run the 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();

The error I get is the following:

A data source instance has not been supplied for the data source 'CaseLoadForecastReportResultCV'.

Any help would be great.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

迷鸟归林 2024-08-21 16:48:38

RDLC 中数据源的名称是 CaseLoadForecastReportResultCV,您在其名称前面附加了一些额外的内容。如果您只是将代码更改为此

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

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

The name of your datasource in your RDLC is CaseLoadForecastReportResultCV, you have some extra stuff appended to the front of its name. If you just change your code to this

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

It should work. RDLC is XML and easy to read, you can read the datasources section in it, or load the report in Visual Studio and with the Report Designer focused, go to the Report menu and choose DataSources to see all the names of your data sources.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文