SSRS 报告分组 (AX 2012)

SSRS report grouping (AX 2012)

我正在修改销售发票报表。 我想要做的是按 LineHeader 对行进行分组。 即如果发票有 6 行和 3 个 salesid,报告应该是这样的:

LineHeader {下方 2 行},LineHeader {下方 2 行},LineHeader {下方 2 行}。

怎么分组实现的?

销售发票报表有两个数据集,一个用于整个发票header,一个用于行。根据我对您问题的理解,您希望在发票详细信息中添加子 header。

如果您查看 Visual Studio 中的报表设计,您会发现一个与 SalesInvoiceDS 数据集关联的 tablix,该数据集来自 SalesInvoiceTmp temp table。如果突出显示 tablix,则可以看到在其数据集中定义的组:

右键单击组(图片中的 table16_Details_group)并按 "Group Properties..." 会弹出“组属性”对话框。从这里您可以添加一个组表达式并将其设置为您想要分组依据的任何字段:

请注意,您需要将该字段添加到 salesInvoiceTmp table 并修改报表数据提供程序以填充它(如果它尚不存在)。这超出了本答案的范围,但网络上和书籍中有大量资源可以向您展示如何执行此操作(我推荐 this 书,我发现它对报告数据非常有帮助提供商框架。)

现在查看突出显示字段的 tablix,您可以在每个组的左侧看到橙色的 bracket-like 行。对于 group by 语句定义的每个 "Group" 重复此括号内的所有内容。然后,您将再次右键单击行组,然后按添加组 > Child 组,并将其分组依据语句设置为 ItemId。

左边的括号内现在有一个更小的括号。外括号与 salesId 组相关,内括号与该组中的项目相关。 header 行将在大括号内但在小括号外,并且将为每个 SalesId 重复,而项目详细信息将在较小的括号内,并为每个项目重复。这个用文字描述有点困难,不过你可以随时高亮一个字段,对应的组也会高亮。

请注意,将这些组添加到 semi-complex 表格中往往会弄乱它们,因此最好从头开始创建一个表格并在将数据放入其中之前定义这些组。