Feldreferenzen

Feldreferenzen werden zum Referenzieren von Werten in den aktuell geladenen Daten verwendet. Sie werden für die  und in den dort genutzten  verwendet.

Datenkontext

Die Daten des zugrunde liegenden Elementes, in dem die Feldreferenz verwendet wird, sind die Ausgangsbasis für die Adressierung. Diese werden als "Datenkontext" bezeichnet.

Beispiele:

  • In einem Daten-Edit-Element: Die oberste Ebene des aktuellen Datensatzes

  • In einem Multi-Daten-Edit-Element: Alle Teil-Datensätze der n-Seite.

  • Im Menü einer Liste eines Navigations-Elementes: Der selektierte Datensatz, oder bei Mehrfachselektion die selektierten Datensätze der Datenquelle, falls vorhanden.

    • Hinweis: Da die Liste "virtualisiert" arbeitet, stehen im Gegensatz zum Multi-Daten-Edit-Element nicht alle Datensätze zur Verfügung. Werden Spalten referenziert, führt dies dazu, dass sie beim Laden der Datenquelle immer zum Client übertragen werden, also auch wenn der Anwender sie per Konfiguration ausgeblendet hat.

Feldreferenzen

Feldreferenz

gültig in Element

Erläuterung

[feldname]



Daten-Edit-Element,
Multi-Daten-Edit-Element Selektions-Element

 

 

 

Listen-Element

Referenziert ein Feld im zugrunde liegenden Datenkontext.

Bestandteile:

  • <feldname>: Feldname im Datenkontext

 

Hinweise bei Verwendung in einem Listen-Element:

Referenziert ein Feld im zugrunde liegenden Datenkontext.

Bestandteile:

  • <feldname>: Feldname im Datenkontext

Diese Schreibweise ist sin Synonym zu folgender ausführlicher Schreibweise:

[$Me($IndexSelected).feldname]

Die weitere Beschreibung ist dort zu finden.

[_feldname]



generell

Referenziert eine lokale Makro-Variable. Diese beginnen mit einem Unterstrich ("_").

Bestandteile:

  • "_": Konstante

  • <feldname>: Feldname der lokalen Variable

Die lokale Variable entsteht dynamisch durch Zuweisung mit dem Makro-Befehl „FestlegenLokaleVar“ oder als Rückgabe von Makro-Befehlen wie z.B. "AufrufenDll". Die Lebensdauer lokaler Makro-Variablen beschränkt sich auf das aktuelle Makro. Verschachtelt aufgerufene Makros (Aufruf von Funktionen, die wiederum ein Makro ausführen) erben die lokalen Variablen des Aufrufers und können dadurch schreibend und lesend auf diese zugreifen.

[__feldname]

(Ab Version 9.0.1)

Daten-Edit-Element und Listen-Element

Referenziert eine Makro-Variable, die während der kompletten Lebensdauer des Dialogs gültig ist (kurz "Dialog-Variable"). Diese beginnen mit einem doppelten Unterstrich ("__").

Bestandteile:

  • "__": Konstante

  • <feldname>: Feldname der Dialog-Variable

Dialog-Variablen sind eine Erweiterung der lokalen Variablen.

Für sie gilt zusätzlich:

  • Der Gültigkeitsbereich ist die komplette Lebensdauer des geöffneten Dialogs.

  • Sie eignen sich dazu, um einmalig Daten-unabhängige Einstellungen zu lesen, die über einfache Mandanteneigenschaften hinaus gehen (z.B. für spezielle Rechteprüfungen im Server-seitigen Ereignis "OnOpenPart") oder um beim Makro-Befehl "DatenEditDialogÖffnen" Parameter an Makros zu übergeben.

  • Solche quasi "globalen" Variablen sollten sparsam verwendet werden, um Seiteneffekte zu vermeiden.

[feldname.Von] und
[feldname.Bis]

Selektions-Element

Referenziert das "Von"- bzw. "Bis"-Feld eines Von-Bis-Feldes. In Selektions-Elementen wird dafür nur ein Feld in den Metadaten definiert (siehe Eigenschaft "IsFromTo"). Zur Laufzeit werden daraus zwei Felder mit getrennten Werten erzeugt.

Bestandteile:

  • <feldname>: Feldname im Selektions-Element

  • "Von": Konstante zur Referenzierung des Von-Wertes

  • "Bis": Konstante zur Referenzierung des Bis-Wertes

[feldname.IstMehrfachselektion]

Selektions-Element

Fragt für ein Von-Bis-Feld ab, ob dort aktuell eine Mehrfachselektion genutzt wird. In Selektions-Elementen ist dies eine Funktionalität der Von-Bis-Felder (siehe Eigenschaft "IsFromTo"). In einem Mehrfachselektions-Fall kann das Makro "FürJedenWert" zum Zugriff auf die einzelnen Werte der Mehrfachselektion genutzt werden.

Bestandteile:

  • <feldname>: Feldname im Selektions-Element

  • "IstMehrfachselektion": Konstante zur Referenzierung der Information, ob eine Mehrfachselektion genutzt wird

[feldnameUnterelement.feldname]

Daten-Edit-Element, aber nur in den Makro-Befehlen "FestlegenFeldBezeichnung" und "FestlegenSpalteSichtbar"

Referenziert die Bezeichnung bzw. die Sichtbarkeit einer MDEE-Spalte

Bestandteile:

  • <feldnameUnterelement>: Logischer Feldname eines MDEE im Daten-Edit-Element

  • <feldname>: Spaltenname im MDEE

[feldnameUnterelement(index).feldname]



Daten-Edit-Element,
Multi-Daten-Edit-Element und
Selektions-Element

Referenziert eine Zelle der angegebenen Zeile in einem Unter-Element (Multi-Daten-Edit-Element).

Bestandteile:

  • <feldnameUnterelement>: Logischer Feldname eines MDEE im Daten-Edit-Element bzw. Konstante "$Me" im Multi-Daten-Edit-Element selbst

  • <index>: Laufender Index (1-basiert) der Zeile

  • <feldname>: Feldname im MDEE

[feldnameUnterelement($IndexSelected).feldname]



Daten-Edit-Element,
Multi-Daten-Edit-Element und
Selektions-Element

Referenziert die Felder der selektierten Zeilen eines Multi-Daten-Edit-Elements.

Bestandteile:

  • <feldnameUnterelement>: Logischer Feldname eines MDEE im Daten-Edit-Element bzw. Konstante "$Me" im Multi-Daten-Edit-Element selbst

  • "$IndexSelected": Konstante

  • <feldname>: Feldname im MDEE

Ergebnis:

  • keine Selektion: Ein Leerstring

  • bei einer oder mehreren selektierten Zeilen:

Es wird entweder eine Werteliste (Semikolon-separierte Liste von Feldwerten; Texte werden in Anführungszeichen eingefasst, innenliegende Anführungszeichen werden verdoppelt) oder ein einzelner Wert (unmaskiert) geliefert. Ob Werteliste oder Einzelnwert richtet sich nach dem Aufrufer der Feldreferenz:

Aufrufer Kontextmenü

  • Eigenschaft “Mehrfachauswahl zulässig” = nein Ergebnis: Einzelwert

  • Eigenschaft “Mehrfachauswahl zulässig” = ja Ergebnis: Werteliste

Aufrufen Makro-Befehl “FürJedenWert” Ergebnis: Werteliste

Sonstige Verwendungen (außer “FürJedenWert”):

  • Feld (AfterChange-Ereignis, etc)

  • Datensatz (OnCurrent-Ereignis)

  • Alle Aufrufe vom Parent aus

Es wird immer die aktuelle Zeile referenziert Ergebis: Einzelwert

Beispiel für die Liste der Feldwerte des Feldes "Kto" der im Unterelement "Kontokorrent" selektierten Zeilen:

[Kontokorrent($IndexSelected).Kto]

[feldnameUnterelement($UuidSelected)]



Daten-Edit-Element,
Multi-Daten-Edit-Element und
Selektions-Element

Referenziert die UUID's der selektierten Zeilen in einem Multi-Daten-Edit-Element (schreibgeschützt).

Bestandteile:

  • <feldnameUnterelement>: Logischer Feldname eines MDEE im Daten-Edit-Element bzw. Konstante "$Me" im Multi-Daten-Edit-Element selbst

  • "$IndexSelected": Konstante

Ergebnis:

  • keine Selektion: Ein Leerstring

  • bei einer selektierten Zeile: Die UUID der Zeile

  • bei Mehrfachselektion: Semikolon-separierte Liste der UUID's der selektierten Zeilen; diese kann für das Makro "FürJedenWert" verwendet werden

Beispiel: UUID-Liste der aktuell selektierten Zeilen für das Unterelement "Kontokorrent":

[Kontokorrent($UuidSelected)]

Ein mögliches Ergebnis wäre dann:

f5c6c612-f81a-4f0c-b932-7a847de1845e

[$Parent.feldname]



Multi-Daten-Edit-Element

Referenziert in einem Unterelement (Multi-Daten-Edit-Element) ein Feld im Eltern-Element.

Bestandteile:

  • "$Parent": Konstante

  • <feldname>: Feldname im Eltern-Element

[$NavigationSelection.feldname]



Daten-Edit-Element

Referenziert ein Feld des Selektions-Elementes im Navigations-Element des Daten-Edit-Elementes.

Bestandteile:

  • "$NavigationSelection": Konstante

  • <feldname>: Feldname im Selektions-Element des Navigations-Elementes

Beispiel: In der Buchungserfassung soll die Sitzung aus dem Buchungssatz in die Selektion oberhalb der Buchungsliste übernommen werden. Makro-Befehl:

FestlegenFeldwert | $NavigationSelection.Sitzung | [Sitzung]

$NavigationPart($AdHocCurrent).feldname]

Daten-Edit-Element

Referenziert den Filterwert einer Spalte (Adhoc-Filter) im Navigations-Element eines Daten-Edit-Elementes (schreibgeschützt).

Bestandteile:

  • "$NavigationPart": Konstante

  • "$AdHocCurrent": Konstante

  • <feldname>: Feldname im Navigation-Element

Ergebnis:

  • Der Wert aus dem Adhoc-Filter, wenn dort ein einzelner Wert ausgewählt ist.

  • Leerstring, wenn im Adhoc-Filter kein Wert aufgewählt wurde oder mehrere Werte ausgewählt wurden.

[$Data.feldname]



Selektions-Element,
wenn dieses in einem Navigations-Element eines Daten-Edit-Elementes verwendet wird

Referenziert ein Feld im Daten-Edit-Element.

Bestandteile:

  • "$Data": Konstante

  • <feldname>: Feldname im Daten-Edit-Element

Beispiel: In der Buchungserfassung soll aus dem Selektions-Element die Sitzung in den aktuellen Buchungssatz geschrieben werden (im Beispiel ohne Setzen des Dirty-Flags). Makro-Befehl:

FestlegenFeldWert | $Data.Sitzung | [Sitzung] | False

[$NavigationPart.feldname] und

[$NavigationPart($IndexSelected).feldname]



Daten-Edit-Element

Referenziert die Feldwerte der selektierten Zeile im Navigations-Element eines Daten-Edit-Elementes (schreibgeschützt).

Bestandteile:

  • "$NavigationPart": Konstante

  • "$IndexSelected": optionale Konstante (zur Kompatibilität mit früherer Schreibweise)

  • <feldname>: Feldname im Listen-Element

Ergebnis:

  • ohne Selektion: Ein Leerstring

  • bei einer oder mehreren selektierten Zeilen: Der Wert der Zelle das Satzes, der im Daten-Edit-Element geladen ist.

Anwendungshinweis:

Daten-Edit-Element und Navigations-Element sind nur lose gekoppelt. Es ist daher nicht sichergestellt, dass der Satz in der Liste immer zur Verfügung steht. Hierzu folgende Beispiele:

  • Wird das Daten-Edit-Element mit Schlüsselübergabe geöffnet und im Ereignis "Beim Anzeigen" ("OnCurrent") auf die Liste zugegriffen, ist das Ergebnis evtl. leer, weil diese parallel noch ihre Daten lädt.

  • Bei geladenem Satz im Daten-Edit-Element aktualisiert der Benutzer die Liste. Anschließend befindet sich der aktuelle Satz nicht im Ergebnis (wegen Filterungen oder Überschreitung der "Virtualisierungsgrenze" bei serverseitiger Liste).

[$Me($IndexSelected).feldname]

Listen-Element

Referenziert die Feldwerte der selektierten Zeilen innerhalb einer Liste (schreibgeschützt).

Bestandteile:

  • "$Me": Konstante

  • "$IndexSelected": Konstante

  • <feldname>: Feldname im Listen-Element

Ergebnis:

  • ohne Selektion: Ein Leerstring

  • ist Mehrfachselektion nicht zulässig: Der Wert der Zelle (ohne Maskierung)

  • ist Mehrfachselektion zulässig:
    Semikolon-separierte Liste von Feldwerten (Texte werden in Anführungszeichen eingefasst, innenliegende Anführungszeichen werden verdoppelt; die Mehrfachselektion kann für den Makro-Befehl "FürJedenWert" verwendet werden)
    Hinweis: Auch wenn die Liste nur ein Element enthält, ist der Wert ggf. maskiert.

Hinweise zur Mehrfachselektion siehe Kontext-Menü-Einträge, Eigenschaft "IsMultiselectSupported".

Beispiel für das Feld "Kto", referenziert im Makro eines Menü-Eintrages (Eigenschaft "ExecuteMacro") einer Liste:

[$Me($IndexSelected).Kto]

 

 

 

 

 

 

 

 

 

 

 

 

 

 



Für Sonderfälle können über eine Feldreferenz im Makro "FestlegenFeldwert" direkt Metadaten-Werte abgerufen werden (nur Client-seitig). Diese suboptimale Verwendung von Feldreferenzen wird in einer der nachfolgenden Versionen abgelöst.

Feldreferenz

gültig in Element

Erläuterung

$CurrentLevel

Baum-Element und
Listen-Element

Konstante, die anstatt eines Feldnamens verwendet werden kann.

  • Referenziert die aktuelle Ebene in einem Baum-Element (0-basierend).

  • Referenziert in einer Liste, ob eine Selektion vorhanden ist (1) oder nicht (-1).