Solved

Crystal Reports Shared CurrencyVar breaks formula when passing negative number

Posted on 2014-01-24
6
791 Views
Last Modified: 2014-02-02
I have multiple subreports passing shared numbervar and currencyvar...
The Billing Rate subreport's @Rate formula is the following:
if {@hours}>0
then ({Orders.OrderTotal}-({@materials}+{@misccost}))/{@hours}
else 100


@materials is a shared currencyvar
@misccost is a shared currencyvar
@hours is a shared numbervar

The subreport and formula work fine until @misccost is a negative number (from debit memo)...

Is there a method of formatting the @misccost shared currencyvar so that the negative will allow the @Rate value to be displayed? Or is something else breaking the formula?

See attached for reference.
Subreport.pdf
0
Comment
Question by:Lee Ingalls
  • 3
  • 3
6 Comments
 
LVL 100

Assisted Solution

by:mlmcc
mlmcc earned 250 total points
ID: 39807790
The negative value is not (at least I don't think it is) breaking the formula.

Is the Order Amount NULL?

Try setting the Exceptions For NULL option to DEFAULT FOR NULL

mlmcc
0
 
LVL 8

Author Comment

by:Lee Ingalls
ID: 39815383
Thanks mlmcc,

I set the "Exceptions For NULL option to DEFAULT FOR NULL" for the main and subreports; though it did not necessarily fixed the problem it did display 0.00 rather than nothing. That gave me an indication where to look. At that point I started breaking down each formula to see where they were failing.
0
 
LVL 100

Expert Comment

by:mlmcc
ID: 39815453
Are you able to fix the issues?

mlmcc
0
Back Up Your Microsoft Windows Server®

Back up all your Microsoft Windows Server – on-premises, in remote locations, in private and hybrid clouds. Your entire Windows Server will be backed up in one easy step with patented, block-level disk imaging. We achieve RTOs (recovery time objectives) as low as 15 seconds.

 
LVL 8

Accepted Solution

by:
Lee Ingalls earned 0 total points
ID: 39815872
What ultimately fixed the report was rewriting the Main Report @Material Costs formula to include NULL handling.

@Material Costs
from:
Sum ({@Misc Costs})+({@poval})

to:
IF ISNULL ({@Misc Costs})
THEN {@POVal}
ELSE IF ISNULL ({@POVal})
THEN ({@Misc Costs})
ELSE ({@Misc Costs})+{@POVal}

Whenever @Misc Costs was 0.00 my Main Report formulas:
@Material Costs
@Total Costs
@Gross Profit
@Billing Rate
all displayed NULL. Once I handled the NULL's each dependent value was passed to the subsequent formula.

I wouldn't have been able to see this until your suggestion to check the Report Options "Exceptions For NULL option to DEFAULT FOR NULL". How do you suggest I award the solutions points?

Regards, BudELee
0
 
LVL 100

Expert Comment

by:mlmcc
ID: 39816149
ANy way you desire.  Since my suggestion helped you can select it as assisted solution with your comment as the solution.  I believe you can award partial points if you desire.

mlmcc
0
 
LVL 8

Author Closing Comment

by:Lee Ingalls
ID: 39827473
mlmcc's suggestion, though not solving the problem directly lead to my being able to solve it.
0

Featured Post

Use Case: Protecting a Hybrid Cloud Infrastructure

Microsoft Azure is rapidly becoming the norm in dynamic IT environments. This document describes the challenges that organizations face when protecting data in a hybrid cloud IT environment and presents a use case to demonstrate how Acronis Backup protects all data.

Question has a verified solution.

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

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…
Hello everyone, Hope you find this as helpful as we did. We have on the company I work for an application built in Delphi V with Crystal Reports 8. We all know that Crystal & Delphi can be temperamental sometimes and the worst thing is, nearly…
This Micro Tutorial will teach you how to censor certain areas of your screen. The example in this video will show a little boy's face being blurred. This will be demonstrated using Adobe Premiere Pro CS6.

831 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