25. Mai 2009 09:34
25. Mai 2009 09:42
26. Mai 2009 16:41
27. Mai 2009 07:41
27. Mai 2009 08:46
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
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);
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
5. Juni 2009 09:14
8. Juni 2009 07:09
12. Juni 2009 10:00
12. Juni 2009 12:09
28. August 2009 08:51
28. August 2009 10:11
30. September 2009 11:15
11. Dezember 2009 12:07
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;
11. Dezember 2009 12:17
15. Dezember 2009 15:12
15. Dezember 2009 15:28
15. Dezember 2009 15:34
15. Dezember 2009 15:48
15. Dezember 2009 16:06
16. Dezember 2009 14:21
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;
16. Dezember 2009 15:07
4. Februar 2010 09:30
4. Februar 2010 09:52