我正在修改销售发票报表。 我想要做的是通过LineHeader对行进行分组。 即如果发票有6行和3个salesid,报告应该是:
LineHeader {下面2行},LineHeader {下面2行},LineHeader {下面2行}。
如何分组实现它?
答案 0 :(得分:3)
销售发票报表有两个数据集,一个用于整个发票标题,另一个用于行。我理解你的问题的方式,你想在发票细节中有一个子标题。
如果查看Visual Studio中的报表设计,您将找到与SalesInvoiceDS数据集关联的Tablix,该数据集来自SalesInvoiceTmp临时表。如果突出显示Tablix,则可以看到其数据集中定义的组:
右键单击一个组(图片中的table16_Details_group)并按" Group Properties ..."打开“组属性”对话框。从这里,您可以添加组表达式并将其设置为您要分组的任何字段:
请注意,您需要将该字段添加到salesInvoiceTmp表,并修改报表数据提供程序以填充它(如果它尚不存在)。这超出了这个答案的范围,但是网上和书中有很多资源可以告诉你如何做到这一点(我推荐this本书,我发现它非常有用。报告数据提供者框架。)
现在查看带有突出显示字段的Tablix,您可以在每个组的左侧看到一个类似橙色括号的行。对于每个" Group" group by语句定义。然后,您将再次右键单击“行”组,然后按“添加组”>子组,并将其group by group设置为ItemId。
左侧的支架现在有一个较小的支架。外部括号与salesId组相关,内部与该组中的项目相关联。行标题行将位于较大括号内,但位于较小括号内,并将对每个SalesId重复,而项目详细信息将在较小的范围内,并对每个项目重复。这在文本中有点难以描述,但您始终可以突出显示一个字段,相应的组也会突出显示。
请注意,将这些组添加到半复杂的表格中会使它们变得混乱,因此最好从头开始创建一个组并在将数据放入其中之前定义组。