Soweit, so gut, doch was, wenn Du für die Parameterliste von List.Generate mehrere Werte benötigst oder als Parameter übergeben willst?
Vielleicht hast Du es ja eben noch nicht bemerkt, doch in Bsp. 1 und Bsp. 2 verwendeten wir noch hartcodierte Variablenwerte:
List.Generate(
() => 0,
each _ < 13,
each _+2,
each _*_
)
Die 0 als Startwert, die 13 als Endwert und die 2 für die Schrittweite. In Bsp. 3 hatte ich bereits Variablen dafür eingesetzt. Die sind zwar an dieser Stelle immer noch hartcodiert, haben jetzt aber Variablennamen, mit denen wir arbeiten und die wir ggf. sogar mehrfach verwenden können (ein weiterer Vorteil von Variablen).
Wie man Variablen tatsächlich voll variabel macht, erfährst Du im Kapitel Variablen.
Schauen wir uns die Änderung zum obigen Code mal genauer an:
let
Startwert = 0,
Maxwert = 13,
Schrittweite = 2,
GenerierteListe =
List.Generate (
() => Startwert ,
each _< Maxwert ,
each _+Schrittweite ,
each NeueListenwerte(_)
),
...
...
in
GenerierteList
Hierbei machen wir uns folgenden Umstand zu Nutze:
- jeder Schrittname,
- der unterhalb von let und (logischerweise)
- vor einem = steht,
- kann über diesen Schrittnamen (der vor dem = steht) in der kompletten Abfrage als Variable mit diesem Schrittnamen verwendet werden.
Konkret:
Die Werte der Schritte Startwert, Endwert, Schrittweite können innerhalb der Abfrage „List_Generate Beispiel 3“ (ihrem Gültigkeitsbereich über deren Schrittnamen (Zeilen 9, 10 und 11 im Bild) ermittelt werden .

Hier wurden außerhalb der Anweisung „GenerierteListe“, die ja das Resultat der Funktion List.Generate aufnehmen soll, 3 Variablen deklariert und initialisiert.
- Startwert = 0
- Endwert = 13
- Schrittweite = 2
Es sind jedoch private Variablen, da sie tatsächlich nur innerhalb dieser Abfrage bekannt sind dafür aber in dieser Abfrage von jedem einzelnen Schritt abgefragt und verwendet werden können.
Aufruf und Verwendung durch andere Abfragen ist allerdings so nicht möglich. Wie das möglich ist, wird in einem separaten Thema (Metadaten) behandelt werden.
Schreibe einen Kommentar