Werken records in een gegevensbron bij.

Beschrijving

De functie Update

Gebruik de functie Update om een hele 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.

Delegering

Deze functies kunnen niet worden gedelegeerd bij gebruik met een gegevensbron. Alleen het eerste gedeelte van de gegevensbron wordt opgehaald, waarna de functie op dat gedeelte wordt toegepast. Het resultaat geeft daardoor mogelijk geen volledig beeld. U ziet tijdens het maken van de app een blauwe stip om u te herinneren aan deze beperking, zodat u waar mogelijk nog kunt overschakelen naar delegeerbare alternatieven. Zie Overzicht van delegeren voor meer informatie.

Syntaxis

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

  • DataSource - vereist. De gegevensbron met de records die u wilt vervangen.

  • OldRecord - vereist. De record die moet worden vervangen.

  • NewRecord - vereist. De vervangende record. Dit is geen wijzigingsrecord. De hele record wordt vervangen en ontbrekende eigenschappen bevatten leeg.

  • All - optioneel. In een verzameling kan een record meerdere keren voorkomen. U kunt het argument All toevoegen als u alle exemplaren van de record wilt vervangen.

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

  • DataSource - vereist. De gegevensbron met de record of records die u wilt wijzigen.

  • Condition(s) - vereist. Een formule die evalueert als true voor de records die u wilt wijzigen. U kunt kolomnamen uit de Gegevensbron gebruiken in de formule.

  • ChangeRecord(s) - vereist. Voor elke overeenkomstige voorwaarde moet een wijzigingsrecord worden toegevoegd met nieuwe eigenschapswaarden die moeten worden toegepast 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:

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

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.

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.

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 gegevensbron IJs is gewijzigd.

Stap voor stap

  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 eigenschap OnSelect ervan in op deze formule:
    UpdateIf(Inventaris, Productnaam = Productgalerie.Selected.Productnaam, {EenhedenOpVoorraad:EenhedenOpVoorraad.VerkochteEenheden.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.