Aggiornano record in un'origine dati.

Descrizione

Funzione Update

Usare la funzione Update per sostituire un record intero in un'origine dati. Le funzioni UpdateIf e Patch modificano uno o più valori in un record, lasciando gli altri valori invariati.

In una raccolta, l'intero record deve corrispondere. Le raccolte consentono record duplicati, quindi potrebbero corrispondere più record. È possibile usare l'argomento All per aggiornare tutte le copie di un record; in caso contrario, viene aggiornata solo una copia del record.

Se l'origine dati genera un valore di colonna automaticamente, il valore di tale colonna deve essere riconfermato.

Funzione UpdateIf

Usare la funzione UpdateIf per modificare uno o più valori in uno o più record che soddisfano una o più condizioni. La condizione può essere una qualsiasi formula che restituisce un valore true o false e può fare riferimento a colonne dell'origine dati in base al nome. La funzione valuta la condizione per ogni record e modifica ogni record il cui risultato è true.

Per specificare una modifica, usare un record di modifiche che contiene i nuovi valori della proprietà. Se si specifica tale record di modifiche inline con parentesi graffe, le formule delle proprietà possono fare riferimento a proprietà del record che si sta modificando. È possibile usare questo comportamento per modificare record basati su una formula.

Analogamente a UpdateIf, è anche possibile usare la funzione Patch per modificare colonne specifiche di un record senza influire sulle altre colonne.

Entrambe le funzioni Update e UpdateIf restituiscono l'origine dati modificata come tabella. È necessario usare una delle funzioni in una formula di comportamento.

Delega

Queste funzioni, quando vengono usate con un'origine dati, non possono essere delegate. Solo la prima parte dell'origine dati verrà recuperata e quindi verrà applicata la funzione. È possibile che il risultato non rappresenti il processo completo. Un punto blu verrà visualizzato in fase di creazione per ricordare questa limitazione e per suggerire il passaggio alle alternative delegabili, ove possibile. Per altre informazioni, vedere la panoramica della delega.

Sintassi

Update( OrigineDati, RecordPrecedente, RecordNuovo [, All ] )

  • OrigineDati: obbligatorio. L'origine dati che contiene il record che si vuole sostituire.

  • RecordPrecedente: obbligatorio. Il record da sostituire.

  • RecordNuovo: obbligatorio. Il record di sostituzione. Questo non è un record di modifiche. L'intero record viene sostituito e le proprietà mancanti includeranno blank.

  • All: facoltativo. In una raccolta, lo stesso record può essere presente più volte. Specificare l'argomento All per rimuovere tutte le copie del record.

UpdateIf( OrigineDati, Condizione1, RecordModifiche1 [, Condizione2, RecordModifiche2, ... ] )

  • OrigineDati: obbligatorio. L'origine dati che contiene il record o i record che si vuole modificare.

  • Condizioni: obbligatorio. Una formula che restituisce true per il record o i record da modificare. Nella formula è possibile usare nomi di colonna dell'OrigineDati.

  • RecordModifiche: obbligatorio. Per ogni condizione corrispondente, un record di modifiche dei valori nuovi della proprietà da applicare ai record dell'OrigineDati che soddisfano la condizione. Se si specifica il record inline usando le parentesi graffe, è possibile usare i valori della proprietà del record esistente nelle formule della proprietà.

Esempi

In questi esempi, verranno sostituiti o modificati record in un'origine dati denominata IceCream che include inizialmente i dati della tabella seguente:

Formula Descrizione Risultato
Update( IceCream,
First( Filter( IceCream, Flavor="Chocolate" ) ), { ID: 1, Flavor: "Mint Chocolate", Quantity:150 } )
Sostituisce un record dell'origine dati.

L'origine dati IceCream è stata modificata.
UpdateIf( IceCream, Quantity > 175, { Quantity: Quantity + 10 } ) Modifica record che hanno un valore Quantity maggiore di 150. Il campo Quantity viene incrementato di 10 gli altri campi rimangono invariati.

L'origine dati IceCream è stata modificata.
Update( IceCream,
First( Filter( IceCream, Flavor="Strawberry" ) ),
{ ID: 3, Flavor: "Strawberry Swirl"} )
Sostituisce un record dell'origine dati. La proprietà Quantity non è stata specificata nel record di sostituzione, quindi il risultato della proprietà sarà blank.

L'origine dati IceCream è stata modificata.
UpdateIf( IceCream, true, { Quantity: 0 } ) Imposta il valore della proprietà Quantity di tutti i record dell'origine dati su 0.

L'origine dati IceCream è stata modificata.

Procedura dettagliata

  1. Importare o creare una raccolta denominata Inventory e visualizzarla in una raccolta come illustrato in Show data in a gallery (Visualizzare dati in una raccolta).

  2. Nome della raccolta ProductGallery.

  3. Aggiungere un dispositivo di scorrimento denominato UnitsSolde impostare la relativa proprietà Max con questa espressione:
    ProductGallery.Selected.UnitsInStock

  4. Aggiungere un pulsante e impostarne la proprietà OnSelect su questa formula:
    UpdateIf(Inventory, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})

  5. Premere F5, selezionare un prodotto nella raccolta, specificare un valore con il dispositivo di scorrimento e quindi selezionare il pulsante.

    Al numero di unità di scorta del prodotto specificato viene sottratta la quantità specificata.