Problema con visualizzazione di sottoreport

mercoledì 22 novembre 2006 - 22.50

zorro77 Profilo | Newbie

Salve a tutti
ho questo problema, ho una tabella con dei nominativi, ogni nominativo ha in altra tabella, informazione riguardo delle date di eventi, e per ogni data, in altra tabela, infarmazione riguardo diverse tipologie di eventi.
Fino alla realizzazione della visualizzazione dei nominativi e delle relative date non ho problemi...i problemi nascono quando per ogni singola data di un nominativo, lì dove ne ho diverese, devo visualizzare la descrizione delle diverse tipologie di eventi.
Il porblema si rivela essere un sottoreport all'inetrno di un sottoreport. Ho già letto che ciò non è possibile...ma anche se lo risolvo con le join left, cmq ho problemi nella visualizzazione.
Non è che qualcuno mi potrebbe aiutare a risolvere ciò, sia con delle delucidazione, o con un eventuale esempio?

Ringrazio infinitamente tutti per le risposte

sosan Profilo | Newbie

Hai provato ad utilizzare "campi di parametro" ad esempio {tabella.campo} ={?nomeparametro} ?

se la query è semplice, vedi se riesci a risolvere con i campi parametro, se la tua query è più complessa allora ti conviene creare il dataset, e poi associarlo al report o sottoreport.



zorro77 Profilo | Newbie

Grazie mille per l'info
leggendo un pò, ho visto che c'è anche Report Manager, che supporta l'inserimento di subreport all'interno di altri subreport. Riesco a fare la connessine al db da tale programma...ma non riesco arecuperare i dati...non è che sapresti aiutarmi a riguardo?grazie in anticipo

freeteo Profilo | Guru

ciao,
non ho capito che tecnlogia vuoi usare, se Sql reporting (quindi Report Builder) o Crystal Report, cmq se sei partico con Crystal, ti propongo una soluzione agile.
Effettivamente non puoi fare sottoreport di sottoreport, ma puoi lavorare con una query di "left join" tra le due tabelle e usare i raggruppamenti.
Ovvero, la query del sottoreport non deve essere la singola tabella, ma sara' gia' l'insieme legato (join appunto) delle tabelle che vuoi, dopodiche pero' ti troverai dei campi ripetuti (ovviamente quelli della prima tabella "padre" diciamo) e ti bastera raggruppare per quei campi e farai una struttura gerarchica in 4 e 4'8.
Qualcosa del tipo:
SELECT utenti.nome, eventi.data , eventi.descrizione FROM utenti LEFT JOIN eventi ON utenti.nome = eventi.utente
dopodiche nel report (o sottoreport è uguale) raggrupperai per campo utente, e nell'intestazione del gruppo puoi mettere il nome utente, mentre nei dettagli metterai i relativi dati degli eventi.
Ovviamente puoi estendere i campi quanto vuoi, caricarne da una o dall'altra tabella, l'importante è che stabilisci una relazione ed il gioco e' fatto.

Questo vale per tutti i tool di reportistica inquanto è 1 discorso di query.Cosi' facendo hai maggiori prestazioni e non devi diventare matto con la nidificazione
ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

zorro77 Profilo | Newbie

Chiarissimo riguardo l'uso di Crystal reports. Le join left già le facevo....il problema era poi la visualizzazione, ma da quanto hai spiegato (e io capito), con il raggruppamento dovrei risolvere il prob della visualizzazione.

Grazie ancora per la diposnibilità



Ho fatto delle prove ma non riesco proprio...
Cerco di spiegare al meglio la topologia del mio DB e cosa faccio in CR

Tabella INDIVIDUO
id_ind key
nome
cognome

Tabella DATE_ACQUISIZIONI
id_date key
id_ind_r key esterna con INDIVIDUO.id_ind
data_acquisizione


Tabella REPORT
id_ind
id_date
tipo_acq
file_mancante

Allora, per ogni INDIVIDUO, posso avere più ACQUISIZIONI, per ogni ACQUISIZIONE ho diverse tipologie di acquisizione con determinati file, e la tabella REPORT, è una tabella popolata dalla mia applicazione, che in base a delle regole, inserisco i file mancanti(in quanto so già, in base al tipo di acquisizione, quali file devo trovare).

ora io vorrei una struttura del genere in CR


ID_IND NOME COGNOME
--------DATA_ACQUISIOZIONE1
------------------ TIPO_ACQ1---------------------------- TIPO_ACQ2
------------------------file_mancante1-------------------------file_mancante1
------------------------file_mancante2-------------------------file_mancante2
--------DATA_ACQUISIOZIONE2
-------------------TIPO_ACQ1---------------------------- TIPO_ACQ2
------------------------file_mancante1--------------------------file_mancante1
---------------------------------------------------------------------file_mancante2

questa struttura per tutti i soggetti


In CR opero in questo modo:
1)come primo report, inserisco tutta la tabella INDIVIDUO, e faccio visualizzare ID_IND, NOME e COGNOME
2)come sottoreport creo il seguente comando per le DATA AQUISIZIONE:
SELECT ID_IND, DATA_ACQUISIZIONE
FROM INDIVIDUO
LEFT JOIN ACQUISIZIONE ON ID_IND=ID_IND_R
in questo modo mi viene creata già prima parte della struttura desiderata, ovvero

ID_IND NOME COGNOME
------DATA_ACQUISIOZIONE1

------DATA_ACQUISIOZIONE2

ora per quanto ho potuto inserire altre JOIN, modificare i gruppi, non riesco proprio nel mio intento :-(

SPero di aver spiegato al meglio il problema e la struttura del mio DB.

Grazie ancora in anticipo per l'aiuto

freeteo Profilo | Guru

ciao,
effettivamente guardando il fatto che hai 4 tabelle di cui 3 sono in relazioni "annidate", o fai 3 left join per avere un'unico resultset con un bel tot di campi duplicati, oppure le spezzi in 2 facendo 1 sottoreport e legando 2 tabelle dentro e fuori del sottoreport.
Percio' avrai 2 tabelle in lefjoin per report principale e 2 in leftjoin per il sottoreport, adesso il sottoreport lo metti nei dettagli e lo linki passando i valori in comune...
ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

zorro77 Profilo | Newbie

Grazie mille per l'aiuto...diciamo che non sono proprio riuscito a fera quello che volevo...ma un qualcosa abbastanza comprensibile e accettabe ;-)

Grazie ancora per la disponibilità dimostrata

freeteo Profilo | Guru

di niente, siamo qui per questo!
Cmq se hai fatto, accetta una risposta cosi' marchiamo il thread come risolto,Grazie
ciao.

Matteo Raumer
[MCAD .net]
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5