Hallo, ich möchte ein Calc- Dokument öffnen und eine bestimmte Tabelle aktiv setzen.
Eine eventuelle Seitenansicht muß vorher geschlossen werden. Das funktioniert auch grundsätzlich, hier ein Ausschnitt.
Wenn Seitenansicht aktiv, dann:
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:PrintPreview", "", 0, Array())
oTabelle = ThisComponent.getSheets().getByName(sTabelle)
ThisComponent.CurrentController.setActiveSheet(oTabelle) -> Fehlermeldung
Es fehlt augenscheinlich eine Bildschirmaktiualisierung.
Wenn ich vor der Zeile "ThisComponent.CurrentController.setActiveSheet(oTabelle)" eine MsgBox aufrufe funktioniert das Ganze.
also z.B. so: Msgbox "Schalte auf Tabellenansicht um."
Diese Lösung mit der MsgBox finde ich allerdings nicht so toll. Kann mir jemand einen Tip geben, wie ich ohne diese Zeile die Ansicht aktualisieren kann?
Besten Dank
Moritz
Gelöst- PrintPreview
Moderator: Moderatoren
Re: Gelöst- PrintPreview
Das Problem ließ sich mit einem Wait- Befehl lösen.
wait 100
Moritz
wait 100
Moritz
Re: Gelöst- PrintPreview
Da bin ich nicht gänzlich sicher. Wenn ich es hier teste scheint der Zugriff auf ThisComponent nach der Umschaltung nicht sauber zu klappen, da ich teils Fehlermeldungen bekomme.Es fehlt augenscheinlich eine Bildschirmaktiualisierung.
Es wäre gut wenn Du das genau nachprüfst, dann hilft eine Do-Loop-Schleife zum WArten bis der ZUgriff sauber möglich ist.
Als Holzhammermethode hilf wohl ein
Code: Alles auswählen
Wait 100
(den Wert 100 kannst Du auch verringern oder erhöhen, mache ihn nur so groß wie nötig, 100 sind 0,1 Sekunden WArtezeit)
statt Deiner Zeile:
Code: Alles auswählen
Msgbox "Schalte auf Tabellenansicht um."
Gruß
Stephan
Sorry, Du hattest ja nun schon die LÖsung gefunden, ich hatte meine antwort formuliert und zwischenzeitlich nicht aktualisiert.