Automatische Dateinamensvergabe

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Automatische Dateinamensvergabe

von sule1979 » Di, 14.03.2006 23:50

@ sule1979 : Mit welcher Version hast Du das Makro getestet?


Hi,

das Makro habe ich unter OO 2.0.1 und OO 2.0.2 getest.
Es funktioniert einwandfrei, nur die PDF-Qualität läßt zu wünschen übrig, d.h. gewisse Formatierungen werden nicht 100 %-ig dargestellt. (Linie leicht versetzt, Schriftzug nicht genau linksbündig usw. )

Gruß
Sule

von Stephan » Di, 14.03.2006 18:42

Übrigens: beim Ausführen Deines letzten Makros erscheint korrekt in der MessageBox der Dateiname, und zwar bei allen Dateien.


Ja, das habe ich mir gedacht, bzw. diese Antwort hatte ich befürchtet, weil:

Ich kann Dir nun kaum weiterhelfen, da nach Deiner Aussage zwei völlig gleiche Dinge einmal für jede Datei funktionieren und einmal nicht. Nein, ich stelle DEine Antworten nicht in Frage, nur weiß ich ebend keinen Rat mehr. Das zweite Makro ist ein Auszug des Ersten und nach Deiner Aussage funktioniert das zweite immer. Es ist mir dann jedoch nicht nachvollziehbar warum das erste nicht funktioniert, da der einzige Unterschied der ist einmal den Dateinamen in einem Meldungsfenster anzuzeigen und einmal innerhalb des Dateidialogs. Die Zeile für Letztres im ersten Makro ist:

Code: Alles auswählen

dialog.setDefaultName(nur_name)
und ich kann dort beim besten Willen keinen Fehler entdecken und "nur_name" ist nach Deiner Aussage immer der korrekte DAteiname im letzten Makro und er wird im ersten Makro nicht anders bestimmt ist also gleich.

Vielleicht sieht sonst jemand einen Fehler, ich sehe keinen und bin ratlos.


Gruß
Stephan

von penti » Di, 14.03.2006 00:08

Hallo Stephan,

in der Titelzeile steht z. B. Rechnungsliste_2006.sxc, auch Lehmann_2006_22235 -OpenOffice.org calc.

Übrigens: beim Ausführen Deines letzten Makros erscheint korrekt in der MessageBox der Dateiname, und zwar bei allen Dateien.

Du machst Dir ja viel Mühe. Vielen Dank.

Gruß
Penti

von Stephan » Mo, 13.03.2006 23:19

Ich hoffe, das hat zur Klärung beigetragen.
Nein, leider überhaupt nicht :cry: , denn das hatte ich schon bisher so verstanden.
Mein primäres Problem damit ist auch nicht Deine Antwort das sich der Dateidialog beim integrierten PDF-Export so verhält, obwohl ich das zunächst auch nicht erklären kann, sondern das das Makro so reagiert.

Laß doch bitte mal bei diesen Dateien nur das Folgende laufen:

Code: Alles auswählen

Sub name_anzeigen()
datei = ThisComponent.URL 
i = 0 
Do 
   i = i + 1 
   dat_name = RIGHT(datei,i) 
Loop While LEFT(dat_name,1)<>"/" 
'Name 
nur_name = LEFT(RIGHT(datei,i-1),LEN(RIGHT(datei,i-1))-4)
msgbox nur_name
End sub
das müßte den Dateinamen (ohne Endung) anzeigen, falls nicht ist mir das vollkommen unklar.

Was steht übrigens bei den betreffenden Dateien in der Titelzeile?



Gruß
Stephan

von penti » Mo, 13.03.2006 22:44

Guten Abend,

@ stephan: Also1, ich speichere eine Datei mit dem Namen Hallo.ods [ok]
JETZT klicke ich auf das pdf-Symbol. Dialog öffnet sich und KEIN Name ist
vorgeschlagen.

Also2, ich lade eine Datei, die zu diesem Zeitpunkt selbstverständlich
einen Namen hat und klicke auf das pdf-Symbol. Der Dialog öffnet sich und es ist KEIN Name vorgeschlagen.

Manchmal aber ist zu 1 oder 2 ein Name vorgeschlagen, nämlich der DATEINAME.

Mit Deinem Makro ist es ganz genauso.

Wie gesagt, ich kann keine Struktur finden, wann´s geht und wann nicht.

Ich hoffe, das hat zur Klärung beigetragen.

@ sule1979 : Mit welcher Version hast Du das Makro getestet?

Gruß
Penti

von sule1979 » Mo, 13.03.2006 13:50

Hallo penti,

ich habe ein ähnliches Makro geschrieben und Rechnungen per Makro in eine
PDF zu generieren. Dabei wird der aktuelle Pfad ermittelt um die PDFs dort abzugelegt. Zusätzlich wird der Tabelle "Rechnung" die Rechnungsnummer (Zelle: F7) dazu verwende um einen eindeutigen PDF-Namen zu erhalten (Rechnung_2006-001).

Schau mal bitte unter das Thema
"drucken zu PDF mit einem bestimmten Druckbereich per Makro"
viewtopic.php?t=6710


Gruß
Marius[/url]

von Stephan » Mo, 13.03.2006 08:02

Dieses Makro funktioniert ausnahmslos für jede Datei, welche Bereits einen Namen hat. Die Eigenschaft:

Code: Alles auswählen

ThisComponent.URL


enthält nämlich diesen Namen. Sonst nenne ein konkretes Gegenbeispiel.

Bei einer Datei welche noch keinen Namen hat kann natürlich der Dateiname nicht als Name für das PDF verwendet werden weil er einfach nicht da ist.


Gruß
Stephan

von penti » Mo, 13.03.2006 00:15

Ist wohl schon

Guten Morgen,

hab vielen Dank, Stephan.
Das Makro funktioniert. Allerdings nur wie der
"eingebaute" Befehl.

Nach wie vor ist es so, dass es bei einigen Dateien keinen Dateinamensvorschlag gibt.

Würde zu gerne wissen, nach welchen Kriterien das
Muster abläuft, ich habe noch mal getestet und
nichts herausgefunden !?

Vielleicht hat jemand noch eine, die zündende Idee?

Gruß
Penti

von Stephan » So, 12.03.2006 22:00

Hast Du einen Hinweis?


Nein, darauf habe ich so genau noch nie geachtet.
Im Zweifel mache es einfach mit Makro und rufe einen angepaßten Speichern-Dialog auf. Nur für bereits gespeicherte Calc-Dokumente sollte das hier gehen:

Code: Alles auswählen

Sub Calc_als_PDF_speichern()
datei = ThisComponent.URL
i = 0
Do
	i = i + 1
	dat_name = RIGHT(datei,i)
Loop While LEFT(dat_name,1)<>"/"
'Name
nur_name = LEFT(RIGHT(datei,i-1),LEN(RIGHT(datei,i-1))-4)
'pfad
nur_pfad = ConvertFromURL(LEFT(datei,LEN(datei)-LEN(dat_name)))
'exit sub
arg = Array(com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_AUTOEXTENSION) 
dialog = CreateUnoService("com.sun.star.ui.dialogs.FilePicker") 
dialog.Initialize(arg()) 
dialog.appendFilter( "PDF-Dokument (*.pdf)", "*.pdf" )
dialog.SetMultiselectionMode(False)
dialog.setDefaultName(nur_name)
dialog.setDisplayDirectory(nur_pfad)
dialog.setvalue(100,0,true) 
antwort = dialog.execute
if antwort = 1 then
	Dim exportEigenschaften(0) as New com.sun.star.beans.PropertyValue
	exportEigenschaften(0).Name = "FilterName"
   	exportEigenschaften(0).Value = "calc_pdf_Export"
   	ThisComponent.storeToUrl(  dialog.Files(0) , exportEigenschaften() )	
end if
End Sub

Gruß
Stephan

von penti » So, 12.03.2006 15:46

Danke Stephan,

nein, nicht ganz.
Bei manchen Dateien gibt es keine Vorgabe, bei einigen schon. Ich habe bislang die Systematik nicht erkannt, nach der der Name vorgeschlagen wird und wann nicht.
Hast Du einen Hinweis?


Gruß
Penti

von Stephan » So, 12.03.2006 10:21

Du kannst die DAtei doch ganz einfach nach PDF konvertieren, der DAteiname ist dann Vorgabe für den Namen des PDF und das ist doch das was Du willst.


Gruß
Stephan

Automatische Dateinamensvergabe

von penti » So, 12.03.2006 10:03

Hallo,

ich möchte Dokumente, bspw. eine Rechnung per
Tastendruck auch im pdf-Format speichern und
dabei den Namen der oo-Datei vergeben lassen.

Also: Rechnung 0122003.ods soll automatisch
als 0122003.pdf gespeichert werden.
Wie bekomme ich das hin?

Vielen Dank

Gruß
Penti

Nach oben