[gelöst]PDF-Dateien erstellen?

25. Mai 2009 09:34

Hello @ all!

Wir sind derzeit damit beschäfftigt unser "Logisik-System" ein wenig aufzupolieren.
Hier ist es u.a. notwenig Listen an diverse Spedituere zu versenden. Der eine möchte gern Excel (Schon erledigt per Excel-Buffer) ein anderer braucht PDF Dateien per E-mail.
Derzeit erzeugen wir diese über einen Report und dann auf einen PDF_Drucker, dies ist aus zweierlei Hinsicht umständlich:
1. Die Druckerauswahl geht nicht Automatisch, sondern muss bei jedem Druck angewählt werden , die Eingabe des Dateinamens muss ebenfalls manuell erfolgen.
2.Wir haben 2 - 3 Reports die eigentlich zu einer PDF_ Datei zusammen geführt werden sollten? Jeder Report hat aber einen eigenen Printjob.

Mein derzeitiger Lösungsansatz wäre zumindest die Druckerauswahl zu automatieseren. Ich meine aber hier im Forum gelesen zu haben dass es auch eine Möglichkeit gibt in einer Codeunit eine PDF-Datei zu erzeugen, leider ist dies wohl nirgends so erklärt ,dass ich damit etwas Anfangen könnte.

Wäre echt eine Erleichterung für unsere Logisik Dame, also vielen Dank für eure Hilfe in voraus!

Gruß Matthias
Zuletzt geändert von himi81 am 22. Februar 2011 07:50, insgesamt 1-mal geändert.

Re: PDF-Dateien erstellen?

25. Mai 2009 09:42

Die Druckerauswahl kannst du automatisieren, indem du in der Druckerauswahl einen neuen Eintrag erstellst, der dem aufrufenden User den PDF-Drucker zuweist. Nach dem Druck löschst du diesen Eintrag wieder.

Es gibt sicherlich genug Wege, dem PDF-Drucker einen Dateinamen vorzugeben (PDFreedom zum Beispiel kann das). Dann heißt das erzeugete PDF zwar direkt nach der Erstellung immer gleich, aber das kann man ja aus Nav problemlos umbenennen.

Re: PDF-Dateien erstellen?

26. Mai 2009 16:41

Ich habe mal eine autom. PDF Erstellung mit dynamischen Dateinamen und anschließenden E-Mail Versand mit dem PDFCreator realisiert.
http://www.pdfforge.org/products/pdfcreator/download

Ich hab dir mal die CU angehangen.
Vielleicht kannst du damit was anfangen.

Gruß
Christoph
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: PDF-Dateien erstellen?

27. Mai 2009 07:41

Hallo Christoph;

Zunächst mal Danke, echt ne sehr interessante Codeunit.
Leider ist das für mich sehr harter Tobak, bin halt noch ein ziemliches Greenhorn.
Wenn ich es vielleicht sio hin bekäme, dass sie bei mir das selbe macht wie bei dir, könnte ich sie vielleicht für meine Zwecke anpassen. So ist das ein bisschen zu schwer für mich, z.B. die Reports die in der Codeunit angewählt werden habe ich garnicht, wenn ich igrendwas veränder bekomme ich immer die Meldung " Die gewählte Typenbibliothek konnnte nicht geladen werden. Die Var PDFCreater und PDFCreatorOption zeigen vom Subtype nur "Unknown Automation Server" usw.
Wie rufst ud die Codeunit auf? Über nen Report?
Scheint aber genau das zu sein, was ich suche. Mit der Email ist nur für MS - Emailprogramme gedacht? Wir nutzen z.Z. als Standard "Tobit".
Wäre für weitere Unterstützunmg dankbar.

Gruß Matthias

Re: PDF-Dateien erstellen?

27. Mai 2009 08:46

Hi Matthias!

fuer Christophs Objekte musst du den PDF Creator Installiert bzw. die richtigen DLLs registriert haben! Am besten installierst du dir das Programm schnell, ist freeware (Chip.de)

Des Weiteren empfehle ich da gerne FreePDF XP.
Es ist zwar auch ein PDF Drucker aber dieser kann direkt per Mail senden, an ein schon "gedrucktes Dokument" das neue anhaengen, direkt auf dem Desktop sichern (fuer die faulen unter uns xD) oder das normaler sichern der Datei.

Ansonsten schau dir diese Auszug auf dem "DeveloperPDF.pdf" ("Acrobat Developer FAQ") an der folgendes besagt:


How Do I Use Command Lines with Acrobat and Adobe Reader on Windows?
These are unsupported command lines, but have worked for some developers. There is no documentation for these commands other than what is listed below. You can display and print a PDF file with Acrobat and Adobe Reader from the command line.

NOTE:All examples below use Adobe Reader, but apply to Acrobat as well. If you are using Acrobat, substitute Acrobat.exe in place of AcroRd32.exe on the command line.

AcroRd32.exe pathname — Executes Adobe Reader and displays the file, whose full path must be provided.
Other options for the command line are:

/n:
Launches a separate instance of Acrobat or Adobe Reader, even if one is currently open.
/s:
Opens Acrobat or Adobe Reader, suppressing the splash screen.
/o:
Opens Acrobat or Adobe Reader, suppressing the open file dialog.
/h:
Opens Acrobat or Adobe Reader in a minimized window.

AcroRd32.exe /p pathname — Executes Adobe Reader and displays the Print dialog box.
AcroRd32.exe /t path "printername" "drivername" "portname" — Initiates Adobe Reader and prints a file, whose path must be fully specified, while suppressing the Print dialog box.
The four parameters of the /t option evaluate to path, printername, drivername, and portname (all strings).
●printername — The name of your printer.
●drivername — Your printer driver’s name, as it appears in your printer’s properties.
●portname — The printer’s port. portname cannot contain any "/" characters; if it does, output is routed to the default port for that printer.



wenn du dann ne .bat Datei machst koenntest du das dann wie folgt (z.B.) ansteuern:
"C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe" /n "C:\Users\user\Desktop\BLANK_.pdf" "\\Rechner-Name\FreePDFXP"

wenn der drucker dementsprechend frei gegeben ist.

Nachteil der Sache, es scheint (fast) unmöglich das der Reader selbst sich wieder schliesst nach dem drucken!

Re: PDF-Dateien erstellen?

27. Mai 2009 10:12

himi81 hat geschrieben:Hallo Christoph;

Zunächst mal Danke, echt ne sehr interessante Codeunit.
Leider ist das für mich sehr harter Tobak, bin halt noch ein ziemliches Greenhorn.
Wenn ich es vielleicht sio hin bekäme, dass sie bei mir das selbe macht wie bei dir, könnte ich sie vielleicht für meine Zwecke anpassen. So ist das ein bisschen zu schwer für mich, z.B. die Reports die in der Codeunit angewählt werden habe ich garnicht, wenn ich igrendwas veränder bekomme ich immer die Meldung " Die gewählte Typenbibliothek konnnte nicht geladen werden. Die Var PDFCreater und PDFCreatorOption zeigen vom Subtype nur "Unknown Automation Server" usw.
Wie rufst ud die Codeunit auf? Über nen Report?
Scheint aber genau das zu sein, was ich suche. Mit der Email ist nur für MS - Emailprogramme gedacht? Wir nutzen z.Z. als Standard "Tobit".
Wäre für weitere Unterstützunmg dankbar.

Gruß Matthias


Hi Matthias x 2 :)

Sorry, wusste nicht dass du noch recht frisch bei der Sache bist, sonst hätte ich mir vorher mal die Mühe gemacht die für dich irrelevanten Sachen raus zu nehmen. :)
Aber ich denke mit ein wenig rum probieren bekommst du das hin ;)
Wie Matthes König schon sagste, du musst den PDFCreator vorher installieren damit er die Bibliotheken findet.

Der Mail Versand geht auch über andere MAPI fähige Systeme.
Also auch Tobit.
Entweder nimmst du die Navision interne Mail CU oder baust dir was über den Scripting Host zusammen.
Code:
PROCEDURE NewMessageWSH@1000000001(ToName@1000000005 : Text[80];CCName@1000000004 : Text[80];Subject@1000000003 : Text[260];Body@1000000002 : Text[1024];AttachFileName@1000000001 : Text[260]);
VAR WSH_Shell@1000000000 : Automation "{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B} 1.0:{72C24DD5-D70A-438B-8A42-98424B88AFB8}:'Windows Script Host Object Model'.WshShell";

IF ISCLEAR(WSH_Shell) THEN
  CREATE(WSH_Shell);
WSH_Shell.Run('mailto:' + ToName + '?subject=' + Subject + '&cc=' + CCName + '&body=' + Body + '&attachment=' + AttachFileName);


Letzteres musste ich mal machen, da wir irgendein Problem mit unseren Clients hatten und es nur darüber ging.
Mit Tobit hatte ich allerdings auch mal Probleme dass David seine eigene mapi32.dll registiert hat.
Habe dann wieder die von MS rein kopiert und registriert und alles lief wunderbar.

Re: PDF-Dateien erstellen?

4. Juni 2009 15:36

ChristophE hat geschrieben:Ich habe mal eine autom. PDF Erstellung mit dynamischen Dateinamen und anschließenden E-Mail Versand mit dem PDFCreator realisiert.
http://www.pdfforge.org/products/pdfcreator/download

Ich hab dir mal die CU angehangen.
Vielleicht kannst du damit was anfangen.

Gruß
Christoph


Hallo Christoph,

Hier eine kleine Ergänzung zu deinem Sleep-Befehl:

repeat
sleep(200)
unti file.rename (abc,abc);

abc = Pfad + Dateiname + Endung; beide müssen gleci lauten. Wenn der rename durchgeführt werden kann = File wurde vollständig erstellt, geht es mit der nächsten Befehlszeile weiter. Damit kann man verhindern, dass Nav unnötig in einer Warteschleife hängt bzw. bei großen Files diese nicht gefunden werden.

Re: PDF-Dateien erstellen?

5. Juni 2009 09:14

So kann mans natürlich auch machen.
Aber ich habe die CU eh nicht mehr im Einsatz, da ich inzwischen den Brötchengeber gewechselt habe :)

Läuft das denn nun bei dir?

Gruß

Re: PDF-Dateien erstellen?

8. Juni 2009 07:09

Hmmm...

Irgenwie ist mir das zu kompliziert, verstehe den Quellcode der Codeunit noch nicht so ganz, muss nochmal mit Zeit ein bischen damit rumspielen..

Gruß Matthias

Re: PDF-Dateien erstellen?

12. Juni 2009 10:00

Hello @ all...

Bin jetzt ein Stückchen weiter, und jetzt häng ich schon wieder... wehrt sich noch ein bißchen.

Ich bekomme mit Frakmenten der mir freundlicherweise zur verfügung gestellt wurde , ein PDF erstellt und abgelegt.
Ich hbae es auch geschafft Tobit zu öffnen, und die Email Adresse aus dem Debitor vorzugeben.

Jetzt gibt es noch folgende Probleme :
1. Ich gebe 3 Textfelder aus der Tabelle mit , 2 und 3 wird scheinbar ganz ignoriert, und von 1 wird immer nur das erste Wort in den Body der Mail übertragen...
Auch wenn ich es erst in Var schreibe, bleibt immer gleich. sobald ein Leerzeichen da ist ist für Tobit der Text zu Ende.
Woran komnnte das liegen?

2. Bekomm den Dateianhang nicht hin, irgendeine Idee?? Weiß nicht genau wo ich den Hebel ansetzten soll.

Danke an alle...

Gruß Matthias

Re: PDF-Dateien erstellen?

12. Juni 2009 12:09

zu 1: setz den String im Email Body mal in " " oder ' ' vielleicht ist für Tobit nach einem Wort Ende wenn der Text nicht in Anführungszeichen oder so steht!?

zu 2: welche Email Methode nutzt du denn nun? MAPI? weil mit MAPI ist es nich möglich Anhänge hinzuzufügen wenn ich mich recht erinnere... Deswegen habe ich auch den Windows Scripting Host zurück gegriffen wenn ich mich recht erinnere :idea: ... is schon sooo lange her :-)

Re: PDF-Dateien erstellen?

28. August 2009 08:51

Hallo ChristophE,

Ich habe mir mal deine Codeunit und das Freeware-Tool angesehen.
Ich hab den Code auch soweit verstanden...
Ich habe jetzt nur ein Problem, welches warscheinlich auf die Version des PDF Creators zurückzuführen ist.

Nachdem der Bericht an den Drucker gesendet wurde, erscheint von dem Freeware Tool ein Fenster in dem der Anwender bestimmen kann wo er das PDF abspeichern will.
Zweierlei Probleme habe ich somit.

1.)
Ich kann nicht mehr den Pfad für den Anhang "bestimmen" und weiter zum Versand in die SMTP Codeunit schieben.

2.)
Ich habe gesehen das in der Codeunit ein Sleep ausgeführt wird.
Nur der Anwender kann sich ja vom Ding her unendlich viel Zeit lassen bis er das Fenster bestätigt und das PDF erstellt wird. :wink:

Das Fenster was ich meine ist der 2. Screenshoot auf der Seite der Freeware !
http://de.pdfforge.org/screenshots

Es währe nett wenn du mir helfen könntest dieses Fenster zu unterdrücken.

Vieleicht kennst du ja ein Propertie aus dem "PDFCreator.cOptions" Objekt wie z.B.

"PDFCreatorOption.UseAutosave := 1;
PDFCreatorOption.UseAutosaveDirectory := 1;
PDFCreatorOption.AutosaveDirectory := FileDirectory;
PDFCreatorOption.AutosaveFormat := 0; //PDF
PDFCreatorOption.AutosaveFilename := FileName;
"

was das Fenster ausschaltet ????

Ich bin für jede Hilfe extremst dankbar.
MFG

Re: PDF-Dateien erstellen?

28. August 2009 10:11

Hi.

Hmm, das Fenster hatte ich mit irgendeinem Propertie unterbunden.
Bei mir wurde die PDF in dem Pfad erstellt und im Anschluss dann die E-Mail mit dem Anhang geöffnet.
Das SLEEP musste ich einbauen da das Filesystem oder Client bei größeren Dateien manchmal zu langsam war und die E-Mail aufging bevor die File abgespeichert war.

Versuch mal die Version 0.9.2 (http://sourceforge.net/projects/pdfcreator/files/)
Das könnte vom Datum her die sein die ich damals im Einsatz hatte.

Ich meine aber dass die von dir genannten Properties schon ausreichend waren.
Ich habe den PDFCreator mittlerweile nicht mehr im Einsatz, da ich zwischenzeitlich den Brötchengeber gewechselt habe :) aber wenn ich mal was Zeit habe kann ich mir das noch mal in einer Testumgebung aufbauen.

Gruß

Re: PDF-Dateien erstellen?

30. September 2009 11:15

Hallo,

sorry dass ich mal so zwischenfrage, aber ich hab so was in der Art auch vor, nur, dass der PDFCreator als Netzwerkdrucker fungieren soll. Habe ich da überhaupt eine Möglichkeit, einen Dateinamen mitzugeben oder komme ich um die Einzelplatzinstallation von PDFCreator / Ghostscript nicht herum?

MfG

Carsten

Re: PDF-Dateien erstellen?

11. Dezember 2009 12:07

*nochmal das Thema hervorkram*
Hallo,

Ich hab da ein merkwürdiges Phänomen, was ich nicht wirklich verstehe. Hier zuerst ein Ausschnitt:

Code:

IF ISCLEAR(PDFCreatorL) THEN
  CREATE(PDFCreatorL);
IF ISCLEAR(PDFCreatorErrorL) THEN
  CREATE(PDFCreatorErrorL);
  {
IF ISCLEAR(PDFCreatorOptionL) THEN
  CREATE(PDFCreatorOptionL);
 }
PDFCreatorErrorL := PDFCreatorL.cError;

IF PDFCreatorL.cStart('/NoProcessingAtStartup',TRUE) = FALSE THEN
  ERROR('Status: Error[' + FORMAT(PDFCreatorErrorL.Number) + ']: ' + PDFCreatorErrorL.Description);

PDFCreatorOptionL := PDFCreatorL.cOptions;
PDFCreatorOptionL.UseAutosave := 1;
PDFCreatorOptionL.UseAutosaveDirectory := 1;
PDFCreatorOptionL.AutosaveDirectory := pPfad;
PDFCreatorOptionL.AutosaveFormat := 0; //PDF
PDFCreatorOptionL.AutosaveFilename := pFileName;


Ich habe den PDF Creator installiert, auf meinem Rechner funktioniert das auch fein, aber wenn ich das nun auf einem anderen Rechner aufrufe (wo natürlich ebenfalls PDF Creator installiert ist) erhalte ich in der Zeile "PDFCreatorOptionL := PDFCreatorL.cOptions;" folgende Fehlermeldung:

"Diese Meldung ist für C/AL-Programmierer bestimmt:
Ungültige Zuweisung. Es ist nicht möglich, ein _clsPDFCreatorOptions einer clsPDFCreatorOptions zuzweisen"

Was will mir nun diese Fehlermeldung sagen?!? :-?

Re: PDF-Dateien erstellen?

11. Dezember 2009 12:17

Auf den ersten Blick würde ich vermuten, da fehlt was "PDFCreatorOptionL"? (sieht aus, als fehlt die Funktion dazu!)
(Sind die variablen evtl. ungünstig deklariert?)

Oder,
währe es möglich, das es unterschiedliche Versionen (PDF Creator) sind auf den PC´s?

Re: PDF-Dateien erstellen?

15. Dezember 2009 15:12

Nein, das passt alles. Nun hat mich mein Jedimeister darauf gebracht, dass es etwas mit der ID des COM-Objekts zu tun haben könnte. Ich habe das ganze mal auf einem Testrechner erneut kompiliert und siehe da - es geht! Nur - ich kann doch kaum das ganze auf jedem Rechner einmal kompilieren .... da steht hier etwas mit "später Bindung" im Raum - aber ich kann mir da nicht wirklich etwas drunter vorstellen. Vielleicht reicht da ja auch ein Schubs in die richtige Richtung ....

Re: PDF-Dateien erstellen?

15. Dezember 2009 15:28

Was hast du denn Kompiliert?
Entwicklest du auf C++ / C# / .NET?
(Stand nirgens geschrieben :roll: )

Wenn dem so sein sollte, und da wäre irgendwas "vergurkt", dann müsstest du wohl auf jedem Rechner das korrigeren.
(Bei soetwas ist der NAS nicht schlecht, der alles Zentral verarbeitet. Die Anwendung wird nur auf dem Server installiert, somit entfällt das Administrieren jedes PC´s)

"Late binding" / "später Bindung", einfach mal Googlen nach com objekt später Bindung

Re: PDF-Dateien erstellen?

15. Dezember 2009 15:34

Ok, also: :-)

Ich habe auf dem Testrechner PDFCreator installiert, danach auf dem Testrechner Navision bzw. den Objectdesigner geöffnet, die entsprechende Codeunit geöffnet, einmal über den Code geschaut und dann F11 gedrückt, und danach dann STRG+S. Als ich die Funktion dann in einem Formular aufgerufen habe, hat sie funktioniert, ohne die Fehlermeldung ...

NAS? :?:
Edith meint: Ah, genfunden. Ich denke nicht das so was hier installiert ist .... :-/

Re: PDF-Dateien erstellen?

15. Dezember 2009 15:48

Das kling ein wenig danach, das die installierten DLL´s auf den PC´s unterschiedlich sind, könnte das die Ursache sein?!
(Bestätig meine Anfangsvermutung, das eine Methode nicht gefunden werden kann, weil es diese in dem einen Versionsstand nicht gibt im anderen schon)

Wenn du Glück hast, reicht das 1x Komplieren, die User müssen nur Navision neu starten.

Re: PDF-Dateien erstellen?

15. Dezember 2009 16:06

Ja, ich denke da hast du recht. Irgendwo, irgendwie sind unterschiedliche PDFCreator-Versionen unterwegs. Ich hab das ganze nun mal an einem der Rechner kompiliert, die die Fehler aufgewiesen haben, und nun läufts auf meinem Entwicklungsrechner nicht mehr (und auch nicht auf dem Testrechner). Bah pfui, das wird dann ja eine Rennerei ....
:roll:

Re: PDF-Dateien erstellen?

16. Dezember 2009 14:21

So, ich denke das Problem ist nun durch. Wichtig ist dass alle Clients den gleichen Stand des PDFCreator haben (aktuell ist 0.9.8), sonst kommt es zu Fehlermeldungen.

Hier mal mein Code. Ich sage gleich dazu, dass ich noch ab und zu eine Auffälligkeit hatte, dass sich der PDFCreator nicht wieder beendet und dadurch irgendwie Navision komplett blockiert hat. Ich habe daraufhin den Code nochmal überarbeitet, aber da ich den Fehler auch vorher nicht reproduzieren konnte, kann ich nicht sagen ob das Problem nun endgültig gelöst ist. Ach ja, und ich habe das auf NAV 4.03 entwickelt, vielleicht ist das mit NAV 5 eh kein Problem. Die Zählvariablen innerhalb der REPEAT-Anweisungen sollen verhindern, dass es an diesen Stellen zu Endlosschleifen kommt - ein magerer Versuch ohne Events auszukommen und dem Programm trotzdem die notwendige Zeit einzuräumen :wink: .

Lokale Variablen:
PDFCreatorL : Automation - PDFCreator:PDFCreator
PDFCreatorErrorL : Automation - PDFCreator:PDFCreatorError
PDFCreatorOptionL : Automation - PDFCreator:PDFCreatorOption
CounterL : Integer
DefaultPrinter : Text(100)
ReklaKopfL + ReklaZeilenL : Records, auf denen die entsprechenden Reports aufgebaut sind

Code:
fnZuPDF(pTyp : Text[30];pNummer : Code[20];pFileName : Text[100];pPfad : Text[200])
//*****fnZuPDF** 09.12.09 ** h_CM **********************************************************
//***** Funktion zum Erstellen von PDF Dateien aus Reports
//***** Vorraussetzung: Installation vom PDFCreator auf dem entsprechenden Client
//***** unter Nutzung der Standard-Installationsoptionen. Wichtig: Die Version muss einheitlich
//***** sein (aktuell PDFCreator 0.9.8)
//*****
//***** Übergabeparameter:
//***** pTyp: der Typ des Reports,
//***** pNummer: die aktuelle Datensatznummer
//***** pFileName: der Dateiname, wichtig ist die Endung ".pdf"
//***** pPfad: der Pfad, unter welcher der Report als PDF gespeichert werden soll (Endet mit "\")
//***** pPfad + pFileName werden eventuell benötigt, um die PDF-Datei danach per Mail zu versenden.


IF ISCLEAR(PDFCreatorL) THEN
  CREATE(PDFCreatorL);
IF ISCLEAR(PDFCreatorErrorL) THEN
  CREATE(PDFCreatorErrorL);

PDFCreatorErrorL := PDFCreatorL.cError;

IF PDFCreatorL.cStart('/NoProcessingAtStartup',TRUE) = FALSE THEN
  ERROR('Status: Error[' + FORMAT(PDFCreatorErrorL.Number) + ']: ' + PDFCreatorErrorL.Description);

PDFCreatorOptionL := PDFCreatorL.cOptions;
//PDFCreatorOptionL := PDFCreatorL.cReadOptions(); //funktioniert auch
PDFCreatorOptionL.UseAutosave := 1;
PDFCreatorOptionL.UseAutosaveDirectory := 1;
PDFCreatorOptionL.AutosaveDirectory := pPfad;
PDFCreatorOptionL.AutosaveFormat := 0; //PDF-Format
PDFCreatorOptionL.AutosaveFilename := pFileName;
//weitere mögliche Optionen hier einfügen

PDFCreatorL.cOptions := PDFCreatorOptionL;
PDFCreatorL.cClearCache();
DefaultPrinter := PDFCreatorL.cDefaultPrinter; //Der System-Standarddrucker wird ziwschengespeichert
PDFCreatorL.cDefaultPrinter := 'PDFCreator';
PDFCreatorL.cPrinterStop := FALSE;

CASE pTyp OF
  //Unterscheidung anhand verschiedener Typmöglichkeiten
  'Reklamation':
  BEGIN
    ReklaKopfL.RESET;
    ReklaKopfL.SETRANGE("Nr.", pNummer);
    ReklaKopfL.FINDFIRST;
    REPORT.RUNMODAL(REPORT::Reklamationsbericht,TRUE,TRUE,ReklaKopfL);
  END;
  'Anfrage':
  BEGIN
    //TODO: Anfrage
  END;
  'Rahmenbestellung':
  BEGIN
    //TODO: Rahmenbestellungen
  END;
  'Bestellung':
  BEGIN
    //TODO: Bestellungen
  END;
  'Lieferanmahnung':
  BEGIN
    //TODO: Lieferanmahnung
  END;
  '8D-Report':
  BEGIN
    //TODO: 8D-Report
    ReklaZeilenL.RESET;
    ReklaZeilenL.SETRANGE(ReklaZeilenL."Reklamationsnr.", pNummer);
    ReklaZeilenL.FINDSET(FALSE);
    REPORT.RUNMODAL(REPORT::"8D-Report",TRUE,TRUE,ReklaZeilenL);
  END;
END;

Window.OPEN('Bitte warten, PDF wird erstellt ...');
WindowIsOpen := TRUE;

//Auf Erstellen warten, gegen Endlosschleife läuft Zähler
CounterL := 0;
REPEAT
  SLEEP(200);
  CounterL := CounterL + 1;
UNTIL ((FILE.RENAME(pPfad + pFileName, pPfad+pFileName)) OR (CounterL = 30));

//Abbruch prüfen
IF CounterL = 30 THEN
  ERROR('Fehler beim Erstellen des Dokuments, bitte erneut versuchen');

//Beenden der PDF-Funktion
PDFCreatorL.cPrinterStop := TRUE;
PDFCreatorL.cClearCache();
PDFCreatorL.cDefaultPrinter := DefaultPrinter;

CounterL := 0;
REPEAT
  SLEEP(200);
  CounterL := CounterL + 1
UNTIL (PDFCreatorL.cClose()) OR (CounterL = 30);

IF CounterL = 30 THEN
  ERROR('Fehler beim Beenden vom PDFCreator');

CLEAR(PDFCreatorL);
IF WindowIsOpen THEN
  Window.CLOSE;
WindowIsOpen := FALSE;


Wenn noch jemand den Fehler produzieren könnte, wäre ich über ein Feedback froh, auch über einen Umbau auf den Stand NAV 5 (damit ich mal die Unterschiede sehe zwischen NAV 4 und 5 :wink: )

In diesem Sinne schon mal schöne Feiertage und einen guten Rutsch!

Re: PDF-Dateien erstellen?

16. Dezember 2009 15:07

Wieso magerer versuch, wenn es damit zufriedenstellen klappt, ist doch alles in Butter :-)
Danke für Deinen Code ich denke ich werde mich bei Gelegenheit mal dran versuchen. Ich kenne das Programm PDF-Creator habe es aber bisher nicht aus Navision automatisiert benutzt.

Re: PDF-Dateien erstellen?

4. Februar 2010 09:30

Guten Morgen zusammen,

ich muss das Thema nochmal vorkramen. Es gibt da ein Problem was ich nicht ganz verstehe im Zusammenhang mit dem PDF-Creator.
Ab und zu (ich kann es leider nicht provozieren) kommt es nach wie vor vor, dass der PDFCreator "stehen bleibt" - ich habe den Task im Taskmanager, aber die Verarbeitung steht total, Navision reagiert nicht mehr etc. Erst wenn ich händisch im Taskmanager den PDFCreator beende, reagiert das System wieder (mit einer Fehlermeldung in Navision). Versuche ich das gleiche dann nochmal, läuft es in der Regel. Ich habe den Verdacht, daß irgendwie irgendwo im Hintergrund der PDFCreator auf eine Eingabe wartet, allerdings dann in einem Formular, welches nicht sichtbar ist. Hat eventuell noch jemand dieses Problem oder weiß, wie ich sämtliche Meldungen vom PDFCreator unterbinden kann? Die Fehlerbehandlung habe ich ja eigentlich in Navision, nur solange das nicht mehr reagiert, komme ich auch zu keiner direkten Behandlung ...Vielleicht gibt es ja eine nicht dokumentierte Option oder so ... bin da total ratlos im Moment. :-?

Re: PDF-Dateien erstellen?

4. Februar 2010 09:52

Ich könnte mir höchstens vorstellen, dass der NAS versucht, über den PDF Creator zu drucken. Ist dies bei euch ausgeschlossen?

Wenn du der "Auslöser" bist, dann taucht das Eingabefenster vielleicht "hinten" auf, wenn du alle anderen Fenster nacheinander minimierst.