per Makro speichern

Das Textverarbeitungsprogramm

Moderator: Moderatoren

kvogelsa
***
Beiträge: 55
Registriert: Do, 25.11.2004 18:20

per Makro speichern

Beitrag von kvogelsa »

Hallo,

ich erzeuge sxw-Dokumente über PHP und MySQL. Dabei wird für jedes neue Dokument ein einmaliger Name vergeben, das erzeugte Dokument heißt auch so. dadurch, dass es mit Browser geöffnet wird, liegt es im tmp Ordner.

ich möchte nun mit einem Makro das Dokument unter gleichem Namen in einem anderen Ordner speichern (idealerweise bereits beim öffnen des Dokuments)

meines Erachtens die das mit 'storeAsUrl', ich bekomme jedoch die Fehlermeldung, dass ich auf den Ordner keinen Zugriff habe.

Code: Alles auswählen

Sub SPEICHERN
   dim dummy()
   Pfad="Y:\iuristico_doc\"
   Pfadurl=converttourl(Pfad)
   odoc=thisComponent

  odoc.storetourl(Pfadurl,dummy())
End Sub
per Hand in diesen Ordner zu speichern ist kein Problem.
jemand eine Idee?
seballa
**
Beiträge: 24
Registriert: So, 18.09.2005 10:38

Beitrag von seballa »

Der Pfad ist nicht nur das Verzeichnis, sondern auch der Dateiname! Der muss auch in die Variable Pfad mit rein also:

Code: Alles auswählen

Pfad = "c:\ordner\datei.odt" 
(odt natürlich nur wenn du eine Beta ivon 2.0 benutzt)
kvogelsa
***
Beiträge: 55
Registriert: Do, 25.11.2004 18:20

Beitrag von kvogelsa »

okay,
verstanden. aber der Dateiname ist bei mir immer ein anderer. kann ich es irgendwie anstellen, dass statt "datei.odt" im Makro "<$Variablexy>" steht?
seballa
**
Beiträge: 24
Registriert: So, 18.09.2005 10:38

Beitrag von seballa »

Na ja da gibts viele Möglichkeiten du könntest einfach das Datum anhängen, klappt aber nur, wenn die Datei am selben Tag überschrieben werden darf:

Code: Alles auswählen

   Zeit = Date
   Pfad="Y:\iuristico_doc\"  + "Datei" +  Zeit + ".odt"
Du könntest auch einfach mit FileExists(Pfad) überprüfen ob die Datei schon existiert und dann durchzählen:
kuck mal hier:
http://www.dannenhoefer.de/faqstarbasic ... hern..html
http://www.dannenhoefer.de/faqstarbasic ... Datei.html
http://www.dannenhoefer.de/faqstarbasic ... tools.html
kvogelsa
***
Beiträge: 55
Registriert: Do, 25.11.2004 18:20

Beitrag von kvogelsa »

seballa hat geschrieben:Na ja da gibts viele Möglichkeiten du könntest einfach das Datum anhängen, klappt aber nur, wenn die Datei am selben Tag überschrieben werden darf:

Code: Alles auswählen

   Zeit = Date
   Pfad="Y:\iuristico_doc\"  + "Datei" +  Zeit + ".odt"
Du könntest auch einfach mit FileExists(Pfad) überprüfen ob die Datei schon existiert und dann durchzählen:
kuck mal hier:
http://www.dannenhoefer.de/faqstarbasic ... hern..html
http://www.dannenhoefer.de/faqstarbasic ... Datei.html
http://www.dannenhoefer.de/faqstarbasic ... tools.html
Danke, aber das hilft mir niht weiter. Das Dokument wird zunächst als Dummy erzeugt mit einem Eintrag in die mysql DB. Dort hat es eine fortlaufende nummer als ID. diese ID wird dann beim erzeugen des Dokuments als Name geparst. Das Dok öffnet dann in OOo mit der ID als Name. Es liegt nur eben im tmp Verzeichnis des browsers. deshalb soll das geändert werden mit dem Makro. Der Dokumentenname soll aber gleich sein. Denn über den Datanbankeintrag wird später ein link erzeugt, der die Datei immer wider öffnen kann. deshalb brauche ich einen feststehenden Dokumentnamen (nämlich die ID). und wenn ich das dokument erneut öffne, geht das makro ja wieder los, und soll das dok wieder unter dem richtigen namen abspeichern, nicht unter neuem namen.
kvogelsa
***
Beiträge: 55
Registriert: Do, 25.11.2004 18:20

Beitrag von kvogelsa »

Gelöst:
Das Makro lautet

Code: Alles auswählen


Sub SPEICHERN

rem filename auslesen

    DIM oMasters as Object
    DIM oFeld as object          ' das Textfeld
   oMasters = ThisComponent.getTextFieldMasters()
   oFeld = oMasters.getByName("com.sun.star.text.FieldMaster.User.filename")
   
   'msgbox oFeld.name
   'msgbox oFeld.content

rem filename auslesen ende 

   dim dummy()
   Pfad="Y:\iuristico_doc\"+oFeld.content+".sxw"
   Pfadurl=converttourl(Pfad)
   odoc=thisComponent

  odoc.storeasurl(Pfadurl,dummy())
End Sub

Danke für Eure Hilfe!
Antworten