Aktualisieren Datensätze in einer Datenquelle

Beschreibung

„Update“-Funktion

Verwenden Sie die Update-Funktion, um einen gesamten Datensatz in einer Datenquelle zu ersetzen. Im Gegensatz dazu ändern die Funktionen UpdateIf und Patch einen oder mehrere Werte in einem Datensatz, ohne dabei die anderen Werte zu ändern.

Bei einer Sammlung muss der gesamte Datensatz übereinstimmen. Sammlungen lassen doppelte Datensätze zu, sodass mehrere Datensätze übereinstimmen könnten. Sie können das All-Argument verwenden, um alle Kopien eines Datensatzes zu aktualisieren; andernfalls wird nur eine Kopie des Datensatzes aktualisiert.

Wenn die Datenquelle den Wert einer Spalte automatisch generiert, muss der Wert dieser Spalte erneut bestätigt werden.

„UpdateIf“-Funktion

Verwenden Sie die UpdateIf-Funktion, um einen oder mehrere Werte in einem oder mehreren Datensätzen zu ändern, die mit mindestens einer Bedingungen übereinstimmen. Bei der Bedingung kann es sich um jede Formel handeln, die zu TRUE oder FALSE führt und über den Namen auf Spalten der Datenquelle verweisen kann. Die Funktion wertet die Bedingung für jeden Datensatz aus und bearbeitet jeden Datensatz, für den das Ergebnis TRUE ist.

Um eine Änderung anzugeben, verwenden Sie einen Änderungsdatensatz, der neue Eigenschaftenwerte enthält. Wenn Sie diesen Änderungsdatensatz in geschweifte Klammern eingebunden bereitstellen, können Eigenschaftenformeln auf Eigenschaften des Datensatzes verweisen, der bearbeitet wird. Sie können dieses Verhalten verwenden, um Datensätze anhand einer Formel zu ändern.

Ähnlich wie die UpdateIf-Funktion können Sie auch die Patch-Funktion verwenden, um bestimmte Spalten eines Datensatzes zu ändern, ohne dass sich dies auf andere Spalten auswirkt.

Sowohl Update als auch UpdateIf geben die geänderte Datenquelle als Tabelle zurück. Sie müssen beide Funktionen in einer Verhaltensformel verwenden.

Delegierung

Bei Verwendung mit einer Datenquelle können diese Funktionen nicht delegiert werden. Nur der erste Teil der Datenquelle wird abgerufen, und anschließend wird die Funktion angewendet. Das Ergebnis ist dann ggf. kein umfassendes Ergebnis. Bei der Erstellung wird ein blauer Punkt angezeigt, um Sie an diese Einschränkung zu erinnern und die Umstellung auf delegierbare Alternativen vorzuschlagen, soweit dies möglich ist. Weitere Informationen finden Sie unter Grundlagen der Delegierung.

Syntax

Update( Datenquelle, AlterDatensatz, NeuerDatensatz [, All ] )

  • Datenquelle: Erforderlich. Die Datenquelle, die den Datensatz enthält, den Sie ersetzen möchten.

  • AlterDatensatz: Erforderlich. Der zu ersetzende Datensatz.

  • NeuerDatensatz: Erforderlich. Der Ersatzdatensatz. Dabei handelt es sich nicht um einen Änderungsdatensatz. Der gesamte Datensatz wird ersetzt, und fehlende Eigenschaften werden als blank angezeigt.

  • All: Optional. In einer Sammlung wird möglicherweise der gleiche Datensatz mehr als einmal angezeigt. Geben Sie das All-Argument an, um alle Kopien des Datensatzes zu entfernen.

UpdateIf( Datenquelle, Bedingung1, Änderungsdatensatz1 [, Bedingung2, Änderungsdatensatz2, ... ] )

  • Datenquelle: Erforderlich. Die Datenquelle, die den Datensatz bzw. die Datensätze enthält, die Sie ändern möchten.

  • Bedingung(en): Erforderlich. Eine Formel, die für den Datensatz bzw. die Datensätze, die Sie ändern möchten, TRUE ergibt. Sie können Spaltennamen von Datenquelle in der Formel verwenden.

  • Änderungsdatensatz bzw. -sätze: Erforderlich. Für jede entsprechende Bedingung ein Änderungsdatensatz mit neuen Eigenschaftenwerten, die auf Datensätze von Datenquelle angewandt werden, die die Bedingung erfüllen. Wenn Sie den Datensatz in geschweifte Klammern eingebunden bereitstellen, können Eigenschaftenwerte des vorhandenen Datensatzes in den Eigenschaftenformeln verwendet werden.

Beispiele

In diesen Beispielen ersetzen oder ändern Sie Datensätze in einer Datenquelle mit dem Namen IceCream, die mit den Daten in dieser Tabelle beginnt:

Formel Beschreibung Ergebnis
Update( IceCream,
First( Filter( IceCream, Flavor="Chocolate" ) ), { ID: 1, Flavor: "Mint Chocolate", Quantity:150 } )
Ersetzt einen Datensatz aus der Datenquelle

Die Datenquelle IceCream (Eiscreme) wurde geändert.
UpdateIf( IceCream, Quantity > 175, { Quantity: Quantity + 10 } ) Ändert Datensätze, bei der Quantity größer als 150 ist. Das Feld Quantity wird um 10 erhöht, und es werden keine anderen Felder geändert.

Die Datenquelle IceCream (Eiscreme) wurde geändert.
Update( IceCream,
First( Filter( IceCream, Flavor="Strawberry" ) ),
{ ID: 3, Flavor: "Strawberry Swirl"} )
Ersetzt einen Datensatz aus der Datenquelle Die Eigenschaft Quantity wurde im Ersatzdatensatz nicht bereitgestellt. Diese Eigenschaft bleibt im Ergebnis also blank.

Die Datenquelle IceCream (Eiscreme) wurde geändert.
UpdateIf( IceCream, true, { Quantity: 0 } ) Legt den Wert für die Eigenschaft Quantity für alle Datensätze in der Datenquelle auf 0 fest.

Die Datenquelle IceCream (Eiscreme) wurde geändert.

Schritt für Schritt

  1. Importieren oder erstellen Sie eine Sammlung mit dem Namen Inventory (Lagerbestand), und zeigen Sie diese in einem Katalog an, wie unter Show images and text in a gallery, including gallery selection, sort, and filter (Anzeigen von Bildern und Text in einem Katalog, einschließlich Auswählen, Sortieren und Filtern des Katalogs) beschrieben.

  2. Nennen Sie den Katalog ProductGallery.

  3. Fügen Sie einen Schieberegler mit dem Namen UnitsSold hinzu, und legen Sie dessen Max-Eigenschaft auf diesen Ausdruck fest:
    ProductGallery.Selected.UnitsInStock

  4. Fügen Sie eine Schaltfläche hinzu, und legen Sie ihre Eigenschaft OnSelect auf diese Formel fest:
    UpdateIf(Inventory, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})

  5. Drücken Sie F5, wählen Sie ein Produkt aus dem Katalog aus, geben Sie mit dem Schieberegler einen Wert an, und wählen Sie dann die Schaltfläche aus.

    Die Anzahl der Einheiten des von Ihnen angegebenen Produkts im Lager sinkt um die Anzahl, die Sie angegeben haben.