Да, возможно иметь один отчет для всех клиентов. В основном вы определяете свой шаблон отчета CustomerReport.rdlc для получения данных из некоторого набора данных (хранимой процедуры или какого-либо метода в вашем уровне данных).
например ваш метод должен выглядеть примерно так:
public DataTable GetCustomerDetails(int customerID)
{
//call stored procedure
}
Затем на странице, где есть ReportViewer, вы делаете что-то вроде этого:
DataTable data = GetCustomerDetails(1);
this.ReportViewer1.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Local;
this.ReportViewer1.LocalReport.ReportPath = "CustomerReport.rdlc";
this.ReportViewer1.LocalReport.DataSources.Clear();
this.ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("[Datasource name defined in CustomerReport.rdlc]", data));
this.ReportViewer1.LocalReport.Refresh();