Skip to main content
Answer

Nest IF statement for Style Formula Syntax Issue

  • January 10, 2024
  • 6 replies
  • 262 views

Forum|alt.badge.img

Good day,

I am trying to do nest IF Statement for the style based on the results.  I have a syntax issue which I can seem to resolve.  

Any assistance would be greatly appreciated.  I have work on a couple of hours now. 

Thank you.


=IIf(DateDiff('d',[SOOrder.RequestDate],[SOOrderShipment.ShipDate])=0,'Green60'), IIf(DateDiff('d',[SOOrder.RequestDate],[SOOrderShipment.ShipDate])=1,'yellow60'),IIf(DateDiff('d',[SOOrder.RequestDate],[SOOrderShipment.ShipDate])='-1','yellow60'),IIf(DateDiff('d',[SOOrder.RequestDate],[SOOrderShipment.ShipDate])=>2,'red60'),IIf(DateDiff('d',[SOOrder.RequestDate],[SOOrderShipment.ShipDate])=>-2,'red60')

Best answer by Robert Sternberg

I took a look, style names are case sensitive so this should work.  In the previous version we used capitalized color names.  For example in the last formula we used ‘Green60’, in this version we use ‘green60’

=Switch(
DateDiff('d', [SOOrder.RequestDate], [SOOrderShipment.ShipDate]) = 0, 'green60',
DateDiff('d', [SOOrder.RequestDate], [SOOrderShipment.ShipDate]) = 1, 'yellow60',
DateDiff('d', [SOOrder.RequestDate], [SOOrderShipment.ShipDate]) = -1, 'yellow60',
DateDiff('d', [SOOrder.RequestDate], [SOOrderShipment.ShipDate]) >= 2, 'red60',
DateDiff('d', [SOOrder.RequestDate], [SOOrderShipment.ShipDate]) <= -2, 'red60',
1=1, 'default'
)

 

6 replies

Robert Sternberg
Captain II
Forum|alt.badge.img+7

You are comparing an integer value to a string. 

=IIf(DateDiff('d',[SOOrder.RequestDate],[SOOrderShipment.ShipDate])=0,'Green60'), IIf(DateDiff('d',[SOOrder.RequestDate],[SOOrderShipment.ShipDate])=1,'yellow60'),IIf(DateDiff('d',[SOOrder.RequestDate],[SOOrderShipment.ShipDate])='-1','yellow60'),IIf(DateDiff('d',[SOOrder.RequestDate],[SOOrderShipment.ShipDate])=>2,'red60'),IIf(DateDiff('d',[SOOrder.RequestDate],[SOOrderShipment.ShipDate])=>-2,'red60')

 

Removing the single quotes around -1 should solve the issue. 


Forum|alt.badge.img
  • Author
  • Varsity I
  • January 11, 2024

Hi Robert,

I removed the quotes (see below).  It still has a syntax error.

What else?  Do I need add ‘Default’ to each IIF statements.

@Robert Sternberg Thank you.

Evan

 

=IIf(DateDiff('d',[SOOrder.RequestDate],[SOOrderShipment.ShipDate])=0,'Green60'), IIf(DateDiff('d',[SOOrder.RequestDate],[SOOrderShipment.ShipDate])=1,'yellow60'),IIf(DateDiff('d',[SOOrder.RequestDate],[SOOrderShipment.ShipDate])=-1,'yellow60'),IIf(DateDiff('d',[SOOrder.RequestDate],[SOOrderShipment.ShipDate])=>2,'red60'),IIf(DateDiff('d',[SOOrder.RequestDate],[SOOrderShipment.ShipDate])=>-2,'red60')


Robert Sternberg
Captain II
Forum|alt.badge.img+7

Try this, it might make things more clear if you ever need to come back and make adjustments. 

 

=Switch(
DateDiff('d', [SOOrder.RequestDate], [SOOrderShipment.ShipDate]) = 0, 'Green60',
DateDiff('d', [SOOrder.RequestDate], [SOOrderShipment.ShipDate]) = 1, 'Yellow60',
DateDiff('d', [SOOrder.RequestDate], [SOOrderShipment.ShipDate]) = -1, 'Yellow60',
DateDiff('d', [SOOrder.RequestDate], [SOOrderShipment.ShipDate]) >= 2, 'Red60',
DateDiff('d', [SOOrder.RequestDate], [SOOrderShipment.ShipDate]) <= -2, 'Red60',
1=1, 'Default'
)

 


Forum|alt.badge.img
  • Author
  • Varsity I
  • January 15, 2024

HI @Robert Sternberg 

I appreciate your assistance.  Your suggestion passed validation however, it did not change the color.

I have attached the GI.  Any other suggestions. It is something with my formula?  I used the CInt function.

Here is how it looks now?

 

Thank you very much for your help.

Evan


Robert Sternberg
Captain II
Forum|alt.badge.img+7

I took a look, style names are case sensitive so this should work.  In the previous version we used capitalized color names.  For example in the last formula we used ‘Green60’, in this version we use ‘green60’

=Switch(
DateDiff('d', [SOOrder.RequestDate], [SOOrderShipment.ShipDate]) = 0, 'green60',
DateDiff('d', [SOOrder.RequestDate], [SOOrderShipment.ShipDate]) = 1, 'yellow60',
DateDiff('d', [SOOrder.RequestDate], [SOOrderShipment.ShipDate]) = -1, 'yellow60',
DateDiff('d', [SOOrder.RequestDate], [SOOrderShipment.ShipDate]) >= 2, 'red60',
DateDiff('d', [SOOrder.RequestDate], [SOOrderShipment.ShipDate]) <= -2, 'red60',
1=1, 'default'
)

 


Forum|alt.badge.img
  • Author
  • Varsity I
  • January 16, 2024

@Robert Sternberg 

Thank you.  It worked.

@EvanG