* EVL(Exp1,Exp2,Exp3,Exp4) implemented with next syntax =Exp1 .IFEMPTY. Exp2 .IFEMPTY. Exp3 .IFEMPTY. Exp4 * NVL(Exp1,Exp2,Exp3,Exp4) implemented with next syntax =Exp1 .IFNULL. Exp2 .IFNULL. Exp3 .IFNULL. Exp4But this schema have side effects, too.
* this is simple and clear IF doOperation1() IF doOperation2() && executed for doOperation1() = .T. doOperation3() && executed for doOperation1() AND doOperation2() = .T. ENDIF ENDIF * a developer can use this, but this is not equal to the previous code = doOperation1() ; .AND. doOperation2() ; && executed for doOperation1() = .T. or .NULL. .AND. doOperation3() && executed for (doOperation1() = .T. or .NULL.) AND (doOperation2() = .T. or .NULL.)Fabio