Am 13.11.2011 09:46, schrieb Robert Großkopf:
> 
> ich konstruiere gerade ein Formular mit einem Tabellenkontrollfeld, in
> dem bei falschen Eingaben der Focus auf das falsche Feld zurückgesetzt
> werden soll:
> oDoc = thisComponent
> oDrawpage = oDoc.Drawpage
> oForm = oDrawpage.Forms.getByName("Filter")
> oSubForm = oForm.getByName("Ausleihe")
> oFeld = oSubForm.getByName("Grid")
> REM Der Controller ist in diesem Fall das Tabellenkontrollfeld. Die
> Teile der Tabelle sind nur über den Index erreichbar.
> oDocCrl = ThisComponent.getCurrentController()
> oCtlView = oDocCrl.GetControl(oFeld)
> oListView = oCtlView.getByIndex(0)
> oListView.setFocus()
> 
> Die Methode "setFocus" ist in den Methoden aufgeführt (dbg_methods).
> Allein der Cursor reagiert darauf nicht.

Yepp; der Fokus bezeichnet lediglich die Zelle, mit bzw. von der aus 
das Makro arbeitet. Das hat aber überhaupt nix mit dem Cursor oder
besser gesagt der Anzeige zu tun. 

Daß beides beim Start des Makros identisch sind, ist sozusagen nur 
gewollter Zufall.

Was Du möchtest, müsste ungefähr so ausschauen (bei Dir dann natürlich
nicht mit einem fest kodiertierten Sprungziel 'Tabelle1.B5'):

|  targetSheet = 0  REM  1. Tabellenblatt ('Tabelle1')
|  targetRow   = 1  REM  2. Spalte ('B')
|  targetLine  = 4  REM  5. Zeile
|
|  oDoc = thisComponent
|  oView = oDoc.CurrentController
|
|  oSheet = oDoc.sheets(targetSheet)
|  oCell =  oSheet.getCellByPosition(targetRow,targetLine)
|  oView.Select(oCell)

Wolfgang
-- 

-- 
-----------------------------------------------------------------
To unsubscribe send email to [email protected]
For additional commands send email to [email protected]
with Subject: help

Antwort per Email an