| Has anyone got any ideas about the problem in .0?????
While the PROMPT function is executing, the form THREE_PAGE_FORM_SET
is still current, but on completion, why should it get re-displayed
before the next FORM function call?
At the moment i am going to try a workaround of having the prompt
message be part of another form the looks identical to the first
one in the form-set, so that although fields are cleared and filled
on the first form, at least forms 2 and three aren't displayed.
Even so, i would still like to know how ALL-IN-1 is processing things,
so that i can hopefully avoid this problem in future.
Your hopefully,
mb
|
| Wild guess...
The second time round the loop, the FORM function is trying to invoke the entry
form which is still current, which is probably what confuses ALL-IN-1. Maybe
a CLOSE_PRIOR just above your .GOTO LOOP line might help?
The only documentation on form-flow processing is in the back of the AP Guide,
there are flowcharts for all the different form types.
Also, if you have any /BLANK or /CLEAR qualifiers, they may be causing problems
when ALL-IN-1 tries to process the current form as though it were a new form.
Instead of invoking the form /ONCE then having a .PROMPT outside the form, it
might be better to use the built-in repetition features of ENTRY forms and
incorporate your prompt in the form post-processing to force OA$FLD_EXIT (or
whatever) if the user doesn't want to continue.
Scott
|
| Scott,
thanks for the ideas. I initially tried a CLOSE_PRIOR immediately
after the FORM call, but that caused the PROMPT to display over
the underlying form.
When i put CLOSE_PRIOR immediately after the PROMPT, the original
problem occurred, which seems to hint that it was ALL-IN-1 getting
confused trying to put the screen back to how it _thought_ it was,
eg. "i was on screen three but that form was no longer current but i
have not been requested to show a different form just yet so i will
try my best to get back to where i was, er"
I think that there used to be a problem with form-sets when you copy
between fields, but i created a very simple form-set (no /COPY, /BLANK,
/CLEAR infact nothing but the required ENTRY details) and the problem
still occurred.
We have now got around the problem by defining a keystroke (GOLD X)
that if typed within the ENTRY form sets a flag and does OA$FLD_EXIT,
and the loop script checks this flag instead of asking the user. This
is actually a much neater way of doing things, because to quit the
"block operation" is a much rarer event than proceeding onto the next
record, so we may as well make this an exception.
Thanks anyway for your thoughts,
cheers,
mb
|