Solved

Crystal giving error when running report with complicated formula

Posted on 2008-06-16
9
388 Views
Last Modified: 2013-11-16
I am trying to run a Crystal report that totals the number of records that don't have data in a specific field/table.  Because I'm looking for data lines that may not exist, I created a formula as a running total.  Earlier in the report I set the various NullValue variables to "Y".  If, after the details section, they are still "Y", then I know it didn't find a line with the data, so I increment the number of records by one.

The problem is I'm getting an error when I run the report, and, unlike other errors I've seen, this one isn't telling me what the error is, just that there's an error (see screenshot).  I tried creating a new formula to only call the below formula if the {table_add_detail.field_value} isn't null, but it seems to be calling the formula anyway.

Any ideas on what the error is, and how to fix it?
whileprintingrecords;

stringvar RDNullValue;

stringvar NullValueH;

stringvar NullValueP;

stringvar MDNullValueH;

stringvar MDNullValueP;

numbervar HRunning;

numbervar HNumRecs;

numbervar PRunning;

numbervar PNumRecs;
 

if isdate({table_add_detail.field_value}) then

(

if {table_add_detail.field_name}="REC DISPOS" and

cdate({table_add_detail.field_value})<={?DateRange} then

RDNullValue:="N"

);

if isdate({table_add_detail.field_value}) then

(

if {table_add_detail.field_name}="DT REQ SEC" and

cdate({table_add_detail.field_value})<={?DateRange} then

(if {table_add_detail_lob.field_value}="Commercial" then

NullValueH:="N" else

if {table_add_detail_lob.field_value}in["BT", "BC", "BP", "Blue Opt", "HCH", "P65", "FEP"] then

NullValueP:="N"

);

);

if {table_add_detail_lob.field_value}="Commercial" then

(HNumRecs:=HNumRecs+1;

HRunning:=HRunning+DateDiff("d", cdate({cme_detail.document_id}), {cme_detail.response_date}));

if {table_add_detail_lob.field_value}in["BT", "BC", "BP", "Blue Opt", "HCH", "P65", "FEP"] then

(PNumRecs:=PNumRecs+1;

PRunning:=PRunning+DateDiff("d", cdate({cme_detail.document_id}), {cme_detail.response_date}));
 

if isdate({table_add_detail.field_value}) then

(

if {table_add_detail.field_name}="DATE TO MD" and

cdate({table_add_detail.field_value})<={?DateRange} then

(if {table_add_detail_lob.field_value}="Commercial" then

MDNullValueH:="N" else

if {table_add_detail_lob.field_value}in["BT", "BC", "BP", "Blue Opt", "HCH", "P65", "FEP"] then

MDNullValueP:="N"

);

);

Open in new window

Crystal1.jpg
0
Comment
Question by:VistarTechnologies
  • 4
  • 3
  • 2
9 Comments
 
LVL 100

Expert Comment

by:mlmcc
ID: 21794454
How are you calling the formula?

Is the error when you run the report?

mlmcc
0
 

Author Comment

by:VistarTechnologies
ID: 21794479
I am calling the formula with the below formula, located in the Details section:

whileprintingrecords;
if isnull({table_add_detail.field_value}) then
"A" else {@RunningTotal};

The error is when I run the report.  It spends some time, loads records, but gives the error before it prints anything.
0
 
LVL 100

Expert Comment

by:mlmcc
ID: 21796432
A formula must return a single data type.  Try

whileprintingrecords;
if isnull({table_add_detail.field_value}) then
0 else {@RunningTotal};

mlmcc
0
 

Author Comment

by:VistarTechnologies
ID: 21797354
When I updated the formula as suggested, it gave me an error "A number is required here" and highlighted {@RunningTotal}, so I couldn't change it.  I then tried changing the RunningTotal formula to end with 0 so it would always return a number, which then allowed me to update the formula as suggested... however, running the report produced the same error.
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 100

Expert Comment

by:mlmcc
ID: 21797711
Sorry, your formula name confused me.  The character is correct.

Does the report work from the Crystal designer?

mlmcc
0
 

Author Comment

by:VistarTechnologies
ID: 21797779
I'm not exactly sure what the Crystal designer is... is that somewhere in Crystal Reports?
0
 
LVL 34

Accepted Solution

by:
James0628 earned 500 total points
ID: 21798578
Are you sure that {@RunningTotal} isn't being used anywhere else in the report?  If you want to make sure, when you look at the list of formulas in the field explorer in CR, does your version put check marks by the formulas that are being used?  If so, try removing the reference to {@RunningTotal} from the formula that calls it and see if there is still a check mark beside {@RunningTotal}.  If there is, it's being used somewhere else.

 If all else fails, you could add IsNull tests before the IsDate at the start of each if statement in {@RunningTotal}.  Something like:

if not IsNull ({table_add_detail.field_value}) and isdate({table_add_detail.field_value}) then


 I'd also suggest adding an IsNull test for {table_add_detail_lob.field_value}:

if not IsNull ({table_add_detail_lob.field_value}) and
 {table_add_detail_lob.field_value}="Commercial" then


 Or ...
 CR 10 has an option to replace incoming nulls with default values (an empty string for string fields and 0 for numeric fields).  If your version of CR has that option, and if you don't actually need the null values for some reason, you could try that option to just eliminate the nulls from the equation.  In CR 10, the option is under File > Report Options - "Convert Database NULL Values to Default".

 James
0
 

Author Closing Comment

by:VistarTechnologies
ID: 31467630
Replacing incoming nulls with default value solved issue.
0
 
LVL 34

Expert Comment

by:James0628
ID: 21807651
Glad I could help.

 James
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Hot fix for .Net Crystal Reports 10.2.3600.0 to fix problems with sub reports running on 64 bit operating systems ISSUE: Reports which contain subreports fail with error "Missing Parameter Value" DEPLOYMENT SERVER OS: Windows 2008 with 64 bi…
Hi, In my previous Article  (http://www.experts-exchange.com/Database/Reporting/A_15199-Introduction-to-Microstrategy.html)I discussed some basic understanding of Microstrategy that how we can get in Intro of Microstrategy (MSTR). Now it's tim…
You have products, that come in variants and want to set different prices for them? Watch this micro tutorial that describes how to configure prices for Magento super attributes. Assigning simple products to configurable: We assigned simple products…
Delivering innovative fully-managed cloud services for mission-critical applications requires expertise in multiple areas plus vision and commitment. Meet a few of the people behind the quality services of Concerto.

914 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now