Отображение коллекции в ячейке табликса (SSRS)


У меня есть объект, который имеет дочернюю коллекцию:

class Person
{
    public string Name { get; set; }
    public ICollection<PhoneNumber> PhoneNumbers { get; set; }
}

class PhoneNumber
{
    public string Name { get; set; }
    public string Number { get; set; }
}

Количество этих телефонных номеров может сильно варьироваться. Та таблица, которую мне нужно получить в конце:

---------------------------------
| John Doe | Home:   +1-800-666 |
|          | Work:   +1-800-777 |
---------------------------------
| Homer Si | Home:   +1-800-111 |
|          | Work:   +1-800-222 |
|          | Mobile: +1-800-333 |
---------------------------------

(я надеюсь, что очевидно, какие поля являются какими на приведенной выше иллюстрации) Я могу переделывать классы данных по своему усмотрению. Мне нужно сохранить форматирование (я имею в виду, что номера телефонов должны быть выровнены по одной строке, как показано выше).

Вопрос в том, как лучше всего это сделать? Главное ограничение, которое у меня есть, это что я не могу написать никакого кода для отчета. Я могу использовать только XML-отчет (с вложенными отчетами, если это необходимо, но имейте в виду - без кода).

Возможно ли это вообще?

PS я использую локальные отчеты 2008 года

1 2

1 ответ:

Ну, мы не совсем нашли решение этого вопроса, но я могу просто сказать следующее: Мы в основном закончили тем, что предоставили SQL-подобные структуры в качестве результатов запросов данных. Потому что именно этого хотят службы reporting services.

И поверьте мне-просто откажитесь от попыток достичь какой-то пользовательской функциональности в отчетности. Просто перестаньте бороться и используйте методы по умолчанию.

Как я уже упоминал, мы использовали SQL-подобное соединение, чтобы получить нужный формат. Данные, возвращенные от поставщика теперь в следующей форме:
______________________________________
|PersonName | PhoneType | PhoneNumber|
|___________|___________|____________|
|John Doe   | Home      | +123456    |
|John Doe   | Work      | +098765    |
|___________|___________|____________|
|Homer S.   | Mobile    | +654432    |
|Homer S.   | Home      | +654431    |
|Homer S.   | Work      | +654433    |
|___________|___________|____________|

И мы просто группируем табликс по персоналиям так, чтобы в отчете он выглядел следующим образом:

______________________________________
|PersonName | PhoneType | PhoneNumber|
|___________|___________|____________|
|John Doe   | Home      | +123456    |
|           | Work      | +098765    |
|___________|___________|____________|
|Homer S.   | Mobile    | +654432    |
|           | Home      | +654431    |
|           | Work      | +654433    |
|___________|___________|____________|

Вот и все.