Работа с несколькими DataSource в пределах одного отчета
помогите пожалуйста. Второй день копаю и ничего не могу решить. Проблема такая. DevExpress/Winforms
Задача построить отчет с несколькими таблицами. Условно в отчете должны быть две таблицы со списком ручек и тетрадок.
Данные в отчет нужно передавать объектом класса.
Что я делаю: 1.Создал класс
class MyLiitleWarehouse
{
public string shiftKey { get; set; }
public string dateTime { get; set; }
public string count { get; set; }
public List<Books> BooksItems{ get; set; }
public List<Pens> PensItems{ get; set; }
}
class Books
{
public string id { get; set; }
public string bookName{ get; set; }
public string pageCount{ get; set; }
}
class Pens
{
public string id { get; set; }
public string color{ get; set; }
public string matireal{ get; set; }
}
В дизайнере создал шаблон отчета(.repx) и сохранил в отдельную папку
Настало время смотреть отчет
List<MyLiitleWarehouse> data = new List<MyLiitleWarehouse>(); ///заполним его// XtraReport report = new XtraReport(); string APP_PATH = Application.StartupPath; report.LoadLayout(APP_PATH+@"/repx/MyLittleReport.repx"); report.DataSource = data; report.ShowPreview();
4.Результат
В дизайнере отчетов есть пункт "Элемент данных" и выбрать можно только один
public List<Books> BooksItems{ get; set; }
или
public List<Pens> PensItems{ get; set; }
Соответственно в таблице отчета полный список либо ручек либо книжек.
Попробовал вместо MyLiitleWarehouse добавить несколько DataSource Books и Pens в дизайнере отчетов. Тогда можно выбрать "Элемент данных" для каждой из них, но возникает вопрос как тут назначить несколько DataSource
report.LoadLayout(APP_PATH+@"/repx/MyLittleReport.repx");
report.DataSource = data;
PS
Искал как мог, на оффсайте тоже ничего нет, выручайте товарищи.
Ответы (1 шт):
Вопрос снят, решением оказалось Создание детализированных секций в дизайнере отчета. При создании "детальной" секции можно выбрать элемент данных для нее. В таком случае можно просто засылать один класс как я делал в самом начале
List<MyLiitleWarehouse> data = new List<MyLiitleWarehouse>();