[Gelöst] Fokus im Formular setzen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

gigabert
*****
Beiträge: 203
Registriert: Di, 11.08.2009 16:06

[Gelöst] Fokus im Formular setzen

Beitrag von gigabert »

Hallo,

ich möchte beim Drücken meines Buttons "neuer Datensatz" im Formular, dass der Fokus auf das erste Eingabefeld ("Nachname") gesetzt wird. Der Button ist mit der Aktion "Neuer Datensatz" versehen. Jetzt hab ich bei Ereignissen sowohl bei "Beim Auslösen" als auch "Taste losgelassen" ein Makro angegeben, welches den Fokus auf das gewünschte Feld setzen soll. Ich hab auch zwei Möglichkeiten versucht, klappen aber beide nicht. Ist an dem Code was falsch? Wie geht es richtig?

Es geht weder so...

Code: Alles auswählen

Sub FokusSetzen
	
	oDoc = thisComponent
	oForm = oDoc.drawpage.forms.getbyindex(0)
	oCon = oDoc.getCurrentController
	oFormFeld=oForm.getbyname("txtNachname")
	oCon.getControl(oFormFeld).setFocus

End Sub
...noch so:

Code: Alles auswählen

Sub FokusSetzen

	Dim oFeld as Object

	oForm = ThisComponent.drawpage.forms.getByName("MainForm")
	oFeld = oForm.getByName("txtNachname")
	oForm.getCurrentController().getControl( oFeld ).setFocus()

End Sub
Gruss
Bert
Zuletzt geändert von gigabert am Do, 03.09.2009 13:58, insgesamt 1-mal geändert.
OpenOffice 3.1.1 unter Debian 5.0 und mit PostgreSQL 8.3
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Fokus im Formular setzen

Beitrag von komma4 »

Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
gigabert
*****
Beiträge: 203
Registriert: Di, 11.08.2009 16:06

Re: Fokus im Formular setzen

Beitrag von gigabert »

Hallo,

klappt leider auch nicht. Nach dem Klick auf den "neuer Datensatz"-Button wird das Formular geleert (wie gewünscht) und der Fokus springt auf den Button darunter, der in der Aktivierungsreihenfolge nach dem "neuer Datensatz"-Button kommt.

Gruss
Bert
OpenOffice 3.1.1 unter Debian 5.0 und mit PostgreSQL 8.3
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Fokus im Formular setzen

Beitrag von eBayer »

Nimm das Makro mal von dem PushButton weg!
Ich vermute, daß das Makro in Verbindung mit der Aktion "neuer Datensatz", ausgelöst über den PushButton, garnicht aufgerufen wird.
Das könntest Du allerdings leicht feststellen, indem Du eine msgbox mit irgendeiner Nachricht in Deinem Makro aufrufst.
Allerdings dürfte der bessere Weg für Dein Anliegen der folgende sein:
Binde das Makro auf Formularebene an das Ereignis "nach der Datensatzaktion" oder "nach dem Datensatzwechsel".
Gruß eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
gigabert
*****
Beiträge: 203
Registriert: Di, 11.08.2009 16:06

Re: Fokus im Formular setzen

Beitrag von gigabert »

Hallo eBayer,

das mit der MsgBox ist echt ne prima Idee. Hab das mal eingebaut, und tatsächlich wurde das Makro über den Button so erst garnicht aufgerufen. "Nach der Datensatzaktion" beim Formular klappte auch nicht, aber "Nach dem Datensatzwechsel" ging. Da hatte ich eh schon ein Makro angebunden und nur noch den Code dazugefügt. Jetzt klappt es mit dem Fokus. Danke euch beiden...

Gruss
Bert
OpenOffice 3.1.1 unter Debian 5.0 und mit PostgreSQL 8.3
Antworten