How Can I cause Express to Validate Fields When I Click SAVE

This forum is for eXpress++ general support.
Message
Author
MIGUELON
Posts: 135
Joined: Wed Feb 10, 2010 10:55 am

Re: How Can I cause Express to Validate Fields When I Click

#11 Post by MIGUELON »

Thanks for your advice Regan, I also think it is the best solution and will apply.
My comment is for Roger to optimize "DC_GetListValidate" has no reason HIDE GET validate.

Regards
Miguel

MIGUELON
Posts: 135
Joined: Wed Feb 10, 2010 10:55 am

Re: How Can I cause Express to Validate Fields When I Click

#12 Post by MIGUELON »

To validate not HIDE GETS just add in _dcgetbx.prg the following lines of code:

FUNCTION DC_GetValidate( oXbp, lPassBuffer, lTestForBlock, lExitValidate, lValidateOnChange )

LOCAL nPointer, aCargo := oXbp:cargo, nType, aGetlist, xValue, ;
mp1, mp2, oNextXbp, nEvent, lOk, bValidate, bProtect, cEditBuffer, ;
bDebugBlock := DC_GetValidateDebugBlock(), lValid := .F., lLocked

DEFAULT lPassBuffer := .f., ;
lTestForBlock := .f., ;
lExitValidate := .f., ;
lValidateOnChange := DC_GetValidateOnChange()

IF !Empty(bDebugBlock)
Eval(bDebugBlock,oXbp,1)
ENDIF

IF Valtype(aCargo) = 'A' .AND. Len(aCargo) >= 2 .AND. ;
Valtype(aCargo[1]) = 'N' .AND. Valtype(aCargo[2]) = 'A' .AND. ;
aCargo[1] > 0 .AND. aCargo[1] <= Len(aCargo[2])

aGetList := aCargo[2]
nPointer := aCargo[1]
nType := aGetlist[nPointer,nGETLIST_TYPE]
bValidate := nil

IF !( nType $ {GETLIST_GET,GETLIST_COMBOBOX,GETLIST_CHECKBOX,GETLIST_MLE,GETLIST_KLMLE} )
RETURN _ReturnFromValid( .T., oXbp, bDebugBlock )
ENDIF
// silex
bProtect := aGetList[nPointer,bGETLIST_HIDE]
if Valtype(aGetList[nPointer,bGETLIST_HIDE])='B' .AND. Eval(bProtect,oXbp)
// Don't validate a hide GET
// para que no valide los get ocultos
RETURN _ReturnFromValid( .T., oXbp, bDebugBlock )
endif
// fin de silex

User avatar
rdonnay
Site Admin
Posts: 4745
Joined: Wed Jan 27, 2010 6:58 pm
Location: Boise, Idaho USA
Contact:

Re: How Can I cause Express to Validate Fields When I Click

#13 Post by rdonnay »

Try this in your VALID statement:

Code: Select all

@ .. DCGET .. VALID {|oGet|IIF(oGet:isVisible(),MyValid(oGet),.t.)}
The eXpress train is coming - and it has more cars.

Post Reply