【问题标题】:RDLC dynamic table bindingRDLC 动态表绑定
【发布时间】:2014-02-18 16:10:10
【问题描述】:

我是 RDLC 报告的新手,我的要求很简单。 我设计了一个报告,并在该报告中设置了一些参数来填充动态数据。

现在我也需要动态显示表格。 所以我做了什么:

DataSet InvoiceSummaryDs = new DataSet();
                    DataTable table = new DataTable();
                    table.TableName = "summary";
                    table.Columns.Add( "name", typeof( string ) );
                    table.Rows.Add(Invoice.TotalBooking);
                    table.Rows.Add("£ " + Invoice.BillAmount);
                    table.Rows.Add("£ " + Invoice.BillAmount + "  <br />" + "£ " + Invoice.VatAmount);
                    table.Rows.Add("£ " + Invoice.NetAmount);

                    InvoiceSummaryDs.Tables.Add(table);

                    ReportDataSource rptDataSource = new ReportDataSource("DSPrice", InvoiceSummaryDs.Tables[0]);
                    rv.LocalReport.DataSources.Add(rptDataSource);

                    rv.LocalReport.SetParameters(parms);
                    rv.LocalReport.Refresh();

所以服务器端代码没有问题,但报告中出现错误: 错误13 数据集“DS_NAME”引用了数据源“”,不存在。

错误 14 tablix ‘Tablix1’ 在报表正文中,但报表没有数据集。没有数据集的报表中不允许使用数据区域。

在 rdlc 文件中,我创建了一个没有源的同名“DSPrice”数据集,因为我想从服务器端而不是从这里动态填充数据。

这个例子我已经看过了:

http://www.gotreportviewer.com/ 动态生成 RDLC - 表

通过创建动态报表可以实现动态表绑定,但我不想创建动态报表。

任何人指导我什么是解决方案? 任何帮助将不胜感激。

【问题讨论】:

    标签: c# asp.net-mvc rdlc


    【解决方案1】:

    最后,我自己解决了这个问题。

    我的要求的简短摘要: 我想将数据集从代码绑定到我的 RDLC 报告表。

    当我在 RDLC 报告中创建表格时,它给了我上面提到的为表格提供数据源的错误,我很困惑为什么?我需要从 C# 编码中设置它。

    然后我知道 RDLC 报告无法知道您是否要从代码中提供数据源,除非您通过编码创建动态报告并且我不想创建动态报告。

    解决方案:

    1) 创建与您想从代码中传递的名称相同的占位符数据集 2)该数据集必须具有相同的列和名称 3)将该数据集分配给报表中的表数据源 4)并使用同名列从编码中传递 5)这样你就不会得到那个错误,你可以很容易地从代码中传递动态数据集。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-29
      相关资源
      最近更新 更多