Отобразить коллекцию в ячейке таблицы (SSRS) - PullRequest
2 голосов
/ 30 декабря 2010

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

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 Ответ

0 голосов
/ 23 марта 2012

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

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

Как я уже говорил, мы использовали SQL-подобный JOIN для получения желаемого формата. Данные, возвращаемые нашим поставщиком, теперь имеют следующую форму:

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

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

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

Вот и все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...