I have a report in which I'm trying to sum a summary on one group to another group. Ex:
group 1: 75 <- sum of the maximums
group 2: 50 <- max of the group
line 1: 50
line 2: 40
line 3: 10
group 2: 25 <- max of the group
line 1: 10
line 2: 2
line 3: 25
I've tried using a running total, but can't seem to get that right. I've also tried to put the maximum part into a formula, but Crystal still won't summarize it.
If you absolutely have to have the value in the Group1 Header then I think your only option will be a SQL Expression.
The Group1 Footer would be much easier. The gist is that you can simply keep track of the sum of the maxes with a variable.
//Place this formula in the Group1 Header
whileprintingrecords;
numbervar g1sum := 0;
//Place this formula in the Group2 Footer
whileprintingrecords;
numbervar g1sum;
g1sum := g1sum + maximum({table.value},{table.group2_field})
//Place this formula in the Group1 Footer
whileprintingrecords;
numbervar g1sum;
Related
I want to suppress a group if a field does not change within that group. Here is a screenshot of my example data (the two red-boxed fields showing the groups that have the unchanging field):
As you can see the two groups, reservation_number 10002 and 10014, should be suppressed as their amount field does not change.
Ideally the above screenshot should become this:
Please note that there can be more than two amount rows in a group.
Follow below process
Create a formula #Initialize and write below code and place in group header
Shared numbervar counter;
counter:=0
Create one more formula count and write below code and place in detail where you have data rows
Shared numbervar counter;
if PreviousIsNull(amount)
then counter:=counter+0
else if previous(amount) = amount
then counter:=counter+0
else if next(amount) = amount
then counter:=counter+0
else counter:=counter+1
Create one more formula result and place in groupfooter
Shared numbervar counter;
Shared Numbervar counter1:=0;
counter1:=counter;
counter
Go to section expert and supress and write below condition:
EvaluateAfter({result}) ;
Shared numbervar counter;
if counter = 0
then
true
else false
Use below formula for supress of header:
EvaluateAfter({result});
Shared Numbervar counter1;
if counter1 = 0
then
true
else false
Let me know if this works else will suggest other way
I am new to crystal reports.
Here is my data table "PAY_DETAILS".I need to display a "Basic Salary" field in my report.
So I need to check whether the Earn_Type is "CBS" and if it is true then display the CBS amount in the report.How to write this formula.
Amount Earn_Type
--------------------------------
6,789.00 ER006
2,300.00 ER007
7,890.00 ER009
88.00 ER003
88.00 ER004
48,850.00 CBS
8.00 ARS
I tried creating a formula field and drag it to report.But it displays nothing.Below is my formula.
numberVar salAmount ;
if({PAY_DETAILS.EARN_TYPE}="CBS") then
salAmount= {PAY_DETAILS.AMOUNT};
use := instead of equal when assigning a value
numberVar salAmount ;
if {PAY_DETAILS.EARN_TYPE} = "CBS" then
salAmount := {PAY_DETAILS.AMOUNT};
I have a bunch of data in groups in Crystal Reports. There's a status field, and for each group I want to display the number of occurrences of a specific status in the group footer.
Example:
==============
Group 1 Status
==============
Foo
Bar
Foo
Foo
Foo
Foo
Foo
Bar
Bar
Foo
----Number of occurrences of "Bar" displayed here-----
==============
Group 2 Status
==============
Bar
Bar
Foo
----Number of occurrences of "Bar" displayed here-----
How can I accomplish this?
This kind of accumulator can be handled with three formulas. It's also possible to do this in SQL in many scenarios.
{#ResetBarCount} // Place this formula in the group header and hide it
global numbervar bar_count = 0;
{#IncrementBarCount} // Place this formula in group body and hide it
global numbervar bar_count;
if <DATABASE_COLUMN> = "Bar" then bar_count := bar_count + 1
{#BarCount} // Place this formula where you want to see your result
global numbervar bar_count;
My Crystal syntax maybe a little rusty so apologies if you have to tweak it.
I was able to accomplish this by creating a new formula field:
IF {Status} = "Bar" THEN 1 ELSE 0
Then inserting a summary of the group sum of the formula field and suppressing it so all you see is the summary, which gives you an exact count of the number of "Bars" in each group.
Hi i am new to stack overflow, and I am having a problem in crystal report.
Thank you in advance
I am getting output from database like
Name Qty Rate Amount
Mango ice cream 1 100 100
Chocobar 1 150 150
Zulubar 1 50 50
Chocolate cone 1 50 50
Kulfi 1 100 100
ABC 1 100 100
XYZ 1 50 50
Total:- 600
Now what I want to do is merge first three raw and split on 3rd raw.
I want the output to look like this
Name Amount
Mango ice creame, Chocobar, Zulubar 300
Chocolate cone, Kulfi, ABC 250
XYZ 50
Total:- 600
How can I do this?
Assuming your requirement is static and no dynamic is involved. Follow below process:
Create 3 detail sections, detailA, detail B and detail C
Create a formula #First place it in detail A.
Local Numbervar var_Mango_ice_creame;
Local Numbervar var_Chocobar;
Local Numbervar var_Zulubar;
Shared Numbervar total;
if Name='Mango ice creame'
then var_Mango_ice_creame:= Amount;
if Name='Chocobar'
then var_Chocobar:= Amount;
if Name='Zulubar'
then var_Zulubar:= Amount;
total:=total+var_Mango_ice_creame+var_Chocobar+var_Zulubar;
var_Mango_ice_creame+var_Chocobar+var_Zulubar;
Similarly create 2nd formula #second place it in Detail2
Local Numbervar var_Chocolate cone;
Local Numbervar var_Kulfi;
Local Numbervar var_ABC;
Shared Numbervar total;
if Name='Chocolate cone'
then var_Chocolate cone:= Amount;
if Name='Kulfi'
then var_Kulfi:= Amount;
if Name='ABC'
then var_ABC:= Amount;
total:=total+var_Chocolate cone+var_Kulfi+var_ABC;
var_Chocolate cone+var_Kulfi+var_ABC;
Create 3rd formula #Third place it in Detail C
Local Numbervar var_XYZ;
Shared Numbervar total;
if Name='XYZ'
then var_XYZ:= Amount;
total:=total+var_XYZ;
var_XYZ;
Create 4th formula Display and place in report footer.
Shared Numbervar total;
total;
Create a formula field to be used for grouping purposes:
// {#grouper}
Ceiling(RecordNumber/3)
Add a group on this field.
Create a manual, running-total field:
// {#reset}
// place in group header; suppress
WhilePrintingRecords;
Stringvar Array reset;
Stringvar Array values;
values := reset;
// {#increment}
// place in details; suppress
WhilePrintingRecords;
Stringvar Array values;
Redim Preserve values[Ubound(values)+1];
values[Ubound(values)] := {table.name_field};
// {#display}
// place in group footer
WhilePrintingRecords;
Stringvar Array values;
Join(values, ", ");
i have following data :
Name Amount
================
Amit 18000
Ajay 19500
Bharat 16100
how do i print the name with lowest amount in the report footer.
i tried the following formula
if {table.amount} = minimum({table.amount}) then
'Lowest Vendor - ' + {table.name}
above formula returns a blank value.
I need this in Crystal Reports not in RDBMS.
Take a local variable and store the value in that and use the variable in report footer.
Shared Stringvar a;
Shared Stringvar b;
a:=
if {table.amount} = minimum({table.amount}) then
'Lowest Vendor - ' + {table.name}
else '0';
if a<>'0'
then b:=a;
place this formula beside the amount column.
Create another formula and write below formula and place it in footer
Shared Stringvar b;
b