【问题标题】:How to show group by columns on top of the table header instead of on the left in rdlc如何在表格标题顶部而不是在rdlc左侧显示按列分组
【发布时间】:2016-09-08 20:27:36
【问题描述】:

我有一份报告,其中包含 EmpType(全职/兼职等)、EmpLocation(雷德蒙德/西雅图/华盛顿等)、EmpBand(S/T/E 等)、EmpId、EmpName、EmpFullAddress、EmpContactNo、EmpSal、EmpGender 列,EmpDob。

我们需要按列 EmpType、EmpLocation、EmpBand 对数据进行分组,然后将其余列显示为数据。

我可以使用 rdlc 报告的 group by 功能首先按 EmpType 分组,然后将 EmpLocation 作为其子组,将 EmpBand 作为 EmpLocation 的子组,但这三个值在左侧显示为树。

但我想要的是这三个字段出现在每个表格的顶部 类似于数据表标题顶部的标题而不是左侧的树。

可以像下面这样显示吗?


EmpType: Full Time EmpLocation: Seatle EmpBand: S

EmpId | Emp Name | EmpFullAddress  | EmpContactNo | EmpSal |EmpGender |EmpDob    
100     Kris       40 Drealand ave   7417894561    74000    M      15/4/1985

EmpType: Full Time EmpLocation: Seatle EmpBand: T

EmpId | Emp Name | EmpFullAddress  | EmpContactNo | EmpSal |EmpGender |EmpDob   
100     Kris       40 Drealand ave   7417894561    74000      M      15/4/1985 

EmpType:全职 EmpLocation:Redmond EmpBand:S

EmpId | Emp Name | EmpFullAddress  | EmpContactNo | EmpSal |EmpGender |EmpDob   
100     Kris       40 Drealand ave   7417894561    74000      M      15/4/1985 

EmpType:全职 EmpLocation:西雅图 EmpBand:S

EmpId | Emp Name | EmpFullAddress  | EmpContactNo | EmpSal |EmpGender |EmpDob   
100     Kris       40 Drealand ave   7417894561    74000      M      15/4/1985 

EmpType:兼职 EmpLocation:西雅图 EmpBand:S

EmpId | Emp Name | EmpFullAddress  | EmpContactNo | EmpSal |EmpGender |EmpDob   
100     Kris       40 Drealand ave   7417894561    74000      M      15/4/1985 

【问题讨论】:

    标签: c# reporting-services ssrs-2008 rdlc


    【解决方案1】:

    是的,这绝对是可能的。但是,您不希望它在层次结构中对这三列进行分组(至少,因为我认为它似乎不正确)。

    您真正想要做的是对三个变量的组合进行分组(参见下面的屏幕截图)。或者,您可以创建一个表达式来创建要分组的字符串:

    =Fields!Field1.Value & "-" & Fields!Field2.Value & "-" & Fields!Field3.Value
    

    无论采用哪种方式,您都需要设置排序以将组按所需顺序排列。

    还应注意,每当您添加父行组时,都会添加一列。您可以删除已添加的列,并在出现提示时选择“仅删除列”。这会将组保留在层次结构中的位置,但会删除额外的列。

    完成后,您可以执行以下操作以达到您想要的结果:

    1. 右键单击您的详细信息行并选择插入行 => 外部组 - 上方。将行标题移动到这个新创建的行。

    2. 右键单击刚刚创建的行并选择插入行 => 组内 - 上方。

    3. 合并第 2 步中创建的行中的所有单元格。

    4. 将占位符添加到步骤 2 中创建的行中的单个单元格。设置占位符的表达式以创建所需的组标题:

      ="EmpType: " & Fields!EmpType.Value & " EmpLocation: " & Fields!EmpLocation.Value & " EmpBand: " & Fields!EmpBand.Value

    瞧!你应该有你想要的结果。如果您有任何疑问或问题,请发表评论,我会尽力提供帮助。

    基于评论的其他详细信息

    当 tablix 跨页时,您能否在新页面上重复页眉?明确地。为此,请访问高级模式以查看行详细信息。在高级模式中单击与 tablix 中包含标题的行相对应的行。

    在 tablix 属性下,如果是标题,将 Keep with Group 更改为“After”,并将 Repeat on New Page 更改为 True。

    你能显示整个团队的薪水总和吗?是的你可以。您想在底部添加一个新行并对默认范围所需的字段求和。

    1. 右键单击您的详细信息行并选择插入行 => 外部组 - 下方

    2. 使用以下表达式在此行中创建总计:

      =SUM(Fields!Salary.Value)

    请注意,我没有在聚合中指定范围或数据集。只要表达式位于组内(无论是细节组还是其他),如果没有提供范围/数据集,它将默认为当前范围。这应该会给你你想要的总数。

    当您说“如果我只希望表格及其标题在同一组标题下针对 EmpBand S/T/E 的不同值重复,我可以这样做吗?”,我不明白您的意思。

    编码愉快!

    【讨论】:

    • 我们如何在每一页中重复组头和/或表头,还有一个问题是我是否只希望表及其表头在同一组头下重复 EmpBand S 的不同值/T/E,我可以这样做吗?我们可以在组标题字段中用一个标签显示一个组标题下的工资总和吗?
    • 好的,一般来说,如果您还有其他问题,您应该在其他帖子中查找这些答案,如果找不到这些答案,请打开一个新问题。也就是说,这些与您的原始问题密切相关,我已经修改了我的答案。如果您觉得我的回答正确且有帮助,请标记为正确答案。
    • 谢谢。我将为我的其他查询发布一个差异问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    • 1970-01-01
    • 2011-11-24
    • 1970-01-01
    相关资源
    最近更新 更多