Hi Keith,
You are making the mistake of hand-coding something that the templates already do for you. This is bad for 2 reasons;
a) It is much better to set the Filter for the VIEW - which in turn pushes the filtering onto the back-end and
b) Writing hand-code will always be "less forward compatible" than using template features. - Which is not to say this hand-code is a problem, but I know the code the templates generate, and so I can make sure that is backward compatible in future releases, whereas I don't know the hand-code you are generating so sometimes that has to change.
Here are some tips thought for what you want to do;
a) Add a parameter to the menu items. Say something like;
'menufilter=x1'
and
'menufilter=x2'
b) In the browse do a StoreValue so the parameters are "remembered". You can do this at the first embed in the procedure.
p_web.StoreValue('menufilter')
c) Use the "Conditional Filters" template options - using the SesisonValue of Menufilter as the condition;
p_web.GSV('MenuFilter') = 'x1'
Cheers
Bruce