Jump to content

This topic is 7539 days old. Please don't post here. Open a new topic instead.

Recommended Posts

  • Newbies
Posted

I am using the following equation to change background colors:

Case (Inc Hrs < 150;GetRepetition ( gColors; 1);

Inc Hrs >151;GetRepetition ( gColors; 2);

Inc Hrs >301;GetRepetition ( gColors; 3))

1=green,2=yellow,3=red

I've run various figures in the fields to change the value that is used to calculate which repetition to get, seems to work find until it hits a value of 1000 and above, color changes to yellow. Any suggestions.

Posted

Case() stops at the first true value, you need to reorganize your tests like this:

Case (Inc Hrs < 150;GetRepetition ( gColors; 1);

Inc Hrs >301;GetRepetition ( gColors; 3);

Inc Hrs >151;GetRepetition ( gColors; 2))

because if its greater than 301, it will definitely be greater than 151 also.

Another possibility to consider, if you like "small" like I do, and hate typing half as much as me:

GetRepetition( gColors; Case( Inc Hrs < 150; 1; Inc Hrs > 301; 3; Inc Hrs > 151; 2 ))

Posted

What if Inc Hrs is 302? The 2nd repetition of gColors is retrieved and the Case terminates because Inc Hrs > 151. You'll never reach the third test in the Case. Try working backwards. Case( Length(Inc Hrs); Case( Inc Hrs > 301; GetRepetition( gColors; 3 ); Inc Hrs > 151; GetRepetition( gColors; 2 ); gColors ) ).

The Length simply ensures that Inc Hrs isn't empty before a value is returned. The final option is gColors because GetRepetition( gColors; 1 ) is redundant. The first repetition of a field is always returned, unless you specify an alternate one or a different repetition is being set.

Posted

I just noticed that from 150 - 151 you've not requested a result, because 150 is neither less than 150 or greater than 151. Is this really what you want?

Posted

If you want to get tricky and remove the Case altogether,

GetRepetition( gColors; (Inc Hrs < 150) + 2 * (Inc Hrs > 151) + (Inc Hrs > 301) )

  • Newbies
Posted

Your solution worked great, in fact both worked and you are right I do like to keep the expression short. It never crossed my mind to swap positions of the last two repetitions. Thanks for the help.

  • Newbies
Posted

I started out using the less than/equal sign but kept getting an error message, elected the other route. The 1 represents one page for an hour estimation not really critical but I'll see with this new method if I can get it fixed and working correctly.

Posted

Note that you will need to specify the table name for each field. Maybe this is why you were getting an error?

This topic is 7539 days old. Please don't post here. Open a new topic instead.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.