RDLC动态表绑定

时间:2014-02-18 16:10:11

标签: c# asp.net-mvc rdlc

我是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 - 表

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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

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

<强>解决方案:

1)创建您希望从代码传递的具有相同名称的占位符数据集 2)数据集必须具有相同的列和名称 3)将该数据集分配给报表中的表数据源 4)并使用相同的名称列从编码传递 5)通过这种方式,您不会收到该错误,您可以轻松地从代码中传递动态数据集。