Validating a Form

jwilderjwilder Member Posts: 263
edited 2002-03-25 in Navision Financials
I would like to validate our Sales Order Form. I have put some code on the OnQueryCloseForm trigger which checks certain fields to make sure they aren't blank, for example:
If "shipment method" = '' then begin
currform."shipment method".activate;
error('Please enter a value')
end;

This works great if someone closes out of a form by hitting the close button. But if they hit the lookup button, vcr buttons or do a find it doesn't run the code from that trigger. How can I make this work when someone hits the lookup button, vcr buttons or does a find ?

Comments

  • Luc_VanDyckLuc_VanDyck Member, Moderator, Administrator Posts: 3,633
    Copy your code in the OnAfterGetRecord() trigger on the form.
    No support using PM or e-mail - Please use this forum. BC TechDays 2024: 13 & 14 June 2024, Antwerp (Belgium)
  • jwilderjwilder Member Posts: 263
    Doesn't work. The onaftergetrecord is called when the form opens (more than once). Any other ideas?
  • John_TegelaarJohn_Tegelaar Member Posts: 159
    Check against xRec, instead of the current Rec. If the conditions aren't met, set back the displayed record to xRec.

    However, keep the "Navision Rule" in mind: Check when dat is to be used, not at entering.

    John
  • wonmowonmo Member Posts: 139
    Add code to the OnInsert trigger:
    gbln_NewRecord := TRUE;
    Add code to the OnAfterGetCurrRecord trigger:
    IF (gbln_NewRecord) AND (Shipment Method" = '') THEN BEGIN
    GET(xRec."No.");
    MESSAGE('Enter a shipment method');
    END;

    This will let you open the form without the code in the trigger firing. Regarding the buttons, you can add code to disable each of those buttons as a default until the "Shipment Method" is filled in.

    This stuff is just off the top of my head and I haven't tested it but I've done something similar in regards to explicit inserts and edits to records. Hope this helps.
Sign In or Register to comment.