Thàt, or creating a custom 'front' program (though that would imply a custom transaction). Add all the fields you want on the selection screen of your 'front' program and when executing, you pass them along to the standard transaction.
A bit like the decorator design pattern from OO programming ![]()
Downside is obviously the custom transaction, but the advantage would we you can do almost everything you want and you only need to pass along the data..