This reminds me of a similar thing that I did for a customer.
I had to dynamically change the sequence of the columns in the report based on users UI selection. I succesfully achieved it using
PARAMETERS.
Behind every UI selection I was setting parameters in the report. There wasnt any direct field dropped on the report. Instead I placed parameters as columns and passed values to those from my code.
Because in crystal unless you have sections you cant do much about sorting columns.
----------------
Yet another way is to pass an
order by
clause to the SQL query based on the users UI selection. This also makes sense and creates the query before hand. So behind every control you have place a sort on that particular field sql.
Hope it gives you some direction.