none
Imagen Crystal Report variable global RRS feed

  • Pregunta

  • Muy buen dia señores.... mi pregunta el dia de hoy es para poder poner una imagen (Logo de la empresa), dentro del reporte de Crystal Report.... la imagen la guardo en una variable global, ya que la utilizo mucho a traves de todo la aplicacion....

    Como hago para que me la imprima en el reporte.... ademas, los datos los obtengo desde un store procedure...

    Gracias por su ayuda...

    PD.- He visto que muchas veces lo hacen con un dataset tipado, pero creo que este no es mi caso.... o uds. diran si es lo mas conveniente para hacer...

    Uso Visual Studio 2015 en lenguaje de VisualBasic... tengo Windows 10 y trabajo con MySql.

    Muchas gracias

    • Cambiado Enrique M. Montejo miércoles, 26 de julio de 2017 6:28 Pregunta relacionada con Crystal Reports.
    viernes, 21 de julio de 2017 17:37

Respuestas

  • Hola wichortiz:

    Los pasos pueden ser los siguientes:

    1) Localiza la ruta donde se encuentra la imagen. la misma la tendría que tener en una carpeta Bin > Debug > Logo por ejemplo, es decir, en la carpeta del ejecutable.

    2) Abres tu rpt y botón derecho y pulsas "Insertar objeto OLEdb".

    3) Pulsas crear desde archivo. Buscar donde está la imagen y pulsas "Vincular"-

    Con ello, ya tendrás la imagen situada en tu rpt. Eso lo tienes que realizar para cada rpt.

    Otra cosa que tendrías que tener en cuenta es si quieres que siempre aparezca el logo o no y también si cuando sale el logo tienes que desplazar el campo por ejemplo del título del informe hacia la derecha o izquierda, etc. y por último si quieres que el logo de guarde para cuando vuelvas a abrir el informe o no.

    Esto último lo puedes guardas en My.Sentting tal como te adjunto en el código.

         If My.Settings.ImagenLogo = True Then
                    If VarGlobal.strImagenGuardadaImagLogotipo = "" Then
                        CrReport.DataDefinition.FormulaFields("PicLogo").Text = "'" & My.Application.Info.DirectoryPath & "\" & "LogoEmpresa\Imagen1.jpg" & "'"
                    Else
                        CrReport.DataDefinition.FormulaFields("PicLogo").Text = "'" & VarGlobal.strImagenGuardadaImagLogotipo & "'"
                    End If
    
                    CrReport.SetParameterValue("parOcultarImagen1", My.Settings.ImagenLogo)
                    'Desplazamos el titulo del informe cuando lleva logotipo.
                    If valor = 4 Then 'Solo desplazamos para períodos anuales.
                        If VarGlobal.strTipoInforme = "InfValores" Then
                            oDesplazarTitulo = CType(CrReport.ReportDefinition.ReportObjects.Item("Text8"), TextObject)
                            If My.Settings.ImagenLogo = False Then 'No LLeva imagen el logotipo
                                oDesplazarTitulo.Left = 1520
                            Else
                                oDesplazarTitulo.Left = 2400
                            End If
                            oDesplazarTitulo.Width = 9270
                        End If
                    End If
                Else
                    CrReport.DataDefinition.FormulaFields("PicLogo").Text = ""
                    CrReport.SetParameterValue("parOcultarImagen1", My.Settings.ImagenLogo)
                End If

    En fin a partir de lo explicado, tienes diferentes combinaciones.

    Un saludo.

    Gemma


    • Editado gemma_campillo sábado, 22 de julio de 2017 7:01
    • Marcado como respuesta wichortiz martes, 25 de julio de 2017 16:20
    sábado, 22 de julio de 2017 6:51
  • Lo he logrado por fin..... explico los pasos que realice para que sirva de guia por si alguien desea realizarlo...

    La guia de Gemma fue indispensable para lograrlo..

    1) En la ruta donde se encuentra el ejecutable, cree una carpeta llamada "LogoEmpresa" y dentro de esta, he colocado el archivo "jpg" o "png" de la imagen que deseo colocar en el reporte.

    2) Abres tu rpt y botón derecho y pulsas "Insertar objeto OLEdb". (paso propuesto por Gemma)

    3) Pulsas crear desde archivo. Buscar donde está la imagen y pulsas "Vincular". (paso propuesto por Gemma)

    4) Cree un nuevo campo de formula con el nombre "Logo".

    5) Click derecho sobre el objeto OLE, --> Dar Formato al Objeto --> Pestaña "Imagen" --> Click en "x-2" en Ubicacion --> Colocar aqui en campo formula.

    6) En la pestaña "Comun", desmarcar la casilla que dice: "Puede crecer"... de lo contrario, si la imagen es muy grande, desproporcionara todo el reporte.

    7) En el botón donde mando a imprimir el reporte, he colocado la siguiente linea:

    reporte.DataDefinition.FormulaFields("Logo").Text = "'" & My.Application.Info.DirectoryPath & "\" & "LogoEmpresa\LogoEmpresa.jpg" & "'"

    Y eso es todo... la imagen aparece en el reporte...

    Gracias a todos los que finamente me han ayudado en este inconveniente... hasta la proxima

    Wichortiz.

    • Marcado como respuesta wichortiz martes, 25 de julio de 2017 16:20
    martes, 25 de julio de 2017 16:20

Todas las respuestas

  • Hola wichortiz:

    Los pasos pueden ser los siguientes:

    1) Localiza la ruta donde se encuentra la imagen. la misma la tendría que tener en una carpeta Bin > Debug > Logo por ejemplo, es decir, en la carpeta del ejecutable.

    2) Abres tu rpt y botón derecho y pulsas "Insertar objeto OLEdb".

    3) Pulsas crear desde archivo. Buscar donde está la imagen y pulsas "Vincular"-

    Con ello, ya tendrás la imagen situada en tu rpt. Eso lo tienes que realizar para cada rpt.

    Otra cosa que tendrías que tener en cuenta es si quieres que siempre aparezca el logo o no y también si cuando sale el logo tienes que desplazar el campo por ejemplo del título del informe hacia la derecha o izquierda, etc. y por último si quieres que el logo de guarde para cuando vuelvas a abrir el informe o no.

    Esto último lo puedes guardas en My.Sentting tal como te adjunto en el código.

         If My.Settings.ImagenLogo = True Then
                    If VarGlobal.strImagenGuardadaImagLogotipo = "" Then
                        CrReport.DataDefinition.FormulaFields("PicLogo").Text = "'" & My.Application.Info.DirectoryPath & "\" & "LogoEmpresa\Imagen1.jpg" & "'"
                    Else
                        CrReport.DataDefinition.FormulaFields("PicLogo").Text = "'" & VarGlobal.strImagenGuardadaImagLogotipo & "'"
                    End If
    
                    CrReport.SetParameterValue("parOcultarImagen1", My.Settings.ImagenLogo)
                    'Desplazamos el titulo del informe cuando lleva logotipo.
                    If valor = 4 Then 'Solo desplazamos para períodos anuales.
                        If VarGlobal.strTipoInforme = "InfValores" Then
                            oDesplazarTitulo = CType(CrReport.ReportDefinition.ReportObjects.Item("Text8"), TextObject)
                            If My.Settings.ImagenLogo = False Then 'No LLeva imagen el logotipo
                                oDesplazarTitulo.Left = 1520
                            Else
                                oDesplazarTitulo.Left = 2400
                            End If
                            oDesplazarTitulo.Width = 9270
                        End If
                    End If
                Else
                    CrReport.DataDefinition.FormulaFields("PicLogo").Text = ""
                    CrReport.SetParameterValue("parOcultarImagen1", My.Settings.ImagenLogo)
                End If

    En fin a partir de lo explicado, tienes diferentes combinaciones.

    Un saludo.

    Gemma


    • Editado gemma_campillo sábado, 22 de julio de 2017 7:01
    • Marcado como respuesta wichortiz martes, 25 de julio de 2017 16:20
    sábado, 22 de julio de 2017 6:51
  • Muchas Gracias Gemma.... fijate que como quiero incrustar el logo de la empresa en un reporte... que siempre estara ahi sin mas ni mas... he intentado hacer lo que me has dicho de insertar un archivo OLEdb, vincularlo, etc... pero lo que me presenta es esto:

    He probado con un archivo .jpg y un archivo .png pero con el mismo resultado... que estare haciendo mal ???...

    Gracias por su ayuda...

    PD.- En cuanto a lo demas que me has explicado, lo veo muy, muy interesante pero no me animo a hacerlo porque no tengo mucho entendimiento del archivo config y hay cosas en el codigo que no logro comprender.... de todas maneras, muchisimas gracias por tu tiempo.

    lunes, 24 de julio de 2017 18:37
  • Hola:

    Pero el archivo ese que has incrustado debe de tener una ruta que es donde esta la imagen.

    No puedes poner directamente la imagen ahí, le tienes que indicar la ruta donde está.

    por ejemplo:

    CrReport.DataDefinition.FormulaFields("PicLogo").Text = "'" & My.Application.Info.DirectoryPath & "\" & "LogoEmpresa\Imagen1.jpg" & "'" 

    Un saludo.,

    Gemma

    lunes, 24 de julio de 2017 19:37
  • Hola:
    En el fichero RPT añades un campo imagen como en la imagen

    Se selecciona el Path de la imagen


    Un Saludo desde Bilbo
    Carlos
    lunes, 24 de julio de 2017 19:41
  • Muchas Gracias Gemma.... ahora me presenta este error.... pido disculpas por tantas molestias

    Como podras notar en la captura de pantalla... la imagen es la que aparece en la parte inferior derecha de la pantalla principal..
    • Editado wichortiz martes, 25 de julio de 2017 3:08
    martes, 25 de julio de 2017 3:05
  • Muchas gracias Carlos.... fijate que he intentado lo que tu me has sugerido, pero el problema es que se me desconfigura por completo el reporte... la imagen es muy grande por lo visto... aunque lo tengo en un PictureBox

    Gracias por tu ayuda

    martes, 25 de julio de 2017 3:07
  • Lo he logrado por fin..... explico los pasos que realice para que sirva de guia por si alguien desea realizarlo...

    La guia de Gemma fue indispensable para lograrlo..

    1) En la ruta donde se encuentra el ejecutable, cree una carpeta llamada "LogoEmpresa" y dentro de esta, he colocado el archivo "jpg" o "png" de la imagen que deseo colocar en el reporte.

    2) Abres tu rpt y botón derecho y pulsas "Insertar objeto OLEdb". (paso propuesto por Gemma)

    3) Pulsas crear desde archivo. Buscar donde está la imagen y pulsas "Vincular". (paso propuesto por Gemma)

    4) Cree un nuevo campo de formula con el nombre "Logo".

    5) Click derecho sobre el objeto OLE, --> Dar Formato al Objeto --> Pestaña "Imagen" --> Click en "x-2" en Ubicacion --> Colocar aqui en campo formula.

    6) En la pestaña "Comun", desmarcar la casilla que dice: "Puede crecer"... de lo contrario, si la imagen es muy grande, desproporcionara todo el reporte.

    7) En el botón donde mando a imprimir el reporte, he colocado la siguiente linea:

    reporte.DataDefinition.FormulaFields("Logo").Text = "'" & My.Application.Info.DirectoryPath & "\" & "LogoEmpresa\LogoEmpresa.jpg" & "'"

    Y eso es todo... la imagen aparece en el reporte...

    Gracias a todos los que finamente me han ayudado en este inconveniente... hasta la proxima

    Wichortiz.

    • Marcado como respuesta wichortiz martes, 25 de julio de 2017 16:20
    martes, 25 de julio de 2017 16:20