>I agree, but in this case we're talking about a cursor created on the fly specifically for a single user. My experience is that it's an acceptable delay with < 10000 records. But if I have to create 12 tags each time the view is changed the user complains. And it's an extra load on the system. So it all depends as usual.
I've taken a slightly different approach. I Create Cursor with a specific structure in the load() of the form, and index it right away while it's empty. Then, during the lifetime of the form, I create other cursor(s) with the same structure vie SQL Selects, zap this original cursor and append from the other cursors. I didn't retrieve much data, though, but then my machine is 'suboptimal' ((c) Microsoft) - and it ran just fine.
In case of a p-view, I just load it with no data (either by assigning impossible values to the parameters, or by using NoDataOnLoad) and index it right away. Each ReQuery implicitly reindexes it, so no worry there either.