0

I would like to nest if conditions into SharePoint via JSON column format.

I have two fields, Date and Status. The status field contains 3 strings ("Done", "Pending", "New")

Example:

if ([$Date] < @NOW) {
    if([$Status] == "Done") {
        font color GREEN
    } else {
        font color RED
    }
} elseif ([$Date] == @NOW) {
    if([$Status] == "Job done") {
        font color GREEN
    } else {
        font color RED
    }
} else {
    font color black;
}

And my Json code so far... (Only the first condition)

{
  "$schema": "https://developer.microsoft.com/json-schemas/sp/column-formatting.schema.json",
  "elmType": "div",
  "txtContent": "@currentField",
  "style": {
    "color": "=if([$DeadLine] <= @now + 86400000, '#FAFAFA', '#22ff00')"
  }
}
0

Please note I haven't tested this code, but the concept is how to solve this. You will have to nest the IF statements.

{
  "$schema": "https://developer.microsoft.com/json-schemas/sp/column-formatting.schema.json",
  "elmType": "div",
  "txtContent": "@currentField",
  "style": {
    "color": "=if([$DeadLine] < @now, " +
        "if([$Status] <= 'Done', '#00FF00', '#FF0000')," + /* TRUE CONDITION, DeadLine < Now */
        "if([$DeadLine] == @now, " + /* False Condition Deadline is NOT less than Now: Second if statement */
            "if([$Status] == 'Job done', '#00FF00' , '#FF0000' )," + /* Values for Status = Job done */
        "'#000000'))" /* when all else fails, black */
  }
}

Same code as a single line without comments

{
  "$schema": "https://developer.microsoft.com/json-schemas/sp/column-formatting.schema.json",
  "elmType": "div",
  "txtContent": "@currentField",
  "style": {
    "color": "=if([$DeadLine] < @now, if([$Status] <= 'Done', '#00FF00', '#FF0000'), if([$DeadLine] == @now, if([$Status] == 'Job done', '#00FF00' , '#FF0000' ),'#000000'))"
  }
}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.