Help report

venerdì 24 novembre 2006 - 19.20

clan Profilo | Junior Member

salve
sto provando a creare un report con crystal report ed usando questo codice

Dim ds As DataSet = New DataSet
adapter.Fill(ds, "nuovatabella")
rep1.SetDataSource(ds) 'qui mi da l'errore
Me.CrystalReportViewer1.ReportSource = rep1
l'errore è
il report non ha tabelle ?????
qualcuno sa dare una soluzione
qualcuno sa come funziona il report .rdlc
grazie

freeteo Profilo | Guru

ciao,
ti do questo thread dove abbiamo gia' trattato l'argomento, prova a darci un'occhiata:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=9659
e in piu' ti ho messo un esempio in allegato, parti da questi e se hai ancora problemi ci risentiamo.
ciao.

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

clan Profilo | Junior Member

ciao
avevo gia letto il post ed ho visto il tuo esempio, non solo non sono riusciuto a tradurlo in vb ma sono ancora di più confuso.
scusa la mia ignoranza ma è davvero cosi complicato creare un report in vb 2005?
in vb6 si usava
mioreport.datasource=adodb
era solo una riga
inoltre non ho afferato cosa è ed a cosa dovrebbe servire "List<ReportParameter>"
BO!!!!!!!!!
ciao

freeteo Profilo | Guru

ciao,
il mio post era in risposta alla domanda: "qualcuno sa come funziona il report .rdlc?" che hai fatto.
Si tratta di Sql Reporting Services, e per capire come funziona quel tipo ti ho risposto prima.

Per la domanda tua invece sul report Crystal, il fatto che ti da errore è forse 1po troppo "generico", meglio se posti il messaggio di errore.
Cmq sia, il modo per passare la sorgente dati al report di Crystal è questo:

Dim miods As Dataset = New Dataset ...riempi il dataset con i dati... Dim mioreport As ReportDocument = New ReportDocument mioreport.load("c:\..\crystalreport1.rpt") mioreport.SetDataSource(miods) CrystalReportViewer1.ReportSource = mioreport ...

è praticamente lo stesso di vb6, solo che adattato a .net, quindi dovresti trovarti a tuo agio.
ciao.

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

clan Profilo | Junior Member

ciao
il codice che hai postato è uguale a quello che ho postato io all'inizio
il problema nasce quando arriva ad eseguire la riga
mioreport.setdatasource(miods)
l'errore è
"il report non ha tabelle"
come avevo gia detto prima.
Dunque siamo ad un punto morto.
Che fare?

freeteo Profilo | Guru

no, il codice non è uguale al tuo, guarda bene, manca il caricamento del report.
Dopo aver caricato il report, gli setti il valore con il metodo SetDatasource.

Se usi il mio metodo devi specificare il path del file fisico, in questo modo "sleghi" il report dall'applicazione e nel caso sovessi fare delle personalizzazioni è la strada migliore per evitare di dove compilare ogni volta che aggiorni.

ps: se vuoi puoi dare un'occhiata a questa tip:
http://www.dotnethell.it/tips/Crystal-Reports-BLOB.aspx infondo alla pagina c'e' il download.

Questo esempio anche se nato per altri scopi, ti fa vedere il codice per passare dati al report.
Ma mi viene un dubbio, tu hai creato il report a design e fatto la connessione etc...insomma hai fatto un report funzionante prima di passare al codice .net? Perche' il messaggio di è chiaro, come prima cosa verificherei di avere effettivamente un report funzionante dentro a visual studio...
ciao.

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

clan Profilo | Junior Member

ciao
che intendi per report funzionante?
Ad ogni modo ti allego il progettino cosi vedi anche tu dove si verifica l'errore.
ciao

freeteo Profilo | Guru

ciao,
ho visto il tuo progetto, e come sospettavo non hai creato il report funzionante dentro a visual studio.
Quando aggiungi il report, nella finestra "struttura documento" hai una serie di voci, dove la piu' importante è "database fields".
Su quella li devi andare a crearti la connessione al database e mettere giu i campi che ti interessano e non "campi testo" come hai fatto tu, ed ecco il motivo del messaggio "non ha tabelle", appunto non hai creato nessuna connessione dati nel report.

Creata la connessione dati, vai a mettere giu i campi che ti interessano (presi da quel nodo,quindi capi del database e non campi testo) premento "anteprima" viene visualizzato il reporto corretto.
Ecco cosa intendo per "report funzionante".

Fatto questo da codice passi i dati come dicevamo prima, ma se non gli crei una struttura prima di questo il report non ha nessuna tabella e quindi non andra' mai...
Prova a scaricarti questo esempio: http://www.dotnethell.it/files/Crystal_Blob.zip
Appena apri il report vedi gia' in anteprima ci sono dei campi etc...probabilmente da te non funziona l'anteprima perche' i path sono sbagliati (ed ecco che serve il codice che glieli passa!) ma come vedi la struttura è gia' definita a design.ù

Prossimamente dovremmo aprire anche la sezione video percui con qualche screencast capirai meglio...ma dovrai pazientare ancora 1po
ciao.

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

clan Profilo | Junior Member

scusa
un ultima curiosita.
come faccio a creare i campi del database durante la creazione del report se li vedo solo quando gli passo la query a runtime?
grazie

freeteo Profilo | Guru

tu crea il report e aggancia una sorgente dati finche crei il report, nella wizard di collegamento al database scegli il "comando" e li dentro scrivi la stessa query che gli passerai da codice.
Ovviamente quando lo darai al cliente il database avra' un percorso diverso, o cmq vorrai dare un set di righe diverso da quello con cui hai creato il report, quindi ti basta usare il SetDataSource.

Percio', in fase di design il report verra' costruito su una base dati che ti serve al solo sviluppo, ma che DEVE ESSERE UGUALE al datatable che gli passerai da codice.
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