| Bruce,
To be precise, ALL-IN-1 uses:
FORM <string>
to invoke a "Recog" form i.e. any form and qualifiers you like.
and
FORM <name> SELECT/FIELD=DISPLAY/OVERLAY
for an ordinary select form.
When it returns from either type of invokation, a CLOSE_PRIOR is
performed and any select context is cleaned up. Then, if OA$SEL_COUNT
is zero the recognition fails. If OA$SEL_DISPOSE indicates an EXIT then
no message is signalled. If OA$SRC_COUNT is zero then you get the
message "No item satisfied the search criteria" otherwise "No item was
selected".
Before the "Recog" form is invoked, the SELECT context is set up using
the RSE from /RSE_RECOG as well as other qualifiers like /UNIQUE and
/SHOW. The %KEY field, DSAB field specified or /SHOW information is
used to generate a SEL_CHOICE function for the selection FOR. If you
invoke a SELECT form it is this information which is used.
After any form has been invoked, any post-function [/RSE_RECOG=...;func]
is invoked or the key or specified field is copied to the field which
invoked the recognition processing.
That's how it works... now we just have to find the problem!
Perhaps you could post some details of the "Recog" form and try turning
on TRACE so we can see what is happening when you get the error?
Paul.
|
|
Well...
I'm a little surprised at the way that the recognition works... I expected
it to use the /RECOG field processing code.
Instead, it actually generates a phandom DSAB (*PH_...) which it then
uses with an OA$SCL_INIT on your behalf for the RECOG form. From there
on, it's just like an Index form which should be fine as you have
things set up. I thought that it would use some special processing to
map the SELECT context onto the RECOG form, but it doesn't.
The problem seems to be that the form name is appearing in lower case.
It derives the name of the data-set from OA$SEL_DSAB symbol.
I think you just need to uppercase your DSAB name and it will probably
start working!
If so, then this is just a bug with the form (DSAB) name not being
upper-cased.
Let me know what you find,
Paul.
|