Reporting2005 datasource xml

martedì 25 marzo 2014 - 16.27

memmo77 Profilo | Expert

Salve a tutti avrei la necessità di disegnare un report partendo da una fonte dati xml. Il file xml in questione lo genero io attraverso una procedura:

<?xml version="1.0" encoding="utf-8"?> <BATCH> <AVVIO_BATCH>20142403104007</AVVIO_BATCH> <FUNZIONI_BATCH> <MATRICI> <DATA_INIZIO>24/03/2014 10:40:08</DATA_INIZIO> <FLUSSI>ABCD</FLUSSI> <FLUSSI>EFGH</FLUSSI> <DATA_FINE>24/03/2014 10:40:08</DATA_FINE> </MATRICI> <ENTE_1> <PROPEDEUTICA_ENTE_1> <DATA_INIZIO>24/03/2014 10:40:08</DATA_INIZIO> <ANNO>2013</ANNO> <MESE>4</MESE> <DATA_FINE>24/03/2014 10:40:08</DATA_FINE> </PROPEDEUTICA_ENTE_1> <ST_CDM_STO_ENTE_1> <DATA_INIZIO>24/03/2014 10:40:08</DATA_INIZIO> <ANNO>2013</ANNO> <MESE>4</MESE> <DATA_FINE>24/03/2014 10:40:08</DATA_FINE> </ST_CDM_STO_ENTE_1> </ENTE_1> <ENTE_2> <PROPEDEUTICA_ENTE_2> <DATA_INIZIO>24/03/2014 10:40:08</DATA_INIZIO> <ANNO>2013</ANNO> <MESE>6</MESE> <DATA_FINE>24/03/2014 10:40:08</DATA_FINE> </PROPEDEUTICA_ENTE_2> <ST_CDM_STO_ENTE_2> <DATA_INIZIO>24/03/2014 10:40:08</DATA_INIZIO> <ANNO>2013</ANNO> <MESE>6</MESE> <DATA_FINE>24/03/2014 10:40:08</DATA_FINE> </ST_CDM_STO_ENTE_2> </ENTE_2> </FUNZIONI_BATCH> </BATCH>

Quando lo do in pasto a reporting, questo è quello che ottengo:


903x467 124Kb


Come potete notare mancano alcuni nodi dell'xml e mi chiedevo a questo punto come dovrebbe essere formattato per funzionare correttamente.
Grazie

freeteo Profilo | Guru

Ciao memmo77,
reporting come quasi tutti i motori di reportistica, si basano su viste tabellari dei dati, e non gerarchiche come xml.
Tuttavia partendo da questo assunto, è possibile avere una vista gerarchica ugualmente lavorando con i raggruppamenti, motore potente dei reporting, che raggruppa appunto i dati e permette anche di interagirci tramite delle pseudo-treeview.

Per avere questa vista gerarchica però, devi partire comunque da una tabella, dove ogni riga è "completa" di tutti i dati, chiaramente alcuni duplicati tra la precedente e la successiva...in poche parole, come il risultato di una left-join che fai da sql management.
A questo punto agisci sui raggruppamenti come ti dicevo poco fa.

Dato che tu parti invece da una struttura XML, dargliela in pasto diretta, come hai visto non porta al risultato sperato, quello che ti consiglio di fare è trasformare il tutto in una tabella dove hai i dati in forma piatta, se vuoi appoggiandoti a sql, oppure come faccio io di solito, creando una classe "T" .net ad-hoc per questa situazione, e girando sull'xml aggiungere varie istanze ad una List<T> e passare quest'ultima come sorgente dati del report.
Quest'ultimo infatti non fa differenza tra dati provenienti da sql, o da collection<T>, l'importante sono le proprietà ed i tipi che siano rispettati tra quello che hai disegnato e quello che gli passi a runtime.

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