Diese Seite mit anderen teilen ...

Informationen zum Thema:
Forum:
WinDev Forum
Beiträge im Thema:
4
Erster Beitrag:
vor 4 Jahren, 3 Monaten
Letzter Beitrag:
vor 4 Jahren, 3 Monaten
Beteiligte Autoren:
Ericus, Piet van Zanten, Arie

[WB17]iPrintReport and FileDisplay

Startbeitrag von Ericus am 04.10.2013 13:04

Hi

I have to prepare a report that takes some time to do.

In browser code I have:

AJAXExecuteAsynchronous(PrintReport1,EndPrintPrepare) whereby I display a timer and prepare the report.

In Server code I have:

File is string = "MyReport.pdf"
IF fFileExist(File) THEN
FileDisplay(File, "application/pdf")
fDelete(File)
END

To display the report in a separate browser tab.

However the server code are executed to quickly, i.e. before MyReport.pdf could be created.

Is there a better way for me to do this so that the pdf is definitely created before it will be displayed?

Thanks in advance.




Ericus Steyn

Antworten:

Ericus,
just a guess. Could it be the fDelete(File) causing trouble. (FileDisplay is non blocking??)

von Arie - am 04.10.2013 17:55
Thanks Arie

Going to try it.

von Ericus - am 04.10.2013 20:17
Hi Ericus,

The reason why the file is not displayed, is because the server code is executed right after the Ajax call, without waiting. (because of the asynchronous Ajax call)
You may skip the asynchronous, but then of course an Ajax call is of no use in this case.

You can display a progressbar using the browser click code of the button:
PROGBAR_1..Visible=True
GaugeActivate(PROGBAR_1,25)
stc_Info="Preparing report..."

In server click code of the button just do all the server stuff.
To increment the progressbar
PROGBAR_1=i
Multitask(-1)
And make the progressbar and the static invisible again in the end.

If the progress cannot be calculated, you can skip the progressbar and use an animated gif.

Regards,
Piet

von Piet van Zanten - am 05.10.2013 12:56
Zur Information:
MySnip.de hat keinen Einfluss auf die Inhalte der Beiträge. Bitte kontaktieren Sie den Administrator des Forums bei Problemen oder Löschforderungen über die Kontaktseite.
Falls die Kontaktaufnahme mit dem Administrator des Forums fehlschlägt, kontaktieren Sie uns bitte über die in unserem Impressum angegebenen Daten.