wiki-spaces-s1-pages-1484554245-feldreferenzen.md
By Viktor Rohn (Unlicensed)
5 min
Add a reaction
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.
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.
|
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:
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:
"_": 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).
|
Collapse action bar
View all comments
Open Details Panel
Create page
Open Rovo Chat
Add a comment
Add a reaction