Link to home
Start Free TrialLog in
Avatar of jim_1234567890
jim_1234567890

asked on

Busy Cursor while report is generating

Using Oracle forms and reports 6i on a Windows XP workstation I wanted to have the Forms display the hour glass (busy cursor) while the report is being generated.

Right now there a few report that that a bit of time to execute.  IE the user presses the button and the report comes back 5-10 seconds later.

The issue is that the user presses the button the icon switch to the hour glass for a second and then control is returned the forms.  5-10 seconds later the report is produced in the background or pops to the front.  The typical user request the report and the since it does not come up instantly and the cursor is not showing as busy they press the button again, and again, and again, and again.....

When the user presses the button to request the report I would like to be able to display the hour glass until the report has been fully generated.

I would tend to think that Oracle Forms would have to monitor the system and watch for the report to be generated.  Maybe there is a better way?

Is it even possible and what would you do (coding would be useful).

Thanks.

Avatar of sathyagiri
sathyagiri
Flag of United States of America image

How do you generate your report? Do you call a report builder fn or a stored proc?
Avatar of jwahl
maybe it helps when setting it manually:

SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'BUSY');
-- call your report
SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'DEFAULT');
Avatar of jim_1234567890
jim_1234567890

ASKER


The
"
 SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'BUSY');
-- call your report
SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'DEFAULT');
"

Method does not do the trick at all.  Currently that is what I have.

Right now we run the reports in a couple of different ways.
One way is through a function call and the other is pretty much direct.  Both have this code at the core:

RUN_PRODUCT(REPORTS, outFileName, SYNCHRONOUS, RUNTIME, FILESYSTEM, inPrmList, NULL);


If I do
 SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'BUSY');
RUN_PRODUCT(REPORTS, outFileName, SYNCHRONOUS, RUNTIME, FILESYSTEM, inPrmList, NULL);
SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'DEFAULT');

OR

SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'BUSY');
RUN_PRODUCT(REPORTS, outFileName, ASYNCHRONOUS, RUNTIME, FILESYSTEM, inPrmList, NULL);
SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'DEFAULT');

The end result is bascilly the same.

The cursor blinks busy.
The report is requested.
The cursor returns to normal.

The user can do interactions with the from.  
The report is being called (the reports run time starts up, etc).

Finally the report is generated and pops to the front.


 But because it can take 5-10 seconds for the report to return the end user does not think the report request has been full filled and they click the buttons again.

I need the cursor to remain busy until the report is 100% finished.



Change ASYNCHRONOUS to SYNCHRONOUS
Use this
RUN_PRODUCT(REPORTS, outFileName, SYNCHRONOUS, RUNTIME, FILESYSTEM, inPrmList, NULL);
ASKER CERTIFIED SOLUTION
Avatar of sathyagiri
sathyagiri
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
That seem to do.  I am not sure if they will like the fact that Forms appears to lock up until they close the report.