Report als PDF speichern über PageActions

15. November 2017 10:44

Leider funktioniert das Speichern als PDF auf dem Client nicht. Ich habe 2 Varianten ausprobiert.

1. Variante:
Als PDF speichern - OnAction()
Filename := FileMgt.SaveFileDialog('Datei speichern',"No."+'_'+DELCHR("Sell-to Customer Name"+' '+"Sell-to Customer Name 2",'=','!"$§&/()')+'.pdf',Filename);
REPORT.SAVEASPDF(REPORT::"Sales - Quote Maridis",Filename,Rec);

Lokale Variablen: Filename (Text), FileMgt (Codeunit File Management)
(Funktioniert nur, wenn man den Client direkt auf dem Server aufruft, aber nicht auf dem User-Client)
(Fehlermeldung 1. Variante siehe Anhang)

und


2. Variante:
Als PDF speichern - OnAction()
ClientFileNameG := FileMgt.SaveFileDialog('Datei speichern',"No."+'_'+DELCHR("Sell-to Customer Name"+' '+"Sell-to Customer Name 2",'=','!"$§&/()')+'.pdf','(*.pdf)|*pdf');
ServerFileNameG := COPYSTR(FileMgt.ServerTempFileName('pdf'),1,250);
FileMgt.DownloadToFile(ServerFileNameG, ClientFileNameG);

Lokale Variablen: ClientFileNameG (Text), ServerFileNameG (Text)
(Fehlermeldung 2. Variante siehe Anhang)


Hat jemand eine funktionierende Lösung?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: Report als PDF speichern über PageActions

15. November 2017 10:53

In Variante 2 kann ich irgendwie nicht den Aufruf des Reports erkennen.

Re: Report als PDF speichern über PageActions

15. November 2017 11:13

Es funktioniert nicht auf dem Client, weil die Verarbeitung nicht auf dem Client passiert, sondern auf dem Server. Dieser kennt aber das vom Client angegebene Verzeichnis nicht.
Nutze die Funktionen in der FileMnagement um das PDF auf dem Server zu erzeugen und im Anschluss in das Clientverzeichnis zu kopieren.

z.B.:

Code:
  IF FileManagement.ClientFileExists(TempClientFileName) THEN
    FileManagement.DeleteClientFile(TempClientFileName);
  FileManagement.DownloadToFile(TempServerFileName,TempClientFileName);
  FileManagement.DeleteServerFile(TempServerFileName);


Edit:
Stimmt, McClane. In Variante 2 fehlt lediglich die PDF Erzeugung vor dem DownloadToFile

Code:
REPORT.SAVEASPDF(REPORT::"Sales - Quote Maridis",ServerFileNameG,Rec);