De functies Update en UpdateIf in Power Apps

Werken records in een gegevensbron bij.

Beschrijving

De functie Update

Gebruik de functie Update om een volledige record in een gegevensbron te vervangen. De functies UpdateIf en Patch wijzigen daarentegen een of meer waarden in een record, waarbij de andere waarden ongewijzigd blijven.

Voor een verzameling moet de hele record overeenkomen. Verzamelingen staan dubbele records toe, waardoor mogelijk meerdere records overeenkomen. U kunt het argument All gebruiken om alle exemplaren van een record bij te werken. Anders wordt slechts één exemplaar van de record bijgewerkt.

Als in de gegevensbron de waarde van een kolom automatisch wordt gegenereerd, moet de waarde van die kolom automatisch opnieuw worden bevestigd.

De functie UpdateIf

Gebruik de functie UpdateIf om een of meer waarden te wijzigen in een of meer records die voldoen aan een of meer voorwaarden. De voorwaarde kan elke formule zijn die resulteert in true of false en kan verwijzen naar kolommen in de gegevensbron, waarbij de naam van de kolom wordt gebruikt. De functie evalueert de voorwaarde voor elke record en wijzigt elk record die het resultaat true oplevert.

Als u een wijziging wilt opgeven, gebruikt u een wijzigingsrecord die nieuwe eigenschapswaarden bevat. Als u deze wijzigingsrecord inline opgeeft tussen accolades, kunnen eigenschapsformules verwijzen naar eigenschappen van de record die wordt gewijzigd. U kunt dit gedrag gebruiken om records te wijzigen op basis van een formule.

Net als UpdateIf kunt u ook de functie Patch gebruiken om specifieke kolommen in een record te wijzigen zonder dat dit van invloed is op andere kolommen.

Update en UpdateIf retourneren de gewijzigde gegevensbron als een tabel. U moet beide functies gebruiken in een gedragsformule.

Overdracht

Als deze functies worden gebruikt met een gegevensbron, kunnen ze niet worden overgedragen. Alleen het eerste deel van de gegevensbron wordt opgehaald en vervolgens wordt de functie toegepast. Het resultaat is mogelijk niet volledig. Tijdens het schrijven ziet u mogelijk een waarschuwing om u te herinneren aan deze beperking en om u erop te wijzen dat u waar mogelijk kunt overschakelen naar alternatieven met overdrachtmogelijkheden. Zie het overdrachtoverzicht voor meer informatie.

Syntaxis

Update( DataSource, OudeRecord, NieuweRecord [, All ] )

  • DataSource - Vereist. De gegevensbron met de records die u wilt vervangen.
  • OudeRecord - vereist. De record die moet worden vervangen.
  • NieuweRecord - vereist. De vervangende record. Dit is geen wijzigingsrecord. De hele record wordt vervangen en ontbrekende eigenschappen zijn leeg.
  • All - Optioneel. In een verzameling kan een record meerdere keren voorkomen. U kunt het argument All opgeven als u alle kopieën van de record wilt bijwerken.

UpdateIf( DataSource, Voorwaarde1, Wijzigingsrecord1 [, Voorwaarde2, Wijzigingsrecord2, ... ] )

  • DataSource - Vereist. De gegevensbron met de record of records die u wilt wijzigen.
  • Voorwaarde(n) - vereist. Een formule die evalueert als true voor de records die u wilt wijzigen. U kunt kolomnamen uit de DataSource gebruiken in de formule.
  • ChangeRecord(s) - Vereist. Voor elke overeenkomstige voorwaarde moet u een wijzigingsrecord toevoegen met nieuwe eigenschapswaarden, die u wilt laten toepassen op records in de DataSource die voldoen aan de voorwaarde. Als u de record inline opgeeft tussen accolades, kunnen eigenschapswaarden van de bestaande record in de eigenschapsformules worden gebruikt.

Voorbeelden

In deze voorbeelden vervangt of wijzigt u records in een gegevensbron genaamd IJs die begint met de gegevens in deze tabel:

IJsvoorbeeld.

Formule Beschrijving Resultaat
Update( IJs,
First( Filter( IJs, Smaak="Chocolade" ) ), { ID: 1, Smaak: "Pure chocolade", Aantal:150 } )
Vervangt een record uit de gegevensbron. Een record vervangen.

De gegevensbron IJs is gewijzigd.
UpdateIf( IJs, Aantal > 175 { Aantal: Aantal + 10 } ) Hiermee wijzigt u records waarvan Aantal groter is dan 175. Het veld Aantal wordt met 10 verhoogd en er worden geen andere velden gewijzigd. Records wijzigen.

De gegevensbron IJs is gewijzigd.
Update( IJs,
First( Filter( IJs, Smaak="Aardbeien" ) ),
{ ID: 3, Smaak: "Aardbeiensorbet"} )
Vervangt een record uit de gegevensbron. De eigenschap Aantal is niet opgegeven in de vervangende record, zodat deze eigenschap leeg is in het resultaat. Record vervangen wanneer hoeveelheid niet is opgegeven.

De gegevensbron IJs is gewijzigd.
UpdateIf( IJs, true, { Aantal: 0 } ) Hiermee stelt u de waarde van de eigenschap Aantal voor alle records in de gegevensbron in op 0. De hoeveelheid voor iedere optie instellen op 0.

De gegevensbron IJs is gewijzigd.

Stapsgewijs

  1. Importeer of maak een verzameling met de naam Inventaris en geef deze weer in een galerie, zoals wordt beschreven in Gegevens weergeven in een galerie.

  2. Noem de galerie Productgalerie.

  3. Voeg een schuifregelaar genaamd VerkochteEenheden toe en stel de eigenschap Max in op deze expressie:
    Productgalerie.Selected.EenhedenOpVoorraad

  4. Voeg een knop toe en stel de bijbehorende eigenschap OnSelect in op deze formule:
    UpdateIf(Voorraad, Productnaam = Productgalerie.Selected.Productnaam, {UnitsInStock:UnitsInStock-UnitsSold.Value})

  5. Druk op F5, selecteer een product in de galerie, geef een waarde op met behulp van de schuifregelaar en selecteer vervolgens de knop.

    Het aantal eenheden op voorraad voor het opgegeven product wordt verlaagd met het opgegeven aantal.