Information générale
Catégorie:
Codage, syntaxe et commandes
Here the code for the mbeforesave:
*-- mbeforesave
llretval = .T.
*-- Standard validation for subscriber table is in a stored procedure
DO CASE
CASE EVALUATE(This.psavetable+".n_amount") = 0
cmessage = "Please enter rate amount."
=MESSAGEBOX(cmessage,MB_ICONEXCLAMATION + MB_OK,;
APP_LOC)
llretval = .F.
RETURN llretval
ENDCASE
IF !EMPTY(EVALUATE(This.psavetable+".c_region"))
IF !SEEK(EVALUATE(This.psavetable+".c_region"),"Region")
cmessage = "The region code you entered is not correct."
=MESSAGEBOX(cmessage,MB_ICONEXCLAMATION + MB_OK,;
APP_LOC)
llretval = .F.
RETURN llretval
ENDIF
ELSE
cmessage = "Please enter region."
=MESSAGEBOX(cmessage,MB_ICONEXCLAMATION + MB_OK,;
APP_LOC)
llretval = .F.
RETURN llretval
ENDIF
IF !EMPTY(EVALUATE(This.psavetable+".c_mailcode"))
SELECT mailcode
IF TAG() <> "c_mailcode"
SET ORDER TO TAG c_mailcode
ENDIF
SET FILTER TO
SET FILTER TO mailcode.c_region_id = EVALUATE(This.psavetable+".c_region")
IF !SEEK(ALLTRIM(UPPER(EVALUATE(This.psavetable+".c_mailcode"))),"Mailcode")
=MESSAGEBOX(NOTVALIDMAILCODE,MB_ICONEXCLAMATION + MB_OK,;
APP_LOC)
llretval = .F.
RETURN llretval
ENDIF
*-- We were successful in our seek so now look in rates
*-- table to see if amount enter is correct
SELECT Rates
SET ORDER TO TAG c_rateid
IF SEEK(Alltrim(mailcode.c_rates),"Rates")
SELECT rates
SET FILTER TO
SET FILTER TO ALLTRIM(rates.c_rates) + ALLTRIM(rates.c_region_id) = ALLTRIM(mailcode.c_rates) + EVALUATE(This.psavetable+".c_region")
SCAN
IF Rates.n_cost = EVALUATE(This.psavetable+".n_amount")
*-- Amount enter is a valid rate for mailcode
lnotvalidrate = .F.
EXIT
ELSE
lnotvalidrate = .T.
ENDIF
ENDSCAN
IF lnotvalidrate
=MESSAGEBOX(NOTVALIDAMT,MB_ICONEXCLAMATION + MB_OK,;
APP_LOC)
llretval = .F.
RETURN llretval
ENDIF
ENDIF
RETURN llretval
ENDIF
And here the code for the save button
SELECT (This.Parent.psavetable)
llretval = Thisform.mdetectchanges()
IF llretval
llretval = This.Parent.mbeforesave()
IF llretval
IF This.Parent.Parent.Parent.Page5.grdentrydata.ppreviousamt <> EVALUATE(This.Parent.psavetable+".n_amount")
REPLACE v_batchinfo.n_amt_entered WITH v_batchinfo.n_amt_entered + EVALUATE(This.Parent.psavetable+".n_amount")-;
This.Parent.Parent.Parent.Page5.grdentrydata.ppreviousamt
REPLACE (This.Parent.psavetable+".n_last_order") WITH EVALUATE(This.Parent.psavetable + ".n_amount")
REPLACE (This.Parent.psavetable+".n_org_order") WITH EVALUATE(This.Parent.psavetable + ".n_amount")
ENDIF
lcFieldValue = Evaluate(This.Parent.psavetable+".c_mailcode")
lcFieldValue = ALLTRIM(UPPER(lcFieldValue))
WAIT WINDOW lcFieldValue
IF SEEK(lcFieldValue,"Mailcode")
SELECT rates
SET FILTER TO ALLTRIM(c_rates) + ALLTRIM(rates.c_region_id) = ALLTRIM(Mailcode.c_rates) + ALLTRIM(EVALUATE(This.Parent.psavetable + ".c_region"))
LOCATE
SCAN
IF Rates.n_cost = EVALUATE(This.Parent.psavetable + ".n_amount")
REPLACE (This.Parent.psavetable + ".i_itg") WITH rates.i_nocheck
REPLACE (This.Parent.psavetable + ".i_itgbargains") WITH rates.i_nobargain
REPLACE (This.Parent.psavetable + ".c_premiumproduct_id") WITH rates.c_premiumproducts
REPLACE (This.Parent.psavetable + ".i_itgpremium") WITH rates.c_nopremiumproducts
ENDIF
ENDSCAN
ENDIF
ELSE
RETURN
ENDIF
ENDIF
ENDIF
The wait window show the value but it still bombs on If Seek
Thanks
Précédent
Suivant
Répondre
Voir le fil de ce thread
Voir le fil de ce thread à partir de ce message seulement
Voir tous les messages de ce thread
Voir tous les messages de ce thread à partir de ce message seulement