Feldreferenzen
Feldreferenzen werden zum Referenzieren von Werten in den aktuell geladenen Daten verwendet. Sie werden für die Makro-Funktionalität und in den dort genutzten Ausdrücke 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,
Listen-Element | Referenziert ein Feld im zugrunde liegenden Datenkontext. Bestandteile:
Hinweise bei Verwendung in einem Listen-Element: Referenziert ein Feld im zugrunde liegenden Datenkontext. Bestandteile:
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:
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:
Dialog-Variablen sind eine Erweiterung der lokalen Variablen. Für sie gilt zusätzlich:
|
[feldname.Von] und | 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.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:
|
[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(index).feldname] | Daten-Edit-Element, | Referenziert eine Zelle der angegebenen Zeile in einem Unter-Element (Multi-Daten-Edit-Element). Bestandteile:
|
[feldnameUnterelement($IndexSelected).feldname] | Daten-Edit-Element, | Referenziert die Felder der selektierten Zeilen eines Multi-Daten-Edit-Elements. Bestandteile:
Ergebnis:
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ü
Aufrufen Makro-Befehl “FürJedenWert” Ergebnis: Werteliste Sonstige Verwendungen (außer “FürJedenWert”):
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, | Referenziert die UUID's der selektierten Zeilen in einem Multi-Daten-Edit-Element (schreibgeschützt). Bestandteile:
Ergebnis:
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:
|
[$NavigationSelection.feldname] | Daten-Edit-Element | Referenziert ein Feld des Selektions-Elementes im Navigations-Element des Daten-Edit-Elementes. Bestandteile:
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:
Ergebnis:
|
[$Data.feldname] | Selektions-Element, | Referenziert ein Feld im Daten-Edit-Element. Bestandteile:
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:
Ergebnis:
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:
|
[$Me($IndexSelected).feldname] | Listen-Element | Referenziert die Feldwerte der selektierten Zeilen innerhalb einer Liste (schreibgeschützt). Bestandteile:
Ergebnis:
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 | Konstante, die anstatt eines Feldnamens verwendet werden kann.
|