RDLC отчет, как создать несколько? - PullRequest
0 голосов
/ 30 мая 2011


Предположим, у вас есть отчет CustomerReport.rdlc, предназначенный для одного клиента ....
Возможно ли иметь несколько отчетов о клиентах в одном и том же средстве просмотра отчетов?
Если нет, то какое другое решение?

Ответы [ 3 ]

1 голос
/ 30 мая 2011

Да, возможно иметь один отчет для всех клиентов. В основном вы определяете свой шаблон отчета 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();
0 голосов
/ 23 июня 2011

Решением является код, сгенерированный rdlc !!

0 голосов
/ 30 мая 2011

Один элемент управления ReportViewer покажет один документ .rdlc вместе со всеми вложенными отчетами, включенными в «parent» .rdlc «за раз». Если вы работаете в веб-формах, также лучше не пытаться «перезагрузить» второй отчет в средство просмотра отчетов. Лучше очистить div, содержащий reportviewer и создав новый экземпляр элемента управления reportviewer, и вставить его в контейнер (div / span / etc.)

После этого достаточно убедиться, что у вас есть данные о клиенте, назначенные в качестве источника данных.

...