好的,这可能是一个奇怪的请求,但是可以在水晶报告中基本上展平我的数据集吗?
我在C#中创建了一个用连接创建的数据表,所以当它在报告中点击它的2条记录时。大多数列都有相同的数据,最后几列显示不同的地址。
我不需要多次打印细节部分而是使用大多数相似的数据,而是需要显示1条“记录”,其中公共数据打印一次,每个记录地址排列在旁边。如同,所有公共字段显示在一个区域中,然后在记录中的地址字段旁边,其中'AddressType = 1',然后旁边的地址字段'AddressType = 2'
这是子报告吗?因为即使使用子报表,我也无法仅使用第一条记录中的数据打印1个详细信息部分。
这甚至可以用水晶吗?由于长期存在的原因,我无法在数据到达报告之前将其展平。
答案 0 :(得分:1)
好的,办公室里有人给我指路,所以我会把它放在那里。
给定cols A,B,C的数据,所有的共同点和D,E在不同的行中有所不同,这就是我'平化'水晶中的数据集的方式:
这将生成1个报告,其中A,B,C列出一次,D,E列出每个子报告一次(每行数据一次)
这令人困惑,耗时,而且我现在比以往更讨厌水晶报道。
答案 1 :(得分:0)
这将非常难看,但您可以为Group Expert中的每个公共字段添加一个组,然后显示最后一个组标题中公共字段的数据。因此,如果您的公共字段是field1到field5,您将创建五个组并将所有五个字段放在field5的组头中。然后,您将在详细信息部分中放置唯一的地址字段(称为字段field6到field8)。
现在的诀窍是让所有内容正确排列。您可以在field5的组头上设置“underlay以下部分”;这将导致field1到field5“落入”详细信息部分。你只需要确保field6到field8都在field1到field5的右边,这样文本就不会重叠。
现在,如果您希望水平打印两个地址记录,我认为您需要一个包含多列的子报表。但同样的原则适用 - 只需确保子报告位于field1到field5的右侧,这样数据就不会重叠。
答案 2 :(得分:0)
您是否在每个非地址字段上尝试过suppress if duplicated
选项?
否则,您可以按公共ID分组,将公共字段放在该标题中,然后在详细信息部分显示多个地址。
或者,您可以从数据源中删除地址,并使用子报表为每条记录获取此数据。由于每条记录的地址必须select
,这将绕过连接并成为性能最慢的选项。
答案 3 :(得分:0)
好的,首先让我看看我是否理解这一点:
您想要一种格式为
的报告 MainDetails地址(type1)
MainDetails地址(type2)
改为格式为
MainDetails地址(type1)地址(type2)
假设只有两种地址类型,您可以执行以下操作:
1)按主要细节分组(无论唯一条目是什么
2)将地址详细信息放在它们旁边的组标题中,在右侧
3)同样将地址详细信息放在详细信息部分中,但定位好像它们位于地址(type2)列位置,所以它看起来像:
GH MainDetails地址
d .......................................地址
4)接下来,在AddressType字段的报告中添加一个排序,以便首先显示AddressType = 1
5)将条件抑制公式添加到详细信息部分,说{AddressType = 1}
6)使用Section Expert,在Group Header中勾选'underlay following sections'框
只要地址数为1或2,这就应该有效。