Wie verstecke ich ein ooo Dokument nach dem öffnen?

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

sheepy007
**
Beiträge: 20
Registriert: Di, 02.01.2007 13:13

Wie verstecke ich ein ooo Dokument nach dem öffnen?

Beitrag von sheepy007 »

Moin Leute,
Ich habe mal gehört, dass man ein Open Office Dokument ( in meinem Falle wäre es ein Calc Dok.) nach dem öffnen verstecken kann. Dies wird wohl per zuweisen eines Makros nach dem öffnen geschehen (ist ja klar xD)
Ich denke mal eine möglichkeit wäre es Das Open Office Fenster einfach zu minimieren...gibt es noch mehrere Varianten?

und kann mir vielleicht jemand sagen wie ich dies mithilfe von Basic realisieren kann?

mfg sHeepy
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Sheepy,

was verstehst du denn unter "verstecken"? Du kanst ein OOo Dokument "hidden" öffnen, dann ist es in der GUI nicht sichtbarm du kannst aber Probleme mit Makros auf die Inhalte zugreifen und sie manipulieren oder schreiben. Ist es das, was du meinst?

In dem Fall kannst du aber nur per Script auf das Dokument zugreifen, über die GUI ist es nicht erreichbar. Oder willst du das Fenster nur "minimieren", dann ist es normal per Gui erreichbar, hat nur im Moment nicht "offen" auf dem Bildschirm. Das sind aber zwei verschiedene Sachen ;-)
Beides ist realisierbar.
Version 1 :
Um ein Fenster komplett auszublenden, setzt du die Eigenschaft "visible" auf false:

Code: Alles auswählen

starDesktop.getCurrentFrame.getContainerWindow().visible = false
Blendet das aktuelle Fesnster aus. Vorsicht- Vergiss es nicht wieder einzublenden! sonst gibt es später sicher Probleme! Und: wenn du in der IDE arbeitest, denke dran, jetzt ist die IDE das aktuelle Fenster. wenn du das ausblendest, kannst du keinen Code mehr manuell ausführen!

Um ein Dokument gleich "unsichtbar" zu laden, übergibst du den entsprechenden Parameter:

Code: Alles auswählen

dim Arg(0) as new com.sun.star.beans.PropertyValue
dim sUrl as string
sUrl = "File:///d:/beispiel/meineDatei.ods"
Arg(0).Name = "Hidden"
Arg(0).Value = true
vDoc = StarDesktop.loadComponentFromURL(sUrl, "_blank", 0, Arg())
Na ja, und wenn du das Fesnster minimieren willst, so nimmst du ebenfalls den Frame und minimierst ihn :-)

Viele Grüße
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
sheepy007
**
Beiträge: 20
Registriert: Di, 02.01.2007 13:13

Beitrag von sheepy007 »

cool besten Dank :) Variante 1 hab ich gesucht :)
Jetzt fehlt mir noch der Befehl zum schließen des Dokumentes. Wäre dir sehr Dankbar wenn du mir da noch helfen könntest ;)

und...
gibt es vielleicht irgendwo eine referenz wo diese ganzen befehle stehen?

mfg sheepy
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Sheepy,
Jetzt fehlt mir noch der Befehl zum schließen des Dokumentes
Na, das hier:

Code: Alles auswählen

oDoc.close(True)
gibt es vielleicht irgendwo eine referenz wo diese ganzen befehle stehen?
Alles ist dokumentiert in der IDL, teil des SDKs. Kannst du dir im Internet runterladen oder auch online nutzen (schau mal bei api.openoffice.org). Aber: eigentlich nur zu verstehen, wenn du schon weisst, wonach du suchst.
Sonst kauf dir besser ein Buch, das all das Wissen ein wenig aufbereitet hat (z.B. siehe Signatur ;-) )

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
sheepy007
**
Beiträge: 20
Registriert: Di, 02.01.2007 13:13

Beitrag von sheepy007 »

Toxitom hat geschrieben:Hey Sheepy,

Sonst kauf dir besser ein Buch, das all das Wissen ein wenig aufbereitet hat (z.B. siehe Signatur ;-) )

Gruss
Thomas
jep das "Makros in ooo 2.0" besitze ich, habe es aber noch nicht ganz durch gelesen :D

naja aufjedenfall vielen Dank für deine Hilfe

mfg sHeepy
sheepy007
**
Beiträge: 20
Registriert: Di, 02.01.2007 13:13

Beitrag von sheepy007 »

mhn etwas stört mich doch noch :/
Wenn ich die Tabelle von meinem Dialog aus wieder sichtbar mache, kann ich diesennicht Editieren bzw sie bleibt im Hintergrund. Gibt es dafür noch eine Lösung?
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Ja, Dialog schliessen ;-)

Solange du einen Dialog hast, wird dieser immer den Fokus erhalten - und somit aktiv im Vordergrund sein.
Bei "normalen" Fenstern kannst du ein beliebiges per Code "nach vorne bringen", geht aber nicht mit Dialogen.

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
AlemannenLady
*
Beiträge: 14
Registriert: Do, 25.01.2007 15:37

Java-Code

Beitrag von AlemannenLady »

Hi,
und wie sähe das in Java aus?
Code:
starDesktop.getCurrentFrame.getContainerWindow().visible = false

Ich habe das nur mit
officeApp.getDocumentService().constructNewHiddenDocument(arg0)
gefunden. Fall ist der, dass ich mehrere Dateien lade in verschiedenen OpenOffice Programmen und unter anderem Format abspeicher. Wenn ich einen Testlauf mache, ist das bei vier Dateien schon sehr anspruchsvoll, weil sich jedesMal die Oberfläche öffnet, statt sie einfach Hidden oder eben visible=false zu setzen. Das muss doch auch in Java gehen...:roll:

Schöne Grüße.
Antworten