我想知道是否有办法从SQL查询中为ReportViewer设计报表。那么从SQL查询中我得到报告所需的所有数据,然后在设计器中设计报告?
我对ReportViewer很新,我很困惑。现在我可以看到我可以从向导填充DataSet,但是据我所知,没有办法在那里抛出SQL查询然后从那里进行设计。
我想要的是什么,还是我必须使用DataGridView?我真的想使用reportviewer,因为打印/导出支持。有没有关于这个问题的文献?
答案 0 :(得分: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>
答案 1 :(得分:1)
首先,它取决于您使用的是本地报告还是服务器报告(SQL Server Reporting Services)。两者都可以在ReportViewer控件中显示。
对于服务器报告,事情很简单。该报告包含数据源,您可以选择使用SQL语句或现有存储过程。
对于本地报道,事情有点困难。您必须设计包含数据的类型化数据集。这可以像往常一样填充(SQL命令,存储过程等)。然后,您可以将此数据集的实例分配给报表的数据源。
请注意,虽然服务器报告允许您过滤数据,但在使用本地报告时,您必须自己编写一些过滤功能。