Hey Bill, Edhy had some good things to say and I agree with him on the viability of actually needing this type of functionality. We get requests on a daily basis for all of our products, and though many are very good, others just really may not make sense in the whole scheme of things and so we very carefully review each request.
However, if you have to do this, then you can actually do it semi-easily on the SF side. The time and energy on this will on for you adding the logic to your application for each field, etc. But getting the SF BrowseDialog to do this is not too hard
Basically, this means, can a user click a button to make each field on the form searchable? Has anyone done something like this? Can it be done utilizing the StrataFrame environment?
You have two options. First, you can just add every field in your BO (that makes sense) to the SearchFields collection of the BrowseDialog and then make the fields that should be initially displayed as Visible and leave the Visible for the rest set to False. They can then open the Search Fields once they open their browse and choose which fields that they want, and even the order to display them. This would be the easiest approach as you would not have to do anything on the UI...just add the fields and then let them choose what they want. This is a base feature of the BrowseDialog and the approach that I would probably take.
The second option is to go at it the way that you mentioned and then programmatically add the chosen fields into the SearchFields collection of the BrowseDialog before the browse is shown. You would just create a SearchField class and set the properties then add it to the SearchFields collection.
Either way will work, but it just depends on which will best suite your needs (and save the most time in the end).