Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Westi on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

XFRX reporting speeds..

Status
Not open for further replies.

mm0000

IS-IT--Management
May 19, 2002
295
IN
I have recently purchased VFP ver 9, and have been testing XFRX with VFP 9. The XFRX manual states that generating XFRX reports(using XFRX#LISTENER) with VFP would be approx twice as fast than with other versions. However, I am finding that the time it takes to generate reports VFP 9 is actually much slower than with VFP 8.

Could anyone with both VFP 9 and VFP 8/7/6 and using XFRX to generate reports confirm whether this is true or not - just to confirm that I am not doing something silly that is causing much slower generation of XFRX reports in VFP 9.

thanks


 
I have found that large reports do tend to be slow under 9.0, but I have not done any like-for-like tests, so cannot say for sure.

By the way, are you referring to the printing speed, or rendering the report in the preview control? It's the latter that I find slow, but at least the user sees a progress message.

I'd be interested to hear other people's experiences.

Mike


__________________________________
Mike Lewis (Edinburgh, Scotland)

My Visual FoxPro site: www.ml-consult.co.uk
 
I was refering to the amount of time XFRX takes to generate a PDF file [ the total time from start to finally opening the PDF file). I also find that the progress bar in VFP 8 is more accurate than for VFP 9. For VFP 9 with large reports, even after the the progress bar shows 100% its seems to wait for quite some time before the PDF file finally opens. With VFP 8 the PDF file opens immediately after the progress bar shows 100%.


 

As a test, I just ran quite a large report under XFRX and VFP 9.0 with output to PDF. I noticed a slight delay between the last "Rendering page" message and the PDF actually appearing, but it was only a second or so.

I put that delay down to the time it takes to open the Acrobat reader, but I can't think of any way to verify that.

Mike

__________________________________
Mike Lewis (Edinburgh, Scotland)

My Visual FoxPro site: www.ml-consult.co.uk
 
Mike,

Are you using ("XFRX#LISTENER") or ("XFRX#INIT") in your code for generating XFRX reports? Indeed if you are using ("XFRX#LISTENER") and there is no waiting after the progress bar reaches 100% - that could be the source of my problem - since there is considerable time (for large reports) between the the thermometer first displaying 100% and the PDF finally opening on my computer. However, if I use ("XFRX#INIT") even in VFP 9 there is no delay in opening the PDF file.



 

I'm using "XFRX#LISTENER". Another difference is that, at the time I generate the PDF, the report is already visible in the viewer control. In other words, it has already been rendered.

You mentioned the progress bar reaching 100%. I don't see a progress bar when outputing to PDF. I see a Wait Window, with the page number rather than a percentage.

This is ver. 11.0, by the way.

Mike


__________________________________
Mike Lewis (Edinburgh, Scotland)

My Visual FoxPro site: www.ml-consult.co.uk
 
Mike,

I get the thermometer by adding the following code
Code:
loxfrx = XFRX("XFRX#LISTENER")
***Thermometer
SET CLASSLIB TO (HOME()+"FFC\_reportlistener.vcx")
loUpdate = CREATEOBJECT("updatelistener")
loUpdate.thermFormCaption = "Generating PDF report ..."
loxfrx.successor = loUpdate
****
lnRetval = loxfrx.setparams("xxx.pdf",,,,,,"PDF")
I have sent my report and dbf file to Martin Haluza - hopefully it will get resolved.

 
The trouble is that DoStatus() method of UpdateListener is called very often for an alias with many records. The result is that the thermometer window is updated many times per session and this causes the slowness.

You can subclass the UpdateListener and modifiy DoStatus() method to update the Thermometer only when integer percents change.

See my modified apps here, with a standard progressbar and search in preview window. The CursorListener class has the modified code in DoStatus()

 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top