Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

set fields (background-)color according to value of other field

Posted on 2004-10-20
6
Medium Priority
?
579 Views
Last Modified: 2006-11-17
hello experts,

i'm using crystal-reports embedded into visual studio 2003.

i have some linked tables. the datatable A holds a state-id belonging to another small table B that has concrete informations on how to show the value (text, color, backgroundcolor, ...).

now i  have the text-field B_1 of B on my report showing the user-readable value. according to the state-id A_1 of table A i'd like to set the textcolor and backgroundcolor of B_1 which is shown to the user. i'm lost on how to colorize that field. does anyone of you have a concrete solution?

my problem is, that i do not have experience using cr's formula language. i thought of using a switch and strcmp on A_1. then according to the result set the color and backgroundcolor of B_1 to certain values.

Switch (
    StrCmp ({A.A_1}, "offr"), colorizeMyField,
    StrCmp ({A.A_1}, "inf"),  colorizeMyFieldOtherWay,
    StrCmp ({A.A_1}, "inf"),  colorizeMyFieldOtherWay
)

do i have the right direction? can anyone of change my code the way it sets the forecolor and the backcolor of field {B.B_1} according to {A.A_1}?

thank you in advance
0
Comment
Question by:kolpdc
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 2
6 Comments
 
LVL 42

Accepted Solution

by:
frodoman earned 2000 total points
ID: 12360038
rt-click on the field to be colored {B.B_1} and select Format -> Border.  Click the formula button (X+2) to the right of "Background" and enter a formula like this:

If {A.A_1} = 'offr' then
   crRed
else if {A.A_1} = 'inf' then
   RGB(200, 170, 35)
else crDefault

That'll set the background based on the A.A_1 field.  To set the foreground do the same process on the Format -> Font tab.

Crystal doesn't support the "Switch" command but it does support the VB "Select...Case" version if you prefer that to the if..then statements.

If any part of this isn't clear please let me know.

frodoman
0
 
LVL 42

Expert Comment

by:frodoman
ID: 12360081
A little clarification to my previous post:

The color set can be either a Crystal constant (crRed, crWhite, etc.) or you can customize it with the RGB function which takes the form "RGB(0-255 Red, 0-255 Green, 0-255 Blue)" -- I've shown examples of both above.  If you use the crDefault then it'll be set to whatever color you've picked from the color-picker on the Format -> Border tab after putting a checkmark in the 'Background' field.

If you want to use the Select..Case structure it goes like this:

select {A.A_1}
 case 'offr' : crRed
 case 'inf'   : RGB(100, 100, 100)
 default: crDefault

HTH

frodoman
0
 
LVL 4

Author Comment

by:kolpdc
ID: 12360198
thank you. i'll check it. by the way - i've seen the following statement in my studios formula designer

Switch (expr1, function1, expr2, function2, ...)
0
Important Lessons on Recovering from Petya

In their most recent webinar, Skyport Systems explores ways to isolate and protect critical databases to keep the core of your company safe from harm.

 
LVL 42

Expert Comment

by:frodoman
ID: 12360281
I double-checked and you're right, the switch statement is in there.  Apparently it's been added at some version and I never noticed it appeared.  Obviously the syntax is different then what you had but certainly you could still use switch instead of the select..case or if..then.

frodoman
0
 
LVL 4

Author Comment

by:kolpdc
ID: 12360321
thank you frodoman - it just works fine.
wish you a nice time for rest of night, day, evening (take the one fitting your needs ;)...
0
 
LVL 42

Expert Comment

by:frodoman
ID: 12360341
Glad I could help - frodoman
0

Featured Post

[Webinar] Lessons on Recovering from Petya

Skyport is working hard to help customers recover from recent attacks, like the Petya worm. This work has brought to light some important lessons. New malware attacks like this can take down your entire environment. Learn from others mistakes on how to prevent Petya like worms.

Question has a verified solution.

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

Crystal Reports: 5 Tests for Top Performance It is complete, your masterpiece report.  Not only does it meet your customer’s expectations, it blows them out the water, all they want is beautifully summarised and displayed in a myriad of ways. …
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…
This is my first video review of Microsoft Bookings, I will be doing a part two with a bit more information, but wanted to get this out to you folks.
Sometimes it takes a new vantage point, apart from our everyday security practices, to truly see our Active Directory (AD) vulnerabilities. We get used to implementing the same techniques and checking the same areas for a breach. This pattern can re…

722 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