【问题标题】:ReportViewer reporting from a DataTable来自 DataTable 的 ReportViewer 报告
【发布时间】:2010-07-09 07:49:19
【问题描述】:

我想知道是否有一种方法可以通过 SQL 查询为 ReportViewer 设计报告。所以从 SQL 查询中我会得到制作报告所需的所有数据,然后在设计器中设计报告?

我对 ReportViewer 很陌生,我很困惑。现在我可以看到我可以从向导中填充 DataSet,但是据我所知,没有办法在其中抛出 SQL 查询然后从中进行设计。

我想要什么是可能的,还是我必须使用 DataGridView?由于打印/导出支持,我​​真的很想使用reportviewer。有没有关于这个主题的文献?

【问题讨论】:

    标签: c# reportviewer report


    【解决方案1】:

    如果您使用的是LocalReport Class (reportViewer.LocalReport) 而不是 SSRS(那里的所有内容都可以点击),链接中提供了一个示例。

    ReportDataSource Class 具有接受 DataTable 对象的构造函数。

    您只需要设计报表并将数据集添加到 RDL 文件中。

    编辑:像这样将数据集插入为 xml:

    <DataSources>
        <DataSource Name="MyDataSource">
          <ConnectionProperties>
            <ConnectString />
            <DataProvider>SQL</DataProvider>
          </ConnectionProperties>
        </DataSource>
        ...
    </DataSources>
    
    <DataSets>
        <DataSet Name="MyDataSet">
          <Query>
            <CommandText>MyDataSet</CommandText>
            <DataSourceName>MyDataSource</DataSourceName>
          </Query>
          <Fields>
            <Field Name="Id">
              <DataField>ID</DataField>
            </Field>
            <Field Name="SomeOtherField">
              <DataField>SOME_OTHER_FIELD</DataField>
            </Field>
          </Fields>
       </DataSet>
    </DataSets>
    

    【讨论】:

      【解决方案2】:

      首先,这取决于您使用的是本地报告还是服务器报告(SQL Server Reporting Services)。两者都可以在 ReportViewer 控件中显示。

      对于服务器报告,事情很简单。该报告包含数据源,您可以选择使用 SQL 语句或现有存储过程。

      对于本地报告,事情有点困难。您必须设计一个包含您的数据的类型化数据集。这可以像往常一样从任何东西(SQL 命令、存储过程等)中填充。然后将此数据集的实例分配给报表的数据源。

      请注意,虽然服务器报告允许您过滤数据,但在使用本地报告时您必须自己编写一些过滤功能。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-21
        • 2010-10-18
        相关资源
        最近更新 更多