Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
Crystal Reports e reportistica
Parametro dinamico
venerdì 09 maggio 2008 - 09.49
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
kekerit
Profilo
| Newbie
31
messaggi | Data Invio:
ven 9 mag 2008 - 09:49
Salve,
avrei un problema con un parametro inserito in un sottoreport, spero che qualcuno possa aiutarmi :-(
Vi illustro la situazione:
il mio report deve visualizzare una elenco di accessori che l'utente può scegliere da una lista, perciò ho creato un parametro dinamico che tramite un "comando sql" mi visualizza tutti gli accessori che ho a disposizione nel DB e fin qui tutto lineare; il problema si pone quando richiamo il report dalla mia applicazione (in c#), infatti prima della finestra di selezione accessori, mi visualizza una finestra dove mi chiede il nome del server, il nome dell'utente e la password; come posso fare per evitarlo?
Grazie
Veronica
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
ven 9 mag 2008 - 12:08
ciao,
i dati ri vengono chiesti perchè il report non sa dove pescarli, oppure tu non glieli hai passati.
Guarda qui:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=21962
come vedi ci sono 2 metodi, o gli dici i parametri di connessione (LogonInfo) oppure glieli passi tu (report.SetDataSource(...)) quest'ultimo, sembra proprio il tuo caso, dato che sul db hai già fatto la query con il filtro dell'utente, e quindi ti basta passarglieli con il codice che trovi in quel post.
ciao.
Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
kekerit
Profilo
| Newbie
31
messaggi | Data Invio:
ven 9 mag 2008 - 14:30
Grazie per avermi risposto :-)
Nel codice imposto i parametri di connessione, proprio come mi hai indicato tu, ma non funziona lo stesso.
Avresti un'altra idea?
Grazie per il tuo aiuto
Veronica
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
ven 9 mag 2008 - 16:05
ciao,
potrebbe essere che hai fatto il report attaccandoti a sql? In tal caso potrebbe essere rimasta sporca la proprietà "location" della tabella, prova a settarla correttamente come mostrato qui:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=5303
dove zRpt è la variabile di tipo "ReportDocument".
Eventualmente prova a postarmi il codice, che verifico perchè anche a te deve funzionare...
ciao.
Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
kekerit
Profilo
| Newbie
31
messaggi | Data Invio:
ven 9 mag 2008 - 16:24
già fatto, uffà... ti posto il mio codice:
private CrystalDecisions.CrystalReports.Engine.ReportDocument setNewConnection(CrystalDecisions.CrystalReports.Engine.ReportDocument crReportDocument, string ServerName_, string DatabaseName_)
{
Database crDatabase, crDataBaseSub;
Tables crTables, crTablesSub;
Table crTable, crTableSub;
TableLogOnInfo crTableLogOnInfo, crTableLogOnInfoSub;
ConnectionInfo crConnectionInfo = new ConnectionInfo();
crConnectionInfo.ServerName = ServerName_;
crConnectionInfo.DatabaseName = DatabaseName_;
crConnectionInfo.UserID = "admin";
crConnectionInfo.Password = "";
for (int i = 0; i < crReportDocument.Subreports.Count; i++)
{
crDataBaseSub = crReportDocument.Subreports[i].Database;
crTablesSub = crDataBaseSub.Tables;
for (int j = 0; j < crTablesSub.Count; j++)
{
crTableSub = crTablesSub[j];
crTableLogOnInfoSub = crTableSub.LogOnInfo;
crTableLogOnInfoSub.ConnectionInfo = crConnectionInfo;
crTableSub.ApplyLogOnInfo(crTableLogOnInfoSub);
crTableSub.Location = crTableSub.Location.Substring(crTableSub.Location.LastIndexOf(".") + 1);
}
}
crDatabase = crReportDocument.Database;
crTables = crDatabase.Tables;
for (int i = 0; i < crTables.Count; i++)
{
crTable = crTables[i];
crTableLogOnInfo = crTable.LogOnInfo;
crTableLogOnInfo.ConnectionInfo = crConnectionInfo;
crTable.ApplyLogOnInfo(crTableLogOnInfo);
crTable.Location = crTable.Location.Substring(crTable.Location.LastIndexOf(".") + 1);
}
return crReportDocument;
}
GRAZIE
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
sab 10 mag 2008 - 09:10
il codice sembra giusto...ma la variabile "crReportDocument" come la carichi?
Cmq debuggando hai verificato che le logonInfo siano effettivamente state settate nell'oggetto ReportDocument?
ciao.
Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
kekerit
Profilo
| Newbie
31
messaggi | Data Invio:
lun 12 mag 2008 - 08:13
Buongiorno....
Questo è il codice di caricamento report:
this.crystalReportViewer1.ReportSource = this.setNewConnection(Report, ConnectionUtility.PathMDE, ConnectionUtility.PathMDE);
dove Report è
Report.Load(ConnectionUtility.PathApplicazione + "\\Report\\" + ConnectionUtility.NomeReport + ".rpt");
Grazie ancora per il tuo valido aiuto
Veronica
Torna su
Stanze Forum
Elenco Threads
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 !