Hallo Wolfgang,
>>
>> 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)

Du gehst von einer Tabelle in Calc aus, ich von einem
Tabellenkontrollfeld innerhalb eines Formulars (Base).

Deswegen bin ich auch anders ans Ziel gekommen:
oCtlView.SetCurrentColumnPosition(0)


Gruß

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

Antwort per Email an