Skip to main content
Inspiring
Aug 9, 2020 6:41 PM UTC
Answered

if statement with two fields

I'm having trouble combining two fields into calculating:

var a = this.getField("field1").value;
var b = this.getField("field2").value;
if (a == "1" || a == "2" || a == "3" && b == "10"){
event.target.fillColor = ["RGB", 254/255, 244/255, 175/255];
}else event.target.fillColor = color.transparent;

I also tried like this: || a == "3")&&(b == "10")
it doesn't work

"a" can be 1,2 or 3 but "b" also must be 10.

This topic is closed to new replies. Start a new post to keep the conversation going.
try67
try67Correct answer
Community Expert
Aug 9, 2020 7:38 PM UTC

Replace the first three lines with this:

 

var a = this.getField("field1").valueAsString;
var b = this.getField("field2").valueAsString;
if ((a == "1" || a == "2" || a == "3") && b == "10"){

4 replies

try67
Community Expert
try67Community ExpertCorrect answer
Community Expert
Aug 9, 2020 7:38 PM UTC

Replace the first three lines with this:

 

var a = this.getField("field1").valueAsString;
var b = this.getField("field2").valueAsString;
if ((a == "1" || a == "2" || a == "3") && b == "10"){

Translate
Asim123Author
Inspiring
Aug 9, 2020 8:09 PM UTC

Thank you that is working as intended.

If I may ask another question because field1 and field2 is getting their values from bunch of other fields that code sometimes work sometimes don't. Can I do something to make it more stable like format field1 and 2 as number or something else?

EDIT: among other fields, field2 also calculate its value from field1.

Translate
try67
Community Expert
Community Expert
Aug 9, 2020 8:16 PM UTC

You need to set the Fields Calculation Order correctly for it to work properly.

Translate