es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Formato condicional basado en múltiples rangos numéricos. Ej: >=50 y >=75

Tengo una columna en una lista de Sharepoint en la que necesito que el color cambie según el rango en el que se encuentre la cifra que introducimos:
rojo para <= 50, ámbar para >= 51 y verde para > 75.

Ya he logrado que funcione para dos rangos, pero todavía estoy tratando de descubrir el formato en el que debo escribir un rango de números entre > 51 y < 74, pero aún no he encontrado la forma de hacerlo.

Esto es lo que tengo hasta ahora:

{
  "$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
  "elmType": "div",
  "attributes": {
    "class": "=if(@currentField <= 50,'sp-field-severity--blocked', if(@currentField > 75,'sp-field-severity--good',''))"
  },
  "children": [
    {
      "elmType": "span",
      "style": {
        "display": "inline-block",
        "padding": "0 4px"
      },
      "attributes": {
        "iconName": "=if(@currentField <= 50,'SadSolid', if(@currentField > 75,'Emoji2', ''))"
      }
    },
    {
      "elmType": "span",
      "txtContent": "@currentField"
    }
  ]
}

¿Alguien puede ver qué me falta? No puedo estar muy lejos… Hoy logré incluir una segunda condición y funciona. Solo falta una más.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para agregar un rango de números entre >51 y <74, puedes usar el operador “&&” para agregar otra condición al atributo de clase. Aquí tienes un ejemplo de código que debería funcionar:

    {
      "$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
      "elmType": "div",
      "attributes": {
        "class": "=if(@currentField <= 50,'sp-field-severity--blocked',if(@currentField > 75,'sp-field-severity--good',if(@currentField >= 51 && @currentField <= 74, 'sp-field-severity--warning', '')))"
      },
      "children": [
        {
          "elmType": "span",
          "style": {
            "display": "inline-block",
            "padding": "0 4px"
          },
          "attributes": {
            "iconName": "=if(@currentField <= 50,'SadSolid',if(@currentField > 75,'Emoji2','WarningSolid'))"
          }
        },
        {
          "elmType": "span",
          "txtContent": "@currentField"
        }
      ]
    }
    

    Este código agrega otra condición dentro del atributo de clase para verificar si el valor del campo actual está entre 51 y 74 utilizando el operador “&&”. Si es así, la clase se establece en “sp-field-severity–warning”, que se puede estilizar como ámbar utilizando CSS.

    Espero que esto sea de ayuda. Hazme saber si tienes alguna pregunta adicional.

Comments are closed.