Bill,
Barbara's suggestion is a good one...however I recommend using a business object property rather than a form property so the business works properly outside the context of a form.
Another alternative: if you're setting the filter on a *character* field, you can store a "%" in the view parameter to indicate ALL records; if you want to filter on a particular category you can set the view parameter to the desired category. If you're setting the filter on an integer, you can create two view parameters...and use the BETWEEN command in your WHERE clause. If you want ALL records, you can set the first view parameter to 0 and the second view parameter to the highest possible value for that type of field. If you want a single category, set both view parameters to that single value.
A third alternative is to build the SELECT statement and WHERE clause dynamically at run time and issue it implicitly rather than using views. When scaling to client server you can issue the same/similar command via SQL Pass-through.
Regards,
Kevin McNeish
Eight-Time .NET MVP
VFP and iOS Author, Speaker & Trainer
Oak Leaf Enterprises, Inc.
Chief Architect, MM Framework
http://www.oakleafsd.com