Tracy,
>IIF(!EMPTY(po_status),IIF(ASCAN(_vstatus,po_status)>0,IIF(!EMPTY(_vstatus(ASCAN(_vstatus,po_status)+1)),EVALUATE(_vstatus(ASCAN(_vstatus,po_status)+1)),RGB(255,255,255)),RGB(255,255,255)),RGB(255,255,255))
Have you considered using VFP 9's ICASE() vs. a nested IIF()? I find ICASE() easier to read and write.
>The problem I run into doing it this way is that I need to know the old row that was selected and the currently active row in afterrowcolchange to accomplish this.
Can you add another column to your grid's record source to contain color coding info for each record and then update this info in your Before and AfterRowCol change events? You can drive your DynamicBackColor expression based on each record's color coding field value and the current column name/value.
> I also need to step through all columns in the grid at this point (which I can do but seems to exceed some program call limits when I call a method to do this)
I'm not sure why you need to do this. If I understand your goal correctly, I believe you should be able to set your DynamicBackColor logic once vs. dynamically changing it.
Malcolm