2010-08-31 14 views
13

¿Cómo puedo recorrer las filas de un conjunto de datos en el código personalizado?
Tengo un informe que contiene un conjunto de datos. Paso el conjunto de datos como un parámetro para la función de código personalizado. ¿Pero entonces qué? ¿Dónde está una referencia sobre los miembros disponibles, etc.?
Aquí está mi código de ejemplo ficticio hasta el momento:Cómo pasar filas de conjunto de datos en los servicios de informes rdl código personalizado

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 

Atención: este será un guión muy simple (si es que va a trabajar), por lo que no quiero entrar en ensamblados personalizados etc.

+0

¿Está tratando de mostrar los datos en el informe? – beakersoft

+1

Cuéntanos qué estás tratando de lograr. Un archivo RDL contiene el esquema XML de la estructura de un informe, no los datos. Los datos de un informe están vinculados en tiempo de ejecución cuando el informe ha recuperado los datos. Es mejor hacer una secuencia de comandos para raspar una página web con el informe ya ejecutado, en realidad le muestra los datos. De nuevo, sin más información, es difícil descifrar lo que quieres lograr, – Fandango68

Respuesta

-1

creo que tienes tu respuesta 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

había dos piezas importantes de información que fue capaz de captar desde el enlace anterior:

Primero, un conjunto de datos en Reporting Services no es el mismo tipo de objeto que un conjunto de datos ADO.Net. Un conjunto de datos de informe es un objeto interno administrado por el tiempo de ejecución de SSRS (en realidad se deriva de un objeto DataReader) y no una estructura XML que contiene tablas de datos, etc., y no se puede pasar al código personalizado del informe.

En segundo lugar, se publicó una solución sobre cómo se puede iterar a través de filas de datos en el código personalizado del informe "transformando" el conjunto de datos en un parámetro multivalor (o si se necesitan varios campos, transformándolo en múltiples parámetros multivalor)):

el Informe de varios valores de parámetro debe tener las siguientes características:

Ocultos = True, Permitir varios valores = True pestaña

Valores disponibles: Elija el conjunto de datos deseado. Seleccione la id de búsqueda como Identificación de valor y el campo que desea exponer como Campo de etiqueta.

Pestaña de valores predeterminados: Obtenga valores de una consulta. Elija el mismo conjunto de datos como se haya elegido en la pestaña de valores disponibles. Valor Campo igual que elije para la identificación del valor.

Establezca el parámetro para que nunca actualice (o cargará los datos de cada iteración de otro parámetro).

Ahora, la idea es hacer que este parámetro sea "buscable". Desde este punto expuso el conjunto de datos como una matriz en el parámetro de valores múltiples.

Ahora en un código personalizado inserte el siguiente código:

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 

¿Pudo hacer lo que quería?

Cuestiones relacionadas