报告中的显示参数(多值)


Answers:


153

您可以使用“ Join”函数从标签数组中创建单个字符串,如下所示:

=Join(Parameters!Product.Label, ",")

如果他将join expr添加到标题中,这将导致结果在报告正文中扩展,对吗?
mirezus,2009年

感谢您在我谷歌搜索之前必须拔掉头发之前给出的出色回答!
Pulsehead

2
=Join(Parameters!Product.Value, ",")
Doug_Ivison '16

如果每个产品都有分页符怎么办?每页可以显示一种产品吗?
Pepys

12

=加入(Parameters!Product.Label,vbcrfl)用于新行


1
@nadiObi:它应该是vbCrLf
stomy

6

我不知道加入功能-太好了!我编写了一个放在代码部分的函数(“报告属性”->“代码”选项卡:

Public Function ShowParmValues(ByVal parm as Parameter) as string
   Dim s as String 

      For i as integer = 0 to parm.Count-1
         s &= CStr(parm.value(i)) & IIF( i < parm.Count-1, ", ","")
      Next
  Return s
End Function  

+1可以在报表标题中使用,其中“ Join”解决方案需要一个表(不能放入报表标题中)。
杰夫

0

希望其他人觉得这很有用:

使用Join是使用多值参数的最佳方法。但是,如果您想要高效的“全选”怎么办?如果有100s +,那么查询效率将非常低。

要解决此问题,而不是按原样使用SQL查询,请将其更改为使用表达式(单击右上角的Fx按钮),然后构建类似以下的查询(需要语音标记):

= "Select * from tProducts Where 1 = 1 " 
IIF(Parameters!ProductID.Value(0)=-1,Nothing," And ProductID In (" & Join(Parameters!ProductID.Value,"','") & ")")

在参数中执行以下操作:

    SELECT -1 As ProductID, 'All' as ProductName Union All
    Select  
    tProducts.ProductID,tProducts.ProductName
    FROM
    tProducts

通过将查询构建为表达式意味着可以提高SQL语句的效率,但也可以解决SQL Server处理“ In”语句中的值所遇到的困难。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.