Whenever I use DataSets (or business objects) for reports, I populate the data first and then pass it to the report. e.g.
Code:
// Create an instance of the report, and supply the data source.
// QuickQuoteReport is a CR ReportClass.
QuickQuoteReport report = new QuickQuoteReport();
MyDataSet ds = Database.GetSomeData();
report.SetDataSource(ds);
HTH,
Buoy