2014-06-06 8 views
5

Per la seguente queryCome aggiungere intestazioni di gruppi di righe a un rapporto di stile "senza intestazione"?

SELECT * 
FROM (VALUES ('England','London',9787426), 
      ('England','Manchester',2553379), 
      ('Scotland','Edinburgh',452194), 
      ('Scotland','Glasgow',1168270), 
      ('Wales','Cardiff',447287)) V(Country, City, Population) 

Creazione di un report dal Report Wizard (con le seguenti opzioni)

Report Wizard Options

costruisce una relazione come

Report Wizard Generated

(Quale Robert Bruckner chiama "headerless" here)

Di fronte a una tale struttura di report c'è un modo semplice/non sfalsato per convertirlo nel formato seguente (con l'intestazione Paese al di fuori del corpo Tablix)?

ovvero senza dover eliminare il gruppo esistente, quindi aggiungerlo di nuovo?

enter image description here

+0

non lo faccio certo è questo è disponibile nel Report Builder, ma sembra che si desidera raggruppare per paese e città e aggiungere FIRST (City) e MAX (popolazione), come i campi di dettaglio –

+0

@Irb Non è chiaro per me come ciò potrebbe aiutare. Puoi elaborare? Nel caso in cui la mia domanda non fosse chiara, sto solo chiedendo come passare da [Nessuna cella si è fusa verticalmente] (http://i.stack.imgur.com/qNLx2.png) a [celle unite verticalmente] (http://i.stack.imgur.com/CM3bm.png) ** senza ** cancellando e aggiungendo di nuovo nel raggruppamento originale su Paese. (o se semplicemente non è possibile - almeno senza modificare manualmente l'RDL) –

risposta

4

Metodo 0:
Se c'è una tabella esistente (o l'utilizzo di procedura guidata), c'è non è migliore modo per farlo rispetto a quello che hai spiegato. Cancellando e leggendo il gruppo.

Metodo 1:
è possibile progettare il tablix da graffiare in Progettazione report. Aggiungi la Tablix, imposta il set di dati e aggiungi il gruppo.

Metodo 2:
L'altro modo di fare è modificare il codice XML (RDL).

Pulizia per la progettazione: rimuovere la seconda riga e aggiungere l'elemento dati Paese alla riga di dettaglio, in modo che il disegno assomigli a questo senza fusione verticale e linee tratteggiate.

enter image description here

Per aggiungere intestazioni di gruppo nel modo desiderato tramite il codice XML è necessario spostare il TablixCellTablixRow-TablixRowHierarchy:

  • Tagliare il frammento TablixCell sotto TablixRow ->TablixCells containting. i dati del tuo paese e conservali in un bloc-notes/documento separato.

  • Eliminare il corrispondente TablixColumn sotto TablixColumns

  • Rinominare TablixCell nodo a TablixHeader

  • Aggiungere il frammento <Size>1in</Size> tra TablixHeader e CellContents

  • Incollare il frammento TablixHeader sotto TablixRowHierarchy -> TablixMembers -> TablixMember tra SortExpression e TablixMembers .

  • Rimuovere uno dei frammenti <TablixMember /> sotto TablixColumnHierarchy. Dovrebbe corrispondere al numero di colonne nel report tranne le colonne prima delle linee tratteggiate (o prima del gruppo puntato).

Elemento TablixHeader definisce l'intestazione del gruppo.

TablixCells elemento definisce l'elenco di celle in una fila di sezione del corpo di un Tablix

Here is the link to RDL specifications. Non ha la versione 2012 ma la versione 2008 sembra ancora buona.

Questo è lo schema schema di Tablix dalle specifiche RDL. Quando i tuoi dati si trovano in TablixHeader, le colonne saranno in unione verticale e con le linee tratteggiate all'esterno della riga Tablix. Quando si trova in TablixCells fa parte di TablixRow.

enter image description here

2

Non sembra essere un modo semplice per aggiungere la parte posteriore category columns.

Il modo più semplice che conosco è di aggiungere un gruppo genitore per lo stesso campo al gruppo di righe per il quale si desidera che la colonna venga ripristinata. Questo creerà una nuova colonna di categoria ed è possibile eliminare il vecchio raggruppamento. Basta solo eliminare il gruppo, non le celle relative & colonne.

Nel tuo caso aggiungere un gruppo principale nel campo Country al raggruppamento esistente Country. Ora dovresti avere la colonna della categoria per il back del Paese e puoi eliminare il raggruppamento originale Country.

+0

OK, grazie. Collegamento utile Sembrava che potessi mancare qualche opzione più ovvia. Rassicurare che non sia così allora! Non segnerò questo come risposta per un po 'ancora nel caso ci siano approcci alternativi. Uno svantaggio di questo approccio è che qualsiasi proprietà di gruppo personalizzata sul gruppo originale dovrà essere riapplicata sul gruppo appena creato. Sospetto che potrebbe essere inevitabile. –

+0

Si potrebbe provare a rimuovere il gruppo appena creato anziché quello precedente, ma senza rimuovere le colonne correlate. Questo lascerà la colonna della categoria ma il raggruppamento su di esso potrebbe non funzionare più come previsto. –

+0

L'ho provato e hai ragione non funziona come speravo. La colonna Paese mostra "Inghilterra" per i miei dati di esempio con tutte le città mostrate sotto quel gruppo. –

2

avrei attenersi alla seguente procedura:

  1. Sotto "Gruppi di righe" tasto destro del mouse la voce table1_Details_Group e scegliere Aggiungi gruppo/Capogruppo
  2. Per il Gruppo A, selezionare il paese. Fare clic su OK
  3. In "Gruppi di righe" fare clic con il pulsante destro del mouse sulla nuova voce Paese e selezionare Elimina gruppo
  4. Scegliere Elimina solo gruppo. Fare clic su OK
  5. Right Click la colonna Paese originale e scegliere Elimina colonne
  6. destro Fare clic sulla riga Gruppo Paese e scegliere Elimina righe

Ecco il risultato finale:

SSRS Row Groups

Problemi correlati