>> What would be nice would be to call a source procedure from the browse which would then do the case logic and call the relevant print procedure.
That's exactly how you do it, except you set the button to call a NetWebPage (not a source). the page then contains a case statement. So, in your example,
>> On click I call a procedure PrintTripSheet
change this so ... On click I call a procedure PrintSelector (where PrintSelector is a netWebPage)
add the case statement into the PrintSelector.
Cheers
Bruce