Domanda

Qualcuno sa come rappresentare una struttura ad albero in Crystal Reports? Il mio grosso problema è che non conosco la profondità dell'albero . È rappresentato in una tabella di database con un semplice " childId - > parentId " rapporto.

Un esempio perfetto sarebbe quello di aprire Windows Explorer e guardare l'albero delle directory sul lato sinistro. Se qualcuno sa come rappresentare quell'albero, funzionerà anche per quello che devo fare.

I miei tentativi iniziali sono stati:

1) per aggiungere programmaticamente (in C #) gruppi al report. Sfortunatamente, non è possibile creare una nuova istanza della classe Group e aggiungerla alla raccolta Gruppi.

2) annidano ricorsivamente lo stesso report in se stesso per ogni livello. In altre parole:

mainReport
  subReport
    subReport
    subReport
  subReport
  subReport
    subReport

ecc ...

Sfortunatamente, SubReports non può contenere SubReport.

In realtà non voglio solo aggiungere un numero X di gruppi in un report e nascondere quelli di cui non ho bisogno, perché dovrei aggiungere un numero fisso di gruppi nidificati, ma tecnicamente la progettazione dei dati può supportare una profondità infinita, anche se in pratica vediamo fino a circa 5 livelli di profondità.

Quindi, altre idee?

È stato utile?

Soluzione

Crystal XI ha aggiunto il raggruppamento gerarchico. Lo troverai nel menu Rapporti. Ho creato un rapido rapporto sull'organigramma con profondità di livello n usando questo. La tabella del database è simile a:   id   nome   ManagerID

In Crystal Report, selezionare queste colonne, raggruppandole per ID. Quindi, in " Opzioni di raggruppamento gerarchico " menu in Rapporti, deseleziona " Raggruppa i dati gerarchicamente " ;, ID gestore ID padre e rientra in modo appropriato.

L'output è come l'albero che hai descritto in Explorer.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top