Как выполнить итерацию по вложенному списку .NET <> в Crystal Reports в Visual Studio 2008?

2

У меня есть отчет Crystal в Visual Studio 2008 (С#). Его источник данных устанавливается программно во время выполнения в список .NET, определяемый следующим образом:

List<visit_volume> Visits

a visit_volume выглядит следующим образом:

public class visit_template
{
    private int _numberOfVisits;
    public int numberOfVisits
    {
        get { return this._numberOfVisits; }
        set { this._numberOfVisits = value; }
    }

    // other ints and doubles declared here
    // ..
    // ..

    private List<mEvent> _events;
    public List<mEvent> events
    {
        get { return this._events; }
        set
        {
            // updates _numberOfVisits here
            // ..
            // build-up a debugging string of each mEvent
            // ..
        }
    }
}

Итак, подача в Crystal Report - это List<> из visit_volume объектов, которые сами содержат List<> объектов mEvent.

В Crystal Reports я могу видеть содержимое списка Visits, но я не могу получить доступ и сообщить о содержимом члена events - он просто не отображается. Это потому, что Crystal не может обрабатывать вложенные структуры List<>, или я делаю что-то неправильно?

Спасибо заранее.

Теги:
list
crystal-reports
visual-studio-2008

2 ответа

0
Лучший ответ

Подумав об этом, ответ на этот вопрос может состоять в том, чтобы включить подчиненный отчет, который просто имеет структуру events в качестве источника данных.

4

Я думаю, что, хотя Кристалл понимает "внешний" список как тип данных для строк, типы данных полей внутри этой строки должны быть стандартными типами баз данных. Например, если вы создавали таблицу SqlServer и пытались добавить поле, это не позволило бы вам выбрать "список" в качестве типа данных этого поля.

Я думаю, что вам может понадобиться поместить все значения из вашего вложенного списка в отдельный объект/таблицу, а затем получить Кристалл, чтобы сформировать связь между этими двумя таблицами.

Я не уверен, как вы будете поставлять оба объекта в качестве источника данных - вам может потребоваться объявить набор данных в Visual Studio, получить Crystal, чтобы основывать свой отчет на этой структуре, а затем передать оба объекта через отдельные таблицы в Объект .NET DataSet.

  • 0
    Я проголосую за это. Звучит логично !!!
  • 1
    Звучит правильно. Crystal Reports - я бы предпочел съесть свою руку ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню