L&L Export von Rechnungen als .PDF ohne User-Eingriff

Moderator: Moderatoren

Antworten
medmaster
UDF-Programmierer
UDF-Programmierer
Beiträge: 58
Registriert: Di, 29. Jan 2008 1:43

L&L Export von Rechnungen als .PDF ohne User-Eingriff

Beitrag von medmaster »

Hallo,
ich hoffe es es kennt sich jemand mit dem für mich komplizierten Combit-Vorgehen aus ..
Ich möchte ohne Usereingriff aus einer Rechnungsschleife pdfs erzeugen und in einem Archiv-Verzeichnis absppeichern.
Der Dateiname muss dynamisch aus Rechnungsdaten in der Schleife erzeugt werden.
So weit der Ansatz ...
// Allgemeine Vorbereitung
nRet := LlPrintStart(hJob, ;
LL_PROJECT_LIST, ;
sName,LL_PRINT_EXPORT)
LlPrintSetOptionString(hJob, LL_PRNOPTSTR_EXPORT, "PDF")
LlSetOption(hJob, LL_OPTION_SUPPORTS_PRNOPTSTR_EXPORT, FALSE)
LlXSetParameter(hJob, LL_LLX_EXTENSIONTYPE_EXPORT, "" ,"Export.ShowResult", "0")
LlXSetParameter(hJob, LL_LLX_EXTENSIONTYPE_EXPORT, "PDF" ,"Export.Quiet", "1")
LlXSetParameter(hJob, LL_LLX_EXTENSIONTYPE_EXPORT, "PDF" ,"Export.File", cFile ) // hier klappt der Export 1X
(Wo weise ich den neuen Datenamen und wie zu ..?)
nRet:=LLprint(hJob)
Do ......
(hier müsste der neue Dateinamen erzeugt werden ..)

LLPrintResetProjectState(hJob)
LlDefineFieldStart(hJob)

ENDDO
Hinweis : es arbeitet dann , wenn ich VOR LLPrint() den Datenamen eingebe - aber so kann ich keinen neuen dynamisch erzeugen.
Anderes Problem ist die Anzeige von Firmenlogos in der pdf - da kommt "Matsch" raus .. ist das Problem bekannt ?
Danke für Hilfe :-)
Rainer
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: L&L Export von Rechnungen als .PDF ohne User-Eingriff

Beitrag von Tom »

Es empfiehlt sich, die ganzen Optionen - einschließlich Pfad und Dateinamen - vor dem LlPrintStart() zu setzen. Wenn Du das in einer Schleife machst, muss "cFile" (Export.File) halt neu besetzt werden, bevor die Option wieder gesetzt wird. Wichtig wäre, dass das LlPrintEnd() innerhalb der Schleife liegt. Den Job musst Du nicht jedes Mal neu eröffnen und/oder schließen; ich mache das je Thread nur einmal. Aber jede LlPrintStart-LlPrintEnd-Klammerung erzeugt ein PDF-Dokument. Wenn Du also mehrere erzeugen willst, musst Du den jeweiligen Dateinamen drumherum setzen.
Herzlich,
Tom
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: L&L Export von Rechnungen als .PDF ohne User-Eingriff

Beitrag von Marcus Herz »

- Firmenlogos? welche Graphiken verwendest du? Auflösung?
Und welche LL Version. Da gibts es immer wieder Probleme. Hier im Forum suchen, war schon ein paarmal Thema
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: L&L Export von Rechnungen als .PDF ohne User-Eingriff

Beitrag von ramses »

medmaster hat geschrieben: Mo, 01. Mär 2021 12:09 Anderes Problem ist die Anzeige von Firmenlogos in der pdf - da kommt "Matsch" raus .. ist das Problem bekannt ?
Hallo Rainer

das war besonders zwischen LL23 und LL26SP2 ein grosses Problem. Nicht nur Match auch Abstürze ohne Ende.....
In den Grafikdatein können je nach Dateiformat viele Metadaten oder sonstige Zusatzdaten enthalten sein. (Je nach Grafikprogramm ist da z.T echt viel Müll drin) Wenn du alle Zusatzdaten entfernst so dass die Grafikdatei nur noch die reinen Grafikdaten für das eine Logo in nicht zu hoher Auflösung enthält ist das Problem weg. Oder konvertiere das Logo in ein Dateiformat das keine zusätzlichen Daten erlaubt. (BMP)
Valar Morghulis

Gruss Carlo
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: L&L Export von Rechnungen als .PDF ohne User-Eingriff

Beitrag von ramses »

Tom hat geschrieben: Mo, 01. Mär 2021 12:21 Es empfiehlt sich, die ganzen Optionen - einschließlich Pfad und Dateinamen - vor dem LlPrintStart() zu setzen. Wenn Du das in einer Schleife machst, muss "cFile" (Export.File) halt neu besetzt werden, bevor die Option wieder gesetzt wird. Wichtig wäre, dass das LlPrintEnd() innerhalb der Schleife liegt. Den Job musst Du nicht jedes Mal neu eröffnen und/oder schließen; ich mache das je Thread nur einmal. Aber jede LlPrintStart-LlPrintEnd-Klammerung erzeugt ein PDF-Dokument. Wenn Du also mehrere erzeugen willst, musst Du den jeweiligen Dateinamen drumherum setzen.
Hallo Tom

so geht das mit den PDF Optionen aber nicht!
Du kannst keine PDF Export Werte setzten bevor du den Job nicht mit LLPrintStart() gestartet hast.
Weil ja LL gar noch nicht weiss dass er überhaupt was tun soll ......
So bekommst du sicher den Fehler -4 "Es wurde kein Druckjob gestartet ....."
Valar Morghulis

Gruss Carlo
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: L&L Export von Rechnungen als .PDF ohne User-Eingriff

Beitrag von Tom »

Du musst nur ein gültiges Handle haben(LLJobOpen). Der Printjob selbst muss noch nicht laufen.
Herzlich,
Tom
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: L&L Export von Rechnungen als .PDF ohne User-Eingriff

Beitrag von ramses »

Tom hat geschrieben: Fr, 05. Mär 2021 22:17 Du musst nur ein gültiges Handle haben(LLJobOpen). Der Printjob selbst muss noch nicht laufen.
Versuch es! Du kannst erst PDF-Optionen setzten nachdem das Projekt bestimmt ist. bzw. LLPrintStart() ausgeführt wurde.
Du kannst vor LLPrintStart() Variablen definieren aber keine Ausgabeoptionen wie z.B. PDF.
Jedenfalls funktioniert es bei mir nur in dieser Reihenfolge....
Valar Morghulis

Gruss Carlo
Benutzeravatar
HaPe
1000 working lines a day
1000 working lines a day
Beiträge: 995
Registriert: So, 15. Nov 2015 17:44
Wohnort: 71665 Vaihingen-Enz
Hat sich bedankt: 17 Mal
Danksagung erhalten: 15 Mal

Re: L&L Export von Rechnungen als .PDF ohne User-Eingriff

Beitrag von HaPe »

Hallo Carlo !
das war besonders zwischen LL23 und LL26SP2 ein grosses Problem
Was ist mit LL26SP2 gemeint?

Ich sehe in meinem Combit-Konto nur die Version 26 und 26.001 vom 27.0.2021
--
Hans-Peter
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: L&L Export von Rechnungen als .PDF ohne User-Eingriff

Beitrag von ramses »

Hallo Hans-Peter

Damit ist das in der Testphase befindliche kommende Service Pack 2 gemeint.
Ich habe eine Vorabversion die ich auf eigenes "Risiko" verwende weil es damit nicht mehr zu Total-Abstürzen nach bestimmten Aktionen in ganz bestimmten Fällen kommt. Der Support hat mir aber eindringlich empfohlen und geraten möglichst schnell auf die 64-Bit Programm Version zu wechseln.
Valar Morghulis

Gruss Carlo
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: L&L Export von Rechnungen als .PDF ohne User-Eingriff

Beitrag von ramses »

Hallo Tom

ich habe es jetzt doch noch getestet. Du liegts wirklich falsch.
Bereits der Aufruf von: LLPrintSetOptionString( hJob, LL_PRNOPTSTR_EXPORT, "PDF" )
ohne vorgehenden Aufruf LLPrintStart()
Führt zum Fehler -4 Es wurde eine Druckfunktion aufgerufen, obwohl noch kein Druckjob gestartet wurde.

Das Handbuch sagt dazu:
1. <starte Ausdruck> (LlPrintStart, LlPrintWithBoxStart)
2. <definiere Druckoptionen>* (LlPrintSetOption, LlPrintSetOptionString, LlPreviewSetTempPath)
Valar Morghulis

Gruss Carlo
efi110
Rookie
Rookie
Beiträge: 1
Registriert: Mo, 29. Nov 2021 12:34

Re: L&L Export von Rechnungen als .PDF ohne User-Eingriff

Beitrag von efi110 »

Hallo,
ich habe da ein ähnliches Problem und weiss nicht mehr weiter,
würde auch gerne für die Problemlösung bezahlen.

Ich programmiere mit VB6 und verwende List&Label22 (ich weiß, es ist veraltet)

Ich möchte über die Vorschau das Dokument per eMail als PDF verschicken,
das funktioniert ja soweit problemlos. Aber jetzt soll die PDF-Datei einen bestimmten
Namen haben (z.B. die Rechnungsnummer einer Rechnung). Das bekomme ich einfach nicht hin.

Habe dann das ganze nicht über die Vorschau programmiert und funktionert. Siehe Code
Mir wäre das Ganze aber über die Vorschau viel viel lieber.

Kann mir da jemend helfen!!!
Liebe Grüße
Efi

Hier der Code:
z_emailtext = z_emailtext & Chr(13) & Chr(13) & "Mit freundlichen Grüßen" & Chr(13) & Trim(mod_allg.z_name) & Chr(13) & Trim(mod_allg.z_Branche) & Chr(13) & Trim(mod_allg.z_Straße) & Chr(13) & Trim(mod_allg.z_Plz) & " " & Trim(mod_allg.z_Ort)
ret% = ListLabel1.LlXSetParameter(LL_LLX_EXTENSIONTYPE_EXPORT, "PDF", "Export.SendAsMail", "1")
ret% = ListLabel1.LlXSetParameter(LL_LLX_EXTENSIONTYPE_EXPORT, "PDF", "Export.Mail.To", z_emailadresse)
ret% = ListLabel1.LlXSetParameter(LL_LLX_EXTENSIONTYPE_EXPORT, "PDF", "Export.Mail.ShowDialog", "1")
ret% = ListLabel1.LlXSetParameter(LL_LLX_EXTENSIONTYPE_EXPORT, "PDF", "Export.Mail.SendResultAs", "text/html")
ret% = ListLabel1.LlXSetParameter(LL_LLX_EXTENSIONTYPE_EXPORT, "PDF", "Export.File", W_belegart & BELEG01!belegnr & ".pdf")
ret% = ListLabel1.LlXSetParameter(LL_LLX_EXTENSIONTYPE_EXPORT, "PDF", "Export.Mail.Subject", W_belegart & BELEG01!belegnr & ".pdf")
ret% = ListLabel1.LlXSetParameter(LL_LLX_EXTENSIONTYPE_EXPORT, "PDF", "Export.Path", mod_allg.Pfad_fuer_im_ex)
ret% = ListLabel1.LlXSetParameter(LL_LLX_EXTENSIONTYPE_EXPORT, "PDF", "Export.Quiet", "1")
ret% = ListLabel1.LlXSetParameter(LL_LLX_EXTENSIONTYPE_EXPORT, "PDF", "Export.SendAsMailAvailable", "0")
ret% = ListLabel1.LlXSetParameter(LL_LLX_EXTENSIONTYPE_EXPORT, "PDF", "Export.Mail.Provider", "MSMAPI")
ret% = ListLabel1.LlXSetParameter(LL_LLX_EXTENSIONTYPE_EXPORT, "PDF", "Export.Mail.Body", z_emailtext)
ret% = ListLabel1.LlPrintStart(LL_PROJECT_LIST, pfad, LL_PRINT_EXPORT)
ret% = ListLabel1.LlPrintSetOptionString(LL_PRNOPTSTR_EXPORT, "PDF")
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: L&L Export von Rechnungen als .PDF ohne User-Eingriff

Beitrag von Tom »

Hallo, Efi.

Du kannst mit

Code: Alles auswählen

LlSetOptionString(nJobNo,LL_OPTIONSTR_SAVEAS_PATH,<DateinameMitPfad>)
festlegen, was als Speicherungsname für die Vorschaudatei vorgeschlagen wird. Mit

Code: Alles auswählen

LlSetDefaultProjectParameter(nJobNo,"SaveAs.Format",<cFormat>,LL_PARAMETERFLAG_VALUE)
kannst Du bestimmen, welches Format präferiert wird. <cFormat> kann zum Beispiel "PDF" heißen.
Herzlich,
Tom
Antworten