ببینید شما یا باید اطلاعاتو ابا دیتا آداپتر از دیتابیس بگیرید و بریزید در دیتاتیبل و دیتاتیبل رو پاس بدید به گزارش مثل همون کاری که در پست 1123 خودتون انجام دادین
یا
اطلاعاتو از گریدویو بگیرید و بریزید در دیتاتیبل و دیتاتیبل رو به گزارش پاس بدید
این تابع اطلاعاتو از گریدویو میگیره و میریزه در دیتاتیبل
DataTable GetDataTable(GridView dtg)         
{
DataTable dt = new DataTable();
// add the columns to the datatable
if (dtg.HeaderRow != null)
{
for (int i = 0; i < dtg.HeaderRow.Cells.Count; i++)
{
dt.Columns.Add(dtg.HeaderRow.Cells[i].Text);
}
}
// add each of the data rows to the table
foreach (GridViewRow row in dtg.Rows)
{
DataRow dr;
dr = dt.NewRow();
for (int i = 0; i < row.Cells.Count; i++)
{
dr[i] = row.Cells[i].Text.Replace(" ", "");
}
dt.Rows.Add(dr);
}
return dt;
}

در صورت استفاده از این تابع دیگه از دیتاآداپتر استفاده نکنید و دیتاتیبل برگشتی رو بدید به ریپورت
اطلاعاتو وقتی که گریدو پر میکنید فیلتر کنید