Cristal e parametri

giovedì 31 marzo 2005 - 14.42

lobax Profilo | Junior Member

ciao a tutti,

stavo provando cristal reports, e cercando di capire come passare un parametro, ho trovato qui questo trhead, ma non riesco a capire alcune cose:

questo è il post:
Ciao..è molto semplice:

>nel tuo report(file .rpt) crei un nuovo campo di tipo parametro, facendo attenzione al tipo di parametro che >dovrai poi passare.

Dunque qui nel field explorer creo un nuovo campo parametro (name)=ID, (prompt text)=lascio vuoto, e per ultimo il tipo di dato. OK?

>Ora, prima di aprire il report via codice, assegni un valore al tuo parametro tramite il comando

>Rpt.SetParameterValue(Indiceparametro, Valore)
>dove Rpt è il tuo reportdocument che poi assegnerai al CrystalReportViewer..

Questa parte si riferisce al file Cristalreports.vb? dove metto il comando sopra?
qui?

Public Overridable Function CreateReport() As CrystalDecisions.CrystalReports.Engine.ReportDocument Implements CrystalDecisions.ReportSource.ICachedReport.CreateReport
Dim rpt As tiket = New tiket
rpt.Site = Me.Site
rpt.SetParameterValue(apid, apid) ' e come raccolgo i parametri provenenti dalla pagina?
Return rpt End Function


insomma dopo aver aggiunto il campo parametro nel file.rpt nn ho capito come passagli il parametro.
chi mi siega?

Andy Profilo | Senior Member

Ciao..esatto, il comando che assegna il valore al parametro che hai dichiarato nel tuo file .Rpt è proprio

Rpt.SetParameterValue(Indiceparametro, Valore)

Se, per esempio hai dichiarato un solo parametro di tipo numerico,

Rpt.SetParameterValue(0, 17)

assegna al tuo parametro (di indice 0, in questo caso è l'unico) il valore 17.

Ovviamente questo comando lo inserisci in un file .vb, quando assegni i valori a rpt appena prima di aprire il tuo Report.

totti240282 Profilo | Guru

e se voglio passare un'altro parametro mentre il report è aperto ???

freeteo Profilo | Guru

ciao,
come ti spiegava andy sotto puoi settare il valorte dei vari parametri lavorando sull'oggetto report, e poi pero' se il report è aperto (ovvero visualizzato) non devi fare altro che chiamare il metodo refresh del reportviewer. e lui lo rigenera con i valori che tu hai cambiato...

ciao

totti240282 Profilo | Guru

ok capito grazie a tutti.

lobax Profilo | Junior Member

mha non è per rompere a me non funziona,

oggi mi da un errore:
LogOnException: Logon failed.]
.F(String  , EngineExceptionErrorID 
) +506

ieri mi passava un parametro non corretto inveche che numerico una stringa tipo guid di sistema.

riproverò a rifare dacapo: cmq io sulla pagina ho sto codice:

Dim apid As Integer = Request.Params("apid")
Dim rpt As report= New report
rpt.SetParameterValue(0, apid)

Andy Profilo | Senior Member

.F(String  , EngineExceptionErrorID 
) +506

??? mai visto un errore simile...

..ma non è che il parametro che hai creato nell'Rpt è di tipo diverso da quello che gli passi poi via codice?

lobax Profilo | Junior Member

ma no è un intero:
sul clik del bottone:

Dim apid As Integer = TiketTo(CInt("apid"))
response.redirect("../intestazioni/PrintPage.aspx?apid=" & apid)

da quello che smanettando mi pare di aver notato, è che succede sulla qery access che cerco di parametrizzare

il parametro genera sempre un errore se cerco di far passare la query già filtrata con il parametro in access non la trova, e con expert non la vede nemmeno, così come tutte le query con parametri.

totti240282 Profilo | Guru

rpt.SetParameterValue(0, apid)

come faccio a sapere l'indice del parametro ???

C'è solo un capitano !!!!!!

Andy Profilo | Senior Member

è l'esatto ordine con cui hai creato i parametri nel tuo report..il primo avrà indice 0, il secondo creato avrà indice 1 e così via..

Andy
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