Zum Hauptinhalt springen

Ereignisabläufe RecView

Ereignisabläufe RecView Ablaufpläne zur Ereignisverarbeitung einer RecView

Laden eines RecView -Objektes

Nach dem Laden eines Frame -Objekts werden alle enthaltenen Objekte erzeugt. Sobald das RecView -Objekt erzeugt wurde, wird das Ereignis EvtInit des RecView ausgelöst.

Sind in der zugrundeliegenden Datei (Eigenschaft DbFileNo und DbKeyNo) Datensätze vorhanden, werden solange Datensätze gelesen, bis der Anzeigebereich mit Datensätzen gefüllt oder keine weiteren Datensätze gelesen werden können.

Bei der ersten Anzeige eines Views wird das Ereignis EvtLstViewInit ausgelöst, wenn Datensätze zur Anzeige vorhanden sind.

Für jeden gelesenen Datensatz wird das Ereignis EvtLstRecControl durchgeführt. Dieses Ereignis entscheidet, ob der Datensatz in der Liste angezeigt wird oder nicht.

Wird ein Datensatz angezeigt, wird das Ereignis EvtLstGroupInit aufgerufen. Hier können letzte Änderungen vor der Anzeige des Datensatzes durchgeführt werden.

Die Ereignisse EvtLstRecControl und EvtLstGroupInit werden solange durchgeführt, bis der Anzeigebereich des RecView gefüllt oder das Ende der Datei erreicht ist.

Das RecView -Objekt erhält den Fokus

Das RecView -Objekt kann entweder durch Drücken der Tab -Taste oder durch Anklicken mit der Maus den Fokus bekommen. In beiden Fällen wird das Ereignis EvtFocusInit durchgeführt. Nur wenn mit der Maus das Objekt ausgewählt wurde, werden weitere Ereignisse aufgerufen.

Wurde mit der Maus auf den selektierten Datensatz in der Liste geklickt, wird das Ereignis EvtMouseItem ausgelöst. Wurde ein nicht selektierter Datensatz angeklickt, wird zuvor noch das Ereignis EvtLstSelect ausgeführt.

Das RecView -Objekt wird aktualisiert

Das RecView -Objekt wird durch den Befehl WinRvwUpdate () aktualisiert:

tHdlRecView->WinRvwUpdate(_WinRvwUpdateFromSelected | _WinRvwUpdateDoSelect, 0);

Unabhängig davon, ob der Datensatz bereits selektiert ist oder nicht, wird der Anzeigebereich der Liste neu aufgebaut. Das heißt, dass die Datensätze, die im Anzeigebereich dargestellt werden, die Ereignisse EvtLstRecControl und EvtLstGroupInit durchgeführt werden, bis entweder der Anzeigebereich gefüllt oder das Ende der Datei erreicht ist. Zum Schluss wird das Ereignis EvtLstSelect für den Datensatz in den Feldpuffern ausgeführt.

info

Das EvtLstSelect wird auch dann ausgeführt, wenn die Liste keine Datensätze enthält.

Items des RecView -Objektes werden editiert

Durch die in EditKeyStart und EditMouseStart definierten Tastatur- und Mausaktionen wird das Ereignis EvtLstEditStartGroup ausgelöst. In diesem Ereignis kann der Datensatz gesperrt werden. Über den Parameter aResult wird bestimmt, ob der Datensatz bearbeitet werden darf, oder nicht. Soll er bearbeitet werden, wird als nächstes das Ereignis EvtLstEditStartItem aufgerufen. In diesem kann entschieden werden, ob das angeklickte /docs/Components/CONZEPT_16-Client/Oberflaechen-Objekte/Ansicht-Palette/RecView/RecView-Aufbau#ItemItem bearbeitet werden darf. Ist dies der Fall, kann im Ereignis EvtLstEditActivate das Eingabeobjekt gefüllt werden. Bei RTF-Texten ist dies zwingend notwendig.

Wird das Eingabeobjekt verlassen, die Esc - oder die in EditKeyEnd definierte Taste gedrückt, wird das Ereignis EvtLstEditEndItem ausgelöst. In diesem Ereignis kann der Inhalt des Eingabeobjektes in die Feldpuffer übertragen werden. Im anschließenden Ereignis EvtLstEditEndGroup kann der Datensatz gespeichert oder entsperrend gelesen werden. In beiden Ereignissen wird per Parameter aAbort übergeben, ob die Aktion abgebrochen werden soll. Wird das Eingabeobjekt hingegen mit Tab oder Umschalt + Tab verlassen, wird das nächste oder vorherige sichtbare (Visible = true) und editierbare (ReadOnly = false) Item gesucht und erneut das Ereignis EvtLstEditStartItem aufgerufen.

Das Ereignis EvtLstEditEndItem wird auch aufgerufen, wenn die Bearbeitung in dem Ereignis EvtLstEditStartItem abgebrochen wurde. Wird die Bearbeitung bereits im Ereignis EvtLstEditStartGroup abgebrochen, so wird das Ereignis EvtLstEditEndGroup ausgelöst.