Information

  • Modulpanels bieten die Möglichkeit, mehrere zusammenhängende Module an der Oberfläche gebündelt darzustellen.
  • Jedes Panel enthält immer das Benutzermenü- und ein Hauptmodul sowie ggf. ein oder mehrere Untermodule.
  • Um ein Panel zu customizen sind mindestens zwei Module erforderlich.

Vorgehensweise

  • Im Customizing-Modul Module die Nummer des Anwendungsmoduls, das in einem Panel das Hauptmodul sein soll, in das Feld MOD eingeben und die Checkbox Hauptmodul aktivieren.
  • Über die rechte Maustaste Einfügen → Untermodul einen Datensatz für ein Untermodul einfügen.
  • Im Feld SUBMOD die Nummer des Moduls eingeben, das als Untermodul in das Panel eingefügt werden soll.
    • Falls erforderlich auf die gleiche Art weitere Untermodule hinzufügen.
  • Die Parameter festlegen, die die Darstellung (Auto Hide), die Größe (Modulgröße) und die Stelle des Untermoduls im Panel regeln.
    • Unter der Stelle versteht man hier nicht nur die absolute Position des Moduls (oben, rechts etc.) sondern auch die Position des Moduls in Bezug auf andere Module. Sie wird durch folgende Parameter bestimmt:
  • Speichern.

Hinweise

  • Hat eines der Untermodule selbst Untermodule, werden diese im aktuellen Panel nicht angezeigt.
  • Ist eines der Untermodule ein Hauptmodul in einem anderen Panel (Parameter Hauptmodul ist aktiviert), ist es trotzdem ein Untermodul im aktuellen Panel.

Laden von Untermodulen

Informationen

  • Beim Laden von Panels wird das Hauptmodul komplett geladen.
  • Untermodule werden aus Performance-Gründen nur teilweise geladen (d.h. nur Daten der DT405 Modul).
  • Das Laden der restlichen Moduldaten soll so spät wie möglich erfolgen d.h. erst wenn der Benutzer das Modul fokussiert bzw. beim Aufruf der Funktionen: on_initial_focus() oder on_focus() über ein Python-Makro.
  • Zugriffe (schreibende oder lesende) auf folgende Modulinternas führen zum vollständigen Nachladen (dies gilt nicht nur nur für Zugriffe über die on_load() -Methode der Untermodule, sondern auch für Zugriffe aus Makros von anderen Modulen):

Tipps

  • Dauert das Laden eines Panels (der Untermodule eines Panels) lange, empfiehlt es sich die on_load() -Methode zu überprüfen, ob die entsprechenden Befehle in die on_focus() oder on_initial_focus() -Methode verschoben werden können.
  • Makrozeilen werden immer beim Laden eines Moduls/Untermoduls ausgeführt. Daher empfiehlt es sich Makrozeilen in ein Python-Makro umzuwandeln und dabei zu prüfen, ob man die Befehle in die on_focus() oder on_initial_focus() -Methode aufnehmen kann.
  • Mit der Python-Methode is_stub() kann geprüft werden, ob ein Untermodul bereits vollständig geladen ist.
    • Die Methode kann z.B. verwendet werden, um festzulegen, dass auf Modulinternas eines Untermoduls nur zugegriffen wird, wenn das Untermodul bereits vollständig geladen ist.

Details

  • Das Debug-Logfile (mit LOG_LEVEL = 15) enthält nützliche Informationen über das Laden von Panels/Untermodulen, z.B.:
    • Informationen, welche Untermodule komplett geladen wurden und warum:
    • DEBUG: Rebuilding stub module 0099D6 as a full module (Reason: Apply module variant by id))
    • DEBUG: Rebuilding stub module 009B98 as a full module (Reason: Get data area pr_id)
  • Informationen, wieviele Untermodule eines Panels komplett geladen wurden:
    • DEBUG: 3 out of 17 stub modules have been rebuilt as full sub modules while loading main module 0099JT
  • Mit "stub" wird hier das oben beschriebene partielle Laden der Untermodule gemeint.