Actualiza los registros de un origen de datos.

Descripción

Función Update

Use la función Update para reemplazar todo un registro en un origen de datos. En cambio, las funciones UpdateIf y Patch modifican uno o varios valores de un registro, y dejan los demás valores como están.

En el caso de una colección, tiene que coincidir todo el registro. Las colecciones permiten registros duplicados, por lo que podrían coincidir varios registros. Puede usar el argumento All para actualizar todas las copias de un registro; en caso contrario, se actualiza solo una copia del registro.

Si el origen de datos genera automáticamente un valor de columna, el valor de esa columna debe confirmarse.

Función UpdateIf

Use la función UpdateIf para modificar uno o varios valores de uno o más registros que coincidan con una o varias condiciones. Cada condición puede ser cualquier fórmula cuyo resultado sea true o false, y puede hacer referencia a columnas del origen de datos por su nombre. La función evalúa la condición para cada registro y modifica los registros cuyo resultado sea true.

Para especificar una modificación, use un registro de cambio que contenga los nuevos valores de la propiedad. Si proporciona este registro de cambio en línea entre llaves, las fórmulas de propiedad pueden hacer referencia a las propiedades del registro que se van a modificar. Puede usar este comportamiento para modificar registros en función de una fórmula.

De forma similar a UpdateIf, también puede usar la función Patch para cambiar columnas específicas de un registro sin que afecte a otras columnas.

Tanto Update como UpdateIf devuelven el origen de datos modificado como una tabla. Debe usar estas funciones en una fórmula de comportamiento.

Delegación

Cuando se usa con un origen de datos, estas funciones no se pueden delegar. Solo se recuperará la primera parte del origen de datos y, después, se aplicará la función. Es posible que el resultado no represente la situación completa. Aparecerá un punto azul durante la creación para recordarle esta limitación y sugerirle que cambie a alternativas que puedan delegarse siempre que sea posible. Para más información, consulte la introducción a la delegación.

Sintaxis

Update( DataSource, OldRecord, NewRecord [, All ] )

  • DataSource: requerido. Origen de datos que contiene el registro que desea reemplazar.

  • OldRecord: requerido. Registro que se va a reemplazar.

  • NewRecord: requerido. Registro de reemplazo. No es un registro de cambio. Se reemplaza todo el registro y propiedades que faltan contendrán blank.

  • Todo: opcional. En una colección, el mismo registro puede aparecer más de una vez. Especifique el argumento All para quitar todas las copias del registro.

UpdateIf( DataSource, Condition1, ChangeRecord1 [, Condition2, ChangeRecord2, ... ] )

  • DataSource: requerido. Origen de datos que contiene el registro o los registros que desea modificar.

  • Condition(s): requerido. Fórmula que se evalúa como true para el registro o los registros que desea modificar. Puede usar nombres de columna de DataSource en la fórmula.

  • ChangeRecord(s): requerido. Para cada condición, un registro de cambio con los nuevos valores de propiedad que se aplicarán a los registros de DataSource que cumplan la condición. Si proporciona el registro en línea entre llaves, los valores de propiedad del registro existente pueden utilizarse en las fórmulas de propiedad.

Ejemplos

En estos ejemplos, va a reemplazar o modificar registros de un origen de datos llamado IceCream, que comienza con los datos de esta tabla:

Fórmula Descripción Resultado
Update( IceCream,
First( Filter( IceCream, Flavor="Chocolate" ) ), { ID: 1, Flavor: "Mint Chocolate", Quantity:150 } )
Reemplaza un registro del origen de datos.

El origen de datos IceCream se ha modificado.
UpdateIf( IceCream, Quantity > 175, { Quantity: Quantity + 10 } ) Modifica los registros con un valor de Quantity superior a 150. El campo Quantity se incrementa en 10, y no se modifica ningún otro campo.

El origen de datos IceCream se ha modificado.
Update( IceCream,
First( Filter( IceCream, Flavor="Strawberry" ) ),
{ ID: 3, Flavor: "Strawberry Swirl"} )
Reemplaza un registro del origen de datos. El registro de reemplazo no contiene la propiedad Quantity, por lo que el valor de esta propiedad será blank en el resultado.

El origen de datos IceCream se ha modificado.
UpdateIf( IceCream, true, { Quantity: 0 } ) Establece en 0 el valor de la propiedad Quantity de todos los registros del origen de datos.

El origen de datos IceCream se ha modificado.

Paso a paso

  1. Importe o cree una colección denominada Inventory y muéstrela en una galería, como se describe en el artículo sobre la visualización de datos en una galería.

  2. Asigne el nombre ProductGallery a la galería.

  3. Agregue un control deslizante llamado UnitsSold y establezca su propiedad Max en esta expresión:
    ProductGallery.Selected.UnitsInStock

  4. Agregue un botón y establezca su propiedad OnSelect en esta fórmula:
    UpdateIf(Inventory, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})

  5. Presione F5, seleccione un producto de la galería, especifique un valor con el control deslizante y, a continuación, seleccione el botón.

    El número de unidades en existencias del producto se reduce en la cantidad especificada.