2016-01-21 65 views
0

我在水晶报表是新,所以我不知道该怎么办水晶报表动态分组

我怎样才能使这个公式一组:
在主报告

if DistinctCount ({PROD.GROUP_ID}, {PROD.ID_NO})=1 then 
//group by 
PROD.GROUP_ID 
else if DistinctCount ({PROD.GROUP_ID}, {PROD.ID_NO})>1 and 
    ({PROD.GROUP_ID}=previous({PROD.GROUP_ID}) or 
    {PROD.GROUP_ID}=next({PROD.GROUP_ID})) then 
//group by 
    PROD.DOC_ID 
else 
//group by 
    PROD.GROUP_ID 

请帮我这个我在水晶报表新的,我需要让这个严重

我有这个在我的主要报告:该组中

他阿德,它是由组{} PROD.GROUP_ID
Sub_Car
Sub_Airplane

我的一些子报告工作时,它是由组{} PROD.GROUP_ID和一些子报表工作时,这是由组{ PROD.DOC_ID}

回答

0

您试图将分组的结果进行分组以重新组合,因为您编写公式的方式不适合,因为DistinctCount ({PROD.GROUP_ID}, {PROD.ID_NO})本身就是分组的输出。

要实现此目标,您需要使用子报告并传递不同的计数以用作子报告中的分组。

拍摄另一部分group footer b并将子报告存在和使用Change sub report links通过DistinctCount ({PROD.GROUP_ID}, {PROD.ID_NO})它会在参数字段中显示为{?DistinctCount ({PROD.GROUP_ID}, {PROD.ID_NO})}现在创建您的公式为@grouping和写下面的代码在子报子报告

if {?DistinctCount ({PROD.GROUP_ID}, {PROD.ID_NO})}=1 then 
//group by 
PROD.GROUP_ID 
else if {?DistinctCount ({PROD.GROUP_ID}, {PROD.ID_NO})}>1 and 
    ({PROD.GROUP_ID}=previous({PROD.GROUP_ID}) or 
    {PROD.GROUP_ID}=next({PROD.GROUP_ID})) then 
//group by PROD.DOC_ID 
else 
//group by PROD.GROUP_ID 

现在用公式组的子报告...如果你想在主报告中显示的数据或删除主报告的各个领域,并只显示子报告

+0

@ grouping公式未显示在更改组中。对不起另一个问题,但为什么呢? – Coder

+0

如果出现这种情况,您需要使用报告中的字段...将字段放在报告中,然后尝试使用公式 – Siva

+0

为什么它仍然无法在变更组中找到@grouping我已将它放入子报告中。当我在组名公式编辑器中指定公式时,它会显示“此功能无法使用,因为它必须首先进行评估” – Coder