You can refresh a scrolling input by designing it as a single step in a job. The input will not actually refresh, it will be terminated and re-executed, which will give the appearance of refreshing the screen.
Instead of executing the input directly, execute the job. Place a value in the CHILD ID field for the job step, such as RERN. In the Post Invocation event point add ILF code to test the value of a work variable to see if the input should re-execute or if the job should terminate. To re-execute the input set the value of --- NEXT CHILD ID to the value you entered on the job step (RERN). This will cause Appx to change its default behavior and go the job step with that child id and start processing from there.
In the parent input process, go to the Additional Attributes of the optional child and set the Parent Disposition to End Before. In places appropriate to your processing in the parent and/or the optional child (the full screen process) set the variable you are going to check in the Post Invocation of the job to a value to indicate if the parent input should be re-executed or not (this is the code mentioned above). Make sure the share class of the variable and the invocation type of the inputs are set so that the variable you use is visible to the Post Invocation event point of the job.
|
Here is an example from 1EX:
I added the following code to the ORDER2 Input Process, in 1EX, frame 200,
Option Intercept:
SET 1EX WORK LOG EQ 0
* Copy current line
IF --- OPTION EQ USER 1
T STORE 1EX ORDER2 RECORD
T BEG LOOP WI = 000 TO 001 STEP 000
T COMPUTE 1EX ORDER2 SNO + 1
T WRITE 1EX ORDER2 FAIL 0
TT SET 1EX WORK LOG EQ 1
TT END PROC
Then in the parent process - INPUT ORDER1, i went to the AA and gave it a
child ID of TSTT.
Then in the Post Invocation of the Child Rule i added:
IF 1EX WORK LOG EQ 1
T SET --- NEXT CHILD ID = TSTT
It causes the child process to re-display silently and the newly added record
is displayed to a user. |