none
Realizar consultas dinámicas Reporting Services RRS feed

  • Pregunta

  • hola amigos, por favor necesito de su ayuda, tengo el siguiente problema,

    Tengo un DataSet que llena los valores a una Tabla, dependiendo del valor de cada fila se debe llamar a un Store Procedure y llenar el valor en la columna 2, hasta ahora creaba el DataSet2 y lo inicializaba con valores por defecto que suponia me traeria la fila pero ahora los valores serán muy variables y tendría que crear muchos DataSet,

    Existe una manera en que yo pueda ejectuar un Dataset desde mi Tablix enviándolo lo Parámetros?, Algo sí:

    =Fields!Valor1.valor &  First(Fields!ValorObtenido.Value, "DataSet2",Parametro1, Parámetro2, Valor1.value)

    Espero sus comentarios, Saludos

    lunes, 16 de abril de 2012 19:10

Respuestas

  • No, me temo que no puedes hacer lo que quieres; no puedes llamar a un Dataset pasándole valores de esa manera. Yo lo haría en el lado del servidor de base de datos, creando una función de tipo tabular que devuelva los registros ya cargados con los datos que necesite el informe. Dentro de la función se puede meter la lógica necesaria, bien sea con un case...when, o con varios join con condiciones en el ON, o incluso usando un cursor con lógica imperativa (aunque normalmente se desaconsejan los cursores alegando su bajo rendimiento, en este caso concreto el rendimiento no será menor que si las mismas operaciones las hicieras desde lado cliente, como ocurriría si las metieras en Reporting Services parametrizando el dataset). Una vez que esa función esté construida y probada, en Reporting Services usas un único DataSet que tome los datos desde esa función, y ya está.
    miércoles, 18 de abril de 2012 6:51
    Moderador

Todas las respuestas

  • No, me temo que no puedes hacer lo que quieres; no puedes llamar a un Dataset pasándole valores de esa manera. Yo lo haría en el lado del servidor de base de datos, creando una función de tipo tabular que devuelva los registros ya cargados con los datos que necesite el informe. Dentro de la función se puede meter la lógica necesaria, bien sea con un case...when, o con varios join con condiciones en el ON, o incluso usando un cursor con lógica imperativa (aunque normalmente se desaconsejan los cursores alegando su bajo rendimiento, en este caso concreto el rendimiento no será menor que si las mismas operaciones las hicieras desde lado cliente, como ocurriría si las metieras en Reporting Services parametrizando el dataset). Una vez que esa función esté construida y probada, en Reporting Services usas un único DataSet que tome los datos desde esa función, y ya está.
    miércoles, 18 de abril de 2012 6:51
    Moderador
  • Si, gracias por responder, he comenzado a hacer los Scripts,

    Gracias.

    Saludos

    jueves, 19 de abril de 2012 15:57