Freigeben über


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 mit dieser Art von Daten am effektivsten zu arbeiten, überprüfen Sie die Konzepte, die diese Strukturen zugrunde legen.

  • Ein Datensatz enthält eine oder mehrere Kategorien von Informationen zu einer Person, einem Ort oder einer Sache. Beispielsweise kann ein Datensatz den Namen, die E-Mail-Adresse und die Telefonnummer eines einzelnen Kunden enthalten. Andere Tools beziehen sich auf einen Datensatz als "Zeile" oder "Element".
  • Eine Tabelle enthält mindestens einen Datensatz, der die gleichen Informationskategorien enthält. Beispielsweise kann eine Tabelle 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. Wahrscheinlich lesen und schreiben Sie Daten in eine externe Datenquelle, bei der es sich um eine erweiterte Tabelle handelt. 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, genauso wie eine Formel in Excel einen oder mehrere Zellbezüge 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:

  • so aktualisieren Sie einen Datensatz in einer Tabelle, indem Sie diese Tabelle als eines von mehreren Argumenten für die Patch-Funktion angeben
  • um Spalten in einer Tabelle hinzuzufügen, zu entfernen und umzubenennen, indem Sie diese Tabelle als Argument für die Funktion "AddColumns", "DropColumns" oder "RenameColumns" angeben. Keine dieser Funktionen ändert die ursprüngliche Tabelle. Stattdessen gibt die Funktion eine andere Tabelle basierend auf den anderen von Ihnen angegebenen Argumenten zurück.

Elemente einer Tabelle

Tabellenelemente.

Datensätze

Jeder Datensatz enthält mindestens eine Informationskategorie 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 Informationskategorie (Preis, Menge zur Hand und Menge auf Bestellung).

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

Felder

Ein Feld ist ein einzelnes Informationsstück in einem Datensatz. Sie können diese Art von Feld als Wert in einer Spalte für einen bestimmten Datensatz visualisieren.

Genau wie bei einem Steuerelement verweisen Sie auf ein Feld eines Datensatzes mithilfe des .-Operators am Datensatz. Beispiel: First(Products). Name gibt das Feld "Name " für den ersten Datensatz in der Tabelle "Artikel " zurück.

Ein Feld kann einen anderen Datensatz oder eine andere Tabelle enthalten, wie das Beispiel für die GroupBy-Funktion zeigt. Sie können beliebig viele Ebenen von Datensätzen und Tabellen schachteln.

Columns

Eine Spalte bezieht sich auf dasselbe Feld für einen oder mehrere Datensätze in einer Tabelle. Im obigen Beispiel weist jedes Produkt ein Preisfeld auf, und dieser Preis befindet sich in derselben Spalte für alle Produkte. Die obige Tabelle enthält vier Spalten, die horizontal über dem oberen Rand angezeigt werden:

  • Name
  • Preis
  • Verfügbarer Bestand
  • Menge auf Bestellung

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

Alle Werte in einer Spalte weisen denselben Datentyp auf. 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 Anwendungen könnten Sie Spalten als "Felder" bezeichnet haben.

Hinweis

Bei Datenquellen wie 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.

Table

Eine Tabelle besteht aus einem oder mehreren Datensätzen, die jeweils mehrere Felder mit konsistenten Namen in den Datensätzen enthalten.

Jede Tabelle, die in einer Datenquelle oder einer Auflistung gespeichert ist, weist einen Namen auf, den Sie verwenden, um auf die Tabelle zu verweisen und sie an Funktionen zu übergeben, die Tabellen als Argumente verwenden. Tabellen können auch das Ergebnis einer Funktion oder einer Formel sein.

Wie im folgenden Beispiel können Sie eine Tabelle mithilfe einer Formel darstellen, indem Sie die Tabellenfunktion 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. Eine gleichwertige Methode, das Obige zu formulieren:

[ "Strawberry", "Vanilla" ]

Tabellenformeln

In Excel und Power Apps verwenden Sie Formeln, um Zahlen und Zeichenfolgen von Text auf ähnliche Weise zu bearbeiten:

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

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

Ebenso können Sie Formeln verwenden, um auf Daten in Tabellen und Datensätzen zuzugreifen und sie zu bearbeiten. Sie können Namen von Tabellen als Argumente in einigen Formeln verwenden, z. B. Min(Katalog, Preis), um den niedrigsten Wert in der Spalte "Preis " der Katalogtabelle anzuzeigen. Andere Formeln stellen ganze Tabellen als Rückgabewerte bereit, z. B. RenameColumns(Catalog, "Price", "Cost"), die alle Datensätze aus der Katalogtabelle zurückgibt, aber den Namen der Spalte " Preis " in "Kosten" ändert.

Genau wie bei Zahlen werden Formeln, die Tabellen und Datensätze umfassen, automatisch neu berechnet, wenn sich die zugrunde liegende Tabelle oder der Datensatz ändert. Wenn die Kosten eines Produkts in der Katalogtabelle unter dem vorherigen Minimum gesenkt werden, wird der Rückgabewert der Min-Formel automatisch entsprechend geändert.

Sehen wir uns einige einfache Beispiele an.

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

    Der Bildschirm zeigt standardmäßig Platzhaltertext aus einer Tabelle mit dem Namen CustomGallerySample an. Die Items-Eigenschaft des Galerie-Steuerelements auf dem Bildschirm wird automatisch auf diese Tabelle festgelegt.

    Galerie.

    Hinweis

    Einige Steuerelemente wurden zur Veranschaulichung neu angeordnet und 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 im folgenden Beispiel gezeigt:

    Sort(CustomGallerySample, SampleHeading, SortOrder.Descending)

    Diese Formel enthält die Sortierfunktion , die den Namen einer Tabelle als erstes Argument und den Namen einer Spalte in dieser Tabelle als zweites Argument verwendet. Die Funktion unterstützt auch ein optionales drittes Argument, das angibt, 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 verwendet und eine Tabelle zurückgibt, wie in diesem Beispiel gezeigt:

    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. Sie verwenden die Sortierfunktion als erstes Argument für FirstN und eine Zahl (in diesem Fall 2) als zweites 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 Tabelle CustomGallerySample enthält, sortiert nach der SampleHeading-Spalte in absteigender Reihenfolge.

    FirstN für Galerie.

Tabellenfunktionen und Steuerelementeigenschaften

Betrachten Sie die Untere Funktion. Wenn die Variable willkommen die Textzeichenfolge "Hello, World" enthält, gibt die Formel Lower( willkommen )"hello, world" zurück. Diese Funktion ändert in keiner Weise den Wert in dieser Variablen. Lower ist eine reine Funktion, da sie nur Eingaben verarbeitet und Ausgaben 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 mit Tabellen arbeiten. Diese Funktionen verwenden Tabellen als Eingabe- und Filter-, Sortier-, Transformations-, Reduzierungs- und Zusammenfassungstabellen ganzer Daten. Tatsächlich können untere und viele andere Funktionen, die in der Regel einen einzelnen Wert verwenden, auch eine einspaltige Tabelle als Eingabe verwenden.

  • Sortieren, Filtern – Sortiert und filtert Datensätze.
  • FirstN, LastN – Gibt die ersten N- oder letzten N-Datensätze der Tabelle zurück.
  • Abs, Sqrt, Round, RoundUp, RoundDown – Arithmetische Vorgänge auf jeden Datensatz einer einspaltigen Tabelle, was zu einer einspaltigen Tabelle mit Ergebnissen führt.
  • 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 mit Zeichenfolgen eine einspaltige Tabelle zurück, die die Länge jeder Zeichenfolge enthält.
  • Verketten – Verkettet mehrere Spalten mit Zeichenfolgen, was zu einer einspaltigen Tabelle mit Zeichenfolgen führt.
  • AddColumns, DropColumns, RenameColumns, ShowColumns – Spaltenmanipulation der Tabelle, was zu einer neuen Tabelle mit unterschiedlichen Spalten führt.
  • Distinct – Entfernt Duplikate von Datensätzen.
  • Shuffle - Mische Datensätze in eine zufällige Reihenfolge.
  • HashTags – Sucht nach Hashtags in einer Zeichenfolge.
  • Fehler – Stellt Fehlerinformationen bereit, wenn Sie mit einer Datenquelle arbeiten.

Viele dieser Funktionen verwenden eine einspaltige Tabelle als Eingabe. Wenn eine gesamte Tabelle nur eine Spalte enthält, können Sie sie anhand des Namens angeben. Wenn eine Tabelle über mehrere Spalten verfügt, können Sie eine dieser Spalten mithilfe der Syntax "Table.Column " angeben. Beispielsweise gibt Products.Name die einspaltige Tabelle mit nur Name-Werten aus der Produkte-Tabelle zurück.

Sie können eine Tabelle jedoch vollständig ändern, indem Sie die Funktion "AddColumns", "RenameColumns", " ShowColumns" oder "DropColumns " verwenden. Auch hier ändern diese Funktionen nur ihre Ausgabe, nicht ihre Quelle.

Eigenschaften von Steuerelementen können auch Tabellen sein:

  • Elemente – Gilt für Kataloge, Listenfelder und Kombinationsfelder. Diese Eigenschaft definiert die Tabelle, die der Katalog oder die Liste anzeigt.
  • SelectedItems – Gilt für Listenfelder und Kombinationsfelder. Diese Eigenschaft definiert die Tabelle der Elemente, die der Benutzer ausgewählt hat, wenn SelectMultiple aktiviert ist.

Verhaltensformeln

Andere Funktionen sind speziell darauf ausgelegt, Daten zu ändern und Nebenwirkungen zu haben. Da diese Funktionen nicht rein sind, müssen Sie sie sorgfältig erstellen, und sie können nicht automatisch an der Neuberechnung von Werten in der App teilnehmen. Sie können diese Funktionen nur in Verhaltensformeln verwenden.

  • Sammeln, Löschen, 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 einem oder mehreren von Ihnen angegebenen Kriterien entsprechen.
  • Remove, RemoveIf – Löscht Datensätze, die einem oder mehreren von angegebenen Kriterien entsprechen.

Aufzeichnen von Formeln

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. Wenn Sie zu unserem obigen Katalogbeispiel zurückkehren, verwenden wir die Gallery1.Selected-Eigenschaft , um Informationen aus dem Datensatz anzuzeigen, den der Benutzer in diesem Katalog auswählt.

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

  2. Wählen Sie beim Halten der ALT-TASTE die Schaltfläche aus.

  3. Wählen Sie im Menü "Datei" die Option "Sammlungen" aus.

    SelectedRecord-Auflistung.

Diese Formel gibt einen Datensatz zurück, der nicht nur die Daten aus dem Datensatz enthält, der derzeit im Katalog ausgewählt ist, sondern auch jedes Steuerelement in diesem Katalog. Beispielsweise enthält der Datensatz sowohl eine SampleText-Spalte , die der SampleText-Spalte in der ursprünglichen Tabelle entspricht, als auch eine "Subtitle1 "-Spalte, die die Beschriftung darstellt, die die Daten aus dieser Spalte anzeigt. Wählen Sie das Tabellensymbol in der Spalte "Untertitel1 " aus, um einen Drilldown zu diesen Daten zu erstellen.

Hinweis

Die Spalte "Untertitel1 " hat möglicherweise den Namen "Subtitle2" oder "ähnlich", wenn Sie andere Elemente als diejenigen hinzugefügt haben, die in diesem Thema angegeben sind.

Da Sie nun über den ausgewählten Datensatz verfügen, können Sie mit dem .-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

    Texteigenschaft mit aktualisierter Bezeichnung.

Sie haben die Selected-Eigenschaft , die ein Datensatz ist, genommen und die SampleHeading-Eigenschaft daraus extrahiert.

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

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

Datensatzfunktionen und Steuerelementeigenschaften

Funktionen, die Datensätze zurückgeben:

  • FirstN, LastN – Gibt den ersten oder letzten Datensatz oder Datensätze der Tabelle zurück.
  • Nachschlagen – Gibt den ersten Datensatz aus einer Tabelle zurück, der einem oder mehreren Kriterien entspricht.
  • Patch – Aktualisiert eine Datenquelle, oder führt Datensätze zusammen.
  • Standardwerte : Gibt die Standardwerte für eine Datenquelle zurück.

Eigenschaften, die Datensätze zurückgeben:

  • Ausgewählt – Gilt für Galerien und Listenfelder. Gibt den aktuell ausgewählten Datensatz zurück.
  • Updates – Gilt für Galerien. Ruft alle Änderungen zusammen, die ein Benutzer in einem Dateneingabeformular vorgibt.
  • Update – Gilt für Eingabesteuerelemente wie Texteingabesteuerelemente und Schieberegler. Richtet einzelne, zusammenzustellende Eigenschaften für den Katalog ein

Erfassungsbereich

Einige Funktionen funktionieren, indem eine Formel für alle Datensätze einer Tabelle einzeln ausgewertet wird. Das Ergebnis der Formel wird auf verschiedene Arten verwendet:

  • AddColumns – Formel stellt den Wert des hinzugefügten Felds bereit.
  • Mittelwert, Max, Min, Summe, StdevP, VarP – Formel stellt 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 - Formel gibt einen Wert zurück, der zum Identifizieren doppelter Datensätze verwendet wird.
  • ForAll - Formel kann einen beliebigen Wert zurückgeben, potenziell mit Nebenwirkungen.
  • Sortieren – Formel stellt den Wert zum Sortieren der Datensätze bereit.
  • With – Die Formel kann einen beliebigen Wert zurückgeben, möglicherweise mit Nebeneffekten.

Innerhalb dieser Formeln können Sie auf die Felder des zu verarbeitenden Datensatzes verweisen. Jede dieser Funktionen erstellt einen "Datensatzbereich", in dem die Formel ausgewertet wird, wobei die Felder des Datensatzes als Bezeichner der obersten Ebene verfügbar sind. Sie können auch auf Steuerelementeigenschaften und andere Werte in der gesamten App verweisen.

Nehmen Sie z. B. eine Tabelle mit Produkten:

Beispiel für Produkte.

Um diese Beispieltabelle in Ihrer App zu erstellen, fügen Sie eine Schaltfläche ein, legen Sie die OnSelect-Eigenschaft auf diese Formel fest, 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 }
    )
)

So ermitteln Sie, ob eines dieser Produkte mehr angefordert wurde, als verfügbar ist:

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

Das erste Argument für "Filter" ist die Tabelle mit Datensätzen, die ausgeführt werden sollen, und das zweite Argument ist eine Formel. Filter erstellt einen Datensatzbereich für die Auswertung dieser Formel, in der die Felder jedes Datensatzes verfügbar sind, in diesem Fall "Produkt", " Menge angefordert" und "Menge Verfügbar". Das Ergebnis des Vergleichs bestimmt, ob jeder Datensatz in das Ergebnis der Funktion einbezogen werden soll:

Gefilterte Tabelle.

In diesem Beispiel können wir berechnen, wie viel von den einzelnen Produkten bestellt werden soll:

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

Hier fügen wir dem Ergebnis eine berechnete Spalte hinzu. AddColumns verfügt über einen eigenen Datensatzbereich, der zum Berechnen des Unterschieds zwischen dem angeforderten und verfügbaren Datensatz verwendet wird.

Spalten hinzugefügt.

Schließlich können wir die Ergebnistabelle auf die gewünschten Spalten reduzieren:

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

Tabelle aktualisiert.

Beachten Sie, dass wir in den obigen Fällen doppelte Anführungszeichen (") an einigen Stellen und einfachen Anführungszeichen (') an anderen Stellen verwendet haben. Einfache Anführungszeichen sind erforderlich, wenn auf den Wert eines Objekts verwiesen wird, z. B. ein Feld oder eine Tabelle, in dem der Name des Objekts ein Leerzeichen enthält. Doppelte Anführungszeichen werden verwendet, wenn wir nicht auf den Wert eines Objekts verweisen, sondern stattdessen darüber sprechen, insbesondere in Situationen, in denen 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 mit dem @ Disambiguierungsoperator weiterhin auf Werte außerhalb des Datensatzbereichs 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 die tabelle, auf der die Tabelle ausgeführt wird, ein Ausdruck ist, z. B. Filter(Tabelle, ... ), dann kann der Mehrdeutigkeitsoperator nicht verwendet werden. Nur der innerste Datensatzbereich kann auf Felder aus diesem Tabellenausdruck zugreifen, ohne den Disambiguierungsoperator zu verwenden.

Stellen Sie sich beispielsweise vor, eine Sammlung X zu haben:

Collection X.

Sie können diese Sammlung mit ClearCollect( X, [1, 2] )erstellen.

Und eine weitere Sammlung Y:

Sammlung Y.

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

Definieren Sie außerdem eine Kontextvariable namens "Wert " 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"
)

erzeugt diese Tabelle:

XY-Tabelle.

Was passiert hier? Die äußerste ForAll-Funktion definiert einen Datensatzbereich für X, der den Zugriff auf das Wertfeld jedes Datensatzes ermöglicht, während er verarbeitet wird. Auf sie kann einfach mithilfe des Worts Wert oder mit X[@Value]zugegriffen werden.

Die innerste ForAll-Funktion definiert einen weiteren Datensatzbereich für Y. Da diese Tabelle auch ein Value-Feld definiert hat, bezieht sich die Verwendung von Value hier auf das Feld im Y-Datensatz und nicht mehr auf das Feld aus X. Um auf das Value-Feld von X zuzugreifen, müssen wir die längere Version mit dem Disambiguierungsoperator verwenden.

Da Y der innerste Datensatzbereich ist, erfordert der Zugriff auf Felder dieser Tabelle keine Mehrdeutigkeit, sodass wir diese Formel mit demselben Ergebnis verwenden können:

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

Alle ForAll-Datensatzbereiche überschreiben den globalen Bereich. Die Wert-Kontextvariable, die wir definiert haben, ist ohne den Mehrdeutigkeitsoperator nicht über ihren Namen verfügbar. Verwenden Sie [@Value], um auf diesen Wert zuzugreifen.

Gruppierung aufheben vereinfacht das Ergebnis, da geschachtelte ForAll-Funktionen zu einer geschachtelten Ergebnistabelle führen.

Tabellen mit einer Spalte

Um eine einzelne Spalte aus einer Tabelle zu verwenden, verwenden Sie die ShowColumns-Funktion wie in diesem Beispiel:

ShowColumns( Products, "Product" )

Diese Formel erzeugt diese einspaltige Tabelle:

Einzelne Spaltentabelle.

Geben Sie für eine kürzere Alternative Table.Column an, die die einspaltige Tabelle von nur Säule aus Tabelle extrahiert. Beispielsweise erzeugt diese Formel genau dasselbe Ergebnis wie "ShowColumns".

Products.Product

Inline-Datensätze

Sie ausdrücken Datensätze mithilfe von geschweiften Klammern, die benannte Feldwerte enthalten. Sie können z. B. den ersten Datensatz in der Tabelle am Anfang dieses Themas mithilfe 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 Spaltennamen ein, der ein Sonderzeichen enthält, z. B. ein Leerzeichen oder einen Doppelpunkt, in einfache Anführungszeichen. Um ein einzelnes Anführungszeichen in einem Spaltennamen zu verwenden, verdoppeln Sie es.

Beachten Sie, dass der Wert in der Spalte "Preis " kein Währungssymbol enthält, z. B. ein Dollarzeichen. Diese Formatierung wird angewendet, wenn der Wert angezeigt wird.

Inline-Tabellen

Sie können eine Tabelle mithilfe der Tabellenfunktion und einer Gruppe von Datensätzen erstellen. Mit dieser Formel können Sie die Tabelle am Anfang dieses Themas 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 verschachteln:

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

Inline-Wertetabellen

Sie können Einzelspaltentabellen erstellen, indem Sie Werte in eckigen Klammern angeben. Die resultierende Tabelle weist eine einzelne Spalte mit dem Namen "Value" auf.

Beispielsweise ist [ 1, 2, 3, 4 ] äquivalent zu Table( { Value: 1 }, { Value: 2 }, { Value: 3 }, { Value: 4 } ) und gibt die folgende Tabelle zurück:

Inline-Tabelle.