Usuario
Cómo Copiar un ReportViewer (rldc) de Vb.net Win form a Web Form Asp.net?

Pregunta
-
Todas las respuestas
-
El rdlc se puede copiar por las buenas. Simplemente copias el fichero a la carpeta en disco del otro proyecto, y luego desde el Explorador de Soluciones le dices "agregar elemento existente" para que lo incorpore al proyecto.
Pero eso solo te copia la definición del informe. El ReportViewer que se usa para mostrarlo no se puede copiar, porque es un ReportViewer diferente para WebForms; no vale el mismo componente ReportViewer usado en Winforms. Así que tienes que descargar e instalar el correspondiente ReportViewer de web forms, y luego configurarlo para que use el .rdlc que has copiado antes, y meterle el código para cargar los datos en el reportdatasource. Esto último puede que sea o no sea "copiable", dependiendo de cómo lo hayas hecho.
-
Gracias! Ya copié el reporte y el reportviewer, pero ahora logicamente no encuentra el dataset correspondiente, ¿como trasaldo los Data Sources del vb.net al asp,net para ese reporte copiado?
En el proyecto asp.net no encuentro la ventana DataSources
Luis C
- Editado Luis Carlos H miércoles, 14 de octubre de 2020 21:09
-
Depende de qué clase de datasources hayas definido para el informe. Pueden ser de muchas clases.
Si estás usando dataset tipados cargados mediante un tableadapter, puedes copiarlos directamente desde el disco. En el proyecto original, busca los ficheros que te ha creado en el disco al definir el tableadapter, y cópialos al proyecto nuevo. Después, en Visual Studio le dices "agregar elemento existente" y agregas esos archivos. Entonces podrás ver el tableadapter en el proyecto.
La cadena de conexión tendrás que copiarla desde el app.config del proyecto original al web.config del proyecto web.
La instrucción que carga el dataset durante el form_load en la aplicación de escritorio tendrás que sustituirla por una instrucción equivalente en el proyecto web. No te conviene meterla en el Page_Load porque a diferencia del proyecto de escritorio, en web este evento se ejecuta en todos los postbacks; así que mételo solo en el evento en el que vayas a emitir el informe
Recuerda que el espacio de nombres será diferente si has copiado los ficheros desde el otro proyecto, por lo que tendrás que especificar el namespace correcto al llamar al tableadapter y al dataset.