[GELÖST] Wenn Datei geschlossen wird, dann File löschen...

26. Oktober 2016 08:48

Hallo zusammen,

ich habe eine kleine Frage und hoffe ihr könnt mir weiterhelfen....:

Folgendes Szenario (NAV 2013):
Eine PDF-Datei wird in einem Netzwerkpfad erstellt und mittels HYPERLINK geöffnet. Dadurch öffnet sich der Acrobat Reader.

Folgendes soll jetzt passieren:
Sobald die Datei im Acrobat Reader geschlossen (!) wird (also der Acrobat Reader geschlossen wird) soll die erstellte Datei gelöscht werden.

Gibt es eine Möglichkeit das irgendwie abzuprüfen?

Gruß,
Sascha
Zuletzt geändert von Schany79 am 2. November 2016 12:41, insgesamt 1-mal geändert.

Re: Wenn Datei geschlossen wird, dann File löschen...

26. Oktober 2016 09:13

Gibt es eine Möglichkeit das irgendwie abzuprüfen?

Wahrscheinlich nur, wenn du den Reader direkt mit der Datei startest, und danach in NAV selbst aufräumst. :-?

Gruß, Fiddi

Re: Wenn Datei geschlossen wird, dann File löschen...

26. Oktober 2016 09:26

Manno... Das ist aber doof :-(

Re: Wenn Datei geschlossen wird, dann File löschen...

26. Oktober 2016 09:59

Du darfst den Reader nicht mittels Hyperlink öffnen, sondern modal über COM oder dotnet. Dann wartet NAV auf die Beendigung des Adobe Readers und du kannst im Anschluss die Datei löschen.

Edit:
Link

Mit einem zusätzlichen Griff
Code:
Process.WaitforExit();

sollte es dann klappen.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: Wenn Datei geschlossen wird, dann File löschen...

26. Oktober 2016 11:55

Da die PDF-Datei nur angezeigt werden soll, würde ich nie eine Datei irgendwo erzeugen (maximal eine temporäre auf dem Server). Diese dann per File Management Codeunit auf den Client runterladne und sofort löschen.

Re: Wenn Datei geschlossen wird, dann File löschen...

26. Oktober 2016 13:12

Danke für die Tipps! Die DotNet-Varianten sehe ich mir gerade an!

SilverX hat geschrieben:Da die PDF-Datei nur angezeigt werden soll, würde ich nie eine Datei irgendwo erzeugen (maximal eine temporäre auf dem Server). Diese dann per File Management Codeunit auf den Client runterladne und sofort löschen.


Ist das nicht ein Problem, da ich eine geöffnete Datei ja nicht löschen kann, da diese gerade geöffnet ist? Oder verstehe ich da jetzt was falsch?

LG,
Sascha

Re: Wenn Datei geschlossen wird, dann File löschen...

26. Oktober 2016 15:24

Nein, kein Problem. Wenn du es per Download von Server machst wird eh nur eine Kopie heruntergeladen. Danach kannst du die temporäre Datei sofort wieder löschen.

Re: Wenn Datei geschlossen wird, dann File löschen...

26. Oktober 2016 15:43

SilverX hat geschrieben: Danach kannst du die temporäre Datei sofort wieder löschen.


wenn ich Sascha richtig verstanden habe, möchte er die die Im Reader angezeigte Datei (also die auf dem Client) nach dem Anzeigen auch wieder löschen. :wink:

@Schany79
Handelt es sich bei den PDF um fertige oder durch Reports erstellte PDFs, die in der Vorschau nur besch... aussehen?

Für letztere kannst du die Porperty "PreviewMode" des Reports auf "PrintLayout" setzen. Dann sieht die Vorschau etwas besser aus.
Für erstere kann man die PDFs evtl. auf einer zentralen Netzwerkfreigabe ablegen, und mit Hyperlink öffnen. Dann musst du die Dateien danach nicht löschen.

Gruß Fiddi

Re: Wenn Datei geschlossen wird, dann File löschen...

2. November 2016 12:40

Hallo nochmal,

nein, die Ansicht war super, aber das Problem war das hier mehrere Reports hintereinander (normalerweise manuell) in der Vorschau angesehen werden und das ist natürlich ein wenig Zeitintensiv :roll:
Ich habe eine Lösung entwickelt die alle Reports (die in der Report Selections Tabelle (77)) zu diesem Vorgang eingerichtet wurde in einer PDF zusammengefasst werden. Diese PDF soll dann geöffnet und nach dem Öffnen wieder gelöscht werden.

Die Lösung von Michael "Process.WaitforExit();" funktioniert einwandfrei!

Hier meine Lösung:
Code:
SystemDiagnosticProcess1 := SystemDiagnosticProcess1.Process;
SystemDiagnosticProcess1.StartInfo.FileName := PDFFilePathAndName1;
SystemDiagnosticProcess1.Start();
SystemDiagnosticProcess1.WaitForExit();
CLEAR(SystemDiagnosticProcess1);
FILE.ERASE(PDFFilePathAndName1);


Wie gesagt, funktioniert super und war genau die Lösung die ich gesucht habe!

LG,
Sascha

Re: Wenn Datei geschlossen wird, dann File löschen...

4. November 2016 14:55

Schany79 hat geschrieben:Ich habe eine Lösung entwickelt die alle Reports (die in der Report Selections Tabelle (77)) zu diesem Vorgang eingerichtet wurde in einer PDF zusammengefasst werden.


Hi Schany,

an so einer Lösung bin ich interessiert. Kannst du diese teilen?