如何在SQL Server Reporting Services中的每个组之后绘制线条?

Nul*_*ead 21 border presentation reporting-services

以下是我创建的报告.我想在每组之后绘制一条线,如图中用红线所示.
尝试插入文本框属性>边框样式表达式.但是一旦我关闭并重新打开它,这就不会停留.
如果我为整个组设置边框,那么该行将重复我不想要的组中的每一行.

有帮助吗?

在此输入图像描述

nik*_*trs 33

  1. 单击ViewMicrosoft SQL Server报表生成器中的选项卡.
  2. 确保Properties选中该复选框,以便显示"属性"窗口.
  3. 对于ProductionCountry选择整个组行.应该显示该行的属性.
  4. 在属性中挖掘Border- > BorderStyle- > Top.该值很可能是空白的.
  5. 在该Top字段中,为顶部边框输入下面的表达式.

顶级字段值:

=IIF(Fields!ProductionCountry.Value = Previous(Fields!ProductionCountry.Value) OR Fields!ProductionCountry.Value = First(Fields!ProductionCountry.Value, "mydataset"),"None","Solid")
Run Code Online (Sandbox Code Playgroud)

更改mydataset上面的值以匹配报表的数据集名称.

注意:

如果当前行与前一行属于同一组,或者当前组行是数据集的第一个,则将border设置为none,将border设置为solid.


Gar*_*ury 6

为了改进@niktrs的答案,我建议:

=Iif(Fields!ProductionCountry.Value = Previous(Fields!ProductionCountry.Value) OR IsNothing(Previous(Fields!ProductionCountry.Value)),"None","Solid")
Run Code Online (Sandbox Code Playgroud)


这样做的优点是不在初始组行上添加行,即使显示的第一个组不是数据集中的第一个组(例如,已进行排序或过滤的情况)。


Chr*_*tta 5

选择整个详细信息行,然后将此表达式添加到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")
Run Code Online (Sandbox Code Playgroud)