2010-08-31 7 views
13

Come è possibile eseguire il loop delle righe di un set di dati nel codice personalizzato?
Ho un report contenente un set di dati. Ho passato il set di dati come parametro alla funzione di codice personalizzato. Ma allora cosa? Dov'è un riferimento sui membri disponibili ecc.?
Ecco il mio codice di esempio fittizio finora:Come eseguire il looping delle righe del set di dati nei servizi di reporting rdl codice personalizzato

Public Function ShowParameterValues(ByVal ds as DataSet) as object() 
    Dim codes() As Object 
    Array.Resize(codes,dc.???.Count) 
    codes(0)=ds??(field???)(row??) 
    return codes 
End Function 

Si prega di notare: questo sarà uno script molto semplice (se funzionerà), quindi non voglio andare in assembly personalizzati ecc

+0

stai cercando di visualizzare i dati sul rapporto? – beakersoft

+1

Dicci cosa stai cercando di ottenere. Un file RDL contiene lo schema XML della struttura di un report, non i dati. I dati di un report sono associati al runtime quando il report ha recuperato i dati. È meglio fare uno script per raschiare una pagina web con il report già eseguito, in realtà mostrandoti i dati. Ancora una volta, senza ulteriori informazioni, è difficile decifrare ciò che si vuole ottenere, – Fandango68

risposta

-1

penso che hai la tua risposta a:

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/a7d59224-0ee5-491e-883b-2e5fcb3edeab/iterate-through-rows-of-dataset-in-reports-custom-code?forum=sqlreportingservices

C'erano due pezzi importanti di informazioni sono stato in grado di cogliere dal link qui sopra:

In primo luogo, un set di dati in Reporting Services non è lo stesso tipo di oggetto di un set di dati ADO.Net. Un set di dati del report è un oggetto interno gestito dal runtime di SSRS (in realtà deriva da un oggetto DataReader) e non una struttura XML contenente i dati, ecc. E non può essere passato al codice personalizzato del report.

In secondo luogo, è stata pubblicata una soluzione su come è possibile scorrere le righe del set di dati nel codice personalizzato del report "trasformando" il set di dati in un parametro multivalore (o se sono necessari più campi, trasformandolo in più parametri multivalore):

il Rapporto parametro multivalore deve avere le seguenti caratteristiche:

Nascosto = true, Consenti valori multipli = true scheda

valori disponibili: Scegli il set di dati desiderato. Seleziona l'ID ricercabile come ID valore e il campo che vuoi esporre come campo Etichetta.

Scheda Valori predefiniti: ottieni valori da una query. Scegli lo stesso set di dati scelto nella scheda Valori disponibile. Valore Campo uguale a quello scelto per l'id valore.

Impostare il parametro su non aggiornare (o caricherà i dati da ogni iterazione di un altro parametro).

Ora, l'idea è rendere questo parametro "ricercabile". Da questo punto hai esposto il set di dati come una matrice nel parametro a valori multipli.

Ora, in un codice personalizzato inserire il seguente codice:

function GetDataSetLabelFromValue(id as integer) as String 
dim i as integer 
i = 0 
for i = 1 to Report.Parameters!YourParameter.Count() 
if Report.Parameters!YourParameter.Value(i) = id then 
    GetDataSetLabelFromValue = Report.YourParameter!ReportParameter1.Label(i) 
    Exit For 
End if 
next i 
End Function 

Eri in grado di fare quello che volevi?

Problemi correlati