2

我有一份报告,其中显示了一个包含太多列的 tablix。出于可读性原因,我的用户希望能够在运行报告时选择要选择的列。用户应该能够从 1、2 或最多 9 列中进行选择。这些列是静态的 - 它们不在数据中。

现在,我可以使列的可见性取决于表达式。我原以为应该有一个布尔数组,但事实并非如此。

然后我决定尝试为参数中选择的每个选项分配值“11”、“22”、“33”...,但我被卡住了,因为在要求参数中的值时:

=IIF(Parameters!p_ColumnstoShow.Value(0)="11",False,True)

我看到它有一个(0),我很兴奋认为这是一个数组,但后来被问到(1)它给了我一个错误,它现在是数组的一部分。我在这里有点困惑。

谢谢。

4

1 回答 1

1

我在这里找到了答案:http: //www.codeproject.com/Articles/11254/SQL-Reporting-Services-with-Dynamic-Column-Reports

但是,您必须小心,选择的值不是任何其他值的一部分。因此,如果一个值是 John,另一个是 Johnny,那么您将遇到麻烦。

实际上,如果您没有使用该文章中的存储过程,而是查询参数中的值,则应该使用 JOIN 函数。这就是我正在做的事情:

=IIF(InStr(Join(Parameters!p_ColumnstoShow.Value),"a")>0,False,True)
=IIF(InStr(Join(Parameters!p_ColumnstoShow.Value),"b")>0,False,True)
=IIF(InStr(Join(Parameters!p_ColumnstoShow.Value),"c")>0,False,True)
=IIF(InStr(Join(Parameters!p_ColumnstoShow.Value),"d")>0,False,True)
于 2012-11-30T20:42:27.190 回答