CR integrato in Visual Studio 2008 e collegamento dinamico al db

giovedì 14 maggio 2009 - 10.58

Veronica80 Profilo | Newbie

Ciao a tutti! E' il mio primo post qui!
Spero possiate darmi una mano!

Allora la questione è questa...io ho creato un report col tool Crystal integrato in Visual Studio 2008, il mio problema è che la connessione al db la faccio col wizard il quale memorizza il percorso del db in modo assoluto.
A causa di ciò se sposto l'applicazione su un altro pc il report non riesce ovviamente a connettersi al db (Che un DB ACCESS).

Come posso fare connettermi via codice in modo da usare il percorso relativo?
(tenendo conto che nel report nn posso inserire codive VB credo)

Spero di non essermi incartata e di esser stata chiara!

Grazie a tutti!!!!

dvd75 Profilo | Newbie

io avevo un problemino simile, basta che passi al report come fonte dati un oggetto del tuo dataset, non sò se è una soluzione corretta, ma ora a me funziona, inoltre ad ogni aggiornamento che faccio dall'applicazione corrisponde sicuramente un aggiormnamento sul report.
però ovviamente attendi commenti di utenti più competenti :)

freeteo Profilo | Guru

Ciao,
se il report lo usi dentro ad una tua applicaizone, allora puoi usare questo codice per settare i parametri di connessione (metodo1) oppure passare tu direttamente i dati da visuzalizzare (metodo2):
http://www.dotnethell.it/forum/messages.aspx?ThreadID=21962

se vuoi un esempio scaricabile, lo trovi in questo articolo:
http://www.dotnethell.it/articles/Crystal-Reports-Integration-Windows-Form.aspx

Ciao.

Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo

Veronica80 Profilo | Newbie

grazie per le risposte!
Allora il mio dubbio è questo....il codice dove lo metto?

Io ho creato il report col tool di visual studio, poi ho creato una form in cui ho messo il CrystalViewer in cui carico il report (sempre tramite il wizard).

Dacchè nn si può inserire codice nel report mi vien da pensare che lo devo mettere nella form col viewer giusto?
Quando usavo VB6 era + facile perchè avevo CR a parte e caricavo il report da fuori appunto passandogli le stringhe crystal di connessione.

Purtroppo però non ho la licenza per usare CR su questo pc e mi tocca usare quello integrato nel Visual Studio (che poi è quasi identico).

Ora faccio un po di test e prove e vi dico se mi incarto ancora!

freeteo Profilo | Guru

>grazie per le risposte!
di nulla figurati,siamo qui per questo.


>Allora il mio dubbio è questo....il codice dove lo metto?
come ti avevo segnalato prima, in questo esempio vedi come viene caricato/visualizzato all'ìnterno di una WindowsForm
http://www.dotnethell.it/articles/Crystal-Reports-Integration-Windows-Form.aspx
Se sei su web, cambia solo il fatto che il codice di caricamento del report lo devi fare nel page_load della tua pagina e il path del file .rpt lo recuperi con "Server.MapPath(...)" perchè lo vuole fisico e non "virtuale"

Ciao.

Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo

Veronica80 Profilo | Newbie

niente ragazzi....nn riesco a capire come fare....anche perchè ovviamente quel codice nn è che funziona sulla mia applicazione va sicuramente adattato...

Jeremy Profilo | Guru

Ciao Veronica.
Premetto che non ho guardato l'articolo proposto da Matteo ... quindi magari parliamo di due cose diverse.
Nell'evento Load del Form contenente il ReportViewer, puoi usare il metodo SetDataSource dell'istanza del Report per impostare un Dataset creato e popolato a runtime con la stessa struttura di quello creato a DesignTime.

Facci sapere...
Ciao

Veronica80 Profilo | Newbie

Mmmm io per connettermi al db (nel programma intendo) uso una connessione ADO via codice. quindi non ho dataset nel progetto (se ho capito bene cos'è un dataset!).
Con vb6 ci riuscivo benissimo ma col vb.net mi sto incartando...

Jeremy Profilo | Guru

Ciao Veronica.
Facciamo un pò di chiarezza.
Per costruire un Report con CrystalReport che visualizza i campi di un database, devi per forza avere un Dataset.
Un Dataset è un contenitore dati disconnesso che rappresenta i dati che persistono nel Db.
Nel tuo progetto avrai un file con estensione .xsd .... quello è il Dataset.
Quel Dataset conterrà delle DataTable che rispechhiano la struttura delle tabelle che hai nel DB o quanto meno che rispecchia una vista.
Tu potresti, a RunTime, creare una nuova istanza di questo DataSet(o quanto meno della DataTable contenenti i campi da popolare per il report) e impostarla come fonte dati del Report attraverso il metodo SetDataSource.
Questo è possibile farlo in quanto ciò che passi al report come origine dati ha la stessa struttura di quella usata in fase di Design.

Rimango a disposizione per ulteriori info....ma forse conviene che cominciamo ad entrare un pò più nello specifico del tuo scenario.
Facci sapere...
Ciao.

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