Grundlegendes zu Tabellen und Datensätzen in Canvas-Apps

In Power Apps können Sie eine Canvas-App erstellen, die auf Informationen in Microsoft Excel, SharePoint, SQL Server und mehreren anderen Quellen zugreift, die Daten in Datensätzen und Tabellen speichern. Um möglichst effizient mit diesen Daten umzugehen, machen Sie sich mit den Konzepten vertraut, die diesen Strukturen zugrunde liegen.

  • Ein Datensatz enthält mindestens eine Kategorie von Informationen zu einer Person, einem Ort oder einem Gegenstand. Ein Datensatz kann z.B. den Namen, die E-Mail-Adresse und die Telefonnummer eines einzelnen Kunden enthalten. Andere Tools bezeichnen einen Datensatz als Zeile oder Element.
  • Eine Tabelle enthält einen oder mehrere Datensätze, die die gleichen Kategorien von Informationen enthalten. Eine Tabelle kann z.B. die Namen, die E-Mail-Adressen und die Telefonnummern von 50 Kunden enthalten.

In Ihrer App verwenden Sie Formeln zum Erstellen, Aktualisieren und Bearbeiten von Datensätzen und Tabellen. Sie werden Daten lesen und in eine externe Datenquelle schreiben, die eine erweiterte Tabelle ist. Darüber hinaus können Sie eine oder mehrere interne Tabellen erstellen, die als Sammlungen bezeichnet werden.

Sie können eine Vielzahl von Formeln erstellen, die den Namen einer Tabelle als Argument verwenden, so wie eine Formel in Excel eine oder mehrere Zellreferenzen als Argumente akzeptiert. Einige Formeln in Power Apps geben eine Tabelle zurück, die die anderen von Ihnen angegebenen Argumente widerspiegelt. Sie können beispielsweise eine Formel erstellen:

  • einen Datensatz in einer Tabelle zu aktualisieren, indem Sie diese Tabelle als eines von mehreren Argumente für die Patch-Funktion angeben.
  • Spalten in einer Tabelle hinzufügen, entfernen und umbenennen, indem Sie diese Tabelle als Argument für die Funktionen AddColumns, DropColumns oder RenameColumns angeben. Keine dieser Funktionen verändert die ursprüngliche Tabelle. Stattdessen gibt die Funktion eine andere Tabelle auf Grundlage der anderen, von Ihnen angegebenen Argumente zurück.

Elemente einer Tabelle

Elemente einer Tabelle

Einträge

Jeder Datensatz enthält mindestens eine Kategorie von Informationen für eine Person, einen Ort oder eine Sache. Das obige Beispiel zeigt einen Datensatz für jedes Produkt (Schokolade, Brot und Wasser) und eine Spalte für jede Kategorie von Informationen (Preis, Menge auf Lager und Menge auf Bestellung).

In einer Formel können Sie mit geschweiften Klammern auf einen Datensatz selbst, außerhalb eines Tabellenkontexts verweisen. Angenommen, der Datensatz { Name: "Strawberries", Price: 7,99 } ist nicht mit einer Tabelle verknüpft. Beachten Sie, dass die Feldnamen in diesem Beispiel, Name und Price, nicht in doppelte Anführungszeichen eingeschlossen sind.

Felder

Ein Feld ist eine einzelne Information in einem Datensatz. Sie können diese Art von Feld als Wert in einer Spalte eines bestimmten Datensatzes visuell darstellen.

Wie mit einem Steuerelement verweisen Sie auf ein Feld, indem Sie den .- Operator auf einen Datensatz anwenden. First(Products).Name gibt beispielsweise das Feld Name für den ersten Datensatz in der Tabelle Products (Produkte) zurück.

Ein Feld kann einen anderen Datensatz oder eine andere Tabelle enthalten, wie im Beispiel zur GroupBy-Funktion dargestellt. Sie können beliebig viele Ebenen von Datensätzen und Tabellen verschachteln.

Spalten

Eine Spalte bezieht sich auf dasselbe Feld für einen oder mehrere Datensätze in einer Tabelle. Im obigen Beispiel hat jedes Produkt ein Preisfeld, und dieser Preis steht für alle Produkte in der gleichen Spalte. Die obige Tabelle besteht aus vier Spalten, die horizontal über den gesamten Bereich verteilt sind:

  • Name
  • Preis
  • Menge auf Lager
  • Menge auf Bestellung

Der Name der Spalte gibt die Felder in dieser Spalte an.

Alle Werte innerhalb einer Spalte sind vom gleichen Datentyp. Im obigen Beispiel enthält die Spalte „Menge auf Lager“ immer eine Zahl und kann keine Zeichenfolge für einen Datensatz enthalten, wie beispielsweise „12 Einheiten“. Der Wert eines Felds kann auch leer sein.

In anderen Tools können Spalten „Felder“ genannt werden.

Hinweis

Bei SharePoint‑, Excel‑, oder Power BI-Kacheln, die Spaltennamen mit Leerzeichen enthalten, ersetzt Power Apps die Leerzeichen durch "_x0020_". "Name der Spalte" in SharePoint, Excel, oder Power BI-Kachel wird beispielsweise als "Column_x0020_Name" in Power Apps bei Anzeige im Datenlayout oder Verwendung in einer Formel angezeigt.

Tabelle

Eine Tabelle umfasst mindestens einen Datensatz, jeder mit mehreren Feldern, die datensatzübergreifend konsistente Namen aufweisen.

Alle Tabellen, die in einer Datenquelle oder eine Sammlung gespeichert sind, haben einen Namen, den Sie dazu verwenden können, um auf die Tabelle zu verweisen und sie an Funktionen zu übergeben, die Tabellen als Argumente akzeptieren. Tabellen können auch das Ergebnis einer Funktion oder eine Formel sein.

Sie können wie im folgenden Beispiel eine Tabelle in einer Formel ausdrücken, indem Sie die Table-Funktion mit einer Reihe von Datensätzen verwenden, die Sie in geschweiften Klammern ausdrücken:

Table( { Value: "Strawberry" }, { Value: "Vanilla" } )

Sie können auch eine einspaltige Tabelle mit eckigen Klammern definieren. Alternativ können Sie den obigen Ausdruck wie folgt schreiben:

[ "Strawberry", "Vanilla" ]

Tabellenformeln

In Excel und Power Apps verwenden Sie Formeln zum Bearbeiten von Zahlen und Textzeichenfolgen auf ähnliche Weise:

  • Geben Sie in Excel in Zelle A1 einen Wert ein, z.B. 42, und geben Sie dann in eine andere eine Formel, z.B. A1+2, ein, um den Wert 44 anzuzeigen.
  • Legen Sie in Power Apps die Default-Eigenschaft von Slider1 auf 42 fest, und legen Sie die Text-Eigenschaft eines Schiebereglers auf Slider1.Value + 2, um den Wert 44 anzuzeigen.

In beiden Fällen ändert sich der berechnete Wert automatisch, wenn die Werte der Argumente geändert werden (z.B. die Zahl in Zelle A1 oder der Wert von Slider1).

Sie können Formeln auf ähnliche Weise verwenden, um auf Daten in Tabellen und Datensätzen zuzugreifen und diese zu bearbeiten. In einigen Formeln können Sie Tabellennamen wie Min(Catalog, Price) als Argumente verwenden, um den niedrigsten Wert in der Spalte Price der Catalog-Tabelle anzuzeigen. Andere Formeln stellen ganze Tabellen als Rückgabewerte bereit, wie z.B. RenameColumns(Catalog, "Price", "Cost"), womit alle Datensätze aus der Catalog-Tabelle zurückgegeben werden, jedoch der Name der Spalte Price in Cost (Kosten) geändert wird.

Ebenso wie Zahlen, werden Formeln, die Tabellen und Datensätze enthalten, automatisch neu berechnet, wenn die zugrunde liegenden Tabelle oder der zugrunde liegende Datensatz geändert wird. Wenn die Kosten eines Produkts in die Catalog-Tabelle unter den vorherigen Mindestwert sinken, wird der Rückgabewert der Min-Formel automatisch geändert und angepasst.

Lassen Sie einige einfache Beispiele ansehen.

  1. Erstellen Sie eine leere App für ein Smartphone, und fügen Sie ein vertikales Katalog-Steuerelement hinzu, das andere Steuerelemente enthält.

    Es wird Platzhaltertext aus einer Tabelle namens CustomGallerySample angezeigt. Die Items-Eigenschaft des Katalog-Steuerelements der Anzeige wird automatisch auf die Tabelle festgelegt.

    Katalog

    Hinweis

    Einige Steuerelemente wurden neu angeordnet und zur Veranschaulichung vergrößert.

  2. Statt die Items-Eigenschaft auf den Namen einer Tabelle festzulegen, legen Sie sie auf eine Formel fest, die den Namen der Tabelle als Argument enthält, wie in diesem Beispiel:

    Sort(CustomGallerySample, SampleHeading, SortOrder.Descending)

    Diese Formel beinhaltet die Sort-Funktion, die den Namen einer Tabelle als erstes Argument und der Name einer Spalte in dieser Tabelle als zweites Argument akzeptiert. Die Funktion unterstützt auch ein optionales drittes Argument, das vorschreibt, dass die Daten in absteigender Reihenfolge sortiert werden sollen.

    Nach Katalog sortieren

  3. Legen Sie die Items-Eigenschaft auf eine Formel fest, die die Formel aus dem vorherigen Schritt als Argument akzeptiert und eine Tabelle zurückgibt, wie im folgenden Beispiel:

    FirstN(Sort(CustomGallerySample, SampleHeading, SortOrder.Descending), 2)

    In dieser Formel verwenden Sie die Funktion FirstN, um eine bestimmte Anzahl von Datensätzen in einer Tabelle anzuzeigen. Verwenden Sie die Sort-Funktion als erstes Argument für FirstN und eine Zahl (in diesem Fall 2) als das zweite Argument, das angibt, wie viele Datensätze angezeigt werden sollen.

    Die gesamte Formel gibt eine Tabelle zurück, die die ersten beiden Datensätze der CustomGallerySample-Tabelle enthält, sortiert nach der Spalte SampleHeading in absteigender Reihenfolge.

    FirstN für Katalog

Tabellenfunktionen und Steuerelementeigenschaften

Nutzen Sie die Funktion Lower. Wenn die Variable Willkommen die Textzeichenfolge "Hallo, Welt" enthält, gibt die Formel Lower( welcome ) "Hallo, Welt" zurück. Diese Funktion ändert in keiner Weise den Wert in dieser Variablen. Lower ist eine reine Funktion, da sie nur Input verarbeitet und Output erzeugt. Das ist alles; es hat keine Nebenwirkungen. Alle Funktionen in Excel und die meisten Funktionen in Power Apps sind reine Funktionen, mit denen die Arbeitsmappe oder die App automatisch neu berechnet werden kann.

Power Apps bietet eine Reihe von Funktionen, die auf die gleiche Weise auf Tabellen wirken. Diese Funktionen nehmen Tabellen als Eingabe und filtern, sortieren, transformieren, reduzieren und fassen ganze Datentabellen zusammen. Tatsächlich können Lower und viele andere Funktionen, die typischerweise einen einzelnen Wert annehmen, auch eine einspaltige Tabelle als Eingabe verwenden.

  • Sort, Filter: sortieren und filtern Datensätze
  • FirstN, LastN: geben die ersten N oder letzten N Datensätze einer Tabelle zurück
  • Abs, Sqrt, Round, RoundUp, RoundDown: arithmetische Vorgänge auf jeden Datensatz einer einspaltigen Tabelle mit einer einspaltigen Ergebnistabelle
  • Left, Mid, Right, Replace, Substitute, Trim, Lower, Upper, Proper: Bearbeitung von Zeichenfolgen in jedem Datensatz einer einspaltigen Tabelle mit einer einspaltigen Ergebnistabelle aus Zeichenfolgen
  • Len: gibt für eine Spalte von Zeichenfolgen eine einspaltige Tabelle zurück, die die Länge einer jeden Zeichenfolge enthält.
  • Concatenate: verkettet mehrere Zeichenfolgenspalten und ergibt eine einspaltige Tabelle mit Zeichenfolgen
  • AddColumns, DropColumns, RenameColumns, ShowColumns: bearbeiten Spalten der Tabelle und ergeben eine neue Tabelle mit unterschiedlichen Spalten
  • Distinct: entfernt doppelte Datensätze
  • Shuffle: mischt die Reihenfolge von Datensätze zufällig
  • HashTags: sucht in einer Zeichenfolge nach Hashtags
  • Error: stellt bei der Arbeit mit einer Datenquelle Fehlerinformationen bereit

Viele dieser Funktionen nehmen eine einspaltige Tabelle als Eingabe. Wenn eine ganze Tabelle nur eine Spalte hat, können Sie sie nach Namen angeben. Wenn eine Tabelle mehrere Spalten hat, können Sie eine dieser Spalten mit Tabelle.Spalte Syntax angeben. Beispielsweise gibt Products.Name die einspaltige Tabelle mit nur Name Werten aus der Tabelle Products zurück.

Sie können eine Tabelle nach Belieben vollständig umgestalten, indem Sie die Funktion Spalten hinzufügen, Spalten umbenennen, Spalten anzeigen oder Spalten löschen verwenden. Auch hier ändern diese Funktionen nur die Ausgabe, nicht die Quelle.

Eigenschaften von Steuerelementen können auch Tabellen sein:

  • Items - Gilt für Galerien, Listen- und Kombinationsfelder. Diese Eigenschaft definiert die Tabelle, die die Galerie oder die Liste zeigt.
  • SelectedItems - Gilt für Listen- und Kombinationsfelder. Diese Eigenschaft definiert die Tabelle der Elemente, die der Benutzer ausgewählt hat, wenn Mehrere auswählen aktiviert ist.

Verhaltensformeln

Andere Funktionen sind speziell auf die Änderung von Daten ausgelegt und haben Nebenwirkungen. Da diese Funktionen nicht sauber sind, müssen Sie sie sorgfältig erstellen, und sie können nicht an der automatischen Neuberechnung von Werten in der App teilnehmen. Sie können diese Funktionen nur innerhalb von Verhaltensformeln verwenden.

  • Collect, Clear, ClearCollect - Erstellt Sammlungen, löscht sie und fügt ihnen Daten hinzu.
  • Patch - Ändert ein oder mehrere Felder in einem Datensatz.
  • Update, UpdateIf: aktualisiert Datensätze, die mindestens einem von Ihnen angegebenen Kriterium entsprechen
  • Remove, RemoveIf: löscht Datensätze, die mindestens einem von Ihnen angegebenen Kriterium entsprechen

Datensatzformeln

Sie können auch eine Formel erstellen, die Daten für einen einzelnen Datensatz berechnet, einen einzelnen Datensatz als Argument akzeptiert und einen einzelnen Datensatz als Rückgabewert bereitstellt. Lassen Sie uns zum Katalogbeispiel zurückkehren und die Gallery1.Selected-Eigenschaft zum Anzeigen von Informationen aus einem beliebigen Datensatz verwenden, den der Benutzer aus dem Katalog ausgewählt hat.

  1. Fügen Sie eine Schaltfläche hinzu, und legen Sie ihre Eigenschaft OnSelect auf diese Formel fest:
    Collect( SelectedRecord, Gallery1.Selected )

  2. Halten Sie die ALT-TASTE gedrückt, und wählen Sie die Schaltfläche aus.

  3. Klicken Sie im Menü Datei auf Sammlungen.

    SelectedRecord-Sammlung

Diese Formel gibt einen Datensatz zurück, der nicht nur die Daten aus dem Datensatz enthält, die derzeit im Katalog ausgewählt ist, sondern auch jedes Steuerelement in diesem Katalog. Der Datensatz enthält z.B. sowohl eine SampleText-Spalte, die der SampleText-Spalte in der ursprünglichen Tabelle entspricht, als auch eine Subtitle1-Spalte, die die Bezeichnung darstellt, die die Daten aus dieser Spalte enthält. Wählen Sie das Tabellensymbol in der Subtitle1-Spalte aus, um diese Daten detaillierter zu analysieren.

Hinweis

Die Spalte Subtitle1 kann z.B. Subtitle2 genannt werden, wenn Sie andere Elemente als die in diesem Thema verwendeten hinzugefügt haben.

Da Sie nun über den ausgewählten Datensatz verfügen, können Sie mit dem .-Operator Operator.

  1. Fügen Sie ein Bezeichnung-Steuerelement hinzu, und verschieben Sie es unter den Katalog und die Schaltfläche.

  2. Legen Sie die Text-Eigenschaft auf den folgenden Ausdruck fest:
    "Selected: " & Gallery1.Selected.SampleHeading

    Text-Eigenschaft mit aktualisierter Beschriftung

Sie haben aus der Selected-Eigenschaft, die einen Datensatz darstellt, die SampleHeading-Eigenschaft extrahiert.

Sie können einen Datensatz auch als einen Allzweckcontainer für verwandte benannte Werte verwenden.

  • Wenn Sie eine Formel um die Funktionen UpdateContext und Navigate erstellen, verwenden Sie einen Datensatz, um die Kontextvariablen zu erfassen, die Sie aktualisieren möchten.
  • Wenden Sie die Updates-Eigenschaft auf ein Formular bearbeiten-Steuerelement an, um die Änderungen zu erfassen, die vom Benutzer in einem Formular vorgenommen wurden.
  • Verwenden Sie die Patch-Funktion, um eine Datenquelle zu aktualisieren und um Datensätze zusammenführen.

In diesen Fällen war der Datensatz niemals Teil einer Tabelle.

Datensatzfunktionen und Steuerelementeigenschaften

Funktionen, die Datensätze zurückgeben:

  • FirstN, LastN: geben den ersten oder letzten Datensatz oder Datensätze der Tabelle zurück
  • Lookup: gibt den ersten Datensatz aus einer Tabelle zurück, die mindestens einem Kriterium entspricht
  • Patch: aktualisiert eine Datenquelle oder führt Datensätze zusammen
  • Defaults: gibt die Standardwerte für eine Datenquelle zurück.

Eigenschaften, die Datensätze zurückgeben:

  • Selected: gilt für Kataloge und Listenfelder. Gibt den aktuell ausgewählten Datensatz zurück
  • Updates: gilt für Kataloge. Zieht allen Änderungen, die ein Benutzer in einem Dateneingabeformular vornimmt
  • Update: gilt für Eingabesteuerelemente wie Texteingabe-Steuerelemente und Schieberegler. Richtet einzelne, zusammenzustellende Eigenschaften für den Katalog ein

Datensatzebene

Einige Funktionen werten eine Formel in allen Datensätzen einer Tabelle einzeln aus. Das Ergebnis der Formel wird auf verschiedene Weise verwendet:

  • AddColumns: Die Formel stellt den Wert des hinzugefügten Felds bereit.
  • Average, Max, Min, Sum, StdevP, VarP: Die Formeln stellen den zu aggregierenden Wert bereit.
  • Filter, Lookup: Die Formel bestimmt, ob der Datensatz in die Ausgabe aufgenommen werden soll.
  • Concat: Die Formel bestimmt die zu verkettenden Zeichenfolgen.
  • Distinct: Die Formel gibt einen Wert zurück, mit dem doppelte Datensätze ermittelt werden können.
  • ForAll: Die Formel kann einen beliebigen Wert zurückgeben, u.U. mit Nebeneffekten.
  • Sort: Die Formel stellt den Wert bereit, nach dem die Datensätze sortiert werden sollen.
  • Mit - Die Formel kann jeden Wert zurückgeben, möglicherweise mit Nebenwirkungen.

Innerhalb dieser Formeln können Sie auf die Felder des aktuell verarbeiteten Datensatzes verweisen. Jede dieser Funktionen erstellt eine „Datensatzebene“, in dem die Formel ausgewertet wird und in dem die Felder des Datensatzes als Bezeichner der obersten Ebene verfügbar sind. Sie können auch Eigenschaften von Steuerelementen und andere Werte aus Ihrer App verweisen.

Nehmen Sie z.B. die Tabelle Products:

Produktebeispiel

Um diese Beispieltabelle in Ihrer App zu erstellen, fügen Sie eine Schaltfläche ein, setzen Sie deren Eigenschaft OnSelect auf diese Formel und wählen Sie dann die Schaltfläche aus (klicken Sie darauf, während Sie die Alt-Taste in Power Apps Studio gedrückt halten):

Set( Products,
    Table(
        { Product: "Widget",    'Quantity Requested': 6,  'Quantity Available': 3 },
        { Product: "Gadget",    'Quantity Requested': 10, 'Quantity Available': 20 },
        { Product: "Gizmo",     'Quantity Requested': 4,  'Quantity Available': 11 },
        { Product: "Apparatus", 'Quantity Requested': 7,  'Quantity Available': 6 }
    )
)

Um festzustellen, ob bei einem dieser Produkte die Nachfrage das Angebot überstieg, verwenden Sie diese Formel:

Filter( Products, 'Quantity Requested' > 'Quantity Available' )

Das erste Argument für Filter ist die Tabelle von Datensätzen, die verarbeitet wird, und das zweite Argument ist eine Formel. Filter erstellt eine Datensatzebene für die Auswertung dieser Formel, in dem die Felder jedes Datensatzes verfügbar sind, in diesem Fall Product, Quantity Requested (Nachgefragte Menge) und Quantity Available (verfügbare Menge). Das Ergebnis des Vergleichs bestimmt, ob jeder Datensatz in das Ergebnis der Funktion aufgenommen werden soll:

Gefilterte Tabelle

Außerdem können wir berechnen, wie viel von jedem Produkt bestellt werden soll:

AddColumns( 
    Filter( Products, 'Quantity Requested' > 'Quantity Available' ), 
    "Quantity To Order", 'Quantity Requested' - 'Quantity Available'
)

Hier wird dem Ergebnis eine berechnete Spalte hinzugefügt. AddColumns verfügt über eine eigene Datensatzebene, die zum Berechnen des Unterschiedes zwischen dem Angeforderten und dem Verfügbaren verwendet wird.

Hinzugefügte Spalten

Schließlich kann die Ergebnistabelle auf nur bestimmte Spalten reduziert werden:

ShowColumns(
    AddColumns(
        Filter( Products, 'Quantity Requested' > 'Quantity Available' ),
        "Quantity To Order", 'Quantity Requested' - 'Quantity Available'
    ),
    "Product",
    "Quantity To Order"
)

Aktualisierte Tabelle

Beachten Sie, dass wir oben an einigen Stellen doppelte Anführungszeichen (") und an anderen einfache Anführungszeichen (') verwendet haben. Einfache Anführungszeichen sind beim Verweisen auf den Wert eines Objekts wie ein Feld oder eine Tabelle erforderlich, wenn der Name des Objekts ein Leerzeichen enthält. Doppelte Anführungszeichen werden verwendet, wenn nicht auf den Wert eines Objekts verweisen wird, sondern darüber gesprochen. Dies kommt vor allem dann vor, wenn das Objekt noch nicht vorhanden ist, wie bei AddColumns.

Mehrdeutigkeitsvermeidung

Feldnamen, die mit dem Datensatzbereich hinzugefügt werden, setzen die gleichen Namen von anderen Orten der App außer Kraft. In diesem Fall können Sie weiterhin von außerhalb der Datensatzebene mithilfe des @-Operators zur Mehrdeutigkeitsvermeidung auf Werte zugreifen:

  • Verwenden Sie zum Zugreifen auf Werte aus geschachtelten Datensatzbereichen den @-Operator mit dem Namen der jeweiligen Tabelle, indem Sie das folgende Muster nutzen:
    Table[@FieldName]
  • Verwenden Sie zum Zugreifen auf globale Werte, z.B. Datenquellen, Sammlungen und Kontextvariablen, das Muster [@Objektname] (ohne Tabellenbezeichnung).

Wenn es sich bei der gerade verarbeiteten Tabelle um einen Ausdruck wie Filter( Table, ... ) handelt, kann der Operator zur Mehrdeutigkeitsvermeidung nicht verwendet werden. Nur die innerste Datensatzebene kann auf Felder aus diesem Tabellenausdruck zugreifen, indem der Operator zur Mehrdeutigkeitsvermeidung nicht verwendet wird.

Angenommen, Sie haben eine Sammlung X:

Sammlung X

Sie können diese Sammlung mit ClearCollect( Y, ["A", "B"] ) erstellen.

Und eine weitere Sammlung Y:

Sammlung Y

Sie können diese Sammlung mit ClearCollect( Y, ["A", "B"] ) erstellen.

Definieren Sie darüber hinaus eine Kontextvariable namens Value mit dieser Formel: UpdateContext( {Value: "!"} )

Lassen Sie uns alle Puzzleteile zusammensetzen. In diesem Kontext ergibt die folgende Formel:

Ungroup(
    ForAll( X,
        ForAll( Y,
            Y[@Value] & Text( X[@Value] ) & [@Value]
        )
    ),
    "Value"
)

die folgende Tabelle:

XY Tabelle

Was ist hier passiert? Die äußerste ForAll-Funktion definiert eine Datensatzebene für X und erlaubt den Zugriff auf das Value-Feld jedes Datensatzes während der Verarbeitung. Der Zugriff erfolgt einfach mithilfe des Wortes Wert oder mithilfe von X[@Value].

Die innerste Funktion ForAll definiert einen weiteren Datensatzumfang für Y. Da auch in dieser Tabelle ein Feld Wert definiert ist, bezieht sich die Verwendung von Wert hier auf das Feld im Datensatz von Y und nicht mehr auf das von X. Um hier auf das Feld X Wert zuzugreifen, müssen wir die längere Version mit dem Disambiguationsoperator verwenden.

Da Y die innerste Datensatzebene darstellt, ist beim Zugriff auf Felder dieser Tabelle keine Mehrdeutigkeitsvermeidung erforderlich. Die Verwendung dieser Formel erzielt daher dasselbe Ergebnis:

Ungroup(
    ForAll( X,
        ForAll( Y,
            Value & Text( X[@Value] ) & [@Value]
        )
    ),
    "Value"
)

Alle Datensatzebenen von ForAll sind dem globalen Bereich übergeordnet. Die von uns definierte Value-Kontextvariable ist ohne den Operator zur Mehrdeutigkeitsvermeidung nicht anhand des Namens verfügbar. Um auf diesen Wert zuzugreifen, verwenden Sie [@Value].

Ungroup verflacht das Ergebnis, da verschachtelte ForAll Funktionen zu einer verschachtelten Ergebnistabelle führen.

Einspaltige Tabellen

Um eine einzelne Spalte aus einer Tabelle zu bearbeiten, verwenden Sie wie in diesem Beispiel die Funktion Spalten anzeigen:

ShowColumns( Products, "Product" )

Diese Formel ergibt diese einspaltige Tabelle:

Tabelle mit einer Spalte

Für eine kürzere Alternative geben Sie Table.Column an, wodurch die einspaltige Tabelle von nur Column aus Table extrahiert wird. Diese Formel ergibt z.B. genau dasselbe Ergebnis wie die Verwendung von Spalten anzeigen.

Products.Product

Inline-Datensätze

Datensätze werden mit geschweiften Klammern ausgedrückt, die die Namen von Feldwerten enthalten. Sie können den ersten Datensatz in der Tabelle am Anfang dieses Themas z.B. mit dieser Formel ausdrücken:

{ Name: "Chocolate", Price: 3.95, 'Quantity on Hand': 12, 'Quantity on Order': 10 }

Sie können Formeln auch in andere Formeln einbetten, wie in diesem Beispiel gezeigt:

{ Name: First(Products).Name, Price: First(Products).Price * 1.095 }

Datensätze lassen sich auch schachteln, indem geschweifte Klammern geschachtelt werden, wie in diesem Beispiel gezeigt:

{ 'Quantity': { 'OnHand': ThisItem.QuantOnHand, 'OnOrder': ThisItem.QuantOnOrder } }

Schließen Sie jeden Spaltenname, die ein Sonderzeichen wie ein Leerzeichen oder einen Doppelpunkt enthält, in einfache Anführungszeichen ein. Um ein einfaches Anführungszeichen in einem Spaltennamen zu verwenden, verdoppeln Sie es.

Beachten Sie, dass der Wert in der Price-Spalte kein Währungssymbol wie ein Dollarzeichen enthält. Die Formatierung wird angewendet, wenn der Wert angezeigt wird.

Inline-Tabellen

Mithilfe mit der Table-Funktion und einem Satz von Datensätzen können Sie eine Tabelle erstellen. Die Tabelle zu Beginn dieses Themas lässt sich mit dieser Formel ausdrücken:

Table( 
    { Name: "Chocolate", Price: 3.95, 'Quantity on Hand': 12, 'Quantity on Order': 10 },
    { Name: "Bread", Price: 4.95, 'Quantity on Hand': 34, 'Quantity on Order': 0 },
    { Name: "Water", Price: 4.95, 'Quantity on Hand': 10, 'Quantity on Order': 0 } 
)

Sie können Tabellen auch schachteln:

Table( 
    { Name: "Chocolate", 
      'Quantity History': Table( { Quarter: "Q1", OnHand: 10, OnOrder: 10 },
                                 { Quarter: "Q2", OnHand: 18, OnOrder: 0 } ) 
    }
)

Inline-Wertetabellen

Sie können einspaltige Tabellen erstellen, indem Sie Werte in eckigen Klammern angeben. Die daraus resultierende Tabelle enthält eine einzelne Spalte namens Value.

Beispielsweise ist [ 1, 2, 3, 4 ] gleichbedeutend mit Table( { Value: 1 }, { Value: 2 }, { Value: 3 }, { Value: 4 } ) und gibt diese Tabelle zurück:

Positionstabelle

Hinweis

Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)

Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).