Report, dataset e file .xsd

lunedì 17 settembre 2007 - 14.21

Cybershark78 Profilo | Newbie

Ciao a tutti.
Mi scuso se l'argomento è già stato trattato, ma leggendo i diversi post e applicando le divesre soluzioni consigliate, non riesco a venire a capo del mio problema:

Ho un report che viene popolato da Dataset.

da codice imposto CrystalReportViewer1
-----
ReportDocument crReportDocument = new ReportDocument();
crReportDocument.Load(Server.MapPath("RPT/Ordini.rpt"));
crReportDocument.SetDataSource(MioDataSet);
CrystalReportViewer1.ReportSource = crReportDocument;
-----

Su VisualStudio ho creato il DataSet sotto app_code, seguendo lo wizard, ho impostato come connectionstring quella corretta presa da web.config e ho selezionato la stored procedure di mio interesse.

Sulfile .rpt, tramite database expert, ho selezionato in ADO.NET datasets il dataset di cui sopra con la relativa tabella. (e ovviamente mi sono disegnato il report)

Lanciando il tutto mi compare comunque la classica schermata di login db (nome db - username - pwd... )

lo stesso risultato lo ottengo se, prima dell'operazione " CrystalReportViewer1.ReportSource = crReportDocument;" , effettuo il ciclo di update connessioni

----
crConnectionInfo.ServerName = ServerName;
crConnectionInfo.UserID = UserID;
crConnectionInfo.Password = Password;
crConnectionInfo.DatabaseName = DatabaseNameReport;


CrTables = crReportDocument.Database.Tables;

foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables)
{
crtableLogoninfo = CrTable.LogOnInfo;
crtableLogoninfo.ConnectionInfo = crConnectionInfo;
CrTable.ApplyLogOnInfo(crtableLogoninfo);
}


-----

ho debuggato il tutto e i dati inseriti sono corretti.... xè mi richiede ancora l'autenticazione????

dimenticavo... nella form di richiesta autenticazione, nel primo caso "server name" viene prevalorizzato con il nome del DataSet.. nel secondo con il nome del Server.... e se compilo correttamente i campi, non ottengo alcun risultato (me li richiede)

HELP!!!!!!

---------------------
CyB!

AndreaKpr Profilo | Senior Member


Non ho mai provato a passare a run-time il source a crystal.
Di solito mi valorizzo una tabella apposita e leggo da li...

freeteo Profilo | Guru

ciao,
sei in asp.net?
se sei in ambiente web ti serve invocare il metodo "DataBind" perche' ci sia effettivamente l'aggancio dei dati da parte del viewer...

Il codice che posti mi sembra corretto.
ciao.

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

Cybershark78 Profilo | Newbie

Ciao

sì sono in .net, visual studio 2005, c#, e utilizzo il CR "incluso" in Vs2005.

Ho provato ad accodare a tutto l'istruzione "CrystalReportViewer1.DataBind();" , ma non è cambiato nulla, sempre il solito "errore" di connessione......
---------------------
CyB!

freeteo Profilo | Guru

ciao,
settando le proprieta' di connessione corrette (LogonInfo) deve funzionare...
Prova a controllare la proprieta' "Location" come suggerivo qui:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=5303

forse è rimasta settata e quindi ti chiede la login anche se imposti il resto delle LogonInfo correttamente...
ciao.

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

Cybershark78 Profilo | Newbie

Ciao

Ho inserito il pezzo di codice che mi hai passato all'interno del ciclo di modifica connessioni che ho già implementato... controllando meglio l'errore, e eliminando dal viewer la richiesta delle credenziali (EnableDatabaseLogonPrompt="False" ), mi da questo errore:

Details: crdb_adoplus : Riferimento a un oggetto non impostato su un'istanza di oggetto.Error in File C:\DOCUME~1\CARRAR~1.8GR\IMPOST~1\Temp\Ordini {FAAAF8B1-3F21-49D6-ABDE-86AA33612072}.rpt:
Unable to connect: incorrect log on parameters.

inutile dire che i parametri di login al db sono corretti (come vedrai li leggo da web.config, e sono gli stessi che mi permettono quantomeno il funzionamento in locale del primo metodo che avevo provato (http://www.dotnethell.it/forum/messages.aspx?ThreadID=17963)).... ti riporto il codice che ho scritto per intero:


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

Spero davvero tu possa trovare la "gabola" ....
---------------------
CyB!

freeteo Profilo | Guru

> crReportDocument.SetDataSource(dsOrdine);
questa riga non la capisco, i metodi di passaggio dati al report sono 2, o gli passi i dati tu (metodo "SetDataSource" dove gli dici tu che dati visualizzare) oppure gli imposti le "logoinfo" (e quindi il report va a farsi la connessione e si estrae i dati) , ma non entrambe!
Perche' se sopra gli imposti i parametri di accesso al database alle varie tabelle e poi sotto gli passi un set di dati tu?

Cmq sia, tieni presente che se hai sottoreport i parametri (o LogonInfo / SetDataSource) devi passarli anche ai vari sottoreport (che di fatto sono reportdocument anche quelli, solo che non hanno Header e Footer...)
ciao.

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

Cybershark78 Profilo | Newbie

Hai ragione,
inizialmente infatti avevo fatto come dici tu, passavo il Dataset senza modificare le connessioni....
Visto che mi dava il problema di connessione, ho provato ad aggiungerci il codice di cambio connessioni, ma senza ottenere risultati.
per questoil codice che ti ho postato è "sporco".

Il mio rpt avree dei sotoreport, ma li ho momentaneamente "eliminati" per risolvere questo problema (1 cosa per volta ;-) ), nel codice mi sono rimaste olo alcune dichiarazioni, ma non vengono mai usate, e soprattutto nel file .rpt che vado a leggere ho eliminato tuti i sottoreport.

:-(

mi viene un dubbio.... non è che il problema puo' risiedere nel file xsd??????


---------------------
CyB!

freeteo Profilo | Guru

ciao,
si potrebbe essere ma cmq se imposti le logoninfo non puo' avere problemi...

puoi allegarmi un tuo progetto di esempio che ha lo stesso problema? cosi' magari controllo 1po di 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