<p>What is the best way to dynamically create RDLC xml as input to VS2005 Report Viewer?  </p>

<p>I would like to autosize columns based on the data sizes.  I would also like to programmatically control what columns are displayed.</p>

Lisa Nicholls
gives a complete answer
in this thread
about dynamically defining a report. You'll want to scroll down some before you get to a useful answer. This thread most directly answers your question about controlling which columns are displayed.
These same techniques can be used to size the columns programmatically, but your code will have to figure out the appropriate column widths.