• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 358
  • Last Modified:

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)
// 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

Open in new window

0
respawn
Asked:
respawn
  • 5
  • 3
  • 2
1 Solution
 
vetaldjCommented:
You can try something like this
// This is to change the font colour of the order amount if the amount is less than 100
if {Orders.Order Amount} < 100 and {Customer.Country} <> "Canada" 
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

Open in new window

0
 
respawnAuthor Commented:
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



0
 
mlmccCommented:
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
0
Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
respawnAuthor Commented:
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
0
 
respawnAuthor Commented:
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
0
 
mlmccCommented:
My fault.  Need an ELSE before the third IF

mlmcc
0
 
respawnAuthor Commented:
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
0
 
vetaldjCommented:
Try for font this formula:
Select {Customer.Country}
    Case "Canada":
        If {Customer.Order Amount} <= 100 Then crRed Else crWhite
    Default:
        If {Customer.Order Amount} <= 100 Then crRed Else crBlack

And for background:
Select {Customer.Country}
    Case "Canada":
        If {Customer.Order Amount} <= 100 Then crWhite Else crRed
    Default:
        crWhite

After all it looks somethig like attached file
0
 
vetaldjCommented:
Can't upload file in some reason...
0
 
respawnAuthor Commented:
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
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Cloud Class® Course: CompTIA Cloud+

The CompTIA Cloud+ Basic training course will teach you about cloud concepts and models, data storage, networking, and network infrastructure.

  • 5
  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now