2009-06-17 11 views
7

Sto creando un rapporto "master" in SSRS 2008 che collabora con altri rapporti su una persona. A volte non tutti gli altri report sono rilevanti e come tali non restituiscono nulla. Mi piacerebbe poter escludere questo dal rapporto principale in modo che non lasci una pagina vuota.Come sopprimere i sottoreport vuoti in SSRS 2008

Sono a conoscenza della funzione 'no-rows-message', ma un'intera pagina con semplicemente "Non applicabile per questa persona" non è certo la soluzione migliore!

In sostanza, sto cercando un modo per determinare se un sottoreport è "vuoto" e utilizzarlo in un'espressione di visibilità.

ogni aiuto è più apprezzate

risposta

13

OK, così ho questo capito ora. La risposta è posizionare il sottoreport in un rettangolo. Quindi impostare la visibilità del rettangolo a qualcosa di simile:

=IIF(First(Fields![SOMEFEILD].Value, "[SOMEDATASET]") IS NOTHING, TRUE, FALSE) 

Dove [SOMEDATASET] è un insieme di dati popolato nello stesso modo di quella popolare il sottoreport. Quindi se il sottoreport è vuoto, allora anche [SOMEDATASET] sarà vuoto, e più al punto, il campo [SOMEFEILD] sarà uguale a NOTHING.

Bada-Bing! Una relazione che non è ingombra di pagine vuote che sprecano carta.

Nota: esiste un solo effetto collaterale negativo in questo approccio, in quanto, il server SQL invierà le stesse informazioni due volte, una volta per popolare il set di dati del sottoreport e nuovamente per compilare il dataset duplicato nel report. Per me, questo è accettabile, altri potrebbero voler essere consapevoli di questo.

+0

Buon lavoro. (buffer per soddisfare il limite di 15 caratteri) – jgallant

+3

Dopo aver riflettuto sul problema durante la mia pausa pranzo, ho deciso che restituire esattamente gli stessi dati due volte è * mai * una buona idea. Scriverò una stored procedure che restituisce solo il conteggio delle righe delle stored procedure utilizzate per popolare i sottoreport. Quindi verificare se questi conteggi sono 0 o meno e impostare di conseguenza la visibilità dei sottoreport appropriati. – Brian

+2

grazie per l'idea, avevo bisogno di oscurare una cella nel report Tablix se il sottoreport non restituisce nulla. Quindi ho appena inserito un sottoreport in un rettangolo e impostato il colore di sfondo del rettangolo in grigio. Non ho nemmeno bisogno di usare espressioni dato che SSRS di default non restituisce nulla se un sottoreport non restituisce nulla. L'unico problema che ho avuto quando ho stampato il mio rapporto non mostrava la cella grigia stampata o PDF (ma lo mostravo sullo schermo), quindi ho impostato il testo No rows per un sottoreport su = CHR (32) e ha fatto il trucco . Grazie per l'idea! – mishkin

Problemi correlati