SharePoint Online: muestre u oculte un campo de formulario basado en otro campo usando una fórmula condicional
Requisito: Mostrar u ocultar un campo según el valor de otro campo en el formulario de lista de SharePoint Online.
¿Cómo mostrar u ocultar un campo basado en otro campo en SharePoint Online?
En el pasado, solíamos lograr esto usando jQuery Mostrar u ocultar campos de formulario de lista de SharePoint según el valor de otro campo usando jQuery. Ahora, en SharePoint Online, tenemos fórmulas condicionales listas para usar para lograr esa funcionalidad. Esto es lo que queríamos: Mostrar el campo "Clasificación del proyecto" sólo cuando el valor del campo "Estado del proyecto" esté establecido en "Sí". De lo contrario, ocultelo en la lista Formulario. En SharePoint Online, puede usar una fórmula condicional para especificar qué debe suceder según ciertas condiciones en una columna. A continuación se explica cómo configurar la fórmula condicional para mostrar/ocultar columnas basadas en otras columnas:
- Vaya a su lista de SharePoint Online >> Abra el formulario Nuevo elemento haciendo clic en el botón "Nuevo" en su lista.
En la página Nuevo elemento, haga clic en el botón "Editar formulario" y luego en "Editar columnas" como en la siguiente pantalla.
Ahora, en el formulario "Editar columnas", haga clic en los tres puntos (:) y elija "Editar fórmula condicional" en el menú. En mi caso, es el campo "Clasificación de proyecto" el que quiero mostrar u ocultar.
En la fórmula condicional, ingrese la fórmula para mostrar y ocultar el campo. En mi caso, ingresé "=if([$IsActive] == true, 'true', 'false')" y presioné guardar para confirmar los cambios. Asegúrese de utilizar nombres internos de las columnas, en lugar del nombre para mostrar.
Ahora, el campo "Clasificación del proyecto" será visible solo cuando el valor del campo "IsActive" esté establecido en Verdadero.
La fórmula condicional debe comenzar con el símbolo "=" seguido de una condición "SI". Si se cumple la condición, devuelve verdadero y eso muestra el campo. De lo contrario, devuelve falso y oculta el campo.
Tenga en cuenta que no todas las columnas son compatibles con las fórmulas condicionales a partir de hoy. Por ejemplo, la columna Metadatos administrados, Persona o grupo/elección con selecciones múltiples habilitadas, columnas de Moneda, Ubicación, columnas Calculadas, etc., se encuentran en la lista "No admitido". Además, en las columnas marcadas como "Obligatorias", no podemos aplicar fórmulas condicionales para mostrar u ocultar (eso es obvio, ¿no?). Aquí hay unos ejemplos:
- Column Type
Ejemplo de fórmula
- Yes/No (check box) – Boolean
=if([$ProjectStatus]=='completado','verdadero', 'falso')
- Number
=si([$Presupuesto]>5000,'verdadero','falso')
- Choice
-
=si([$Departamento]==’IT’,’verdadero’, ‘falso’)
- Date
=if([$FechaInicio]==Fecha(’01/01/20221′),’verdadero’,’falso’)
- Person
=if([$Aprobador].email==’aprobador@tudominio.com’,’verdadero’,’falso’)
- Column with calculation
=si([$Columna1]+[$Columna2]<5000,'verdadero','falso')
PnP PowerShell para establecer fórmula condicional
A continuación se explica cómo configurar la fórmula condicional usando PnP PowerShell:
#Parameters
$SiteURL = "https://crescent.sharepoint.com/sites/PMO"
$ListName="Projects"
$FieldInternalName = "Project_x0020_Classification"
$Formula = "=if([{0}] == true, 'true', 'false')" -f '$IsActive'
#Connect to the site
Connect-PnPOnline -Url $SiteURL -Interactive
#Get the Field
$Field = Get-PnPField -List $ListName -Identity $FieldInternalName
#Apply conditional formula
$Field.ClientValidationFormula = $Formula
$Field.Update()
Invoke-PnPQuery
Más información sobre fórmulas condicionales en formularios de lista de SharePoint Online: https://docs.microsoft.com/en-us/sharepoint/dev/declarative-customization/list-form-conditional-show-hide



