Forcing a form or screen to update/refresh
Author: dcheng@deloitte.co.uk (e_darren)
Hi,
I've had a look around the forums but not found anything that looks related. This is my first post and I'm a relatively inexperienced Uniface developer, so go easy on me please!
During a proc which takes some time to complete, I'd like to update a status/progress bar on the form. As I couldn't find a Uniface progress bar widget, I'm using a an OXC widget called Microsoft ProgressBar Control painted directly onto the form. Although I am updating the widget's value during the proc, it only updates to 100% from 0% once the function has completed - this is obviously not that useful to the user. It appears that the screen will only update once a proc has finished executing and control returns to the form/user input. Is there a way to force a form to refresh during a piece of proc code?
I have tried using asynchronous interupts with UTIMER but these also do not appear to execute whilst a piece of proc is running.
Thanks!
Forcing a form or screen to update/refresh
Author: dcheng@deloitte.co.uk (e_darren)
Hi,
I've had a look around the forums but not found anything that looks related. This is my first post and I'm a relatively inexperienced Uniface developer, so go easy on me please!
During a proc which takes some time to complete, I'd like to update a status/progress bar on the form. As I couldn't find a Uniface progress bar widget, I'm using a an OXC widget called Microsoft ProgressBar Control painted directly onto the form. Although I am updating the widget's value during the proc, it only updates to 100% from 0% once the function has completed - this is obviously not that useful to the user. It appears that the screen will only update once a proc has finished executing and control returns to the form/user input. Is there a way to force a form to refresh during a piece of proc code?
I have tried using asynchronous interupts with UTIMER but these also do not appear to execute whilst a piece of proc is running.
Thanks!
Hi Darren,
Your ASYNC way will not work because it will be checked only when the
structure editor is active again after your code is executed.
try to add the show-command whenever you update your OXC.
Success, Uli
Uniface Help for 8.4.06 reads
show
Display a form component.
Synopsis
show
Use
Allowed only in form components.
Description
The show statement displays a form component. All current field values are displayed.
Return value
The show statement returns <UPROCERR_STATEMENT> (-1402) if it is used in a service component.
Example: Redisplaying values as they are updated
The following example shows the show statement being used to redisplay values in a form as they are updated (that is, while processing continues):
entry CountDown()
variables
numeric j
endvariables
MyField.MyEnt = 10
while (MyField.MyEnt > 0)
show
j = 10000
while (j>0)
j = j - 1
endwhile
MyField.MyEnt = MyField.MyEnt - 1
endwhile
Author: ulrich-merkel (ulrichmerkel@web.de)
Forcing a form or screen to update/refresh
Author: dcheng@deloitte.co.uk (e_darren)
Hi,
I've had a look around the forums but not found anything that looks related. This is my first post and I'm a relatively inexperienced Uniface developer, so go easy on me please!
During a proc which takes some time to complete, I'd like to update a status/progress bar on the form. As I couldn't find a Uniface progress bar widget, I'm using a an OXC widget called Microsoft ProgressBar Control painted directly onto the form. Although I am updating the widget's value during the proc, it only updates to 100% from 0% once the function has completed - this is obviously not that useful to the user. It appears that the screen will only update once a proc has finished executing and control returns to the form/user input. Is there a way to force a form to refresh during a piece of proc code?
I have tried using asynchronous interupts with UTIMER but these also do not appear to execute whilst a piece of proc is running.
Thanks!
Ulrich-merkel,
Many thanks for the reply, I really appreciate it.
Seems to work great :) I just hope it won't slow performance much.
Darren
Author: e_darren (dcheng@deloitte.co.uk)
Forcing a form or screen to update/refresh
Author: dcheng@deloitte.co.uk (e_darren)
Hi,
I've had a look around the forums but not found anything that looks related. This is my first post and I'm a relatively inexperienced Uniface developer, so go easy on me please!
During a proc which takes some time to complete, I'd like to update a status/progress bar on the form. As I couldn't find a Uniface progress bar widget, I'm using a an OXC widget called Microsoft ProgressBar Control painted directly onto the form. Although I am updating the widget's value during the proc, it only updates to 100% from 0% once the function has completed - this is obviously not that useful to the user. It appears that the screen will only update once a proc has finished executing and control returns to the form/user input. Is there a way to force a form to refresh during a piece of proc code?
I have tried using asynchronous interupts with UTIMER but these also do not appear to execute whilst a piece of proc is running.
Thanks!
Hi Darren,
it's just another invocation of the uniface gui-driver (changes only, I assume).
So in a "normal" C/S environment,
I never experienced a significant slowdown of performance.
Success, Uli
Show was introduced because of com-containers etc.
because the widgets would have been build after the edit statement
It is a "show the actual screen now" so "the Lab" have implemented it for speed.
Author: ulrich-merkel (ulrichmerkel@web.de)
Forcing a form or screen to update/refresh
Author: dcheng@deloitte.co.uk (e_darren)
Hi,
I've had a look around the forums but not found anything that looks related. This is my first post and I'm a relatively inexperienced Uniface developer, so go easy on me please!
During a proc which takes some time to complete, I'd like to update a status/progress bar on the form. As I couldn't find a Uniface progress bar widget, I'm using a an OXC widget called Microsoft ProgressBar Control painted directly onto the form. Although I am updating the widget's value during the proc, it only updates to 100% from 0% once the function has completed - this is obviously not that useful to the user. It appears that the screen will only update once a proc has finished executing and control returns to the form/user input. Is there a way to force a form to refresh during a piece of proc code?
I have tried using asynchronous interupts with UTIMER but these also do not appear to execute whilst a piece of proc is running.
Thanks!
That's great - thanks for the information!
Darren
Author: e_darren (dcheng@deloitte.co.uk)
Forcing a form or screen to update/refresh
Author: dcheng@deloitte.co.uk (e_darren)
Hi,
I've had a look around the forums but not found anything that looks related. This is my first post and I'm a relatively inexperienced Uniface developer, so go easy on me please!
During a proc which takes some time to complete, I'd like to update a status/progress bar on the form. As I couldn't find a Uniface progress bar widget, I'm using a an OXC widget called Microsoft ProgressBar Control painted directly onto the form. Although I am updating the widget's value during the proc, it only updates to 100% from 0% once the function has completed - this is obviously not that useful to the user. It appears that the screen will only update once a proc has finished executing and control returns to the form/user input. Is there a way to force a form to refresh during a piece of proc code?
I have tried using asynchronous interupts with UTIMER but these also do not appear to execute whilst a piece of proc is running.
Thanks!
But we have a progress bar widget, so why make it difficult?
Author: Theo Neeskens (tneeskens@itblockz.nl)
Forcing a form or screen to update/refresh
Author: dcheng@deloitte.co.uk (e_darren)
Hi,
I've had a look around the forums but not found anything that looks related. This is my first post and I'm a relatively inexperienced Uniface developer, so go easy on me please!
During a proc which takes some time to complete, I'd like to update a status/progress bar on the form. As I couldn't find a Uniface progress bar widget, I'm using a an OXC widget called Microsoft ProgressBar Control painted directly onto the form. Although I am updating the widget's value during the proc, it only updates to 100% from 0% once the function has completed - this is obviously not that useful to the user. It appears that the screen will only update once a proc has finished executing and control returns to the form/user input. Is there a way to force a form to refresh during a piece of proc code?
I have tried using asynchronous interupts with UTIMER but these also do not appear to execute whilst a piece of proc is running.
Thanks!
We do?! It's not in my widget list. Can we add it via the asn file? I couldn't find any reference to it in the documentation.
Author: e_darren (dcheng@deloitte.co.uk)
Forcing a form or screen to update/refresh
Author: dcheng@deloitte.co.uk (e_darren)
Hi,
I've had a look around the forums but not found anything that looks related. This is my first post and I'm a relatively inexperienced Uniface developer, so go easy on me please!
During a proc which takes some time to complete, I'd like to update a status/progress bar on the form. As I couldn't find a Uniface progress bar widget, I'm using a an OXC widget called Microsoft ProgressBar Control painted directly onto the form. Although I am updating the widget's value during the proc, it only updates to 100% from 0% once the function has completed - this is obviously not that useful to the user. It appears that the screen will only update once a proc has finished executing and control returns to the form/user input. Is there a way to force a form to refresh during a piece of proc code?
I have tried using asynchronous interupts with UTIMER but these also do not appear to execute whilst a piece of proc is running.
Thanks!
Progress bar is available in V9 (seen in ulibrary.9.4.01), but not in V8 (ulibrary 8.4.06).
This topic is in folder "Uniface 8", so I assumed darren is looking for a V8 solution.
But we all should specify the uniface version in question
more clearly in our posts (perhaps directly in the subject?).
Success, Uli
Author: ulrich-merkel (ulrichmerkel@web.de)
Forcing a form or screen to update/refresh
Author: dcheng@deloitte.co.uk (e_darren)
Hi,
I've had a look around the forums but not found anything that looks related. This is my first post and I'm a relatively inexperienced Uniface developer, so go easy on me please!
During a proc which takes some time to complete, I'd like to update a status/progress bar on the form. As I couldn't find a Uniface progress bar widget, I'm using a an OXC widget called Microsoft ProgressBar Control painted directly onto the form. Although I am updating the widget's value during the proc, it only updates to 100% from 0% once the function has completed - this is obviously not that useful to the user. It appears that the screen will only update once a proc has finished executing and control returns to the form/user input. Is there a way to force a form to refresh during a piece of proc code?
I have tried using asynchronous interupts with UTIMER but these also do not appear to execute whilst a piece of proc is running.
Thanks!
Sorry, sorry, didn't see this was Uniface 8.
I allways look at new posts via "What's New", it does show you the name of the forum but it doesn't really stand out.
Author: Theo Neeskens (tneeskens@itblockz.nl)
Forcing a form or screen to update/refresh
Author: dcheng@deloitte.co.uk (e_darren)
Hi,
I've had a look around the forums but not found anything that looks related. This is my first post and I'm a relatively inexperienced Uniface developer, so go easy on me please!
During a proc which takes some time to complete, I'd like to update a status/progress bar on the form. As I couldn't find a Uniface progress bar widget, I'm using a an OXC widget called Microsoft ProgressBar Control painted directly onto the form. Although I am updating the widget's value during the proc, it only updates to 100% from 0% once the function has completed - this is obviously not that useful to the user. It appears that the screen will only update once a proc has finished executing and control returns to the form/user input. Is there a way to force a form to refresh during a piece of proc code?
I have tried using asynchronous interupts with UTIMER but these also do not appear to execute whilst a piece of proc is running.
Thanks!
In Uniface 8 you do have the Meter widget.
It looks quite different
but if you set up to show values from 0 to 100,
calculate your progress at certain moments during the process
and do a "show" at those moments,
it gives the same functionality.
Author: Theo Neeskens (tneeskens@itblockz.nl)
Forcing a form or screen to update/refresh
Author: dcheng@deloitte.co.uk (e_darren)
Hi,
I've had a look around the forums but not found anything that looks related. This is my first post and I'm a relatively inexperienced Uniface developer, so go easy on me please!
During a proc which takes some time to complete, I'd like to update a status/progress bar on the form. As I couldn't find a Uniface progress bar widget, I'm using a an OXC widget called Microsoft ProgressBar Control painted directly onto the form. Although I am updating the widget's value during the proc, it only updates to 100% from 0% once the function has completed - this is obviously not that useful to the user. It appears that the screen will only update once a proc has finished executing and control returns to the form/user input. Is there a way to force a form to refresh during a piece of proc code?
I have tried using asynchronous interupts with UTIMER but these also do not appear to execute whilst a piece of proc is running.
Thanks!
As Theo said:
without the "show" command, you will not see the meter rise.
Success, Uli
Author: ulrich-merkel (ulrichmerkel@web.de)