>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 >