Hi, Steve,
I always set the report datasource one datatable at a time.
By any chance, when you designed your report, did you design against tables that were in the back-end database (sql, oracle, etc.)? That can sometimes happen - if the report was designed against sql tables, you can get a login runtime prompt for any tables that aren't references when you do your runtime databinding.
What I do is loop through the report's database object, and match up against the tables in my dataset, like so...
private void SetData(DataSet DsReportData, ReportDocument oReport)
{
foreach (Table oTable in oReport.Database.Tables)
oTable.SetDataSource( DsReportData.Tables[ oTable.Name.ToString() ]);
}
I can call that method both for the report object, as well as any subreports that may exist...
this.SetData(DsReportData,oReport);
foreach(ReportDocument oSubReport in oReport.Subreports)
this.SetData(DsReportData,oSubReport);
Hope that helps...
Kevin