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