![]() | |
#11
| |||
| |||
|
|
I also have slow reports with a lot of VBA running behind the queries. The user wants to be sure something is happenining and the application has not crashed or gone ito an endless loop. Hourglass will certainly not show a problem with and ensless loop, but what about a crash? Is there a better way of showing the program is running than SysCmd(acSysCmdSetStatus and say someone's name? |
#12
| |||
| |||
|
|
On 07/08/2010 22:12:43, "David W. Fenton" wrote: Salad <salad (AT) oilandvinegar (DOT) com> wrote in news:hv-dnRk84Ii61sHRnZ2dnUVZ_qqdnZ2d (AT) earthlink (DOT) com: From Alberts' reply and from the OP's response it appears the OP wanted a message to display while the report ran. Similar to a "wait window" in FoxPro. For most of us reports appear almost instantly. I'm going to assume the report the OP was discussing is sluggish and needs an substantial amount of time to process. And? I have plenty of reports like that. I was just troubleshooting one last week that takes about 2 minutes for the first page to come up and 15 minutes to preview the last page. The hourglass is fine, seems to me, so I'm not sure what is gained with a PLEASE WAIT notification -- that's precisely what the hourglass means across all Windows apps, i.e., "I'm busy now, but working on it." I also have slow reports with a lot of VBA running behind the queries. The user wants to be sure something is happenining and the application has not crashed or gone ito an endless loop. Hourglass will certainly not show a problem with and ensless loop, but what about a crash? Is there a better way of showing the program is running than SysCmd(acSysCmdSetStatus and say someone's name? Phil |
#13
| |||
| |||
|
|
Granted, I wasn't printing graphics, just text, but wow!...if I had a report that took a couple of minutes to display a page I'd have to take a look at that code and refine it, see what's causing the bottleneck. |
#14
| |||
| |||
|
|
On 07/08/2010 22:12:43, "David W. Fenton" wrote: Salad <salad (AT) oilandvinegar (DOT) com> wrote in news:hv-dnRk84Ii61sHRnZ2dnUVZ_qqdnZ2d (AT) earthlink (DOT) com: From Alberts' reply and from the OP's response it appears the OP wanted a message to display while the report ran. Similar to a "wait window" in FoxPro. For most of us reports appear almost instantly. I'm going to assume the report the OP was discussing is sluggish and needs an substantial amount of time to process. And? I have plenty of reports like that. I was just troubleshooting one last week that takes about 2 minutes for the first page to come up and 15 minutes to preview the last page. The hourglass is fine, seems to me, so I'm not sure what is gained with a PLEASE WAIT notification -- that's precisely what the hourglass means across all Windows apps, i.e., "I'm busy now, but working on it." I also have slow reports with a lot of VBA running behind the queries. The user wants to be sure something is happenining and the application has not crashed or gone ito an endless loop. Hourglass will certainly not show a problem with and ensless loop, but what about a crash? Is there a better way of showing the program is running than SysCmd(acSysCmdSetStatus and say someone's name? |
#15
| |||
| |||
|
|
Salad <salad (AT) oilandvinegar (DOT) com> wrote in news:7d2dna-Jwqk1bsPRnZ2dnUVZ_gidnZ2d (AT) earthlink (DOT) com: Granted, I wasn't printing graphics, just text, but wow!...if I had a report that took a couple of minutes to display a page I'd have to take a look at that code and refine it, see what's causing the bottleneck. In the case of the report I mentioned, I know exactly what causes the bottleneck -- it's that I'm denormalizing a list of categories for display, i.e., taking the N:N categories for each item and using a function to concatenate them into a comma-separated list for each item displayed. If I remove that from the printout, it pops up almost immediately. Also, it's important to note that the first page pops up after a couple of minutes, and you can start sending to the printer then (it doesn't reformat from scratch). The long wait was if you click the last page control, so I just trained the user (there's only one for this particular report) to not preview the last page. |
#16
| |||
| |||
|
|
"Phil" <phil (AT) stantonfamily (DOT) co.uk> wrote in news:QaSdnflS967b9MPRnZ2dnUVZ7sGdnZ2d (AT) brightview (DOT) co.uk: S N I P I don't see how popping up a static form is any different than relying on the hourglass. It's one of those things that isn't going to change during the process, so it really doesn't indicate to the user if the app has locked up or not. I'd be reluctant to start shoving code to update the UI into the underlying code that drives the functions, as you're then slowing the report down even more, and there's no real way to choose anything sensible for those functions to be displaying. Another option would be to animate the popup form with a timer, but I'm not sure that's going to be any more useful, since it's possible for parts of Access to lock up while leaving the other parts running (though I'm not certain on that -- I'm just thinking in terms of how things run asynchronously). |
#17
| ||||
| ||||
|
|
David W. Fenton wrote: Salad <salad (AT) oilandvinegar (DOT) com> wrote in news:7d2dna-Jwqk1bsPRnZ2dnUVZ_gidnZ2d (AT) earthlink (DOT) com: Granted, I wasn't printing graphics, just text, but wow!...if I had a report that took a couple of minutes to display a page I'd have to take a look at that code and refine it, see what's causing the bottleneck. In the case of the report I mentioned, I know exactly what causes the bottleneck -- it's that I'm denormalizing a list of categories for display, i.e., taking the N:N categories for each item and using a function to concatenate them into a comma-separated list for each item displayed. If I remove that from the printout, it pops up almost immediately. Also, it's important to note that the first page pops up after a couple of minutes, and you can start sending to the printer then (it doesn't reformat from scratch). The long wait was if you click the last page control, so I just trained the user (there's only one for this particular report) to not preview the last page. David, I know you've been around the block more than once. I still might want to see "what can I do" to improve. Let's say you have a form. You select a few categores out of many, maybe filter on customer or employee or whatever. Maybe run a process prior to calling the report to "create filter" or whatever and update the table then. Then have a separate button to run the report. Or add a memo field to store the categories in when updating data entry input. In my mind, the more instaneous the data to the user the better, normalization be damned. . |
|
If it's like a monthly report, eh, who cares. But if it is run by one or more people on a daily basis...big difference, IMO. |
|
I don't know your situation. In my case where this report that I fixed to take seconds instead of 4 hours in FoxPro...that was 20 hours of wasted time per week, 1000 hours per year that I corrected. If I had to break a rule to save user time I'd do it in a heartbeat. In my case I didn't have to, I simply used the tools I had at hand. |
|
The other one in Access that took an hour+, the prior developer was slick with the subselects and didn't have enough, IMO, indexes. I modified so the subselects became their own queries and left joined on them and added some relevent indexes and the report flew. |
#18
| |||
| |||
|
|
Difference is user perception. |
|
If they see the hourglass they expect a delay, but a rather short one (1-2 minutes at most). With a form popping up, you can give the user a bit better idea of the length of the delay. Without that I have had users decide the application was locked up and decide to try Control+alt+Delete to kill the application. |
|
Usually, I try to find a way to shorten the delay or failing that use a progress bar form (if possible) to let the user know something is happening. The amazing thing with a progress bar form is that the user's perception is that the process is now faster. It is actually a tiny bit slower due to the overhead of updating the form. |
#19
| |||
| |||
|
#20
| |||
| |||
|
|
I'm not certain if there is a "best" way to handle this, but I wish to display a "please wait" dialog on the screen before a report is fully rendered. *By fully rendered, I mean that the first page of the report appears on the screen. *It appears as if all of a report's events are triggered long before the first page of the report actually appears. Does anyone have an optimal way of handling this? Thanks. Vincent |
![]() |
| Thread Tools | |
| Display Modes | |
| |