Как я могу привязать таблицу отчета devexpress к списку строк?

Я пытаюсь создать отчет с таблицей и привязать его к списку строк (около 10000 элементов).

Я пытался создать строку во время выполнения, но это очень медленно:

String[] ids = GetIds();
DetailTable.BeginInit();
foreach (String id in ids)
{
     XRTableRow newRow = new XRTableRow();
     XRTableCell newCell = new XRTableCell();
     newCell.Text = id;
     newRow.Cells.Add(newCell);
     DetailTable.Rows.Add(newRow);
}
DetailTable.EndInit(); 

Также я пытался привязать ячейку, но в отчете я вижу только первую строку:

var ids = GetIds().Select(id => new {Id = id});
this.DataSource = ids;
IdCell.DataBindings.Add(new XRBinding("Text", DataSource, "Id"));

Как я могу заполнить свой стол?


person Meco Barundis    schedule 17.12.2016    source источник
comment
Вы используете приведенный выше код? Он даже не скомпилируется. ids - это строка типа, а затем вы зацикливаете ее, а id - это строка ?? Невозможно.   -  person CodingYoshi    schedule 17.12.2016


Ответы (1)


Я также хотел бы увидеть ваше представление о дизайне отчета. Я делаю это следующим образом (в представлении «Дизайн»):

  1. Поместите один xrTable в DetailReport - это будет заголовок таблицы, просто фиксированные тексты, возможно, некоторое форматирование (фон, шрифт и т. Д.), Я предполагаю, что ваша таблица будет иметь только один столбец.
  2. вставьте еще один подробный отчет (внутри первого, щелкнув правой кнопкой мыши его имя и выбрав «Вставить подробный отчет»)
  3. внутри этого второго поместите еще один xrTable того же размера и количества столбцов (там вы поместите данные)
  4. щелкните смарт-тег этого второго DetailReport, добавьте источник данных (модель, в которой находится ваш список) и укажите DataMember на элемент списка.
  5. Я не знаю, будет ли он сопоставляться со строковыми значениями вашего списка. Вероятно, нет, поэтому я бы изменил ваш List[[string]], например, на a List[[MyOneColumnClass]], где MyOneColumnClass — это просто класс только с одним общедоступным строковым значением {get; set;} Затем вы укажете DataMember на поле [Value] (просто введите слово в скобках в текст xrTableCell.
person XzajoX    schedule 18.01.2017