Problema nell'imporre una condizione di stampa in un report con sottor...

lunedì 04 aprile 2011 - 19.36

bryan Profilo | Newbie

Salve ho un problema nell'imporre una condizione di stampa di un sottoreport.
Sostanzialmente ho un report principale che mi tira fuori un certo numero di persone che corrispondono a dei filtri di ricerca. Poi ho dei sottoreport che sono collegati al report principale e tirano fuori alcuni dati relativi alle persone prese dal report principale. Vi faccio un esempio:

Supponiamo il report principale tiri fuori queste persone: Ciccio formaggio e Ciccio cappuccio
il primo sottoreport estrarrà alcune informazioni relative a dati anagrafici delle persone estratte.
il secondo sottoreport estrarrà alcune infomazioni relative alla residenza delle persone estratte.
L'output che ottengo (lo voglio in questo modo) è di questo tipo:

Ciccio Formaggio

nato a Como (dati del sottoreport1)
data xxxxx (dati del sottoreport1)
luogo zzz (dati del sottoreport1)


residente a gggg (dati del sottoreport2)

dal jjjjj (dati del sottoreport2)

....

Ciccio Cappuccio
nato a Bologna (dati del sottoreport1)
data yyy (dati del sottoreport1)
luogo hhhh (dati del sottoreport1)
...
residente a kkk (dati del sottoreport2)
dal mmmm (dati del sottoreport2)


Il mio problema allora è il seguente. Siccome uno più dei miei sottoreport (sono più di 2)possono essere vuoti, vorrei evitare che si creassero degli spazi bianchi tra un sottoreport e l'altro (come al momento mi succede).
Supponendo cioè che di Ciccio formaggio non si abbia alcuna informazione riguardo i suoi dati anagrafici (quindi il subreport1 sia vuoto) ciò che visualizzo è:

Ciccio Formaggio

(Spazi bianchi pari alla dimensione del sottoreport1)
residente a gggg (dati del sottoreport2)
dal jjjjj(dati del sottoreport2)


Praticamente sono riuscito a fare in modo (dall'esperto sezione dei sottoreport) che se il numero di record estratti dal sottoreport è 0 non debba stampare nulla. MA non riesco a trovare la condizione che dal report principale mi eviti la creazione degli spazi bianchi quando il sottoreport è vuoto. Sto provando l'uso delle variabili Shared cioè a creare una formula nel sottoreport che richiami una variabile definita in una formula del report principale.

Nel report principale ho creato cioè una formula con scritto : Shared NumberVar x;

nel sottoreport una formula con :
Shared NumberVar x;
if {#variabileconteggio}=0 then x:=0 else x:=1

infine nell'esperto sezione del report principale in corrispondenza del sottoreport Shared NumberVar x; (if x=0) then true else false

Ma il problema che si verifica è che funziona considerando solo l'ultimo valore che assume x. Cioè tornando all'esempio, se per Ciccio Cappuccio ci sono i dati anagrafici ( a differenza di ciccio formaggio che è stato stampato prima) l'ultimo valore assunto da x è 1 ragione per cui mi trovo stampato il sottoreport1 per tutte e due le persone (gli spazi per Ciccio formaggio e i dati per ciccio cappuccio) .
Sostanzialmente credo sia un problema di tempo di valutazione della formula ma non riesco a trovare una soluzione. Spero di essere stato chiaro e vi ringrazio in anticipo!

freeteo Profilo | Guru

>Sostanzialmente credo sia un problema di tempo di valutazione
>della formula ma non riesco a trovare una soluzione.
Sì, dovrebbe essere proprio quello il problema.
Io ricordo che al tempo avevo fatto un compromesso per queste situazioni "fastidiose", ossia avevo stretto in altezza la sezione contente il sottoreport il più possibile, tanto viene ampliata dai dati stessi, quindi riducevo lo spazio già in desiger.
Se poi il sottoreport contiene dei dati e si espande si allunga da sola...



>Spero di essere stato chiaro e vi ringrazio in anticipo!
sì certo, i nomi soprattutto sono stati molto carini, immagino che siano nomi reali


Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5