如何用ssrs解析rdlc报告Multivalue

时间:2017-08-22 17:11:02

标签: c# reporting-services rdlc multivalue

我想做什么

如果“NCRNumber”列的值出现在名为listeRNC的多值参数中,我想更改行背景颜色。

这是我现在使用的SSRS:

= iif ((Parameters!listeRNC.Value.ToString() = Fields!NCRNumber.Value.ToString()), "Khaki","White")

这是做什么

这只是着色第一行(也是Parameters!listeRNC中的第一个元素)..

我知道我可以像这样访问MultiValue列表中的各种项目

Parameters!listeRNC.Value(index)

但是如何在此列表中进行查找?就像List.Find方法或foreach一样?

2 个答案:

答案 0 :(得分:1)

我认为您所寻找的内容与下面链接中的答案非常相似。但是,这将是一个向你发送良好方向的东西:

= Iif(Array.IndexOf(Parameters!p_myMultipleValueParameter.Value,Fields!groepType.Value)> -1,"找到","未找到")

IndexOf

答案 1 :(得分:0)

最后我的问题不是代码本身,我错误配置了参数本身。我曾经通过报告的XML代码手动添加参数。但是我编写多值参数的方式是错误的。

所以,对于那些感兴趣的人来说,这是正确的XML:

<ReportParameter Name="YourParameterNameGoesHere">
  <DataType>String</DataType>
  <Prompt>ReportParameter1</Prompt>
  <MultiValue>true</MultiValue>
</ReportParameter>

以下是我如何找到这个:在查看您的报告[设计]模式时,转到visual studio的工具栏菜单 - &gt;查看 - &gt;报告数据(ctrl + alt + D)。然后转到参数,然后右键单击 - &gt;添加参数。确保检查多值选项。你去吧!

这是我用来解析整个事情的最终代码:

= iif((InStr(Join(Parameters!listeRNC.Value,",").ToString(),fields!NCRNumber.Value.ToString(),CompareMethod.Text)), "Khaki","White")