Я пытаюсь создать отчет по меткам (3 по горизонтали x 5 по вертикали) с помощью Telerik Reporting. У меня есть список объектов (клиенты с кодом и именем). Например, в списке есть элементы:
{ '001', '002', '003', '004', '005', '006', '007', '008', '009', '010', '011', '012', '013', '014', '015' }.
Я пробую этот образец: https://www.telerik.com/support/kb/reporting/details/how-to-create-multi-column-report---across-the-page-and-then-down
Но у меня не работает, потому что у меня нет индексного поля.
Я связываю список с отчетом во время выполнения и в предварительном просмотре получаю:
001 006 011
002 007 012
003 008 013
004 009 014
005 010 015
But I want to get:
001 002 003
004 005 006
007 008 009
010 011 012
013 014 015
Я хотел бы знать, существует ли какой-либо метод для linq, чтобы изменить порядок группировки списка по количеству строк, которые нужно получить
001, 004, 007, 010, 013, 002, 005, 008, ...
Другая проблема заключается в том, что если количество элементов меньше 15, я должен заполнить список пустыми элементами.
Спасибо.
Edit:
Я пытаюсь что-то вроде этого:
using System;
using System.Linq;
using System.Collections.Generic;
public class Program
{
public static void Main()
{
int rows = 5;
int columns = 3;
List<string> x = new List<string> { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20" };
for (int i = 0; i < rows; i++)
{
var h = x.Where((c, index) => index % columns == i).Take(rows).ToList();
foreach (var s in h)
{
Console.WriteLine(s);
}
}
}
}