function operate lparameters lcOperation local lnPosPlus, lnPosMinus, lnPos, lcValue, lcPerc lnPosPlus=rat('+', lcOperation) lnPosMinus=rat('-', lcOperation) if (lnPosPlus=0 and lnPosMinus=0) or right(lcOperation, 1)#'%' return null && or whatever, like evaluate(lcOperation) else lnPos=max(lnPosPlus, lnPosMinus) lcValue=left(lcOperation, lnPos-1) lcPerc=substr(lcOperation, lnPos+1, len(lcOperation)-lnPOs-1) lnReturn=evaluate(lcValue+substr(lcOperation, lnPos, 1)+'(('+lcValue+')*'+lcPerc+'/100)') endif return lnReturn