I have a program that in green-screen mode auto-refreshes using a *DTAQ.
I've "removed" all of the *DTAQ code in the program but would still like the screen to auto-refresh - at least on a predetermined period of time (like 'n' minutes). is there a way to do this using javascript on a PUI form?
Thanks,
Jim
Auto Refresh
-
- New User
- Posts: 13
- Joined: Sun Feb 05, 2012 5:44 pm
- First Name: Jim
- Last Name: Rohde
- Company Name: TMW Systems
- Phone: 440-721-2931
- Address 1: 6350 Quadrangle Dr
- Address 2: Suite 300
- City: Chapel Hill
- State / Province: North Carolina
- Zip / Postal Code: 27517
- Country: United States
- Contact:
-
- Experienced User
- Posts: 122
- Joined: Tue May 22, 2012 6:45 am
- First Name: Dieter
- Last Name: Schröder
- Company Name: Ecclesia Holding GmbH
- State / Province: Outside Canada/USA
- Country: Germany
- Contact:
Re: Auto Refresh
Jim,
a colleague did that with the following javascript snippet:
setTimeout("document.getElementById('TextBox1').value='5 seconds!' ",5000);
The script ist used in the Onload Event of the screen. It uses a field named "TextBox1" which shows the value "5 seconds!" every 5 seconds.
For refreshing the screen under control of an RPG program we use the following method: On the screen we have a textbox named "txtRefresh" with an assigned RPG-Field "REFRESH". In the Onload-Event of the screen we have the following javascript code:
if (getElementValue("txtRefresh")=="AUTO") { changeElementValue("txtRefresh", ' ');pui.click();};
So in our RPG-program we can assign the value "AUTO" to the variable REFRESH and than do an EXFMT. Then the javascript starts on the Onload event. It sets the screen element txtRefresh to blank (so the value "AUTO", which was set by the RPG program, is no longer in the field). Note that the element "txtRefresh" is dedicated to the RPG-variable "REFRESH"!). Than the script makes a "pui.click", so the control goes back from the browser to the RPG-Programm. With this method you can change variables on the screen via your RPG program and refresh the screen.
I hope you can understand my English. (I am from Germany).
Best regards,
Dieter
a colleague did that with the following javascript snippet:
setTimeout("document.getElementById('TextBox1').value='5 seconds!' ",5000);
The script ist used in the Onload Event of the screen. It uses a field named "TextBox1" which shows the value "5 seconds!" every 5 seconds.
For refreshing the screen under control of an RPG program we use the following method: On the screen we have a textbox named "txtRefresh" with an assigned RPG-Field "REFRESH". In the Onload-Event of the screen we have the following javascript code:
if (getElementValue("txtRefresh")=="AUTO") { changeElementValue("txtRefresh", ' ');pui.click();};
So in our RPG-program we can assign the value "AUTO" to the variable REFRESH and than do an EXFMT. Then the javascript starts on the Onload event. It sets the screen element txtRefresh to blank (so the value "AUTO", which was set by the RPG program, is no longer in the field). Note that the element "txtRefresh" is dedicated to the RPG-variable "REFRESH"!). Than the script makes a "pui.click", so the control goes back from the browser to the RPG-Programm. With this method you can change variables on the screen via your RPG program and refresh the screen.
I hope you can understand my English. (I am from Germany).
Best regards,
Dieter
-
- New User
- Posts: 13
- Joined: Sun Feb 05, 2012 5:44 pm
- First Name: Jim
- Last Name: Rohde
- Company Name: TMW Systems
- Phone: 440-721-2931
- Address 1: 6350 Quadrangle Dr
- Address 2: Suite 300
- City: Chapel Hill
- State / Province: North Carolina
- Zip / Postal Code: 27517
- Country: United States
- Contact:
Re: Auto Refresh
Thanks dieter,
I see what you are doing here - I want sort of a combination of the two. The subfile grid also needs to be usable during the timeout period. So far not working the way i want it too.
-jim
I see what you are doing here - I want sort of a combination of the two. The subfile grid also needs to be usable during the timeout period. So far not working the way i want it too.
-jim
-
- Profound User
- Posts: 82
- Joined: Fri Jun 29, 2012 2:33 pm
- First Name: Antonio
- Last Name: Ruballos
- Company Name: Profound Logic
- Contact:
Re: Auto Refresh
Hello Jim,
I believe you could use the javascript function setTimeOut(expression, timeout) to accomplish what you need. What setTimeout() does is run expression after timeout milliseconds have gone past. So if you put the following line inside of the onload event of that screen:
setTimeout(function(){ pui.click()}, 3000);
It would refresh every 3 seconds. Let me know if you need further assistance.
Thanks!
I believe you could use the javascript function setTimeOut(expression, timeout) to accomplish what you need. What setTimeout() does is run expression after timeout milliseconds have gone past. So if you put the following line inside of the onload event of that screen:
setTimeout(function(){ pui.click()}, 3000);
It would refresh every 3 seconds. Let me know if you need further assistance.
Thanks!
-
- New User
- Posts: 13
- Joined: Sun Feb 05, 2012 5:44 pm
- First Name: Jim
- Last Name: Rohde
- Company Name: TMW Systems
- Phone: 440-721-2931
- Address 1: 6350 Quadrangle Dr
- Address 2: Suite 300
- City: Chapel Hill
- State / Province: North Carolina
- Zip / Postal Code: 27517
- Country: United States
- Contact:
Re: Auto Refresh
Antonio,
That works pretty well. Is there a way I can control whether or not the java script runs from my RPG (turn it on and off) and modify the milliseconds with a variable? I assume there's a reason why none of the event properties can be bound to a field...
Thanks,
Jim
That works pretty well. Is there a way I can control whether or not the java script runs from my RPG (turn it on and off) and modify the milliseconds with a variable? I assume there's a reason why none of the event properties can be bound to a field...
Thanks,
Jim
-
- New User
- Posts: 13
- Joined: Sun Feb 05, 2012 5:44 pm
- First Name: Jim
- Last Name: Rohde
- Company Name: TMW Systems
- Phone: 440-721-2931
- Address 1: 6350 Quadrangle Dr
- Address 2: Suite 300
- City: Chapel Hill
- State / Province: North Carolina
- Zip / Postal Code: 27517
- Country: United States
- Contact:
Re: Auto Refresh
Antonio,
That works pretty well. Is there a way I can control whether or not the java script runs from my RPG (turn it on and off) and modify the milliseconds with a variable? I assume there's a reason why none of the event properties can be bound to a field...
Thanks,
Jim
That works pretty well. Is there a way I can control whether or not the java script runs from my RPG (turn it on and off) and modify the milliseconds with a variable? I assume there's a reason why none of the event properties can be bound to a field...
Thanks,
Jim
-
- Experienced User
- Posts: 2711
- Joined: Wed Aug 01, 2012 8:58 am
- First Name: Scott
- Last Name: Klement
- Company Name: Profound Logic
- City: Milwaukee
- State / Province: Wisconsin
Re: Auto Refresh
One way would be to include a hidden field on the screen containing the number of seconds (or milliseconds). Your JavaScript routine could check the value of the hidden field to get the timeout value -- or if a special value (maybe -1?) is found, it could choose not to do the setTimeout.
-
- New User
- Posts: 2
- Joined: Wed Jul 15, 2015 5:34 pm
- First Name: Matt
- Last Name: Seeberger
- Company Name: Dupre Logistics
- Contact:
Re: Auto Refresh
Is there a way that I can allow the user to select the refresh interval? The onload screen refresh works perfectly but I would like to let the user select the amount of seconds between refreshes. If this is possible I could let them type in a value or select it from a dropdown box.
Thanks.
Thanks.
-
- Experienced User
- Posts: 2711
- Joined: Wed Aug 01, 2012 8:58 am
- First Name: Scott
- Last Name: Klement
- Company Name: Profound Logic
- City: Milwaukee
- State / Province: Wisconsin
Re: Auto Refresh
Yes, you can have the user select it if you wish. You would probably want to code this on an 'onchange' event so that when the user selects a different time interval, it cancels the existing timer and sets up a new one.
Who is online
Users browsing this forum: No registered users and 0 guests