Solved

# Crystal Reports: How to suppress group header based on formula in footer

Posted on 2006-07-04
25,369 Views
We have a report that includes variables to calculate an adjusted total.
The problem we have is that we need to suppress a group header where the value of a formula (including a variable) in the group footer is zero.

The setup of the report is as follows:

In a group header (Group 1 - Employee) is the folllowing formula called Declare Achieved Target:

WhilePrintingRecords;
NumberVar AchievedTotal;
AchievedTotal := 0
AchievedTotal := AchievedTotal

Then in the next group header (Group 2 -Competency) is the following formula called Calc Achieved Target:

WhilePrintingRecords;
NumberVar AchievedTotal;
AchievedTotal := AchievedTotal + {@Adjusted Achieved}

Then in the footer for Group 1 (Employee) is the following formula called Display Achieved Target:

WhilePrintingRecords;
NumberVar AchievedTotal;
AchievedTotal;

What we need to have happen is that if the value of the 'Display Achieved Target' is zero the Group header and group footer for Group 1 Employee need to be suppressed.

We can suppress the footer record by including the following in the suppress option against the footer

If {@Display Gap} = 0 then true else false

But this doesnt work for the header. I understand that this is because of the order in which Crystal processes but we need to find a way of suppresses the header row?

Any ideas if this can be done? We are using Crystal Reports v9.

thanks
0
Question by:hcshosting
• 5
• 4
• 2
• +4

LVL 6

Expert Comment

Does the "Accepted Answer" for this previous inquiry have any applicability?

http://www.experts-exchange.com/Databases/Crystal_Reports/Q_21460758.html
0

LVL 10

Expert Comment

What is {@Display Gap} ?

Spykair
0

Author Comment

oops Sorry typo/mistake @display gap should be @Display Achieved Target
0

LVL 10

Expert Comment

Go to your section expert for the Group Header1 -> click on the 'X+2' next to "Suppress" and enter this:
{@Display Achieved Target} = 0

It should work.

Hth,
Spykair
0

LVL 6

Expert Comment

Good ol' experts-exchange.com Database for Crystal Reports serves us well, sometimes ;-)
0

Author Comment

hi Spykair,

Unfortunately, adding {@Display Achieved Target} = 0 to the groupheader suppress hasnt worked.. the header still appears in the report.

0

LVL 10

Expert Comment

Try:
{@Display Achieved Target} = 0
or {@Display Achieved Target} isnull

Spykair
0

LVL 9

Expert Comment

Spykair, I think you meant this?

IsNull({@Display Achieved Target})
or {@Display Achieved Target} = 0

--
Outin
0

LVL 10

Expert Comment

Oops, ja. Thanks Outin.
0

Author Comment

Hi,

ive tried isnull(@Displayed Achieved Target}) and the header is still displaying..

0

LVL 9

Expert Comment

Just to be sure:
This

IsNull({@Display Achieved Target})
or {@Display Achieved Target} = 0

is 1 complete formula, not a list of possible options...

--
Outin
0

LVL 1

Expert Comment

Are you wanting to display the detail even in the GH1 / GF1 is syuppressed here?

DAVE SMITH
0

LVL 16

Accepted Solution

wykabryan earned 500 total points
I am not sure you can suppress the header based on the footers information because of the sequence that CR runs.  The header will always run before the footer.  Of course, you can try the beforeprintrecord function or provided your footer will lead into the next header.  I am not even 50% positive on this.  Will stay tuned.
0

Author Comment

Hi Dave Smith,

In the case where we want to suppress the header all the detail records for the group would be suppressed and the footer would be suppressed.

Hi Outn, I've tried it as all combinations and the header is still appearing.

I'll see if the beforeprintrecord function works and advise

0

LVL 1

Expert Comment

Hmm, well I'd be inclined twoards total group suppression if this is the case.  Have you approached it from angle yet?

DAVE SMITH
0

Author Comment

Hi,

If {@Display Gap} = 0 then true else false

to the group select but the formula cant be saved
message is 'This formula cannot be used because it must be evaluated later.'

I then tried

whileprintingrecords;
if {@Display Gap}= 0 then true else false

and this works. the header record no longer appears.

thank you for all your help

0

Expert Comment

I still cannot see how your stated conclusion will apply to the Group as a whole or even for the Group Header:
whileprintingrecords;
if {@Display Gap}= 0 then true else false

I have tried the "whileprintingrecords;" state in a similar example, and it will always analyze differently for the Group Header and its Footer.  The Header analysis is based on the "previous" Group's result, not on the "Current" Group.

Is there a "working" solution for this issue?

JR
0

## Featured Post

I hate sub reports and always consider them the last resort in any reporting solution.  The negative effect on performance and maintainability is just not worth the easy ride they give the report writer.  Nine times out of ten reporting requirementsâ€¦
There have always been a lot of questions related to when Crystal Reports evaluates report components (such as formulas, summaries, cross-tabs, charts, to name a few examples). Crystal Reports uses a two-pass reporting process to provide greater â€¦
This video gives you a great overview about bandwidth monitoring with SNMP and WMI with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're looking for how to monitor bandwidth using netflow or packet sâ€¦
This tutorial demonstrates a quick way of adding group price to multiple Magento products.