respawn
asked on
How do I prioritizing conditional formatting in crystal reports?
I'm setting up conditional formatting for a report and they conflict. I can not use any other color for this but red and white so changing the colour to something else is not an option.
I want to apply both the formats to the whole report but for the country Canada if there are orders under $100 (and there are) then the font is the same colour as the background and I can't have that. Is there an override/priority order or something I can write that says if the background is red ignore the color change? I know how to prioritize in highlight expert but highlight expert does not display conditional formatting as far as I know and also I know I can do this in highlight expert but I need to know how to do it in conditional formatting.
Thanks!!
edit: just a note I'm using Crystal Reports 2008 Developer (version 12)
I want to apply both the formats to the whole report but for the country Canada if there are orders under $100 (and there are) then the font is the same colour as the background and I can't have that. Is there an override/priority order or something I can write that says if the background is red ignore the color change? I know how to prioritize in highlight expert but highlight expert does not display conditional formatting as far as I know and also I know I can do this in highlight expert but I need to know how to do it in conditional formatting.
Thanks!!
edit: just a note I'm using Crystal Reports 2008 Developer (version 12)
// This is to change the font colour of the order amount if the amount is less than 100
if {Orders.Order Amount} < 100
then
red
else
white
// This is to change the background colour of the details if the country is Canada
if {Customer.Country} = "Canada"
then
red
else
white
ASKER
Also I just noticed that if the background is white and the order is above 100 the font is white as well so that doesn't show up. So just to recap I need something like
if {Customer.Country} = "Canada" and {Orders.Order Amount} < (less than) 100
then
details background white
font red
if {Customer.Country} = "Canada" and {Orders.Order Amount} > (greater than) 100
then
details background red
font white
if {Customer.Country} (not equal) "Canada" and {Orders.Order Amount} < (less than) 100
then
details background white
font red
if {Customer.Country} (not equal) "Canada" and {Orders.Order Amount} < (greater than) 100
then
details background white
font black
if {Customer.Country} = "Canada" and {Orders.Order Amount} < (less than) 100
then
details background white
font red
if {Customer.Country} = "Canada" and {Orders.Order Amount} > (greater than) 100
then
details background red
font white
if {Customer.Country} (not equal) "Canada" and {Orders.Order Amount} < (less than) 100
then
details background white
font red
if {Customer.Country} (not equal) "Canada" and {Orders.Order Amount} < (greater than) 100
then
details background white
font black
There is no prioritizing.
Do that in the appripriate places.
Detail background
if {Customer.Country} = "Canada" and {Orders.Order Amount} < (less than) 100
then
crWhite
else if {Customer.Country} = "Canada" and {Orders.Order Amount} > (greater than) 100
then
crRed
if {Customer.Country} (not equal) "Canada" and {Orders.Order Amount} < (less than) 100
then
crWhite
else if {Customer.Country} (not equal) "Canada" and {Orders.Order Amount} < (greater than) 100
then
crWhite
Similarly for the font color
mlmcc
Do that in the appripriate places.
Detail background
if {Customer.Country} = "Canada" and {Orders.Order Amount} < (less than) 100
then
crWhite
else if {Customer.Country} = "Canada" and {Orders.Order Amount} > (greater than) 100
then
crRed
if {Customer.Country} (not equal) "Canada" and {Orders.Order Amount} < (less than) 100
then
crWhite
else if {Customer.Country} (not equal) "Canada" and {Orders.Order Amount} < (greater than) 100
then
crWhite
Similarly for the font color
mlmcc
ASKER
So I need to put the full above into both places? Also I know = is equals but what is the sign for not equals? Thanks
ASKER
nvm I found what not equals is, i figured I just could have googled it. Anyhow, I'm quite new to formulas, I tried to format the text but I got an error and am unsure how to fix it. I have attached what I got. Think you can help? Thanks.
formula.png
formula.png
My fault. Need an ELSE before the third IF
mlmcc
mlmcc
ASKER
well i put in the formula like you said and I put it in both places and I removed the highlight expert rules and I got what you see in the image below. I'm really not sure what to do lol.
hrmm.png
hrmm.png
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Can't upload file in some reason...
ASKER
I changed the code to this to reflect the DB's tables and it really looks like it worked. THANKS!!!!!!
Background...
Select {Customer.Country}
Case "Canada":
If {Orders.Order Amount} <= 100 Then crWhite Else crRed
Default:
crWhite
Font...
Select {Customer.Country}
Case "Canada":
If {Orders.Order Amount} <= 100 Then crRed Else crWhite
Default:
If {Orders.Order Amount} <= 100 Then crRed Else crBlack
woot.png
Background...
Select {Customer.Country}
Case "Canada":
If {Orders.Order Amount} <= 100 Then crWhite Else crRed
Default:
crWhite
Font...
Select {Customer.Country}
Case "Canada":
If {Orders.Order Amount} <= 100 Then crRed Else crWhite
Default:
If {Orders.Order Amount} <= 100 Then crRed Else crBlack
woot.png
Open in new window