Отображение коллекции в ячейке табликса (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 ответ:
Ну, мы не совсем нашли решение этого вопроса, но я могу просто сказать следующее: Мы в основном закончили тем, что предоставили 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 | |___________|___________|____________|
Вот и все.