Wijzigt of maakt een of meer records in een gegevensbron of voegt records buiten een gegevensbron samen.

Gebruik de functie Patch om records te wijzigen in complexe situaties, zoals bij het uitvoeren van updates waarvoor geen gebruikersinteractie is vereist of bij het gebruik van formulieren die meerdere schermen beslaan.

In minder complexe situaties kunt u het besturingselement Formulier bewerken gebruiken om records in een gegevensbron gemakkelijker bij te kunnen werken. Wanneer u een besturingselement Formulier bewerken toevoegt, biedt u gebruikers de mogelijkheid een formulier in te vullen en worden de wijzigingen vervolgens in een gegevensbron opgeslagen. Zie Gegevensformulieren begrijpen voor meer informatie.

Overzicht

Gebruik de functie Patch om een of meer records in een gegevensbron te wijzigen. De waarden van specifieke velden worden gewijzigd zonder dat dit van invloed is op andere eigenschappen. Met deze formule wijzigt u bijvoorbeeld het telefoonnummer van een klant met de naam Contoso:

Patch( Klanten, First( Filter( Klanten, Naam = "Contoso" ) ), {Telefoon: "1-212-555-1234" } )

Gebruik Patch met de functie Defaults om records te maken. Gebruik dit gedrag om één scherm te maken voor zowel het maken als het bewerken van records. Met deze formule maakt u bijvoorbeeld een record voor een klant met de naam Contoso:

Patch( Klanten, Defaults( Klant ), { Naam: “Contoso” } )

Zelfs als u niet met een gegevensbron werkt, kunt u Patch gebruiken om twee of meer records samen te voegen. Met deze formule worden bijvoorbeeld twee records samengevoegd tot één record met zowel het telefoonnummer als de locatie van Contoso:

Patch( { Naam: "Contoso", Telefoon: “1-212-555-1234” }, { Naam: "Contoso", Locatie: “Amsterdam” } )

Beschrijving

Een record in een gegevensbron wijzigen of maken

Als u deze functie wilt gebruiken met een gegevensbron, geeft u de gegevensbron op en geeft u vervolgens een basisrecord op:

  • Als u een record wilt wijzigen, moet het basisrecord afkomstig zijn van een gegevensbron. De basisrecord kan afkomstig zijn van de eigenschap Items van een galerie, in een contextvariabele zijn geplaatst of via een ander pad worden aangeleverd. U moet de basisrecord echter kunnen terugleiden naar de gegevensbron. Dit is belangrijk aangezien de record aanvullende informatie bevat die het mogelijk maakt de record terug te vinden wanneer deze moet worden gewijzigd.

  • Als u een record wilt maken, gebruikt u de functie Default om een basisrecord met standaardwaarden te maken.

Vervolgens geeft u een of meer wijzigingsrecords op die elk nieuwe eigenschapswaarden bevatten die eigenschapswaarden in het basisrecord overschrijven. Wijzigingsrecords worden verwerkt in de volgorde waarin ze in de lijst met argumenten staan (van het begin naar het eind), waarbij latere eigenschapswaarden eerdere overschrijven.

De geretourneerde waarde van Patch is de record die u hebt gewijzigd of gemaakt. Als u een record hebt gemaakt, kan de retourwaarde eigenschappen bevatten die de gegevensbron automatisch heeft gegenereerd.

Wanneer u een gegevensbron bijwerkt, kunnen zich een of meer problemen voordoen. Gebruik de functie Errors om problemen op te sporen en te onderzoeken, zoals wordt beschreven in Werken met gegevensbronnen.

Gerelateerde functies zijn de functie Update , die u kunt gebruiken om een hele record te vervangen, en de functie Collect, die u kunt gebruiken om een record te maken. U kunt de functie UpdateIf gebruiken om specifieke eigenschappen van meerdere records te wijzigen op basis van een voorwaarde.

Een set records in een gegevensbron wijzigen of maken

Patch kan ook worden gebruikt om meerdere records met één aanroep te maken of te wijzigen.

In plaats van één basisrecord door te geven, kunt u een tabel met basisrecords opgeven in het tweede argument. Wijzigingsrecords worden ook aangeleverd in een tabel, waarbij ze één op één moeten overeenkomen met de basisrecords. Het aantal records in elke wijzigingstabel moet gelijk zijn aan het aantal records in de basistabel.

Wanneer u Patch op deze manier gebruikt, is de geretourneerde waarde ook een tabel waarin elke record één op één overeenkomt met de basis- en wijzigingsrecords.

Records samenvoegen buiten een gegevensbron

Geef twee of meer records op die u wilt samenvoegen. Records worden verwerkt in de volgorde waarin ze in de lijst met argumenten staan (van het begin naar het eind), waarbij latere eigenschapswaarden eerdere overschrijven.

Patch retourneert de samengevoegde record en wijzigt argumenten of records in gegevensbronnen niet.

Syntaxis

Een record in een gegevensbron wijzigen of maken

Patch( DataSource, BaseRecord, ChangeRecord1 [, ChangeRecord2, … ])

  • DataSource - vereist. De gegevensbron die de record bevat die u wilt wijzigen of de record zal bevatten die u gaat maken.

  • BaseRecord - vereist. De record die moet worden gemaakt of gewijzigd. Als de record afkomstig van een gegevensbron, wordt de record gezocht en gewijzigd. Als het resultaat van Defaults wordt gebruikt, wordt een record gemaakt.

  • ChangeRecord(s) - vereist. Een of meer records die eigenschappen bevatten die moeten worden gewijzigd in de BaseRecord. Wijzigingsrecords worden verwerkt in de volgorde waarin ze in de lijst met argumenten staan (van het begin naar het eind), waarbij latere eigenschapswaarden eerdere overschrijven.

Een set records in een gegevensbron wijzigen of maken

Patch( DataSource, BaseRecordsTable, ChageRecordTable1, [, ChangeRecordTable2, … ] )

  • DataSource - vereist. De gegevensbron die de records bevat die u wilt wijzigen of de records zal bevatten die u gaat maken.

  • BaseRecordTable - vereist. Een tabel met records die u wilt maken of wijzigen. Als de record afkomstig van een gegevensbron, wordt de record gezocht en gewijzigd. Als het resultaat van Defaults wordt gebruikt, wordt een record gemaakt.

  • ChangeRecordTable(s) - vereist. Een of meer tabellen met records die eigenschappen bevatten die u wilt wijzigen voor elke record in de BaseRecordTable. Wijzigingsrecords worden verwerkt in de volgorde waarin ze in de lijst met argumenten staan (van het begin naar het eind), waarbij latere eigenschapswaarden eerdere overschrijven.

Records samenvoegen

Patch( Record1, Record2 [, …] )

  • Record(s) - vereist. Ten minste twee records die u wilt samenvoegen. Records worden verwerkt in de volgorde waarin ze in de lijst met argumenten staan (van het begin naar het eind), waarbij latere eigenschapswaarden eerdere overschrijven.

Voorbeelden

Een record wijzigen of maken (in een gegevensbron)

In deze voorbeelden wijzigt of maakt u een record in een gegevensbron genaamd IJs die de gegevens in deze tabel bevat en automatisch de waarden in de kolom ID genereert:

Formule Beschrijving Resultaat
Patch( IJs,
First( Filter( IJs, Smaak="Chocolade") ), { Aantal: 400 } )
Wijzigt een record in de gegevensbron IJs:
  • De kolom ID van de record die moet worden gewijzigd bevat de waarde 1. (De record Chocolade heeft die id.)
  • De waarde in de kolom Aantal wordt gewijzigd in 400.
{ ID: 1, Smaak: "Chocolade", Aantal: 400 }

De vermelding Chocolade in de gegevensbron IJs is gewijzigd.
Patch( IJs, Defaults( IJs), { Smaak: “Aardbeien” } ) Maakt een record in de gegevensbron IJs:
  • De kolom ID bevat de waarde 3, die de gegevensbron automatisch genereert.
  • De kolom Aantal bevat 0, de standaardwaarde voor die kolom in de gegevensbron IJs, zoals wordt bepaald door de functie Defaults.
  • De kolom Smaak bevat de waarde Aardbeien.
{ ID: 3, Smaak: “Aardbeien”, Aantal: 0 }

De vermelding Aardbeien in de gegevensbron IJs is gemaakt.

Nadat de vorige formules zijn geëvalueerd, eindigt de gegevensbron op deze waarden:

Records samenvoegen (buiten een gegevensbron)

Formule Beschrijving Resultaat
Patch( { Naam: "James", Score: 90 }, { Naam: "Jim", Geslaagd: true } ) Voegt twee records buiten een gegevensbron samen:
  • De waarden in de kolom Naam van elke record komen niet overeen. Het resultaat bevat de waarde (Jim) in de record die dichter bij het einde van de lijst met argumenten staat in plaats van de waarde (James) in de record die dichter bij het begin staat.
  • De eerste record bevat een kolom (Score) die niet bestaat in de tweede record. Het resultaat bevat die kolom met de waarde (90).
  • De tweede record bevat een kolom (Geslaagd) die niet bestaat in de eerste record. Het resultaat bevat die kolom met de waarde (true).
{ Naam: "Jim", Score: 90, Geslaagd: true }