none
reporting services RRS feed

  • Pregunta

  •  

    hola disculpa las molestias....tengo un problema para ver un reportng services............ mira es k tengo un catalogo y quieren k al momento de imprimir se imprima como este el catalogo...es decir si yo busco por clave 1 por ejemplo..y me sacan todos los registros con esa clave ...................y lo ordena ya sea descendente o ascendente......kieren k lo imprima asi...............y pss me comento k le mandaramos en query desde visual a reporting service pero no tengo mucha idea..espero la pronta respuesta..bye gracias
    jueves, 25 de octubre de 2007 15:26

Respuestas

  • Hola,

     

    Tan solo tienes que crearte un parámetro dentro de reporting Services y pasarle a él la consulta desde tu aplicación. Ahora unas preguntas, ¿desde donde ejecutas el informe?¿desde el servidor(.rdl) o de forma local(.rdlc)?.
    Si quieres mostrar tu informe en algún lugar desde una aplicación windows o web forms(asp.net), puedes utilizar el control ReportViewer.

    Te dejo un enlace de como trastear y hacer funcionar el ReportViewer:

     

    http://geeks.ms/blogs/fdiaz/archive/2007/08/20/llamando-a-nuestro-informe-desde-el-reportviewer.aspx

     

    Otros sobre Reporting Services: http://geeks.ms/blogs/fdiaz/archive/tags/Reporting+Services+2005/default.aspx

     

    Espero que te sirva de orientación, sino por aquí andaremos.

     

    Un Saludo

     

    jueves, 25 de octubre de 2007 17:19
    Moderador
  • Hola,

     

    Puedes agregarle parámetros a tu consulta para poder hacer un where dinámico. Para ello, tan sólo tienes que irte al menú Informe(con tu informe abierto en visual studio) y agregar un parámetro.

     

    Ahora dentro de la pestaña datos de tu informes, puedes poner lo siguiente:

     

    Bloque de código
    ="Select Campo1...CampoN from TuTabla  where Campo1 = " & Parameters!MiParametro.Value

     

    Donde MiParametro es el parámetro creado anteriormente.

     

    Para añadirlo al ReportViewer puedes ver el enlace que te puse en el anterior comentario.

     

    Un Saludo

     

    lunes, 29 de octubre de 2007 15:41
    Moderador
  • Hola,

     

    Te pongo dos ejemplos partiendo de que ya tienes creado el parámetro y si lo has añadido a la consulta.

     

    Ejemplo 1.- , ="select * from tuTabla where " & Parameters!MiParametro.Value

    Valor del Select traido desde código y que tendrás que montar tú: MiCampo = 'Mivalor' -- Aqui he de decir que las comillas simples son si tu tipo de dato las requiere en un sql normal

     

    Ejemplo 2. Toda la select dentro del parámetro. Este es más facil de implementar aunque más dificil de hacer desde código(según se mire). En este ejemplo se trata de que le pases la sql entera al parámetro. Tu deberás saber que tablas, campos y valores desde tu aplicación windows o web, y construir una sql que se ajuste al número de campos creados en el informe. Por ejemplo, no podrías poner en el informe, los campos: campo1, campo2 y campo3 y luego meterle a la sql camp1, camp2 y camp3, porque te mostraría un error.

     

    Una vez tenemos los valores o sql creados, se los pasamos al informe de la siguiente forma:

     

    Bloque de código
    '  Creo una colección de parámetros de tipo ReportParameter
    ' para añadirlos al control ReportViewer.
    Dim parametros As New List(Of ReportParameter)
    ' Añado los parámetros necesarios.
    parametros.Add(New ReportParameter("MiParametro", "Select * from... ó MiCampo = 'MiCampo' "))
    ' Añado el/los parámetro/s al ReportViewer.
    Me.ReportViewer1.ServerReport.SetParameters(parametros)

     

     

    Bueno, espero que te aclare un poco más las ideas, sino por aquí andaré.

     

    Un Saludo

     

    lunes, 29 de octubre de 2007 22:08
    Moderador

Todas las respuestas

  • Hola,

     

    Tan solo tienes que crearte un parámetro dentro de reporting Services y pasarle a él la consulta desde tu aplicación. Ahora unas preguntas, ¿desde donde ejecutas el informe?¿desde el servidor(.rdl) o de forma local(.rdlc)?.
    Si quieres mostrar tu informe en algún lugar desde una aplicación windows o web forms(asp.net), puedes utilizar el control ReportViewer.

    Te dejo un enlace de como trastear y hacer funcionar el ReportViewer:

     

    http://geeks.ms/blogs/fdiaz/archive/2007/08/20/llamando-a-nuestro-informe-desde-el-reportviewer.aspx

     

    Otros sobre Reporting Services: http://geeks.ms/blogs/fdiaz/archive/tags/Reporting+Services+2005/default.aspx

     

    Espero que te sirva de orientación, sino por aquí andaremos.

     

    Un Saludo

     

    jueves, 25 de octubre de 2007 17:19
    Moderador
  • Hola buenos dias ..una disculpa por k no pude entrar antes..................ok..................bueno ya tengo el reportviewe

    r y ya cuando lo mando a llamar pos ya aparece bien.............pero el query k necesita pss esta fijo en su origen de datos.......... pero tengo u n reporte k el query k lleva el where puede ser de diferentes combinaciones ....y pss no tengo mucha idea de como ponerlo.....y pss quiero ver como lo puedo mandar desde codigo de visual basic al reporte(el reporte es .rdl) y en el reporte como muestro los datos de ese query k le mando por codigo de visual.....muchas gracias y perdona la demora..........gracias

    lunes, 29 de octubre de 2007 15:31
  • Hola,

     

    Puedes agregarle parámetros a tu consulta para poder hacer un where dinámico. Para ello, tan sólo tienes que irte al menú Informe(con tu informe abierto en visual studio) y agregar un parámetro.

     

    Ahora dentro de la pestaña datos de tu informes, puedes poner lo siguiente:

     

    Bloque de código
    ="Select Campo1...CampoN from TuTabla  where Campo1 = " & Parameters!MiParametro.Value

     

    Donde MiParametro es el parámetro creado anteriormente.

     

    Para añadirlo al ReportViewer puedes ver el enlace que te puse en el anterior comentario.

     

    Un Saludo

     

    lunes, 29 de octubre de 2007 15:41
    Moderador
  • ya voy comprendiendo mejor.....otra pregunta....si quiero pasar todo el where por ejemplo

    Select * from tabla where ' y aqui todo lo demas del query' tambien le pongo el parametro asi como me dijiste en el mensaje anterior o es de otra manera

    gracias.......

    lunes, 29 de octubre de 2007 16:19
  • Hola,

     

    Claro que puedes, pero tendrás que controlar tu el campo = valor desde código o metiendolo a mano . También puedes pasarle la sql entera si quieres.

     

    Un Saludo

    lunes, 29 de octubre de 2007 16:23
    Moderador
  • me podrias poner un pequeño ejemplo del caso del query completo es k no me doy idea de como ponerlo y del otro despues del  where se le concatenaria el parametro...estoy bien o mal jajajaj..bueno gracias y disculpa las molestias.....

     

    lunes, 29 de octubre de 2007 16:32
  • Hola,

     

    Te pongo dos ejemplos partiendo de que ya tienes creado el parámetro y si lo has añadido a la consulta.

     

    Ejemplo 1.- , ="select * from tuTabla where " & Parameters!MiParametro.Value

    Valor del Select traido desde código y que tendrás que montar tú: MiCampo = 'Mivalor' -- Aqui he de decir que las comillas simples son si tu tipo de dato las requiere en un sql normal

     

    Ejemplo 2. Toda la select dentro del parámetro. Este es más facil de implementar aunque más dificil de hacer desde código(según se mire). En este ejemplo se trata de que le pases la sql entera al parámetro. Tu deberás saber que tablas, campos y valores desde tu aplicación windows o web, y construir una sql que se ajuste al número de campos creados en el informe. Por ejemplo, no podrías poner en el informe, los campos: campo1, campo2 y campo3 y luego meterle a la sql camp1, camp2 y camp3, porque te mostraría un error.

     

    Una vez tenemos los valores o sql creados, se los pasamos al informe de la siguiente forma:

     

    Bloque de código
    '  Creo una colección de parámetros de tipo ReportParameter
    ' para añadirlos al control ReportViewer.
    Dim parametros As New List(Of ReportParameter)
    ' Añado los parámetros necesarios.
    parametros.Add(New ReportParameter("MiParametro", "Select * from... ó MiCampo = 'MiCampo' "))
    ' Añado el/los parámetro/s al ReportViewer.
    Me.ReportViewer1.ServerReport.SetParameters(parametros)

     

     

    Bueno, espero que te aclare un poco más las ideas, sino por aquí andaré.

     

    Un Saludo

     

    lunes, 29 de octubre de 2007 22:08
    Moderador
  • Hola disculpa la molestia una ultima pregunta......perdona es k soy un poco nuevo en esto de reporting services y pss me esta costando un poquito............oye y ya en reporting services cuando mando todo el query por el parametro y eso desde codigo......como lo recupero desde reporting services...........tengo esa duda...............

     

    y la otra me decias en el

    Ejemplo 1.- , ="select * from tuTabla where " & Parameters!MiParametro.Value

    Valor del Select traido desde código y que tendrás que montar tú: MiCampo = 'Mivalor' -- Aqui he de decir que las comillas simples son si tu tipo de dato las requiere en un sql normal 

    esta parte estoy un poco confundido..........o me hice pelotas......... como hago eso.....y perdona pero llevo unos dias haciendo esto y pss me esta costando agarrarle bien la onda a todas las cosas k reporting services me ofrece... gracias por tu ayuda........

     

    lunes, 29 de octubre de 2007 23:15
  • Hola,

     

    Para obtener los parámetros de un informe, que es donde tienes tu sql u otros datos(en tu caso), basta con utilizar el método GetParameters del ReportViewer. Con esto obtienes una colección de parametros que podrás recorrer y visualizar(nombre, valor).

     

    Por otro aldo, un ejemplo para agregar el valor al parámetro, podría ser algo así(parto del anterior):

    Tenemos un textbox llamado Codigo.

     

    Bloque de código
    '  Creo una colección de parámetros de tipo ReportParameter
    ' para añadirlos al control ReportViewer.
    Dim parametros As New List(Of ReportParameter)
    ' Añado los parámetros necesarios.
    parametros.Add(New ReportParameter("MiParametro", Me.Codigo.Name & "=" & Me.Codigo.Text"))
    ' Añado el/los parámetro/s al ReportViewer.
    Me.ReportViewer1.ServerReport.SetParameters(parametros)

     

     

    ¿Como saber el tipo de campo?, pues puedes guardarlo en el tag del control(Codigo.Tag) y a partir de ahí añadir comillas o no segun sea necesario. También puedes guardarlo en un base de datos u otras formas.

     

    Espero que hayas comprendido el ejemplo, sino por aquí andaré.

     

    Un Saludo

     

    martes, 30 de octubre de 2007 12:31
    Moderador
  • Hola...... oye cuando al query por ejemplo

     

    Creo una colección de parámetros de tipo ReportParameter
    ' para añadirlos al control ReportViewer.
    Dim parametros As New List(Of ReportParameter)
    ' Añado los parámetros necesarios.
    parametros.Add(New ReportParameter("Where", sClave = request.querystring("Clave") and Activo = Request.Querystring("Activo")))
    ' Añado el/los parámetro/s al ReportViewer.
    Me.ReportViewer1.ServerReport.SetParameters(parametros)

     

    Y ya en reportng services en el dataset k se creo para ese reporte y el parametro llamado por ejemplo Where

     

    EL QUERY por ejemplo este:

     

    Select sEstudio, Descrip,Activo from pmvestudi where " & Parameter!Where.Value

     

    y me marca error k me falta o k tengo mal......... y pss yo creo k con nada mas con poner el parametro asi en reporting services pss funciona...............ok gracias...

    Un saludo

    martes, 30 de octubre de 2007 15:43
  • hola ....oye otra pregunta.........por ejemplo cuando tengo este codigo en visual

     

    '  Creo una colección de parámetros de tipo ReportParameter
    ' para añadirlos al control ReportViewer.
    Dim parametros As New List(Of ReportParameter)
    ' Añado los parámetros necesarios.
    parametros.Add(New ReportParameter("MiParametro", sClave  = Request.Querystring("Clave") and Activo = Request.Querystring("Activo")  ))
    ' Añado el/los parámetro/s al ReportViewer.
    Me.ReportViewer1.ServerReport.SetParameters(parametros)

     

    lo mando asi a reporting services y pss ya tengo declarado el parametro llamado por ejemplo Where

     

    y ya en el dataset del reporte tengo el siguiente sql......

     

    Select sClave,Descrip,Activo from pmvestudi Where " & parameter!Where.Value

     

    pero esto me marca error y pss no se k tengo bien o k tengo mal.... y muchas gracias por la paciencia.......

     

     

    un saludo

     

     

    martes, 30 de octubre de 2007 15:49
  • Claro, te falta ponerlo así: ="Select sClave,Descrip,Activo from pmvestudi Where " & parameter!Where.Value

     

    Un Saludo

     

    martes, 30 de octubre de 2007 16:06
    Moderador
  • una ultima pregunta y creo k kedara todo esto.........

     

    me marcar error 102 en = y si no le pongo algo antes del = no me deja ejecutarlo....como declaro el otro nombre

     

    ?? = "Select  * from pmvcatdia where " & parameter!where.value

     

    y gracias por todo

    martes, 30 de octubre de 2007 16:21
  • Ups, fallo tonto que he tenido . Es Parameters!.

     

    ="Select sClave,Descrip,Activo from pmvestudi Where " & parameters!Where.Value

     

    Un Saludo

    martes, 30 de octubre de 2007 16:24
    Moderador
  • Hola,

     

    Y las "??", ¿para que las quieres?, así no funcionará.

     

    Un Saludo

     

    martes, 30 de octubre de 2007 16:27
    Moderador
  • por ejemplo si lo pongo asi

     

    ="Select sClave,Descrip,Activo from pmvestudi Where " & parameters!Where.Value

     

    no lo puedo ejecutar para ver k me sale........ o ya cuando lo mande a llamar desde mi aplicacion y eso ya va a correr o como perdon sorry

     

    martes, 30 de octubre de 2007 16:34
  • Pss muchas gracias poro todo.......yodo esto ya kedo y muy bien y muchas gracias por tu paciencia y eso.......... y aahora pss a seguir viendo cosas de reporting services y cualquier cosa espero contar con tu ayuda....ok y de antemano muchas gracias por ayudar a personas como uno k tiene muchas dudas.... gracias  y un saludo

    martes, 30 de octubre de 2007 16:48
  • Gracias, todos sale tarde o temprano .

     

    Un Saludo

    martes, 30 de octubre de 2007 17:04
    Moderador
  • hola otra pregunta k me acaba de salir

    tengo este query

     

    SELECT Upper(sCatDiagno)sCatDiagno , Isnull(Upper(sDCatDiagno),'') AS sDCatDiagno, cIndActivo FROM PMVCATDIA WHERE sCatDiagno LIKE '%'+20 + '%' ORDER BY sDCatDiagno Asc

     

    Y me marca error en los porcentajes.....me dice k no puede convertir la cadena de varchar a entero..........y pss no se como ponerlo..ya le intente de varias forma.....y gracias y disculpa las molestias

     

    Un saludo

    miércoles, 31 de octubre de 2007 19:32
  • Hola,

     

    Y porque no lo pones así:

     

    Bloque de código

    SELECT

    Upper(sCatDiagno)sCatDiagno ,

    Isnull(Upper(sDCatDiagno),'') AS sDCatDiagno,

    cIndActivo

    FROM PMVCATDIA

    WHERE sCatDiagno LIKE '%20%' ORDER BY sDCatDiagno Asc

     

     

    Lo que cambié fue el like del where, pero no sé si te da el error ahí. Otra cosita, si cuando haces "Isnull(Upper(sDCatDiagno),'') AS sDCatDiagno" el campo sDCatDiagno es de tipo numérico deberías de cambiar las comillas simples por un 0 u otro valor numérico.

     

    Un saludo

     

    jueves, 1 de noviembre de 2007 11:53
    Moderador
  • Hola necesito ayuda de favor, miren lo que quiero hacer es pasar el nombre de DATASET al cual quiero que se conecte mi reporte, por ejemplo si en mi servidor tengo dos DATASET (Prueba1, Prueba2) y quiero ponerle una variable en la cual yo le indique a cual DATASET se debe de conectar... por favor ayudenme, muchas gracias de antemano ...

     

    martes, 18 de diciembre de 2007 19:42
  • Hola,

     

    Create una variable de tipo string y se la asignas al dataset.

     

    Un Saludo

    martes, 18 de diciembre de 2007 19:54
    Moderador
  • un favor muy grande, me podrias mandar un ejemplo.... te lo agradeceria mucho, gracias

     

    martes, 18 de diciembre de 2007 19:56
  • Ok, pero que haces realmente, sino mal entiendo con hagas algo así:

     

    Bloque de código

    Dim nombreDS as string = "DataSet1"

     

    DataSet(nombreDS)

     

    Bastaría, ¿van por ahí los tiros o eso no es lo que quieres?

     

    Un Saludo

    martes, 18 de diciembre de 2007 20:00
    Moderador
  • ok, te explico mas detalladamente para que me entiendas, lo que quiero hacer es lo siguiente :

     yo quiero pasar desde el dataviwer el nombre del DATASET a cual quiero que se conecte mi reporte, quiero saber como  puede obtener el reporte esta variable que le estoy mandando, y como se la declaro al reporte?

     

    gracias

    martes, 18 de diciembre de 2007 20:08
  • Hola Lucy,

     

    ¿Has probado a ponerlo en un parámetro?

     

    Un Saludo

     

    jueves, 27 de diciembre de 2007 0:17
    Moderador
  • Hola si lo he provado poner como parametro pero lo k no se es en donde poner el parametro en mi reporte... esa ahora es mi duda????

     

    jueves, 27 de diciembre de 2007 1:18
  • Hola,

     

    Para poner o pasar un parámetro a tu consulta puedes hacerlo así:

    Bloque de código
    ="Select * from tuTabla where campo1 = " & Parameters!MiParametro.Value

     

    Espero que te ayude,

     

    Felices Fiestas

    jueves, 27 de diciembre de 2007 15:14
    Moderador
  • Hola buenas tardes ....tengo un pequeño problema ok.......mira kiero hacer un reporte en reporting services........ pero por ejemplo............tengo dos tablas una donde guardo la matriz y otra donde guardo las sucursales............. no pero la matriz debe aparecer bien alineado y las sucursales.....con una pequeña sangria...ok............y pss la matriz lo hago normal y la sucursal la hago con un reporte integrado pero no me sale me aparecen todos en todas las matrices y pss no se como hacerle ..............lo he intentado un buen rato y no me sale.......espero k me puedas dar un pqueño consejo de como hacerlo...gracias un saludo

    viernes, 4 de enero de 2008 18:48
  • Puedes porner en el reporte integrado un parametro el cual lo relaciones con tu informe en el cual lo estas poniendo, en el apartado de propiedades del informe integrado cuando lo agreges en tu reporte en el apartado de parametros vinculas el parametro de tu informe integrado y la celda que lo tiene este  y listo ya esta  espero que te sirva de mucho y me hayas entendido...

     

    lunes, 7 de enero de 2008 17:55
  • Jejeje, muy bien explicado Lucy !!!. Que bueno tener compis que curren con SSRS.

     

    Cualquier cosa, por aquí andamos.

     

    Un Saludo

    lunes, 7 de enero de 2008 23:02
    Moderador
  • Hola muy buen día necesito de la ayuda para sabes como puedo agregar un arreglo en un reporte, si lo que pasa es que quiero mandar varias clave, por ejemplo si mando la clave 01, 02 ,03 y quiero que solo me imprima la informacion de esas clave.... bueno espero que me puedan ayudar, muchas gracias .

     

    Nota: Estoy usando procedimientos almacenados para mandar a llamar la informacion del informe y si me mandan un ejemplo se los agradeceria mucho...

    lunes, 14 de enero de 2008 17:19
  • Hola Lucy,

     

    ¿Estás trabajando con una SQL?. Lo digo porque puedes mandar un objeto o un xml como fuente de datos si quieres al informe

     

    Un Saludo

    lunes, 21 de enero de 2008 6:39
    Moderador
  • Hola: si utilizo sql, y ya encontre la respuesta lo hicimos por medio de esta propiedad:

     

    DECLARE @@SQL nvarchar(400)

    BEGIN

    SET @@SQL = 'SELECT P.sFKUsuario, UPPER(U.sDUsuario) sDUsuario,P.sContrasena

    FROM PMSUSUPWD P,PMSUSUARI U

    WHERE P.sFKUsuario = U.sUsuario AND P.sFKUsuario IN ('+ @Valor +')

    ORDER BY sDUsuario'

    exec sp_executesql @@SQL

     

    lunes, 21 de enero de 2008 15:32
  • Hola Lucía,

     

    Entonces,¿ya funciona?

     

    Un Saludo

    lunes, 21 de enero de 2008 15:54
    Moderador
  • Si así es ya funciona  asi fue como lo pudimos resolver..

     

    lunes, 21 de enero de 2008 15:56
  • Me alegro !!!. Seguiremos por aquí

     

    PD: Marca tu respuesta como correcta, así otra persona se podrá beneficiar rápidamente al verla.

     

    Un Saludo

    lunes, 21 de enero de 2008 16:13
    Moderador
  • Hola fran... Necesito de tu ayuda.... mira lo que pasa es que quiero pasar por medio de un paramentro el nombre de mi origen de datos en mi reporte, he leido y me encontre con esta linea de codigo :

     

    ="data source=" & Parameters!ServerName.Value & ";initial catalog=AdventureWorks

     

    pero ya al implementarla y analizarla bien me doy cuenta que solo paso el nombre del servidor y a la base de datos en donde me tengo que conectar, y realmente esto no me sirve porque mis reportes lo estoy trabajando en un solo servidor y hay tengo varios origenes de datos...

     

    Espero que me entiendas y cualquier cosa estamos pendientes... Gracias de antemano

    miércoles, 19 de marzo de 2008 18:18