Makro direkt nach dem Aufruf starten?

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

Moderator: Moderatoren

Hago
****
Beiträge: 135
Registriert: Di, 07.12.2004 16:44

Makro direkt nach dem Aufruf starten?

Beitrag von Hago »

Hallo,

ich möchte gerne eine dBase Datei öffnen und dann automatisch, also "onLoad" ein Makro zur Weiterverarbeitung starten lassen.

Ist das möglich und wenn ja, wie?

Grüße, Hago
ykcim
*****
Beiträge: 324
Registriert: Di, 29.07.2003 15:22
Wohnort: Neu-Isenburg
Kontaktdaten:

Re: Makro direkt nach dem Aufruf starten?

Beitrag von ykcim »

Hallo,

das geht nicht direkt. Makros lassen sich nur mit dem Öffnen (oder anderen Ereignissen) eines OpenOffice-Dokumentes verknüpfen. Wenn Du das Öffnen der Dbase-datei in ein Makro packst, kannst Du dieses mit dem Öffnen einer Datei verknüpfen.

mfg
Michael
__
FAQ zu Starbasic -> http://www.starbasicfaq.de
Hago
****
Beiträge: 135
Registriert: Di, 07.12.2004 16:44

Re: Makro direkt nach dem Aufruf starten?

Beitrag von Hago »

Danke Michael, versuch' ich mal.

Hago
Hago
****
Beiträge: 135
Registriert: Di, 07.12.2004 16:44

Re: Makro direkt nach dem Aufruf starten?

Beitrag von Hago »

Hallo,

so hab' ich das jetzt gemacht, aber es tut sich nichts, gar nichts:

Code: Alles auswählen

dim arg(0) as new com.sun.star.beans.PropertyValue
dim sURL as String
arg(0).name = "FilterName"
arg(0).value = "dBase"
sURL = "file:///C:/Dokumente%20und%20Einstellungen/Hago%20Ziegler/Eigene%20Dateien/Kunden.dbf"
StarDesktop.loadComponentFromURL(sURL, "_blank", 0, arg())
Fast wörtlich aus dem Buch übernommen :-) aber es kommt nicht mal 'ne Fehlermeldung
Was mach' ich denn falsch?

Hago
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Makro direkt nach dem Aufruf starten?

Beitrag von komma4 »

Öffne ich hier dBase-Dateien, dann werde ich nach der anzuwendenden Kodierung gefragt.

Das fehlt in Deinem Makro:

Code: Alles auswählen

' http://www.oooforum.org/forum/viewtopic.phtml?t=66801
dim arg(1) as new com.sun.star.beans.PropertyValue
arg(0).name = "FilterName"
arg(0).value = "dBase"
arg(1).name = "FilterOptions"
arg(1).value = "0"   'System Character Set Umlaute werden richtig 
Damit klappt es hier. Und bei Dir?

[habe nur engliche DBFs - Umlaute nicht getestet!]
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Hago
****
Beiträge: 135
Registriert: Di, 07.12.2004 16:44

Re: Makro direkt nach dem Aufruf starten?

Beitrag von Hago »

Hallo Winfried,

danke für die Hilfe.
Ich habe Deinen Code übernommen. Die ganze sub sieht jetzt so aus:

Code: Alles auswählen

sub dBase_importieren
 Dim Doc As Object
 Dim sURL as String
 Doc = StarDesktop.CurrentComponent
 Dim arg(1) as new com.sun.star.beans.PropertyValue
  arg(0).name = "FilterName"
  arg(0).value = "dBase"
  arg(1).name = "FilterOptions"
  arg(1).value = "0"
  sURL = "file:///C:/Dokumente%20und%20Einstellungen/Hago%20Ziegler/Eigene%20Dateien/Kunden.dbf"   
  Doc =  StarDesktop.loadComponentFromURL(sURL, "_blank", 0, arg())
end sub
Leider geht's nicht.

Um zu testen, ob ich irgend einen ganz grundlegenden Fehler mache, habe ich mal mit dem selben Makro, mit nur wenigen Änderungen eine csv-Datei geöffnet. Das hat sofort geklappt. Wenn ich dann die Werte wieder für die dBase-Datei ändere geht nichts mehr.
Ich weiß mir nicht mehr so recht zu helfen...

Gruß, Hago
Hago
****
Beiträge: 135
Registriert: Di, 07.12.2004 16:44

Re: Makro direkt nach dem Aufruf starten?

Beitrag von Hago »

Ich hab inzwischen raus bekommen, wie es geht.
siehe viewtopic.php?f=2&t=16480

Gruß, Hago
Antworten