9 A.06.02.o

9.1 Kern

IDM-13142: Spezielle Konstellationen bei vererbten Referenzen von Tablefield-Attributen führen nun beim Entaden des Modules aus dem die Referenzen kommen nicht mehr zum ASSFAIL.

IDM-13157: Beim Herausschreiben von Interface-Dateien werden nun die korrekten Argument-Bezeichner bei Methoden ausgegeben.

IDM-13158: Beim Herausschreiben von Interface-Dateien werden nun durch überschriebenen Methoden, die aus unterschiedlichen Modulen stammen, erkannt und nicht doppelt im Interface aufgeführt.

IDM-13159: Beim Laden von ASCII-Modulen/Dialogen erfolgt beim Auftreten von manchen Syntax-Fehler auf jeden Fall die Rückgabe als Fehler.

IDM-13093: Fehlerboxen im IDM enthalten nun einen Cancel-Button mit dem weitere Fehler (die z.B. während des Ladevorganges auftreten) unterdrückt werden können. Die unterdrückten Fehlermeldungen gelangen also in die Logdatei (als [E:-Meldung]).

Fehlermeldungen des IDM werden systemtypisch unter Windows in einer Dialogbox ausgegeben, unter UNIX/Linux hingegen ins Log- oder Tracefile. Zwar kann mittels Startoption -IDMerrwinfile auch unter Windows eine Umleitung in eine Datei passieren, falls diese Option jedoch nicht genutzt wird, kann es u.U. zu sehr vielen Fehlermeldungen führen, die meist den Anwender dazu verleiten das IDM-Anwendungprogramm zu killen. Die Fehlermeldungs-Dialogbox wurde nun mit einem Cancel-Button ausgestattet, sodass ein weiteres Aufpoppen von Fehlermeldungen in einer Dialogbox unterbunden wird. Statt dessen gelangen diese Meldungen als [E:...]-Meldungen in die Logdatei. Ein Abbruch der Anwendung findet aber nicht statt bzw. ist auch nicht möglich, sondern lediglich die Unterbindung der Dialogboxen. Wenn gewünscht kann dies durch den Anwendungsprogrammierer in einem Error-Handler passieren. Dabei ist das Laden eines Dialoges/Modules als ein atomarer Block behandelt. D.h. das Unterbinden der Dialogboxen wirkt bis zum Ende diese Blocks. Grundsätzlich ist ein Unterdrücken von ASSFAIL-Dialogboxen nicht möglich.

9.2 Unix

Neu: Neue Plattform: RHEL 9.0 for 32/64bit mit Compiler GCC11.2.1, Motif 2.3.4 und Qt5.15

Mit RHEL9 werden standardmäßig keine rsh-server-Pakete ausgeliefert. Für die Nutzung von DDM ist dann zwingend die Verwendung von SSH für das Starten eines DDM-Servers nötig.

Der IDMED nutzt, falls keine Xft-Fonts vorhanden sind bzw. die Xft-Unterstützung deaktiviert wurde, die X11-Lucida-Fonts in der Unicode-Variante iso10646. Wir empfehlen deshalb die Installation der folgenden Pakete:

  • xorg-x11-fonts-100dpi
  • xorg-x11-fonts-75dpi

Da RHEL9 ohne statische PCRE-Library geliefert wird, kann der IDM/ IDMED die PCRE-Funktionalität nur dynamisch anbinden. Außerdem wird bei einer Desktop-Installation z.T. nicht automatisch Motif installiert. Wir empfehlen außerdem die Prüfung auf Installation der Pakete:

  • motif
  • libXpm
  • pcre
  • libxslt
  • libxml2
  • libssh

Da der IDM für Qt bestimmt Pakete verwendet, welche nicht zwangsläufig mit den Qt-Haupkomponenen installiert werden, empfehlen wir die Prüfung auf und ggf. die Installation der folgenden Pakete:

  • libQt5X11Extras

Hinweis: Der IDM für Motif/ Qt ist als X11-Anwendung konzipiert und beinhaltet keine expliziten Support für den Display-Server Wayland. Wayland ist als X11-Nachfolger designed und beinhaltet einen eine kompatible Umsetzung des X11-Protokolls. Da dies aber nicht zu 100% funktioniert, empfehlen wir IDM-Anwendungen unter einem X11-Server laufen zu lassen und z.B. beim Login die Desktop-Variante mit nativen X-Server auszuwählen.

Hinweis: Unter RHEL9 wird standardmäßig der UI-Style Adwaita angewandt. Dieser führt jedoch zu unerwünschten und unschönen Darstellungseffekten bei Qt-Anwendungen. Wir empfehlen daher für mit dem IDM für Qt erstellten Anwendungen den Einsatz des Styles Fusion.
Der verwendete Style kann über die Systemeinstellung geändert werden (sofern dort unterstützt). Alternativ kann über die Umgebungsvariable QT_STYLE_OVERRIDE der zu verwendende Style für alle Qt-basierten Anwendungen festgelegt werden oder man gibt direkt beim Start der Anwendung den -style-Parameter mit (z.B.: idm -style Fusion MyDialog.dlg).

9.3 Windows

IDM-13151: Das Setzen des Inhalts eines edittext (editierbarer Text) Objektes konnte verloren gehen, wenn es direkt davor Setzungen gab, die dafür sorgten, dass das edittext Objekt den Fokus verlor. Jetzt werden dynamische Attributwerte im WSI so lange gemerkt wie das Objekt sichtbar ist. Ein Zurückschreiben erfolgt erst beim unsichtbar Schalten, da dieser Vorgang synchronisiert abläuft. Hierdurch tritt das Problem nicht mehr auf, da es kein vorzeitiges Speichern von bereits geänderten Attributwerten gibt.

IDM-13143: Ein Model konnte im IDM Editor nicht angezeigt werden, wenn es gerade aus einer Instanz erzeugt wurde. Nach einem Neuladen des Dialogs wurde das Model angezeigt.

9.4 Qt

IDM-13160: Der Inhalt einer Tablefieldzelle konnte unsichtbar sein, wenn die Vorder- oder Hintergrundfarbe explizit für eine Zelle gesetzt wurde (Setzung mit Index). Ursächlich war derOptimizer von g++.

IDM-13146: Das tablefield Objekt hatte die Option sel_header bei .selection[enum] nicht beachtet. Dies führte dazu, dass Zellen im Header aktiviert werden konnten und auch am Drag & Drop teilnahmen. Die Header sind jetzt auf nicht selektierbar gesetzt. Es bleibt aber zu beachten, dass das Qt Selektions Model verwendet wird.

Hinweis für Qt-spezifisches Verhalten des tablefield Objektes:

Es werden aktivierte Zellen deaktiviert, wenn auf eine Header-Zelle bei .selstyle[sel_header = false geklickt wird.

Bei .fieldfocusable = true erfolgt auch bei Klick auf eine insensitive Zelle eine Umaktivierung. Es werden die entsprechenden activate und deactivate Ereignisse erzeugt, es kommt aber kein select Ereignis mit Index.

Wenn keines der Element sel_single, sel_row und sel_single beim .selection[enum] Attribut den Wert true besitzt, wird sel_single verwendet.

IDM-13144: Wenn ein tablefield Objekt unsichtbare Zeilen oder Spalten enthielt, dann konnte es vorkommen, dass die Header Zeilen oder Spalten verschwanden. Dies war abhängig on der Scrollposition und trat dann auf, wenn unsichtbare Zeilen oder Spalten nach oben bzw. link aus dem Darstellungsbereich gescrollt waren.

IDM-13153: Wenn bei einer scrollbar initial ein .curvalue und .maxvalue größer 100 angegeben wurde, so wurde der .curvalue auf 100 zurück gesetzt.

Behoben: Abstürze unter 64bit beim Zeichnen von Hintergründen mit Mustern beseitigt.

Hinweis: Objekte werden standardmäßig mit den vom Desktop-Style vorgegebenen Werten durch das WSI/ Toolkit dargestellt. Besonders unter neueren Desktops kann es u.U. vorkommen, dass insbesondere Rahmen, Hintergründe oder Scrollbars usw. nun abweichend, gar nicht oder sogar dynamisch dargestellt werden. Z.B.: Groupboxen könnten ohne Rahmen dargestellt werden, Scrollbars verändern ihr Aussehen beim Überfahren mit der Maus.
Der verwendete Style kann über die Systemeinstellung geändert werden (sofern dort unterstützt). Alternativ kann über die Umgebungsvariable QT_STYLE_OVERRIDE der zu verwendende Style für alle Qt-basierten Anwendungen festgelegt werden oder man gibt direkt beim Start der Anwendung den -style-Parameter mit (z.B.: idm -style Fusion MyDialog.dlg).

Neu: zusätzliche Option am filereq Objekt fuer Linux/Qt.

Normalerweise verwendet der IDM für das filereq-Objekt einen nativen Dialog des System. Dieser wird u.A. vom Desktop bereitgestellt und kann sich dadurch bzgl. dem Funktionsumfang und Verhalten deutlich unterscheiden, ist aber besser in den Desktop integriert und deshalb normalerweise zu präferieren.

Durch Setzung der Option .options[fro_nativedialog]:=false kann nun die Benutzung des Qt/Toolkit-spezifischen Dialoges forciert werden.

Auf anderen Systemen (Windows/ Motif) hat diese Option aktuell keine Bedeutung. Der IDMED, IDMDBG sowie IDMTA benutzten nun den Qt/Toolkit-spezischen Dialog für das Laden/ Speichen/ Selektieren von Dateien/ Verzeichnissen.

9.5 DDM (Netz)

IDM-13148: Es konnte vorkommen, dass auf der Darstellungsseite kein finish Ereignis ausgelöst wurde, nachdem die Anwendungsseite abgebrochen wurde. Dies lag daran, dass die Anwendungsseite noch eine "Shutdown"-Anforderung geschickt hat. Jetzt wird diese Anforderung auch als Fehler betrachtet, wodurch dann das finish Ereignis ausgelöst wird. Ein reguläres Ende wird von der Darstellungsseite initiiert, so dass es hier nicht zu der Shutdown-Anforderung kommt.

IDM-13167: Mit der Einführung der SSL Unterstützung hat sich das Protokoll des Verbindungsaufbaus bei .exec geändert. Die zusätzliche Ausgabe wurde auch an die Netzwerk-Handler Callbackfunktion weitergeleitet. Diese Ausgabe wird jetzt als DM_NET_CONNECTMESSAGE gekennzeichnet damit diese von der normalen Ausgabe DM_NET_MESSAGE unterscheidbar ist.

  • DM_NET_CONNECTMESSAGE: STDOUT-Ausgabe zum Verbindungsaufbau der mittels ".exec" gestarteten Anwendungsseite. Muss unverändert an IDM weitergeleitet werden.
  • DM_NET_MESSAGE: STSOUT-Ausgabe der mittels .exec gestarteten Anwendungsseite. Die Ausgabe wird Zeilenweise an den NetHandler weitergegeben (Ausnahme wenn der Socket geschlossen wird). Achtung: Als erstes wird ein 0-Byte gesendet (rsh-Protokol ?) und der IDM schickt einen Zeilenumbruch vor dem Verbindungsaufbau.

Bei der DM_NetHander Funktion gibt es für die NetHandler Callbackfunktion jetzt den Kommunikationsvorgang (Strukturelement "action") DM_NET_CONNECTMESSAGE der die Stdout-Ausgabe zum Verbindungsaufbau der mittels .exec gestarteten Anwendungsseite kennzeichnet. Außerdem wurden einige kleinere Fehler in der Weiterleitung der Stdout-Ausgabe an die NetHandler Callbackfunktion behoben. Hierduch kann es zu Änderungen bei DM_NET_MESSAGE kommen:

  • 0-Bytes wurden bisher zu '@' konvertiert, diese bleiben jetzt als 0-Bytes erhalten.
  • Es konnte vorkommen, dass die Callbackfunktion verfrüht, vor Erhalt des Zeilenendes, aufgerufen wurde. Dies geschieht nun nur noch beim Schließen der Verbindung.
  • Es konnte vorkommen, dass Daten nicht an die Callbackfunktion weitergeleitet wurden.

9.6 COBOL

IDM-13149: Auf Nicht-Intel Architekturen wurden zum Teil Parameter an COBOL Record-Funktionen falsch übergeben. Dies lag daran, dass die von +writetrampolin erzeugte Funktion Parameter, die keine Records waren, zum Teil direkt an die COBOL Funktion weitergegeben hatte. Dies war falsch, wenn der von COBOL verwendete Datentyp kleiner war. Dies trat zum Beispiel bei boolean auf. Jetzt wird jeder Parameter erst einmal auf den richtigen Datentyp umkopiert.

IDM-13161: Die COBOL DM-getsep und DM-setsep Buchstaben wurden auf der Netzwerk Anwendungsseite nicht richtig gesetzt. Dies lag an einer Diskrepanz der DM_Control Bearbeitung.

Behoben: Auf Nicht-Intel Architekturen wurde das Endzeichen DM-setsep nicht erkannt. Hierdurch wurde das Endezeichen und eventuell folgende Zeichen an den IDM übertragen. Jetzt wird das Stringende wieder erkannt.

9.7 Dokumentation

IDM-13154: Beschreibung des checkbox Objekts bzgl Tab-Navigation verbessert und in der englischen Dokumentation aktualisiert.

IDM-13124: Beschreibung für CP_ucp und DMF_SetUserCodePage in C-Funktionsbeschreibung DM_Control und DM_ControlEx verbessert.

IDM-13165: Hinweise zur Kompatibilität/ Unterschiede vom tablefield Objekt unter Qt in die Beschreibung aufgenommen. Englische Beschreibung des Tablefield-Objekts aktualisiert.

IDM-13128: Fehlende Beschreibung für das indizierte Attribut .label[anyvalue] hinzugefügt.