Bypass Field Validation for empty field

Hugh Middity

New Member
I'm hoping to make a change to remove an annoyance from a legacy Progress 9.1D database.

The form includes a 2 part lookup, namely Area Code and Sub Area Code.
If you just tab through the fields, on loading the form, then the validation message doesn't fire (which is fine, because its also validated before it is saved).

Suppose you type a valid but incorrect Area Code, then type something in the Sub Area Code field and then get a warning message from the on leave of event, that the sub area is invalid for the selected area code - well that's fine too. However, I'd like to be able to blank out the sub area code and move back to correct the area code field.

Unfortunately, I can't because the field validation message occurs (as defined in the data dictionary - but I don't want to change any database aspects, just the client code). This effectively traps the user in the sub area code field, and they have to type a valid sub area for the area and then change the area, so that they can then re-enter the sub area. Clunky!

The only other way out (which is equally bad for users, but may hopefully give a clue to a Progress guru) is to right click on another field, triggering its on right click event which pops up a search form. I don't understand why this bypasses the sub area validation, but I'm hoping there's a way to take advantage of this loophole such that Progress allows the user to just click on (or tab to) another field, just like I described way back in paragraph 2 (if you can remember that long ago!)

Sorry for such a long posting, hope it makes sense. Thanks.
 
You can use the "NO-VALIDATE" in the frame phrase to disregard all validation conditions specified in the Data Dictionary for fields entered in this frame.

If your validation in the sub-area-code field fails you could say "subareacode:screen-value = """ and "apply 'entry' to area-code".

Let me know if this helps.

Thanks
Joel
 

Hugh Middity

New Member
Thanks for the suggestion.

Can you give me an example of how this would be used please.

I tried adding NO-VALIDATE to the DEFINE FRAME DEFAULT-FRAME statement, but it didn't compile. Then I tried
FRAME DEFAULT-FRAME:NO-VALIDATE = true.
But this gave the message "** NO-VALIDATE is not a settable attribute for FRAME DEFAULT-FRAME. (4052)" at run time.

Also, I couldn't find any reference to NO-VALIDATE in the Progress documentation. Is this feature available in version 9.1D ?

Thanks.

====
Update: Just tried adding NO-VALIDATE into the WITH part of the DEFINE FRAME statement, and it compiles and runs, and seems to work.
I'll do some more testing to confirm.
Thanks Joel.
 

lord_icon

Member
This is simple GUI.

DO WITH FRAME {&FRAME-NAME}

ASSIGN
WidgetNameToBlank:SCREEN-VALUE = ""
.
APPLY 'ENTRY' TO WidgetNameFirstCodeField

END.
 
Top