none
Publicar Aplicacion Vb Net Problemas Reportes e Imagenes RRS feed

  • Pregunta

  • Hola a Todos mi problema es al publicar una aplicacion en el mismo equipo normal porque esta las carpetas pero si lo llevo a otro equipo sale una ventana de exception por una imagen que uso como boton lo he querido hacer por install shield me sale que no puedo poralgo de un depurador que esta corriendo, en fin.

    y cuando voy a ver el reporte, obviamente no sale porque la ruta del reporte es la que contiene este equipo y el otro no lo ubica, como puedo hacer para que al publicar estos reportes se vayan con el programa asi como tambien la carpeta img que contiene las imagenes de iconos y otros.

    Existe algun codigo general donde capte el reporte indicandolo sin poner una ruta especifica?

    Saludos.

    PD: Codigos 

     Me.ReportViewer1.LocalReport.ReportPath = "F:\Proyectos\Reportes\ReporteVacios.rdlc"
    'Me.ReportViewer1.LocalReport.ReportPath = "Reportes\ReporteVacios.rdlc"

    He colocado 2 formas pero la segunda no lo ubica asi que lo he dejado en la primera pero en el otro equipo esa ruta no la ubica la publicacion no tiene los reportes.

    En el tema de la imagen es:

     btnReporteV.Image = Image.FromFile("F:\Proyectos\img\rvacios.png")

    Pero no lo ubica y es raro solo sucede con ese problema la situacion es que si un valor es 0 ese boton es blanco y si el valor es distinto a 0 (,1,2,3... ) el color cambia a rojo por ello he usado una condificion if el caso else es la ruta que coloco.

    Ambos problemas desde un equipo externo dan problemas.

    Del mismo equipo todo corre bien,

    Como puedo generalizar esos codigos pa no especificar rutas.

    miércoles, 13 de julio de 2016 19:33

Respuestas

  • Hola:

     El control reportviewer tiene la posibilidad de buscar el reporte en el mismo directorio de instalación de tu aplicación para eso deberás de especificar lo siguiente:

    _reportViewer1 = new ReportViewer();
    _reportViewer1.LocalReport.ReportEmbeddedResource = "NombreProyectoContenedor.Report1.rdlc";

    De esa manera el ReportViewer sabe donde buscar el archivo rdlc sin que tu le especifiques ningún valor por defecto.

     La otra opción y la mas sencilla es que crees un proyecto del tipo librería de clases dentro de la cual crees todos tus Reportes y sus formularios para verlos, y al momento de usar el control ReportViewer asignes por medio de su asistente el reporte que deberá de cargar, así tampoco tendrás que especificar ni cambiar nada cuando instales tu aplicación.

    Espero que la información te sea de utilidad.


    Saludos desde Monterrey, Nuevo León, México!!!

    • Marcado como respuesta Javier Roque sábado, 4 de marzo de 2017 13:11
    jueves, 14 de julio de 2016 2:15

Todas las respuestas

  • Hola:

     El control reportviewer tiene la posibilidad de buscar el reporte en el mismo directorio de instalación de tu aplicación para eso deberás de especificar lo siguiente:

    _reportViewer1 = new ReportViewer();
    _reportViewer1.LocalReport.ReportEmbeddedResource = "NombreProyectoContenedor.Report1.rdlc";

    De esa manera el ReportViewer sabe donde buscar el archivo rdlc sin que tu le especifiques ningún valor por defecto.

     La otra opción y la mas sencilla es que crees un proyecto del tipo librería de clases dentro de la cual crees todos tus Reportes y sus formularios para verlos, y al momento de usar el control ReportViewer asignes por medio de su asistente el reporte que deberá de cargar, así tampoco tendrás que especificar ni cambiar nada cuando instales tu aplicación.

    Espero que la información te sea de utilidad.


    Saludos desde Monterrey, Nuevo León, México!!!

    • Marcado como respuesta Javier Roque sábado, 4 de marzo de 2017 13:11
    jueves, 14 de julio de 2016 2:15
  • Entonces eso quiere decir que si al publicar la aplicacion esta me crea un setup y dos elementos mas debo agregar una carpeta reportes dentro de eso? porque te explico, en mi desktop he programado eso y si lo publico alli normal funciona porque los datos estan alli, si lo llevo a una laptop la app ya instalado sql al llevarlo no ubica los reportes, entonces me pregunto debo poner los reportes con el instalador o dentro de donde se instala.

    Porque si hago el codigo que mencionas no los va ubicar ya que uno es laptop y la programacion esta en otro equipo

    A que se refiere: NombredelProyectoContenedor

    _reportViewer1.LocalReport.ReportEmbeddedResource = "NombreProyectoContenedor.Report1.rdlc";


    jueves, 14 de julio de 2016 15:06
  • Hola:

     A lo que me refiero es.

     1. Debes de crear un proyecto adicional (dentro de tu proyecto principal) del tipo Liberia de Clases para que este funcione como tu contenedor de reportes

    2. Dentro del proyecto desde donde mandaras a llamar a tus reportes deberás de agregar una referencia al proyecto del tipo librería de clases

    3. Una vez reverenciado solo sera cuestión de que mandes a llamar los forms que requieras mostrar, dentro de cada form deberá de contener un Report Viewer el cual ya debe de tener configurado que reporte cargada, por el path de ubicación no te preocupes, al hacer esto el control solo sabrá donde se ubican sus archivos.


    Saludos desde Monterrey, Nuevo León, México!!!

    jueves, 14 de julio de 2016 18:39
  • No entendi mas me perdi estado sin internet. Lo leere bien,

    Gracias

    sábado, 23 de julio de 2016 3:30