6

Ho un rapporto di SSRS che si riesce a esportare in Excel quando il conteggio delle righe è superiore al limite di 65536Come aggiungere un'interruzione di pagina SSRS dopo 65536 righe, contando di intestazione di gruppo/piè di pagina

Il rapporto già Excel 2003 ha un livello di raggruppamento con un piè di pagina di gruppo.

ho cercato di aggiungere un livello di raggruppamento in più con un'interruzione di pagina sull'espressione

=ceiling(rownumber(nothing)/65536) 

Tuttavia, questo conta le righe di dettaglio, ma non tiene conto del piè di pagina gruppo. Così il RowNumber restituisce 53000 mentre il numero effettivo di righe ha superato 65536.

La seguente espressione

=ceiling(RunningValue(Fields!myfirstgroup.Value, CountDistinct, Nothing) + rownumber(nothing)/65536) 

mi darà il conteggio effettivo fila compresi i piè di pagina di gruppo, ma SSRS non permetterà un gruppo su un'espressione di valore corrente.

Come posso forzare un'interruzione di pagina dopo 65536 righe per consentire un'esportazione in Excel? Speravo di ottenere questo risultato nella definizione del report ed evitare di aggiungere un numero di pagina calcolato nella query.

Qualsiasi aiuto molto apprezzato

* UPDATE - i dati di esempio *

ItemDescription , Location , Quantity 

Red lorry , M25 , 5 

Red lorry , M6 , 2 

Yellow lorry , M1 , 3 

Rapporto ha un raggruppamento su ItemDescription con un totale per tale voce, in modo che mostrerà

ItemDescription , Location , Quantity 

    Red lorry , M25 , 5 

    Red lorry , M6 , 2 

     Total for Red Lorry,7 

    Yellow lorry , M1 , 3 

     Total for Yellow Lorry,3 

Ciò significa dalle mie 3 righe di dati, ho 5 righe di rapporto che includono le righe di dettaglio e di piè di pagina. SSRS può dire quante righe di dettagli sono nel mio set di dati, ma ho bisogno di prendere in considerazione i footer per un'interruzione di pagina.

+0

Penso che si possa utilizzare variabile condivisa per contare il numero di righe e metterlo in piè di pagina gruppo. Aggiungi un'espressione per dare un'interruzione di pagina sulla variabile condivisa. –

+3

Puoi dirci qualcosa in più sul motivo per cui vuoi creare un rapporto con più di 65.000 righe che vengono esportate in Excel E contiene il raggruppamento con i piè di pagina del gruppo? Qualcuno sta andando a guardare i totali in questi footer? Potresti invece esportare le righe in CSV? – Nathan

+0

È un requisito del cliente avere questa quantità di dati, in Excel, con righe di raggruppamento, quindi questo è il mio obiettivo. Piuttosto che mettere in dubbio la saggezza di questa richiesta, o produrre una soluzione alternativa, sono più interessato a trovare una soluzione al problema tecnico. – JamieA

risposta

4

Salve, questo collegamento potrebbe essere di aiuto. Ho avuto un problema simile, qualche anno fa.

SSRS Page break on Tablix with Rownumber ,just one row group and no group expression given by default

=Floor((RowNumber(Nothing)-1)/2000) 

era la risposta suggerita

+0

Grazie. Ciò impedirà l'errore, ma è un po 'poco sofisticato e potrebbe portare a 2 o 3 volte il numero di fogli di lavoro Excel che sono effettivamente necessari. – JamieA

+0

Non l'elegante dopo che lo ero dopo, ma impedisce l'errore di esportazione di Excel, quindi +50. Per la cronaca, l'unico modo elegante che ho trovato è stato quello di calcolare la mia interruzione di pagina in SQL e aggiungere un raggruppamento di report su di esso. Sorpreso che SSRS non abbia un modo di trattare questo – JamieA

+0

mi dispiace @JamieA non ho potuto aiutarti in dettaglio. Per un semplice set di dati SSRS funziona sempre perfettamente, ma quando il rapporto diventa complesso, tutte queste piccole cose ci infastidiranno e ci impiegheremo del tempo per risolverlo (10 mesi con il progetto SSRS) :( –

2

creare un gruppo con la seguente espressione: = CInt (a soffitto (RowNumber (nulla)/65000))

Il 65000 si invia un piccolo spazio extra per le intestazioni o piè di pagina. Successivamente, esegui un'interruzione di pagina in questo gruppo "Tra ogni istanza di un gruppo" e "Inoltre alla fine di un gruppo" e supererai con successo il problema del limite del file di Excel.

Questo è quello che normalmente usiamo senza alcun problema. Non penso che nessuno se ne accorga se non si usano specificamente tutte le 65.536 righe.

+0

Grazie per la risposta, mi scuso ci è voluto tanto tempo per rivisitare! Tuttavia, la domanda afferma che avevo già provato a utilizzare un'espressione di raggruppamento simile con un'interruzione di pagina. 65000 non offre spazio sufficiente per intestazioni e piè di pagina poiché il mio primo livello di raggruppamento include un footer di gruppo e avrò a disposizione migliaia di questi footer che non vengono conteggiati nella funzione RowNumber() – JamieA