Passare la stringa di connessione al report - Crystal Report XI

venerdì 24 ottobre 2008 - 10.22

DomA Profilo | Expert

Salve a tutti,
nella mia applicazione ho dei report esterni creati con c.r. XI R2. I report sono nella cartella di startup e tutto funziona bene. Solo che se cambio posizione alla cartella dell mia applicazione (passandola ad esempio da C: a D:) quando vado ad aprire il report mi si apre una finestra in cui chiede una password e ciò è dovuto al fatto che la stringa di connessione del report alla fonte dati non è più valida.
Io vorrei passare / impostare una stringa di connessione del tipo application.startupupath.
Come si fa?
Grazie
Domenico

freeteo Profilo | Guru

ciao,
guarda questo thread: http://www.dotnethell.it/forum/messages.aspx?ThreadID=21962

ci sono 2 metodi, o gli passi tu i dati se ti viene più comodo (ad esempio li usi per altre cose nella tua form) altrimenti puoi lavorare con le logonInfo.
Cmq trovi tutto nel thread, il codice è da adattare alla tua situazione, ma il concetto è quello.
ciao.

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

DomA Profilo | Expert

Grazie per la risposta.
In realtà avevo già postato il problema perchè il report mi appariva vuoto.
Allora su tuo suggerimento ho consultato quel thread ed ho adottato il secondo metodo. Il report da allora non mi appare più vuoto però non mi sono accorto della richiesta della password finchè non ho testato l'applicazione su un altro computer. Quindi il secondo metodo a me non funziona, ma credo di sbagliare, per cui ti chiedo la cortesia, se hai il tempo e la voglia, di voler analizzare il codice:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Ps. Ho provato a settare la connessione in Imposta connessione del report in "Uguale al report" (essendo db e report nella stessa cartella) però nulla da fare.

Grazie in anticipo per ogni eventuale suggerimento.
Ciao


Domenico

freeteo Profilo | Guru

Ciao,
il codice che hai scritto mi sembra corretto, infatti impostando alle varie tabelle i dati che vuoi visualizzare, il report prende quelli ed ignora i parametri di connessione che avevi impostato in fase di disegno del report stesso.

Mi viene un dubbio però,hai percaso dei sottoreport? Il messaggio di richiesta connessione potrebbe essere per i dati di quello...
ciao.

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

DomA Profilo | Expert

Ciao Matteo,
esatto nel report faccio uso di altri 2 sottoreport.
Sai dirmi come risolvere il problema.
Suppongo che le tabelle dei sottoreport non debbano essere passate al report. Se è giusto come risolvo?
Grazie per l'interessamento
Domenico

freeteo Profilo | Guru

Ciao,
si se passi i dati, devi passarli anche ai sottoreport, con un codice tipo:
... report.OpenSubreport("sottoreport").SetDataSource(...); ...
come vedi il metodo SetDataSource c'è perchè il SubReport è sempre un oggetto di tipo ReportDocument come il report principale, quindi il codice è analogo a quello di prima...

ciao.

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

DomA Profilo | Expert

Benissimo, sembra tutto ok.
Grazie
Domenico
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5