Rob,
Perhaps I've missed something along the way here. If so, sorry, but your mention of "flags" brought something to mind. When I think of "flags" it generally means the change in a condition and is represented by setting a logical value. This can make tracking multiple related logical conditions a bit tough, but VFP has made this task much simpler. If this is along the lines of your problem, then read on.
VFP's bit manipulation functions can be used to either set or check the values any of the bits in a 32 bit integer. This is a very powerful tool. It means that you can store up to 32 logical conditions in a single variable. Further, they also allow you to evaluate if any or none of these conditions are met in a single line of code. You might want to check out functions like BITAND(), and BITOR().
hth,
George
Ubi caritas et amor, deus ibi est