Esportare in pdf un Crytal report senza il viewer

giovedì 02 dicembre 2010 - 12.44
Tag Elenco Tags  C#  |  .NET 3.5  |  Visual Studio 2008  |  Crystal Reports 10.0

tikotikotako Profilo | Newbie

Ciao,
sto usando Visual Studio 2008 e scrivendo in C#.

devo fare un'applicazione da console che senza usare il report viewer e senza interazione dell'utente

1)apra un report
uso i comandi:
ReportDocument rpt = new ReportDocument();
rpt.Load(strPath);
ok?

2) setti un database.mdb come sorgente dei dati,
ho trovato il seguente comando:
rpt.SetDatabaseLogon("", "", "localhost", "C:\\Sample.mdb");
su questo non sono sicuro dei parametri del metodo SetDatabaseLogOn da passare. è corretto mettere "localhost"?

2b) devo passare i parametri al report?
Dei parametri interni del report non so nulla, sto operando black box.
PEr questo c'è il metodo SetParameterValue, ma devo farlo in modo automatico... come posso farlo?

3) esportare in PDF
ho trovato del codice per settare le export options del report document e il metodo Export(crExpOpt)


english version
I use VS 2008 and I write in C# .NET.

I've to:
1) open a report
(please for the next step consider I don't really know what there is inside),
I use :
ReportDocument rpt = new ReportDocument();
rpt.Load(strPath);
ok?

2) set an database.mdb as source of data,
I've find this way:
rpt.SetDatabaseLogon("", "", "localhost", "C:\\Sample.mdb");
not shure about the parameters. is it correct to write "localhost"?
2b) do I have to pass parameters?
I don't know anything about these.
I know there is the method SetParameterValue, but I have to make this step automatically... How can I do it?

3) export in PDF
I've find some code to set export options and the method Export(crExpOpt)


I've to do all the these things without user interaction and without the Viewer.
Can someone help me?
Thank you so much.

freeteo Profilo | Guru

Ciao,
quello che hai descritto è il procedimento corretto, ma puoi anche usare il metodo "ExportToDisk" e passargli i parametri direttamente a quel metodo se vuoi.
Cmq sia è corretto anche passare per le ExportOptions, come dicevi tu.

Ma hai qualche errore, qualche messaggi che ti compare o cosa succede?

Ciao.

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

tikotikotako Profilo | Newbie

Ciao Matteo,
grazie per l'attenzione.

innanzi tutto ti chiedo conferma di un'altra cosa.
Il mio report ha dei subreport (in realtà è lo stesso replicato più volte)
come devo gestirli? va bene se inserisco il codice qui sotto?
o basta che apra i vari subreport con OpenSubreport prima di fare il LogOn una volta sola?

rpt.SetDatabaseLogon("", "", "localhost", "C:\\Sample.mdb");
for (int i = 0; i < rpt.Subreports.Count; i++)
{
rpt.OpenSubreport(rpt.Subreports[i].Name);
rpt.Subreports[i].SetDatabaseLogon("", "", "localhost", "C:\\Sample.mdb");
}


Tuttavia il mio problema principale penso consista nel punto
2b) descritto nel post precedente, ovvero il passaggio dei parametri.

Se provo a non gestire il passaggio dei parametri ovvero
- faccio il load del .rpt,
- apro i subreports e faccio il logOn al .mdb per il report e per ogni subreports
- provo ad esportare
quando provo ad esportare mi lancia l'eccezione "Valori di parametro mancanti.";
da cui intuisco che devo passargli dei parametri con il SetParameterValue,
(punto 2b del precedente post).

Lì penso sia il problema, ovvero che debba gestire il passaggio dei parametri, corretto?
purtroppo sto operando pressoché black box, non ho costruito io il report (e non so nemmeno bene come funzioni è la prima volta che mi trovo ad usare Crystal Reports).
Come posso fargli passare i parametri in modo automatico?

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