Crystal Reports动态分组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Crystal Reports动态分组相关的知识,希望对你有一定的参考价值。

我是水晶报道的新手,所以我不知道该怎么做

如何使用此公式创建组: 在主报告中

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}分组时有效

答案

你试图将分组的结果分组以重新组合,这对于你编写公式的方式是不可能的,因为DistinctCount ({PROD.GROUP_ID}, {PROD.ID_NO})本身就是分组的输出。

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

拿另一节group footer b并将子报告放在那里并使用Change sub report linksDistinctCount ({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

现在使用公式对子报表进行分组...如果您希望在主报表中显示数据或删除主报表的所有字段,只显示子报表

以上是关于Crystal Reports动态分组的主要内容,如果未能解决你的问题,请参考以下文章

Crystal Reports 中带过滤器的动态参数

Crystal Reports仅选择唯一ID

会用水晶报表crystal reports的请进

更改 Crystal Reports 查看器连接字符串 ASP.NET

.net里的crystal reports(水晶报表)可以做出趋势图吗?

寻求在Crystal Reports中约会的公式