Progress bar (or something) over multiple procedures

I have a group of procedures which run in sequence. Some are quick; others take a minute or longer to run. Is there any sort of progress bar or other progress code that can display the progress of the whole group so the user can track overall progress?

Best wishes for a safe holiday!

Check out the progressalert statement:

Another option is the setbannerprogressbar statement. I think this is much easier to use because you don’t have to worry about how your procedure is going to work if a dialog is the active window.

However, neither of these will really help with your problem. You said that you want to “display the progress of the whole group so the user can track overall progress”. Panorama has no way to magically calculate how long a multi step process will take. The progressalert and setbannerprogressbar statements require you to periodically supply them with an estimate of the progress from 0 to 100. These statements merely graphically display that value, but they don’t help with the estimate of what the number from 0 to 100 should be. In fact, this is a very difficult problem in computer science, I’ve actually never heard of it being solved for the type of heterogenous multi-step process you are talking about. You would have to estimate the length of all the tasks in advance, then calculate the progress in each task as it is performed. If you can do that, the statements mentioned here will display the number for you, but it is entirely up to you to come up with the estimates as the code progresses.

Let’s say I time my series of procedures and they take about 5 minutes to complete. Is there a way to run a progress bar (using this code–Gary’s I think):

letfileglobal progBar=0
for i,1,360000
progBar= i * .00002777 showvariables progBar

openform “ProgressDisplay”

Message “Procedure(s) done”
// reset to zero:
showvariables progBar

and have the progress bar displaying and active while my series of procedures is also running? Or can any of the other progress statements run concurrently? None of my procedures involve a loop.

I could also tell the user to set a 5-minute timer on their watch or computer, I suppose, but gosh, the progress bar is a lot more elegant… :slight_smile:

Thanks and best wishes for the day and the rest of 2021 and better times for everyone in '22.

Having discovered that super alerts can close themselves after a set amount of time, I’ve decided to insert a few of those between procedures to let users know approx. how much longer they have to wait. Low tech…


You might want to check out the nsnotify statement instead.