以下是我创建的报告。我想在每个组之后画一条线,如图中的红线所示。
尝试干预文本框属性 > 边框样式表达式。但是,一旦我关闭并重新打开它,这种情况就不会存在。
如果我为整个组设置边框,则该行将为我不想要的组中的每一行重复。
有什么帮助吗?
以下是我创建的报告。我想在每个组之后画一条线,如图中的红线所示。
尝试干预文本框属性 > 边框样式表达式。但是,一旦我关闭并重新打开它,这种情况就不会存在。
如果我为整个组设置边框,则该行将为我不想要的组中的每一行重复。
有什么帮助吗?
View
Microsoft SQL Server 报表生成器中的选项卡。Properties
复选框,以便显示“属性”窗口。ProductionCountry
选择整个组行。该行应显示属性。Border
-> BorderStyle
-> Top
。该值很可能为空白。Top
字段中,为上边框输入下面的表达式。顶部字段值:
=IIF(Fields!ProductionCountry.Value = Previous(Fields!ProductionCountry.Value) OR Fields!ProductionCountry.Value = First(Fields!ProductionCountry.Value, "mydataset"),"None","Solid")
更改mydataset
上面的值以匹配报告的数据集名称。
笔记:
如果当前行与前一行属于同一组或当前组行是数据集的第一行,则将边框设置为无,将边框设置为实心。
为了改进@niktrs 的答案,我建议:
=Iif(Fields!ProductionCountry.Value = Previous(Fields!ProductionCountry.Value) OR IsNothing(Previous(Fields!ProductionCountry.Value)),"None","Solid")
这样做的好处是不会在初始组行上添加一行,即使显示的第一个组不是数据集中的第一个组,例如在进行排序或过滤的地方。
选择整个详细信息行并将此表达式添加到 BorderStyle-Top 属性:
=IIF((Previous(Fields!ProductionCountry.Value) <> Fields!ProductionCountry.Value)
OR (Previous(Fields!IndustryName.Value) <> Fields!IndustryName.Value)
OR (Previous(Fields!ProductGroup.Value) <> Fields!ProductGroup.Value),
"Solid",
"None")
我发现真正容易做的是定义组的顶部边框。这样,每个新组都会在前一组的最后一行和新组的第一行之间添加一个边框。它还在标题之后添加了一个边框。
此解决方案不在最后一行的末尾绘制边框。如果您也需要该边框,您可以为包含组的 tablix 定义底部边框。
=Iif(Fields!ProductionCountry.Value ="","None","Solid")
还更改边框默认无左实右实心底部无顶部以上表达式。并为矩形属性更改引导顺序..
我试过这样的顶部边框,它工作正常......
在我的情况下,我有一个聚合值,所以我不能使用以前的函数,所以我硬编码了组中的第一个值,我知道这将是该组中的第一个值。然后在边框样式中我使用了这个表达式
Top =iif(Fields!Group_Name.Value="Hard Corded(first value)","Solid","None")
同样在边框颜色中使用了这个表达式
=iif(Fields!Group_Name.Value="Hard Corded(first value)",,"Black","LightGrey")