Solved

Nest IF statement for Style Formula Syntax Issue

  • 10 January 2024
  • 6 replies
  • 120 views

Userlevel 5
Badge

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

icon

Best answer by Robert Sternberg 16 January 2024, 01:26

View original

6 replies

Userlevel 7
Badge +8

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. 

Userlevel 5
Badge

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

Userlevel 7
Badge +8

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

 

Userlevel 5
Badge

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

Userlevel 7
Badge +8

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

 

Userlevel 5
Badge

@Robert Sternberg 

Thank you.  It worked.

@EvanG 

Reply


About Acumatica ERP system
Acumatica Cloud ERP provides the best business management solution for transforming your company to thrive in the new digital economy. Built on a future-proof platform with open architecture for rapid integrations, scalability, and ease of use, Acumatica delivers unparalleled value to small and midmarket organizations. Connected Business. Delivered.
© 2008 — 2024  Acumatica, Inc. All rights reserved