gogo hat geschrieben:Schockschwerenot! Könntest Du bitte "Tabellensteuer-Element" in "Tabellensteuerelement" oder "Tabellen-Steuerelement" umwandeln???

Sorry... beim nächsten Mal schalte ich die Autokorrektur aus. Und nochmal sorry, ich war einige Tage "offline". Erst mal Danke für Deine Antwort, aber ich glaube, Du hast mich missverstanden. Ich erkläre es noch mal - und ich hoffe, verständlicher.
Stell Dir auf einem Base-Formular 2 Tabellen-Steuerelemente (Grid-Controls) nebeneinander vor, jedes hat einen eigenen Formularnamen und greift auf einen eigenen Datenbestand zu. Das linke Grid-Ctrl ist Read-Only, das heisst, ich kann mich zwar rauf und runter (mit Zeilen-Cursor, analog eines List-Ctrls) bewegen, Enter drücken und Doppel-Clicken, aber ein Cell-Edit ist nicht möglich. Nach Enter oder Doppelclick wird in diesem linken Grid-Ctrl ein bestimmter Spaltenwert des aktuellen Datensatzes ermittelt. Und dieser besondere Wert wird druch die Makro-Nachbearbeitung im rechten Grid-Ctrl in dem dort selektierten aktuellen Satz eingetragen. Das funktioniert soweit bestens.
Ist eigentlich ganz einfach, links befindet sich ein Kontenrahmen (ro), rechts sind Buchungssätze (rw). Links wähle ich die passende Kontonummer zum rechten Datensatz mit Enter oder Doppelkick aus, die dann eben maschinell auf den rechten Datensatz übernommen wird.
Das Problem ist, das rechte Grid-Ctrl ist "editable". Das heisst, ich kann zu dem automatisch übernommenen Spaltenwert auch noch eine manuelle Ergänzung vornehmen. Und genau dann, wenn ich diesen Zell-Edit-Mode mit Enter verlasse, knallts... weil der Key-Press-Handler des linken Grids reagiert... genauer gesagt knallt es in meinem Eventhandler, der dann zur Weiterbehandlung springen möchte, was er aber nicht darf, denn Enter kam ja vom "rechten" Grid-Ctrl. Zur Lösung müsste ich jetzt in meinem Keypress-Handler abfragen
"Ist Keypress = Enter vom rechten Grid? Dann Return und nichts machen".
Wie kann ich in meinem Event-Handler abfragen, ob die Enter-Taste aus dem rechten Grid-Ctrl kommend gedrückt wurde? Das würde das Problem lösen.
gogo hat geschrieben:Den "Edit-Modus" kannst Du auf Formularebene (Form-Objekt innerhalb Deines Formulars) abfragen, der ist im Fall dass das Event von einer Spalte in einem Tabellensteuerelement ausgelöst wurde 2 Ebenen höher als die Spalte, also ".Parent.Parent"
Ich brauche keine Infos darüber, ob sich ein Datensatz im rechten Grid-Ctrl geändert hat oder nicht, das ist mir nicht wichtig. Ich muss nur die Enter-Taste beim Beenden des Zelledits abfangen, weil eben unglücklicherweise auch ein anderer Eventhandler auf Keypress reagiert.
gogo hat geschrieben:Ich bin mir allerdings ziemlich sicher, dass es mit der [ENTER]-Taste NICHT funktioniert,
Doch, das was ich da mache, funktioniert bestens. Sie sieht mein Eventhandler aus. Mein Problem ist, dass die Funktion GetNormName(EH_KEYPRESS) nur dann aufgerufen werden darf, wenn Enter im linken Grid-Ctrl. gedrückt wurde, bei Enter im rechten Grid-Ctrl darf er dort NICHT hin.
Code: Alles auswählen
Sub OnKeyPress(oEvt)
If (oEvt.KeyCode = com.sun.star.awt.Key.RETURN) Then
GetNormName(EH_KEYPRESS)
EndIf
End Sub