Hallo,
folgendes kleines Problem im Kontext von BASIC-Makro @ CALC:
[1] Ein Standard ODS-Dokument wird geladen.
[2] Im "Hidden"-Modus wird ein Tabellenblatt beschrieben.
[3] Das Tabellenblatt wird sichtbar gemacht.
[4] Der Cursor wird auf die letzte Spalte der Zeile positioniert.
[5] Die befüllten Spalten belegen gerade mal die halbe Seitenbreite
der CALC-Tabelle-Ansicht bei 100%-Zoom.
Funktioniert alles bestens, bis auf einen kleinen Schönheitsfehler:
Durch das Positionieren des Cursors wird die horizontale ScrollBar
aktiviert, so dass alle Spalten nach links verschoben werden und nur
die Zelle mit Eintrag "E" sichtbar ist.
Gibt es eine Möglichkeit, dieses (automatische) Verschieben der Zellen
nach links zu unterbinden ?
Habe ich gegebenenfalls zur Cursor-Positionierung ein falsches
Sprachkonstrukt genutzt ?
Arbeitet man nicht im "Hidden"-Modus, sondern im "Visible"-Modus mit
"ThisComponent, tritt dieser Effekt nicht auf.
Anbei zwei Makros
+ Sub SetCursor_loadComponent =>"Hidden"-Modus-Beispiel
+ Sub SetCursor_ThisComponent => "Visible"-Modus-Beispiel
zum Nachvollziehen.
Hat jemand eine Idee, wo das Problem liegen und wie man es lösen könnte ?
Danke schon mal im Voraus,
Gruß
Hans-Werner ;-))
Sub SetCursor_loadComponent
Dim oD as Object
Dim oTB as Object
Dim aB() as String
Dim X as Integer
aB = Array("A","B","C","D","E")
Const P1 = "private:factory/scalc"
Const P2 = "_blank"
Const P3 = 0
Dim aPV(0) as New com.sun.star.beans.PropertyValue
aPV(0).name = "Hidden"
aPV(0).value = True
oD = StarDesktop.loadComponentFromURL(P1,P2,P3,aPV())
oTB = oD.sheets(0)
For X=0 To UBound(aB) Step 1
oTB.getCellByPosition(X,0).String = aB(X)
Next X
oD.getCurrentController().getFrame().getContainerWindow().setVisible(True)
oD.CurrentController.Select(oTB.getCellByPosition(4,0))
End Sub
Sub SetCursor_ThisComponent
Dim oD as Object
Dim oTB as Object
Dim aB() as String
Dim X as Integer
aB = Array("A","B","C","D","E")
oD = ThisComponent
oTB = oD.sheets(0)
For X=0 To UBound(aB) Step 1
oTB.getCellByPosition(X,0).String = aB(X)
Next X
oD.CurrentController.Select(oTB.getCellByPosition(4,0))
End Sub
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.