Verwaltung Datensatzpuffer in einer MDI-Umgebung

In CONZEPT 16 haben die Entwickler grundsätzlich die Möglichkeit, zwischen einer SDI (Single Document Interface) – oder MDI (Multiple Document Interface) – Anwendung zu wählen. Der wesentliche Unterschied beider Konzepte besteht in der Organisation der Anwendungsfenster.


In einer SDI-Anwendung kann jedes Fenster eigene Menüleisten und Toolbars besitzen. Zudem ist das Dialogfenster modal, dies bedeutet dass bei mehreren geöffneten Fenstern innerhalb der selben Applikation lediglich in dem aktiven Fenster gearbeitet werden kann. Diese Einschränkung gibt es in einer MDI-Anwendung nicht. In dieser Umgebung kann der Anwender wahlweise mit den geöffneten Dialogfenstern arbeiten. Für welches Fensterlayout sich der GUI Entwickler entscheidet, hängt im wesentlichen von den Anforderungen der Applikation ab.

Problemstellung

Auf dem CONZEPT 16-Client wird für jede Tabelle, die in einer Datenbank angelegt ist, ein Datensatzpuffer erzeugt. Über diesen Puffer kann jedes Feld in der Datenbank adressiert werden. Das Lesen und Ändern von Datensätzen wirkt sich generell auf den globalen Datensatzpuffer aus. Dieser Mechanismus kann sich allerdings bei einer MDI-Anwendung als Problem herausstellen, da es in dieser Umgebung möglich ist, Datensätze aus ein und derselben Tabelle gleichzeitig in mehreren Fenstern darzustellen. In diesem Fall arbeiten alle Fenster auf dem globalen Datensatzpuffer der Datei und beeinflussen sich daher gegenseitig.

Lösung

Die Lösung besteht darin, dass jedes MDI-Anwendungsfenster mit einem eigenen Datensatzpuffer arbeitet. Hierfür steht die Eigenschaft wpDbRecBuf zur Verfügung. In Abhängigkeit der Felder, welche in dem MDI-Fenster bearbeitet werden, muss die dazugehörige Tabelle ausgewählt werden.

Eigenschaft DbRecBuf

Ist die Eigenschaft gesetzt, wird die Verwaltung der MDI-Feldpuffer automatisch von CONZEPT 16 vorgenommen:

  • Sichern der MDI-Feldpuffer
    Das aktive MDI-Fenster verliert den Fokus durch das Wechseln in ein anderes Fenster innerhalb der Anwendung, oder durch einen Mausklick außerhalb der Anwendung.
  • Wiederherstellen der MDI-Feldpuffer
    Das MDI-Fenster erhält den Fokus.
Was gilt es zu beachten

Das automatische Wiederherstellen des Feldpuffers wirkt sich störend aus, wenn in der MDI-Anwendung eine Aktion durchgeführt wird, in der Datensätze, die zu einer über wpDbRecBuf ausgewählte Tabelle gehören, verarbeitet werden. Wechselt der Anwender während dieser Verarbeitung zwischen den MDI-Fenstern, wird dadurch der Feldpuffer geändert. Das gleiche gilt, wenn der Anwender aus der Applikation klickt und vor dem Ende der Verarbeitung wieder zurückkehrt.

Für beide Konstellationen gibt es eine Abhilfe:

  • Ein Wechsel, zwischen geöffneten MDI-Fenstern während der Ereignisverarbeitung, lässt sich über die Option _WinAppWaitCursorEvt... verhindern. Je nach gewünschter Cursordarstellung stehen die Optionen _WinAppWaitCursorEvt, _WinAppWaitCursorEvtArrow und _WinAppWaitCursorEvtOS zur Verfügung.

    Beispiel:
    _App->wpFlags # _App->wpFlags | _WinAppWaitCursorEvt

  • Das Wiederherstellen des MDI-Puffers nach dem Zurückkehren in die MDI-Applikation, wird mittels der Option _WinAppFld2BufOff verhindert.

    Beispiel:
    _App-wpFlags # _App-wpFlags | _WinAppBuf2FldOff

    Diese Option unterbindet den Update vom Datensatzpuffer der Objekte MdiFrame und RecList zum globalen Datensatzpuffer. Es ist daher zu beachten, dass die Option solange aktiv bleibt, bis sie wieder zurück gesetzt wird.

    Option zurücksetzen:
    _App->wpFlags # _App->wpFlags & ~_WinAppBuf2FldOff

Klicken Sie hier, um die Nutzungsbedingungen für unseren Blog zu lesen.

2 Antworten

  1. @Th.Eichele
    In der Version 5.6 gab es keine Änderungen.
    Es ist richtig, vor einer Verarbeitungsschleife sollten die Flags gesetzt werden.

  2. d.h. vor einer Verarbeitungsschleife in einem MDI-Fenster sollten beide Flags gesetzt und hinterher wieder deaktiviert werden ?
    hat sich hier seit 5.6 etwas geändert ? Seither gibt es bei Kunden ab und zu verstellte Puffer, die Ich nicht erklären kann.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Leave the field below empty!

Wünsche, Fragen oder Feedback sind willkommen:

Nutzungsbedingungen der Kommentarfunktion im Blog

1. Allgemeines

Vectorsoft AG („Anbieter“) stellt für Internetnutzer („Nutzer“) auf der Website
vectorsoft.de einen öffentlichen Blog bereit. Der öffentliche Blog dient dem
Informations- und Gedankenaustausch. Die Nutzer, welche sich mit Beiträgen und
Kommentaren beteiligen, verpflichten sich dazu, die Blog-Nutzungsbedingungen
einzuhalten und tragen die Verantwortung für die Richtigkeit und Angemessenheit
sowie Freiheit von Rechtsverletzungen ihrer Beiträge. Mit Nutzung der
Kommentarfunktion in unserem Blog akzeptieren Sie diese Nutzungsbedingungen.

2. Netiquette

Wir bitten Sie von persönlichen Angriffen und Provokationen aufgrund anderer
Meinungen abzusehen. Bitte argumentieren Sie sachlich und bewegen Sie sich auf
der Basis einer konstruktiven Diskussionskultur. Ihr Kommentar sollte stets im
Zusammenhang mit dem jeweiligen Thema sein, um Ausschweifungen in andere
Themenbereiche zu vermeiden. Das mehrmalige Posten desselben Kommentars
oder mehrerer ähnlicher Kommentare ist nicht erlaubt.

3. Verbot rechtswidriger Inhalte

Mit Absenden Ihres Kommentars bestätigen Sie, dass Sie keine Urheberrechte oder andere Rechte Dritter verletzen. Volksverhetzende, rassistische Äußerungen, Anleitungen zu Straftaten und deren Verherrlichung, Gewaltdarstellungen, pornografische Inhalte und Äußerungen, die Persönlichkeitsrechte verletzen sind untersagt.

4. Keine Werbung

Die Nutzung der Kommentarfunktion ist für kommerzielle oder parteipolitische
Zwecke nicht erlaubt. Werbliche Beiträge aller Art werden von uns umgehend
gelöscht.

5. Angaben zum Namen

Bei der Eingabe Ihres Namens achten Sie auf die zuvor genannten Grundsätze.

6. Quellenangaben

Bitte geben Sie bei der beabsichtigten Veröffentlichung von Zitaten oder Beiträgen
Dritter die jeweiligen Quellen an und erläutern dessen Bezug zum Blogbeitrag.

7. Verstoß gegen die Nutzungsbedingungen

Beiträge, die gegen diese Richtlinie verstoßen werden umgehend gelöscht. Sollten
Sie selbst Verstöße bemerken, so senden Sie uns bitte den Link des betreffenden
Kommentars per E-Mail an . Wir weisen ausdrücklich daraufhin, dass wir einzelne Nutzer bei wiederholten oder schweren Verstößen gegen diese
Nutzungsbedingungen ausschließen werden.

Stand: Sept. 2024

Deine Trial Version - jetzt anfordern!

Teste yeet - unverbindlich und kostenfrei

IHRE EVALUIERUNGSLIZENZ - JETZT ANFORDERN!

TESTEN SIE DIE CONZEPT 16 VOLLVERSION - UNVERBINDLICH und KOSTENFREI

Melden Sie sich bei unserem Newsletter an

Anrede*
     
Zustimmung zur Datenverarbeitung gem. DSGVO*



WordPress Cookie-Hinweis von Real Cookie Banner