Yes, you could create one string parameter {?Fields} with options suitable for column headings, and then create a formula like the following for each column:
//{@col1}:
select {?Fields}[1]
case "Cust" : totext({Orders.Customer ID} ,0,"")
case "Amt" : totext({Orders.Order Amount},0,"")
case "Order" : totext({Orders.Order ID},0,"")
case "Shipper" : {Orders.Ship Via}
case "Order Date" : totext({Orders.Order Date},"MM/dd/yyyy")
default : ""
You would change only the subscript for the parameter for each of the 8 allowable columns. For column labels, use formulas like this:
{?Fields}[1]
The columns would appear in the order that the user selected them, so you might want to instruct them to that effect in the prompt text. The downside is that you must convert all columns to strings in the formula and then possibly convert some of them back in additional formulas if you want to do calculations, etc.
-LB