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 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
现在使用公式对子报表进行分组...如果您希望在主报表中显示数据或删除主报表的所有字段,只显示子报表
以上是关于Crystal Reports动态分组的主要内容,如果未能解决你的问题,请参考以下文章
更改 Crystal Reports 查看器连接字符串 ASP.NET