[Makro - "DatenEditDialogÖffnen"] Wie Benutze ich Parameter 3?

Paul@GEKKO

Mitglied
Hallo Zusammen,

ich möchte aus einem DatenEditDialog einen weiteren öffnen, dieser zu öffnende DatenEdit-Dialog hat als Basis eine Datenstruktur, mit einer Liste(Schreibende Liste) und einen SelektionsElement, welchesdie Liste entsprechend vorfiltert.

Leider übergebe ich diesen zuerst als Key ans Daten-Edit und dieser legt den Wert dann beim öffnen ins entsprechende Feld des Selektionsdialoges, aber laut beschreibung im Makro-Editor, sollte ich auch eine Variable übergeben können(?!?):
1673873493483.png

Leider bekomme ich immer "beim Öffnen" die Mitteilung(TraceLog): "Die globale Variable '__uebergeben' ist nicht definiert."


Ich würde mich freuen, wenn mir jemand ein Beispiel aufzeigen kann oder mir sagen kann, in welchen Fällen dies nur funktioniert.


Vielen Dank und MfG Paul@GEKKO
 
Moin Paul,

hast du denn die globale Variable bevor du auf Ihren Wert zugreifts vorher initialisiert ? (Makro - FestlegenLokaleVar)

Kurze Erläuterung globale Variablen laut Doku:
Globale Variablen sind lokale Variablen deren Gültigkeitsbereich und Lebenszeit sich über das gesamte DataEdit, inkl seinen UI-Elementen (MultiDataEdit, Kontexmenüeinträge) erstreckt. Sie sind damit also die Erweiterung der lokalen Variablen und beginnen immer mit zwei Unterstrichen "__". Sie sind allerdings nicht auf Dateneben verfügbar.

Beste Grüße
Rouven
 
Hallo @R.Ziemer,

leider ist mir garnicht mehr bewusst, wofür ich dies nutzen wollte...
Die GlobaleVar habe ich gewiss beim OnOpen Event vom DataEdit-Element gesetzt, ich habe das ganze dann aber etwas anders gelöst. Glaube der Kniff, dass aus SelektionsDialogen die EingabeFelder als Variable mit _Feldname zurück kommen! Bestimmt nutzte ich auch stattdessen ein "Schlüsselfeld" was nur zum Auffangen des Wertes genutzt wurde.

Wie wäre denn die Syntax um die __Globale dann auch direkt nach dem öffnen eines Unterelementes zu bekommen und sollte im Unterelement eine Änderung an der Variable stattfinden, ist diese Änderung dann auch dem DataEdit(Master) bekannt oder ist das eher 'one way'?
Garantiert kann ich dies in Zukunft dann doch noch verwenden.

Danke und MfG Paul@Gekko
 
Moin @Paul@GEKKO ,

ich habe dir zur besseren Darstellung kurz ein Beispiel gebaut. Hier wird die Unterscheidung der Weiterreichung von globalen Variablen sehr gut deutlich. Binde die Lösung einfach kurz bei dir ein und schau dir den entsprechenden Code dazu an.

In einem MasterDetailElement steht uns zum Beispiel kein Event zur Verfügung, um für das Master und Detailelement eine gemeinsame globale Variable zu initialisieren. Hier ist es nur möglich im OnOpen-Event des Master- oder Detailelementes die Initialisierung vorzunehmen. Dementsprechend ist die Gültigkeit auch nur innerhalb des jeweiligen Master- oder Detailelementes.

In einem DataEditElement steht uns hingegen ein OnOpen-Event oder Parameter 2/3 im Aufruf zur Verfügung und wir können für alle untergeordneten Elemente (Unterelemente, Kontextmenüs etc.) eine globale Variable initialisieren, die entsprechend zwischen den Elementen weitergereicht wird -- also nicht 'one way'.

In der Lösung ist dafür die globale Variable ein Counter, sodass der jeweilige Bezug deutlich wird. Nach Einbinden der Lösung findest du die beiden Bereiche im Regiezentrum:

1683793024702.png

Über folgenden Aufruf des DataEditElementes könntest du beziehend auf deine Anfangsfrage auch direkt in Parameter 3 die Variable initialisieren und brauchst nicht mehr das OnOpen Event:
1683873315224.png

Beste Grüße Rouven
 

Anhänge

  • GlobaleVariable.1.0.1.metadata.zip
    4,2 KB · Aufrufe: 9
Zuletzt bearbeitet:
Zurück
Oben