Как выполнить итерацию по вложенному списку .NET <> в Crystal Reports в Visual Studio 2008? - PullRequest
2 голосов
/ 21 января 2010

У меня есть Crystal Report в Visual Studio 2008 (C #). Его источник данных программно устанавливается во время выполнения в список .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<> структуры, или я что-то не так делаю?

Заранее спасибо.

Ответы [ 2 ]

4 голосов
/ 21 января 2010

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

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

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

0 голосов
/ 21 января 2010

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

...