Information
-
Ein Modulsteuerelement ist ein Modul, das in einem Datenfeld eines anderen Moduls eingebettet wird.
-
Das Modul mit dem Datenfeld wird nachfolgend Host-Modul genannt, das Datenfeld selbst Modulsteuerelement-Datenfeld.
-
Damit lassen sich Bausteine wie ein Diagramm oder ein Dashboard-Element einmal customizen und in mehreren Modulen wiederverwenden, statt sie je Modul erneut zu konfigurieren.
-
Das Host-Modul bestimmt Position und Größe. Das Modulsteuerelement bringt seine eigene Logik mit und verarbeitet die Eingaben der Benutzer selbst.
Modulsteuerelement vorbereiten
Vorgehensweise
-
Das Modul, das als Steuerelement dienen soll, wie ein normales Modul customizen.
-
Für den Parameter Klasse den Wert “4” belassen.
-
Module anderer Klassen funktionieren nicht.
-
Modulsteuerelement-Datenfeld anlegen
Vorgehensweise
-
Im Customizer den Datenbereich öffnen, in dem das Modulsteuerelement erscheinen soll.
-
Ein Datenfeld mit dem DI004336 Button/IronPython einfügen.
-
Den Parameter DF-Verhalten auf “mc” setzen.
-
Die Parameter DF-Breite und DF-Höhe setzen. Bleiben beide leer, wird das Modulsteuerelement nicht dargestellt.
-
In der Datenfeld-Konfiguration die ID des Moduls im JSON-Format eintragen und speichern.
Beispiel
{
"Embedded": {
"Module": "009DQ3"
}
}
Customizing-Regeln
Details
-
Anders als Tooltip-Module dürfen Modulsteuerelemente interaktive Elemente enthalten - Listboxen, Schaltflächen und Links sind ausdrücklich vorgesehen.
-
Ein Modulsteuerelement darf seinerseits auch Modulsteuerelemente enthalten.
-
Ein Modul darf sich nicht selbst einbetten, weder direkt noch über eine Kette weiterer Module.
Zusammenspiel von Host-Modul und Modulsteuerelement
Information
-
Beim Laden führt der Server auf dem Modulsteuerelement die Methode
on_module_control_load(datafield)aus, sofern sie vorhanden ist. Anschließend folgton_initial_focus(). -
Als Parameter erhält die Methode das Modulsteuerelement-Datenfeld des Host-Moduls. Über
Datafield.get_record()lässt sich der Datensatz ermitteln, in dessen Kontext das Modulsteuerelement geladen wurde. -
Über get_invoker_module() erreicht das Modulsteuerelement das Host-Modul.
-
Die Ereignisse
on_focus(),on_reset(),on_before_mv_switch()undon_after_mv_switch()des Host-Moduls werden auch auf allen seinen Modulsteuerelementen ausgeführt.
Beispiel
def on_module_control_load(self, datafield):
record = datafield.get_record()
host = self.get_invoker_module()
Hinweis
-
Klickt ein Benutzer in ein Modulsteuerelement, wird dieses zum aktiven Modul. Befehle, die sich auf einen Datensatz beziehen, wirken dort.
-
Befehle, die sich auf das ganze Modul beziehen, wirken weiterhin auf dem Host-Modul.
Siehe auch: DT411 Datenfeld, Typ der Datenfelder festlegen, Python API Reference, Tooltips customizen