在运行时将Where子句添加到SQL

时间:2014-03-13 17:05:10

标签: c# reporting-services

我是SSRS的新手并且遇到了一些麻烦。

我有一份已部署的报告,我可以显示此报告 在使用Microsoft.Reporting.WebForms.ReportViewer的项目中。 没关系,但现在我必须编写一些代码来改变 我的数据集中使用的查询: 我需要获取我的sql并修改它(放在一些" Where ..."," exists", 等等) - 然后将sql放回报告中,然后执行/显示 报告。

我熟悉参数,但参数无法满足我的需求。

1 个答案:

答案 0 :(得分:0)

用于数据集的SQL语句的表达式就是 - 表达式。它可以是您想要的任何东西,包括您构建的字符串。例如,您可以使用一个参数来指示如何构建SQL:

="SELECT ThisField, ThatField "
& "FROM MyTable "
& IIF(Parameters!AddExistsClause.Value, "WHERE SomeId IN (SELECT Id FROM OtherTable) ", "")

您甚至可以添加对自己构建SQL的DLL的引用:

="SELECT " & MyDLL.ReportFunctions.GetFields(Parameters!FieldName.Value)
& "FROM " & Parameters!Database.Value & ".dbo." & Parameters!Database.TableName "
& MyDLL.ReportFunctions.TableJoins(Parameters!FieldName.Value)
& MyDLL.ReportFunctions.WhereClause(Parameters!FieldName.Value)