在RDLC中使用分组的备用行颜色

时间:2010-12-10 15:21:31

标签: report rdlc

我需要在RDLC报告中创建备用行颜色,这也会考虑群组。

如果我使用表达式

=Iif(RowNumber(Nothing) Mod 2, "PaleGreen", "White")

显然,这在使用组时会产生问题。我没有太多运气找到信息所以任何帮助都会很棒。

3 个答案:

答案 0 :(得分:12)

决定使用我在网上找到的以下代码:

=IIf(RunningValue(Fields!GroupId.Value, CountDistinct, Nothing) MOD 2, "White", "#d6f1fc")

它不会交替每一行的颜色,但会使该组中的所有行保持相同的颜色,从而使报告更好并且易于阅读。

答案 1 :(得分:7)

我知道这个话题很久以前就出现了,但是如果有人有类似的问题(就像我做的那样)并遇到这个问题,我就是这样解决的。以下是报告分组和示例结果的示例:

第1组 Sub 1
Sub 2
Sub 3

第2组 Sub 1
Sub 2
Sub 3

请注意,'Sub [1-3]'是完全相同的标题。当使用(Fields!GroupId.Value,CountDistinct,Nothing)时,该语句确定只有3个唯一值,当它到达重复子组(Sub [1-3])时,RunningValue的结果不会增加

您可以通过在报告中添加一个额外的列然后使用表达式来测试这一点:( RunningValue(Fields!GroupId.Value,CountDistinct,Nothing)。结果如下所示:

第1组 Sub 1 1
Sub 2 2
Sub 3 b

第2组 Sub 1 3
Sub 2 3
Sub 3 b

因为值开始重复,所以交替行逻辑的'mod 2'部分搞砸了。为了解决这个问题,我将RunningValue语句与Group标题以及Sub组结合起来:

(RunningValue(Fields!GroupId.Value + Fields!SubGroupId.Value,CountDistinct,Nothing)

我这样做后得到了这个结果:

第1组 Sub 1 1
Sub 2 2
Sub 3 b

第2组 Sub 1 b Sub 2 b Sub 3 b

将它扔进你的交替行表达式,它应该有效!

答案 2 :(得分:1)

使用:= iif(RowNumber(Nothing)Mod 2 = 0,true,false)