Yeah, there is no such thing as 'Conditional Data' as far as I'm aware. the best way to accomplish what it looks like your trying to is use a RESTORE command within the condition to read specific data area. unless its called from within a SUB or FUNCTION as BPlus has said, data is read from top down within the main code. Perhaps a better way is to preload all the data into an array and just call upon the required array area when needed.