2014-01-25 1 views
1

У меня есть одна проблема при создании отчетов в VS2010. Я использую RDLC. Моя задача - создать отчет, в котором он должен показывать данные клиента, такие как «Имя», «Контактный номер», «Идентификатор электронной почты» и т. Д. В верхней части отчета.Subreport в файле RDLC

В разделе кузова он должен показать данные о бронировании списка.

Моей структура объекта выглядит следующим образом:

CustomerDetails: 
     Name 
     Age 
     ContactNumber 
     Email Id 
     List<ReservationDetails> 

ReservationDetails 
     FromDate 
     ToDate 
     Period 
     Amount 

Я не знаю, как сделать Перечень в подотчете. Он не динамический, и я получил все детали в начальной загрузке. Я разделил отчет на узел буксировки, Первый (родительский) должен показать общие детали. и Subreport - показать список деталей резервирования.

ответ

2

1- Создание основного отчета, которые показывают сведения о клиенте, как вы reauired пропускания набора данных «Клиенты»
2- Добавить новый отчет «rptCustomerReservation»
3- Добавить набор данных, который возвращает список, принимая параметр CustomerID
4 В главном отчете выберите ячейку, в которую вы хотите добавить отчет, вставьте -> Под отчет
5- Переход к свойствам вспомогательного отчета Добавить rptCustomerОткрыть имя и использовать отчет в качестве полей дополнительного отчета.
6- Выберите «Файл rptCustomerReservation» в окне «Данные отчета», щелкните правой кнопкой мыши «Добавить Prameter», «Добавить параметр». Дайте тип ineger. и дать имя.
7- Перейдите к основному отчету и нажмите правой кнопкой мыши, перейдите к свойствам, нажмите вкладку параметров, укажите имя параметра и выберите значение параметра из раскрывающегося списка набора данных.
8- Добавьте следующий код в файл cs для регистрации и события, чтобы добавить дополнительный отчет в загрузке страницы.

public Ctor() 
{ 
    rptViewer.LocalReport.SubreportProcessing += LocalReport_SubreportProcessing); 
} 

void LocalReport_SubreportProcessing(object sender, SubreportProcessingEventArgs e) 
{ 
    List<CATALOG_ITEM_DETAIL> DTCatalogItemDetail; 
    if (e.ReportPath == "CatalogItemListItemDetails") 
    { 
     DTCatalogItemDetail = report.GetCatalogItemDetail(Convert.ToInt32(e.Parameters[0].Values[0])); 
     ReportDataSource ds = new ReportDataSource("dsItemDetails", DTCatalogItemDetail); 
     e.DataSources.Add(ds);  
     } 
    } 

 Смежные вопросы

  • Нет связанных вопросов^_^