2008-10-15 6 views
0

Est-ce que quelqu'un connaît un moyen de représenter une arborescence dans Crystal Reports? Mon gros problème est que Je ne connais pas la profondeur de l'arbre. Il est représenté dans une table de base de données avec une relation simple "childId -> parentId".Affichage d'une arborescence dans Crystal Reports

Un exemple parfait serait d'ouvrir l'Explorateur Windows, et regardez l'arborescence des répertoires sur le côté gauche. Si quelqu'un connaît un moyen de représenter cet arbre, alors cela fonctionnera pour ce que je dois faire aussi.

Mes premières tentatives ont été:

1) à programatically (en C#) ajouter des groupes au rapport. Malheureusement, vous ne pouvez pas créer une nouvelle instance de la classe Group et l'ajouter à la collection Groups.

2) imbrique récursivement le même rapport dans lui-même pour chaque niveau. En d'autres termes:

mainReport 
    subReport 
    subReport 
    subReport 
    subReport 
    subReport 
    subReport 

etc ...

Malheureusement, ne peuvent pas contenir des sous-rapports des sous-rapports. Je ne veux vraiment pas simplement ajouter X nombre de groupes dans un rapport et cacher ceux dont je n'ai pas besoin, parce que je devrais ajouter un nombre fixe de groupes imbriqués, mais techniquement, la conception des données peut soutenir une profondeur infinie, même si en pratique, nous voyons jusqu'à environ 5 niveaux de profondeur.

Alors, d'autres idées?

Répondre

4

Crystal XI a ajouté le groupement hiérarchique. Vous le trouverez dans le menu Rapports. J'ai mis en place un rapport rapide d'organigramme avec une profondeur de niveau n utilisant ceci. La table de base de données est comme: id Nom ManagerID

Dans le Crystal Report, vous sélectionnez ces colonnes, groupe par id. Ensuite, dans le menu "Options de regroupement hiérarchique" sous Rapports, cochez "Grouper hiérarchiquement les données", le parent Id ID gestionnaire et le retrait approprié.

La sortie est comme l'arborescence que vous avez décrite dans Explorer.

+0

merci! Je ne suis pas sûr de la version que nous utilisons, mais il semble qu'il est temps de convaincre le patron de son temps de mise à niveau :) merci encore! – CodingWithSpike

+0

Bonne chance! Je suis passé de 9 à XI; Pour ma part, je certifie que la mise à niveau en vaut la peine. – jons911