Funzionamento grafico report viewer c#

lunedì 03 marzo 2008 - 16.54

Anubis Profilo | Junior Member

Ciao a tutti,

Dovrei disegnare un grafico sulla mia pagina aspx, utilizzando un reportviewr e passando una query dinamica al DataSet...

Nel mio aspx.cs utilizzo questo codice:

string pippo = "select APPL, TIME_APPL from APPL_" + DropApplicativo.SelectedItem.Value.ToString().ToUpper();

OracleDataAdapter query = new OracleDataAdapter(pippo, ConnectionString); //imposto la query
DataSet queryDataSet = new DataSet(); //creo il DatSet
query.Fill(queryDataSet); //riempio il DataSet con il risultato della query
DataTable table = new DataTable();
LocalReport report = this.ReportViewer1.LocalReport;
report.ReportPath = "E:\\Progetti\\Mavilo\\MaviloWeb\\Report\\ReportGrafico.rdlc";
report.DataSources.Clear();
report.DataSources.Add(new ReportDataSource("DataSet1_APPL_3D", queryDataSet.Tables[0].Rows));
this.ReportViewer1.DataBind();

I campi che seleziono, APPL e TIME_APPL contengono questo tipo di valori: APPL(stringa), TIME_APPL(02-Jul-07 09:32).
Nell'aspx mi sono importato il reportviewer dalla toolbar, e nel grafico ho impostato come valori dell'asse x (=Sum(Fields!APPL.Value)) e come valori dell'asse y (=Fields!TIME_APPL.Value)

il codice non mi da nessun problema...i problemi li riscontro in fase di visualizzazione del grafico, dato che mi appare sempre un grafico vuoto, senza alcun andamento:


704x382 14Kb


non capisco dove sbaglio

...vi allego il progetto per maggiori chiarimenti...

ragazzi sono fermo da 1 settimana su sto grafico ...sento che ci siamo quasi...help me

freeteo Profilo | Guru

ciao,
partendo dal presupposto (che tu puoi verificare da debug) che i valori siano effettivamente passati al report, il problmea potrebbe essere del solo grafico.
Nella sezione in alto dove metti i valori (Data Fields) invece ci mettere il campo diretto, metti un conteggio dei record:

583x599 58Kb


per quando riguarda il campo sotto (Category) sei sicuro che i dati abbiano valori distinti? Io ho agganciato ad un campo data mio, e quello che vedi è il risultato...



ciao.

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

Anubis Profilo | Junior Member

Ciao,

grazie per il supporto....che agonia sto report!!!

Senti potresti allegare il progetto mio modificato da te che funziona?

Io ho solo bisogno di raggruppare un elenco di date tipo questo:

TIME_APPL
08-Feb-08 11:53
11-Feb-08 11:53
12-Feb-08 11:53
12-Feb-08 11:53
13-Feb-08 11:53
13-Feb-08 11:53

e visualizzarle sul grafico....... tipo la data del 12 Feb c'è 2 volte.....ecc...

Perchè a questo punto non so più cosa fare......ho provato a mettere il =count(Fields!TIME_APPL.Value) sull'asse y e =Fields!TIME_APPL.Value sulle x, ma non appare nulla....

Cmq ho provato a stampare dei valori del DB non nel grafico ma in una semplice tabella e non appare cmq nulla......


Debuggando quando arrivo a questo punto
report.DataSources.Add(new ReportDataSource("DataSet1_APPL_3D", queryDataSet.Tables[0].Rows));

il numero delle righe è corretto.....non vorrei ci fosse qualche problema sulal "sovrascrittura" del DataSource....cmq se mi alleghi il progetto vedo cosa hai modificato.....grazie!

freeteo Profilo | Guru

>Cmq ho provato a stampare dei valori del DB non nel grafico ma
>in una semplice tabella e non appare cmq nulla......
ah...mi sembra proprio allora che non gli vengono passati i valori correttamente



>il numero delle righe è corretto.....non vorrei ci fosse qualche
>problema sulal "sovrascrittura" del DataSource....cmq se mi alleghi
>il progetto vedo cosa hai modificato.....grazie!
esatto il problema probabilmente è proprio sul settaggio del datasource.
Cmq il progetto l'ho agganciato ad un mio db temporaneo, se vogliamo fare proprio la prova esatta allegami uno zip con questi file:
- un db access con i campi che hai sul report, e con alcuni valori che vuoi stampare
- il file report.rdlc

io ti restituisco un progetto che va e che fa quello che vuoi tu, poi lo integri nel tuo progetto dove peschi da oracle...aspetto questi file e poi ti do il codice corretto da usare.
Grazie.

ciao.

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

Anubis Profilo | Junior Member

Ciao,

ecco il file, contiene un db access con il campo time_appl (solo questo mi serve) e il file del grafico.

Cmq ho provato a fare un progetto da zero, collegandomi al DB via interfaccia (quindi non mettendo nessun codice nel file.cs) e funziona correttamente...però ovviamente si collega ad una tabella predefinita.

Il problema si presenta quando via codice gli sovrascrivo il DataSource con la mia query dinamica.....non mi tira fuori più nessun dato!

grazie per l'aiuto!

freeteo Profilo | Guru

ciao,
ti ho postato un esempio costruiti con quei dati.
Guardati bene come viene fatto il passaggio di dati al report, nel mio caso viene aggiunta una datatasource con il nome esattamente uguale a quella che trovo sul report (come ti ho gia detto in altri post precedenti).
Poi gli passo una DataTable per comodita', ma puoi passargli qualsiasi IEnumerable<T>...

** Attento pero' che passandogli un array di righe (la proprieta' Rows della dataTable ad esempio) non si visualizza niente, presumo non sia in grado di ricavarne le proprieta' essendo array..percio' passagli direttamente la DataTable e non le sue righe, si arrangia lui a visualizzare i dati in maniera corretta...

ciao.

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

Anubis Profilo | Junior Member




Grazie mille!!!
Ora funziona!!!!

freeteo Profilo | Guru

ok era il problema delle Rows che gli passavi rispetto ad una DataTable?
Presumo di si, ho notato che non riesce a trovare le proprieta', ci vuole una Collection<T> o un DataTable perche la classe DataRow si vede che non è esplorabile tramite reflection e quindi non ne riesce ad estrapolare i valori...

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