Отображение древовидной структуры в Crystal Reports

Кто-нибудь знает способ представления древовидной структуры в Crystal Reports? Моя большая проблема заключается в том, что я не знаю глубину дерева. Он представлен в таблице базы данных простым отношением «childId -> parentId».

Прекрасным примером может быть открытие проводника Windows и просмотр дерева каталогов с левой стороны. Если кто-нибудь знает способ представить это дерево, то это сработает и для того, что мне нужно сделать.

Моими первоначальными попытками были:

1) чтобы программно (в C#) добавить группы в отчет. К сожалению, вы не можете создать новый экземпляр класса Group и добавить его в коллекцию Groups.

2) рекурсивно вкладывать один и тот же отчет в себя для каждого уровня. Другими словами:

mainReport
  subReport
    subReport
    subReport
  subReport
  subReport
    subReport

и т.д...

К сожалению, SubReports не могут содержать SubReports.

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

Итак, какие еще идеи?


person CodingWithSpike    schedule 15.10.2008    source источник


Ответы (1)


В Crystal XI добавлена ​​иерархическая группировка. Вы найдете это в меню «Отчеты». Используя это, я составил краткий отчет об организационной диаграмме с глубиной n-уровня. Таблица базы данных похожа на: id name managerId

В отчете Crystal вы выбираете эти столбцы, группируете их по идентификатору. Затем в меню «Параметры иерархической группировки» в разделе «Отчеты» отметьте «Группировать данные иерархически», родительский идентификатор managerId и сделайте соответствующий отступ.

Вывод похож на дерево, которое вы описали в Проводнике.

person jons911    schedule 05.11.2008
comment
Благодарность! Я не уверен, какую версию мы используем, но, похоже, пришло время убедить босса, что пора обновиться :) еще раз спасибо! - person CodingWithSpike; 12.11.2008
comment
Удачи! Я обновился с 9 до XI; Я, например, подтвержу, что обновление того стоит. - person jons911; 12.11.2008