【问题标题】:embedding data in RDL report在 RDL 报告中嵌入数据
【发布时间】:2014-01-14 13:06:12
【问题描述】:

我想为我的软件添加报告运行时功能,并决定使用 RDL 和本地报告查看器 (WinForms)

我已经阅读了几篇很好的 HOW TO(MSDN 和 gotreportviewer)和文章,并且我成功地完成了以下工作:

使用 XSD (http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition) 转换最新方案,并在运行时生成一个 rdl 文件,该文件显示在 repot 查看器中。

问题是因为我没有使用服务器并且在本地模式下没有任何实际连接,因为数据集是在运行时交付的,所以数据不是持久的。

我想以这样一种方式嵌入数据,即唯一需要的是 RDL(实际上它是一个 RDLC,因为它处于本地模式)。

我发现有一种XML嵌入方式:

[来自:StockChartsRS2008R2.rdl]

<DataSet Name="AWDataSet">       <Query>         <DataSourceName>AdventureWorksOffline</DataSourceName>         <CommandText>&lt;Query&gt; &lt;ElementPath&gt;Root /Stock {@High (Float), @Low (Float), @Close (Float), @Open(Float), @StockPriceDate(Date)} &lt;/ElementPath&gt; &lt;XmlData&gt; &lt;Root&gt; &lt;Stock High="30.4113833868661" Low="29.9705661418443" Close="30.2016959908158" Open="30.2323120165209" StockPriceDate="2008-01-13T00:00:00"/&gt;

...

问题是,当我使用本地报表查看器时,我需要从嵌入的数据重新生成数据集——我不知道该怎么做:

_reportViewer.LocalReport.DataSources.Add(new ReportDataSource(???))

如果成功,它将向我保证无论是使用服务器模式还是客户端,我的数据都将始终可用并显示报告

还有比嵌入 XML 更好的方法来持久化数据吗?

谢谢,莫什。

【问题讨论】:

    标签: c# xml reporting-services runtime rdl


    【解决方案1】:

    ReportDataSource 有一个构造函数,它接受数据源名称和带有数据的 IEnumarable http://msdn.microsoft.com/en-us/library/dd461468(v=vs.100).aspx

    只需传递任何数据,rdlc 就会呈现它。 看看以下问题:

    Binding an rdlc report with a business object

    【讨论】:

      猜你喜欢
      • 2018-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多