none
Hacer aparecer o desaparecer un Text Object dependiendo de si tiene o no valor RRS feed

  • Pregunta

  • Hola,

    Me gustaría saber como puedo hacer, que dependiendo a si hay un campo de la base de datos tiene valor o no, aparezca o desaparezca el Text Object correspondiente a ese valor que he creado en el reporte de Crystal. De forma que si no hay valor, no aparece el Text Object y yo puedo subir, aprovechar mejor la hoja del reporte, subiendo el siguiente registro unas lineas mas arriba, justo donde deberia estar la etiqueta que he hecho desaparecer.

    Espero haberme explicado, bien, aunque es simple, pero dificil de explicar.

     

    Un saludo y gracias.

    • Cambiado Enrique M. Montejo martes, 6 de septiembre de 2011 17:03 consulta sobre Crystal Reports (De:Lenguaje VB.NET)
    lunes, 14 de junio de 2010 14:37

Todas las respuestas

  • Para hacer desaparecer un objeto puedes usar el editor de formato, pestaña Común y al lado del check suprimir tienes donde hacer click para introducir la fórmula, que si devuelve True hará que tu objeto no se vea.

    Para subir el resto del informe la única solución que se me ocurre es que pongas ese objeto en una sección y le digas que suprimir la sección si esta vacía.

    Hola,

    Me gustaría saber como puedo hacer, que dependiendo a si hay un campo de la base de datos tiene valor o no, aparezca o desaparezca el Text Object correspondiente a ese valor que he creado en el reporte de Crystal. De forma que si no hay valor, no aparece el Text Object y yo puedo subir, aprovechar mejor la hoja del reporte, subiendo el siguiente registro unas lineas mas arriba, justo donde deberia estar la etiqueta que he hecho desaparecer.

    Espero haberme explicado, bien, aunque es simple, pero dificil de explicar.

     

    Un saludo y gracias.


    Saludos. Peni
    lunes, 14 de junio de 2010 15:10
  • mmm.... ¿Podrías profundizar un poco mas en esta solución?

     

    Gracias y un saludo

    lunes, 14 de junio de 2010 15:49
  • Si te bajas este ejemplo http://dl.dropbox.com/u/7683073/Ejemplos%20news/WindowsApplication1.rar Verás que hay una caja de texto con el valor 'Texto que desaparece'. Si el parámetro que se pasa al formulario es 'Texto de prueba' ese texto no se ve y la sección desaparece y si es cualquier otro valor verás el texto y evidentemente la sección.

    mmm.... ¿Podrías profundizar un poco mas en esta solución?

     

    Gracias y un saludo


    Saludos. Peni
    lunes, 14 de junio de 2010 15:57
  • He añadido dos capturas al RAR para que te quede más claro como lo he hecho.

    Si te bajas este ejemplo http://dl.dropbox.com/u/7683073/Ejemplos%20news/WindowsApplication1.rar Verás que hay una caja de texto con el valor 'Texto que desaparece'. Si el parámetro que se pasa al formulario es 'Texto de prueba' ese texto no se ve y la sección desaparece y si es cualquier otro valor verás el texto y evidentemente la sección.

    mmm.... ¿Podrías profundizar un poco mas en esta solución?

     

    Gracias y un saludo


    Saludos. Peni
    • Propuesto como respuesta roberto aguirre martes, 22 de junio de 2010 9:25
    lunes, 14 de junio de 2010 16:00
  • Si te bajas este ejemplo http://dl.dropbox.com/u/7683073/Ejemplos%20news/WindowsApplication1.rar Verás que hay una caja de texto con el valor 'Texto que desaparece'. Si el parámetro que se pasa al formulario es 'Texto de prueba' ese texto no se ve y la sección desaparece y si es cualquier otro valor verás el texto y evidentemente la sección.

    mmm.... ¿Podrías profundizar un poco mas en esta solución?

     

    Gracias y un saludo


    Saludos. Peni

    Hola Peni,

    Me has añadido las capturas, pero la aplicacion que me has pasado no se corresponde con lo que comentas , tiene un boton Imprimir que muestra el reporte.

     

    Un saludo

    lunes, 14 de junio de 2010 17:00
  • No te expliqué una cosa pensando que lo verías ... si miras el código del Load del Form2 verás que se pasa el parámetro, cambia el valor y verás las diferencias, pero en realidad lo que tienes que hacer esta en el rpt, que es lo que te muestro en las capturas.

    Si te bajas este ejemplo http://dl.dropbox.com/u/7683073/Ejemplos%20news/WindowsApplication1.rar Verás que hay una caja de texto con el valor 'Texto que desaparece'. Si el parámetro que se pasa al formulario es 'Texto de prueba' ese texto no se ve y la sección desaparece y si es cualquier otro valor verás el texto y evidentemente la sección.

    mmm.... ¿Podrías profundizar un poco mas en esta solución?

     

    Gracias y un saludo

    -- Saludos. Peni

    Hola Peni,

    Me has añadido las capturas, pero la aplicacion que me has pasado no se corresponde con lo que comentas , tiene un boton Imprimir que muestra el reporte.

     

    Un saludo


    Saludos. Peni
    lunes, 14 de junio de 2010 18:23
  • Hola,

     

    Pues sigue sin salirme. Lamentablemente no me ha valido mucho tu ejemplo.

    Agradeceria un poco mas de ayuda.

    Un saludo

     

     

    domingo, 20 de junio de 2010 20:35
  • El ejemplo acabo de probarlo y funciona perfectamente, A ti no te funciona?.
    Ayudaría si dieras alguna pista más acerca de lo que te ocurre.

    Hola,

     

    Pues sigue sin salirme. Lamentablemente no me ha valido mucho tu ejemplo.

    Agradeceria un poco mas de ayuda.

    Un saludo

     

     


    Saludos. Peni
    lunes, 21 de junio de 2010 8:44
  • Hola,

    Cuando abro el proyecto no me aparece el fichero report1.rpt, quiza porque esta en la carpeta debug, por lo que me parece un poco magico, ver que con solo cambiar el parametro, aparezca y desaparezca el text object. No puedo ver las tripas del reporte y como esta relacionado con el proyecto, por lo que no entiendo como poniendo {Param1}="Texto de prueba" se solucione.

     

    saludos

    lunes, 21 de junio de 2010 16:39
  • Eso es por que yo nunca trabajo con los rpt embebidos en el proyecto (viejas costumbres de VB clásico) y además los creo desde el Crystal Reports ver 10, no uso la que viene con VS, salvo el 'runtime', pero puedes añadir el rpt al tu proyecto sin problemas, solo tendrás que cambiar la forma de mostrarle. Yo pensaba que dando doble click al rpt se te abriría con el VS directamente.
    Para relacionar el fichero físico hago:
    m_ReportDocument.FileName = IO.Path.Combine(Application.StartupPath, "Report1.rpt")

    Hola,

    Cuando abro el proyecto no me aparece el fichero report1.rpt, quiza porque esta en la carpeta debug, por lo que me parece un poco magico, ver que con solo cambiar el parametro, aparezca y desaparezca el text object. No puedo ver las tripas del reporte y como esta relacionado con el proyecto, por lo que no entiendo como poniendo {Param1}="Texto de prueba" se solucione.

     

    saludos


    Saludos. Peni
    lunes, 21 de junio de 2010 16:49
  • La estructura de lo que quiero ocultar en el informe es la siguiente:

    Fecha  (text object):  Fecha (Campo base de datos)

    Comentarios (text Object): Comentarios (Campo base de datos)

     

    Y luego lo que habria que hacer seria lo siguiente:

    Si Fecha (campo base de datos) no tiene valor  entonces ---> Ocultar Fecha (campo base de datos) y Fecha (text object)

    Si Comentarios (campo base de datos) no tiene valor  entonces ---> Ocultar Comentarios (campo base de datos) y Comentarios (text object) 

     

    Habia pensado en poner en el campo de las formulas algo parecido a If (Fecha (campo base de datos) is Null) then Fecha (campo base de datos) and Fecha (text object) ¿Supress?. Quiza se pueda hace con el Supress. Pero claro, esto no funciona.

     

    Saludos

    lunes, 21 de junio de 2010 17:05
  • Y con los comentarios si te funciona? Si es así, pudiera ser que el campo fecha no valga null

    La estructura de lo que quiero ocultar en el informe es la siguiente:

    Fecha  (text object):  Fecha (Campo base de datos)

    Comentarios (text Object): Comentarios (Campo base de datos)

     

    Y luego lo que habria que hacer seria lo siguiente:

    Si Fecha (campo base de datos) no tiene valor  entonces ---> Ocultar Fecha (campo base de datos) y Fecha (text object)

    Si Comentarios (campo base de datos) no tiene valor  entonces ---> Ocultar Comentarios (campo base de datos) y Comentarios (text object) 

     

    Habia pensado en poner en el campo de las formulas algo parecido a If (Fecha (campo base de datos) is Null) then Fecha (campo base de datos) and Fecha (text object) ¿Supress?. Quiza se pueda hace con el Supress. Pero claro, esto no funciona.

     

    Saludos


    Saludos. Peni
    martes, 22 de junio de 2010 5:29
  • Hola,

     

    Finalmente he encontrado la solución:

     

    Botón derecho--> Dar formato al texto ---> checar el check Suprimir--> Clickar en X+2

     

    Y escribir lo siguiente, para cada uno de los campos que quiero ocultar:

    isnull({NombreTabla.NombreCampo}) or {NombreTabla.NombreCampo} = ""

     

    Saludos

    • Propuesto como respuesta roberto aguirre martes, 22 de junio de 2010 8:25
    martes, 22 de junio de 2010 8:24
  • Eso es lo que esta en la captura 2! Lo que pasa es que en el ejemplo lo aplicaba a una sección entera, que entendí que es lo que querías hacer, por eso estaban creadas dos secciones de detalle.

    Hola,

     

    Finalmente he encontrado la solución:

     

    Botón derecho--> Dar formato al texto ---> checar el check Suprimir--> Clickar en X+2

     

    Y escribir lo siguiente, para cada uno de los campos que quiero ocultar:

    isnull({NombreTabla.NombreCampo}) or {NombreTabla.NombreCampo} = ""

     

    Saludos


    Saludos. Peni
    martes, 22 de junio de 2010 9:19
  • Hola,

     

    En la captura 2 aparece {?Param1}="Texto de prueba", aunque probablemente el problema este en yo no he sabido aplicar lo que tu decias a mi aplicacion.

    De todas formas te pongo a ti como tambien como repuesta valida.

     

    Un saludo

    martes, 22 de junio de 2010 9:25
  • No te preocupes por la respuesta válida o no, lo que importa es que resuelvas tu problema :-)
    En el ejemplo, '{?Param1}="Texto de prueba"' es la condición para mostrar u ocultar la sección, que en cada caso habrá que modificar, pero eso tu ya lo has averiguado :-) Esta claro que debía haberlo explicado un poco más y no dar por supuesto que nada más verlo lo entenderías a la primera, eso lo que pasa cuando uno tiene muy claro algo, se piensa que los demás también y, lógicamente, no tiene por que ser así.

    Hola,

     

    En la captura 2 aparece {?Param1}="Texto de prueba", aunque probablemente el problema este en yo no he sabido aplicar lo que tu decias a mi aplicacion.

    De todas formas te pongo a ti como tambien como repuesta valida.

     

    Un saludo


    Saludos. Peni
    martes, 22 de junio de 2010 9:29