Reporting services 在SQL Server Reporting Services中,如何在每个组之后划线?

Reporting services 在SQL Server Reporting Services中,如何在每个组之后划线?,reporting-services,border,presentation,Reporting Services,Border,Presentation,下面是我创建的报告。我想在每组后面画一条线,如图中红线所示。 尝试干预文本框属性>边框样式表达式。但一旦我关闭并重新打开它,这种情况就不会持续。 如果我为整个组设置边界,则该行将对组中我不想要的每一行重复 有什么帮助吗 选择整个详图行,并将此表达式添加到BorderStyle Top属性: =IIF((Previous(Fields!ProductionCountry.Value) <> Fields!ProductionCountry.Value) OR (Previou

下面是我创建的报告。我想在每组后面画一条线,如图中红线所示。
尝试干预文本框属性>边框样式表达式。但一旦我关闭并重新打开它,这种情况就不会持续。
如果我为整个组设置边界,则该行将对组中我不想要的每一行重复

有什么帮助吗


选择整个详图行,并将此表达式添加到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")
=IIF((先前的(字段!ProductionCountry.Value)字段!ProductionCountry.Value)
或(以前的(字段!IndustryName.Value)字段!IndustryName.Value)
或(先前的(字段!ProductGroup.Value)字段!ProductGroup.Value),
“固体”,
“无”)
  • 单击Microsoft SQL Server报表生成器中的查看选项卡
  • 确保选中
    属性
    复选框,以便显示属性窗口
  • 对于
    ProductionCountry
    选择整个组行。应显示该行的属性
  • 在属性中,向下挖掘到
    边框
    ->
    边框样式
    ->
    顶部
    。该值很可能为空
  • 在顶部字段中,为顶部边框输入下面的表达式
  • 顶部字段值:

    =IIF(Fields!ProductionCountry.Value = Previous(Fields!ProductionCountry.Value) OR Fields!ProductionCountry.Value = First(Fields!ProductionCountry.Value, "mydataset"),"None","Solid")
    
    更改上面的
    mydataset
    值以匹配报表的数据集名称

    注意:

    =IIF(Fields!ProductionCountry.Value = Previous(Fields!ProductionCountry.Value) OR Fields!ProductionCountry.Value = First(Fields!ProductionCountry.Value, "mydataset"),"None","Solid")
    
    如果当前行与上一行属于同一组,或 当前组行是数据集的第一行,将border设置为none,将 边界到实体


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

    =Iif(Fields!ProductionCountry.Value = Previous(Fields!ProductionCountry.Value) OR IsNothing(Previous(Fields!ProductionCountry.Value)),"None","Solid")
    


    这样做的好处是,即使显示的第一个组不是数据集中的第一个组,例如排序或筛选已到位,也不会在初始组行上添加行。

    我发现真正容易做的是定义组的上边框。这样,每个新组在前一组的最后一行和新组的第一行之间添加一个边框。它还将在标题后添加边框

    此解决方案不会在最后一行的末尾绘制边框。如果您也需要该边框,可以为包含组的tablix定义底部边框

    =Iif(Fields!ProductionCountry.Value ="","None","Solid")
    
    还可以在上述表达式中更改边框默认值“无左实心右实心底部无顶部”。 并对矩形属性更改bootom顺序


    我试着这样处理顶部边框,效果很好…

    在我的例子中,我有一个聚合值,所以我不能使用上一个函数,所以我硬编码了组中的第一个值,我知道这将是该组中的第一个值。然后在边框样式中,我使用了这个表达式

    =iif(Fields!Group_Name.Value="Hard Corded(first value)",,"Black","LightGrey")
    
    Top=iif(Fields!Group_Name.Value=“硬记录(第一个值)”、“实心”、“无”)

    在边框颜色中也使用了此表达式

    =iif(Fields!Group_Name.Value="Hard Corded(first value)",,"Black","LightGrey")
    

    再次感谢你的时间,克里斯。非常感谢。如果在运行报告时您的条件格式不正确,请尝试查看以下帖子:表达式的惊人使用!我需要在组的实例之间看到一条线,但不是在最后一条上,所以我使用了你的表达式,只是想确定它不是最后一条。如果你不喜欢使用表达式,最好的答案是。