Reporting Service e parametri multivalore

martedì 18 agosto 2009 - 12.36

Augusto Profilo | Newbie

Buongiono,
da un applicativo asp.net ho un problema invocando il webmethod Render per ottenere un report (perfettamente funzionante in modalità interattiva) presente su un server con RS2005.
Il report accetta un parametro multivalore.

Se viene passato un valore solo, tutto va bene:

ParameterValue[] parameters = new ParameterValue[1];
parameters[0] = new ParameterValue();
parameters[0].Name = "Param1";
parameters[0].Value = "1";
....
byte[] result = rs.Render(reportPath,
"pdf",
null,
"<DeviceInfo><HTMLFragment>false</HTMLFragment><Toolbar>false</Toolbar></DeviceInfo>",
parameters,
.....)

Il problema mi si presenta quando si deve passare il valore che nell'interfaccia interattiva corrisponde al 'Seleziona tutti'.
Nella docunemtazione non ho ben chiaro cosa si deve passare, ma tenendo presente che la query sql eseguita da RS ha nella clausola WHERE il predicato IN (WHERE valore IN @Param1) ho pensato di passare una stringa di valori separati da ',' ma in questo caso ottengo sempre l'errore:

Message="System.Web.Services.Protocols.SoapException: Il valore fornito per il parametro di report 'Param1' non è compatibile con il tipo di parametro. --->

Qualcuno ha qualche suggerimento da darmi?
Grazie


A. V.

freeteo Profilo | Guru

Ciao,
forse non è corretto il modo in cui gli setti i valori, io proverei aggiungendo un Array di stringhe ai valori alla proprietà "Values", un codice tipo:
string[] valori = "1,2,3,4,5".Split(','); ReportParameter par = new ReportParameter(); par.Name = "parametro"; par.Values.AddRange(valori);
hai già provato anche con questo?

Ciao.

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

Augusto Profilo | Newbie

Ciao e grazie per la risposta.

In realta non avevo provato perchè il metodo Render del ws ReportingService vuole un array di ParameterValue e non di ReportParameter. Ogni elemento ParameterValue ha solo la proprietà Value che vuole una stringa.
(Comunque anche ReportParameter.Value però espone .AddRange)


A. V.
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