Dataport nach Ausführung nicht schließen

20. Februar 2009 09:28

Morgen zusammen,

ich habe folgendes Problem :

Nach Ausführung eines Dataports wird ein Crystal Report aufgerufen.
Das Problem ist hierbei dass der Crystal auf - und direkt wieder zugeht da im Hintergrund der Dataport ja durchgelaufen ist und somit das aufrufende Objekt des Crystals dicht ist und er sich somit auch schließt. Hab mir gedacht ich schalte am Ende eine Message o.ä. rein. Dies geht aber auch nicht da er bei einem Error zwar den Crystal aufruft und dieser auch offen bleibt, der Exportdatei aber nicht erstellt wird und bei einer Message wird zwar eine Exportdatei erstellt aber der Crystal geht direkt wieder zu ^^

Hat hier jemand eine Idee ?

Schonmal besten Dank im Vorraus.

Re: Dataport nach Ausführung nicht schließen

20. Februar 2009 09:37

Hallo CBT,

habe ich dich richtig verstanden, das du im Dataport Crystal-Reports aufrufst, und der sofort wieder beendet wird?

Falls ja, vermute ich, das Crystal ein Problem hat, z.B. das die Export-Datei vom Dataport bzw. NAV noch nicht geschlossen wurde, und Crystal die Datei noch nicht öffen kann.

Lösung: Rufe den Dataport aus einer Form oder Codeunit auf. Danach rufst du Crystal ebenfalls aus diesem Form o. Codeunit auf.

Gruß, Fiddi

Re: Dataport nach Ausführung nicht schließen

20. Februar 2009 09:42

Nicht ganz ^^ Der Dataport exportier eine Datei, schreibt gleichzeitig was in eine Log Tabelle und nachdem das gemacht ist wird der Crystal mit den Daten dieser Log Tabelle aufgerufen. Problem ist hier dass der Dataport ja dann durchgelaufen ist, sich zu macht und somit auch den Crystal schließt da er von diesem aufgerufen wurde.

Re: Dataport nach Ausführung nicht schließen

20. Februar 2009 09:59

Wie rufst du Crystal Reports auf? Mit der Shell?
Wenn ja, zeige doch mal den Befehl.
Ein Weg wäre, einen SLEEP nach dem Aufruf von Crystal Report anzufordern. Der sollte nicht zu kurz, aber auch nicht zu lang sein ;)

Re: Dataport nach Ausführung nicht schließen

20. Februar 2009 10:07

Das Ganze erfolgt über eine Automation Variable in der ein Crystal Viewer deklariert ist.
Sleep halte ich auch nicht so sinnvoll da man im Vorfeld ja nicht weiss wie lange der Nutzer den Crystal offen hat ^^

Was mir gerade einfällt : Würde vom Prinzip her ein COMMIT nicht ausreichen ? Also nachdem er alle Daten exportiert hat, ein COMIIT durchführen damit er die Export Datei erstellt und dann den Crystal aufrufen mit einem ERROR damit dieser auch offen bleibt.

Re: Dataport nach Ausführung nicht schließen

20. Februar 2009 10:39

COMMIT geht auch nicht ...

Re: Dataport nach Ausführung nicht schließen

20. Februar 2009 10:53

Ich dachte auch der Crystal Report bleibt nicht offen...

Du hast schon Message probiert, aber noch nicht einen Error oder Confirm. Diese sind weitaus besser als Message. Sie werden exakt zur Laufzeit ausgeführt. Der Message hinkt immer ein wenig hinterher.

Kann man den Crystal Report nicht über Shell (Windows Scripting Host) ausführen? Dann könnte man nämlich solange warten bis Crystal Report beendet ist.

Re: Dataport nach Ausführung nicht schließen

20. Februar 2009 10:57

Hallo CBT,

starte Crystal von dem den Dataport -Aufrufenden Objekt. Dann hast du kein Problem mehr mit dem sich schließenden Dataport.

Gruß, Fiddi

Re: Dataport nach Ausführung nicht schließen

20. Februar 2009 11:01

@ Fiddi : Danke für den Ansatz aber der Dataport ist das erste Objekt welches aufgerufen wird ;)
@ Sebastian : ERROR hatte ich auch schon ausprobiert gehabt. Da wird dann keine Exportdatei erstellt, was ja logisch ist ^^

Hab aber das ganze jetzt wieder rausgenommen und bringe nun einfach eine Hinweismeldung mit dem Verweis wo der Crystal manuell aufgerufen werden muss ... Trotzdem Danke Leute ^^

Re: Dataport nach Ausführung nicht schließen

20. Februar 2009 11:15

Kannst du den Aufruf des Crystal Reports in eine Codeunit stopfen und diese aus dem Dataport starten?

Re: Dataport nach Ausführung nicht schließen

20. Februar 2009 11:22

Hallo CBT,


rufts du den Dataport aus dem Menü auf?

wenn du in deinem Dataport im OnPostDataport den Crystal aufrufst, und danach den Confirm einbaust, was passiert dann?


Gruß, fiddi