DevExpress XtraReports привязывает источник данных подотчета к источнику данных отчета о коллекции

У меня возникли проблемы с привязкой источника данных вложенного отчета DevExpress XtraReport к нему, содержащему источник данных отчета. Источник данных - это коллекция объектов.

Если я создам базовый отчет с дополнительными разделами, все будет хорошо.

Например, коллекция объектов - это список компаний. У каждой компании есть список адресов и список контактов. Я пытаюсь создать отчет с двумя вложенными отчетами бок о бок для каждой (детальной) компании.

Из нескольких статей в Интернете я подумал, что такой подход сработает:

report.ContactSubreport.ReportSource.DataSource = report.Datasource

который я вызываю из сценария, используя событие BeforePrint подотчета.

Я также попытался установить datamember на имя подколлекции:

report.ContactSubreport.ReportSource.DataMember = "Contacts"

Любая помощь или предложения будут приняты с благодарностью. Спасибо!


person Greg Delaney    schedule 05.04.2018    source источник


Ответы (1)


Насколько я понимаю, вам нужно отображать только те записи дочерних коллекций, которые принадлежат текущей основной записи.

В этом случае лучше обработать событие BeforePrint этих XRSubreports и вызвать там метод XtraReport.GetCurrentRow для главного отчета. Вызов этого метода вернет основную запись (т. Е. Экземпляр объекта «Компания»). Это позволит вам передать список «Company.Addresses» в первый подотчет и список «Company.Contacts» во второй. Таким образом, сведения, относящиеся только к каждой «Компании», будут напечатаны в обоих вложенных отчетах.

person e1em3ntt    schedule 17.07.2018