Condividi tramite


Raggruppamento dei dati in un report

Data aggiornamento: 14 aprile 2006

È possibile raggruppare i dati di ogni area dati, ovvero tabella, matrice, elenco e grafico, in base ai campi e alle espressioni. I gruppi all'interno di una tabella possono essere utilizzati per creare sezioni logiche di dati nella tabella. È inoltre possibile aggiungere subtotali e altre espressioni all'intestazione o al piè di pagina del gruppo. In una matrice i gruppi vengono visualizzati come colonne o righe dinamiche. È possibile nidificare gruppi all'interno di altri gruppi e aggiungere subtotali. Gli elenchi possono essere utilizzati per rendere disponibili gruppi distinti in un report oppure possono essere posizionati all'interno di elenchi per ottenere gruppi nidificati.

Per visualizzare istruzioni sul raggruppamento di dati in aree dati, vedere:

Gerarchie ricorsive

Una gerarchia ricorsiva è una gerarchia di dati in cui tutte le relazioni padre-figlio sono rappresentate nei dati. È ad esempio possibile utilizzare una gerarchia ricorsiva per creare un organigramma che rappresenti le relazioni gerarchiche tra i vari dipendenti. In tale gerarchia, la tabella includerà colonne per l'ID del dipendente e l'ID del dirigente, che fa riferimento all'ID dipendente di un altro dipendente, in modo da creare una gerarchia di dipendenti.

Per creare una gerarchia ricorsiva è necessario impostare determinate proprietà per un gruppo in un'area dati. Utilizzare un campo contenente un ID univoco, ad esempio l'ID del dipendente, come espressione di raggruppamento, quindi utilizzare un campo contenente l'ID del padre, ad esempio l'ID del dirigente, nella proprietà Parent. Un gruppo definito come gerarchia ricorsiva, ovvero un gruppo che utilizza la proprietà Parent, può includere una sola espressione di raggruppamento.

L'esercitazione seguente consente di creare una gerarchia ricorsiva che utilizza la tabella Employee del database AdventureWorks. In questa esercitazione si presuppone che siano note le procedure per creare report, set di dati, query e tabelle. Per informazioni su queste funzionalità, vedere gli argomenti corrispondenti della documentazione.

  1. In visualizzazione Dati creare un set di dati basato sul database AdventureWorks.

  2. Nel set di dati utilizzare la query seguente:

    SELECT FirstName, LastName, EmployeeID, ManagerID
    FROM   HumanResources.Employee E INNER JOIN
           Person.Contact C ON  E.ContactID=C.ContactID
    
  3. In visualizzazione Layout creare un'area dati tabella.

  4. Nella prima cella di dettaglio della tabella digitare l'espressione seguente:

    =Fields!FirstName.Value & " " & Fields!LastName.Value
    
  5. Fare clic con il pulsante destro del mouse sull'angolo della tabella e quindi scegliere Proprietà.

  6. Nella scheda Gruppi fare clic su Raggruppamento dettagli.

  7. Nella scheda Generale della casella Espressione digitare o selezionare l'espressione seguente:

    =Fields!EmployeeID.Value
    
  8. Nella casella Gruppo padre digitare o selezionare l'espressione seguente:

    =Fields!ManagerID.Value
    

Funzione Level

È possibile utilizzare la funzione Level nella spaziatura interna della casella di testo per applicare un rientro ai nomi dei dipendenti in base al relativo livello nella gerarchia. Per eseguire tale operazione con la tabella dell'esempio precedente, selezionare la casella di testo nella prima cella di dettaglio. Aprire la finestra Proprietà per la casella di testo. Espandere il nodo Padding e fare clic sulla proprietà Left. Nell'elenco a discesa selezionare <Espressione...> e immettere il codice seguente:

=Convert.ToString(2 + (Level()*10)) + "pt"

Tutte le proprietà di spaziatura interna richiedono una stringa con formato nnxx, dove nn è un numero e xx l'unità di misura. Per impostazione predefinita, la spaziatura interna per una casella di testo è pari a 2 pt. L'espressione sopra riportata consente di generare una stringa che utilizza la funzione Level per aumentare le dimensioni della spaziatura interna in base al livello. A una riga di livello 1, ad esempio, verrà applicata una spaziatura interna di 12 pt (2 + (1*10)) e a una riga di livello 3 verrà applicata una spaziatura interna di 32 pt (2 + (3*10)).

Per informazioni sulla funzione Level, vedere Funzione Level (Reporting Services).

Vedere anche

Concetti

Utilizzo delle aree dati
Utilizzo delle aree dati tabella
Utilizzo delle aree dati matrice
Utilizzo delle aree dati elenco
Utilizzo delle aree dati del grafico

Guida in linea e informazioni

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

14 aprile 2006

Contenuto modificato:
  • Correzione della query per l'utilizzo con il database AdventureWorks anziché AdventureWorks2000.