De acuerdo, necesitamos los informes para presentar información con una estructura y un formato que cualquier persona que no sepa manejar una base de datos pueda entender. Y ahora, ¿cómo añadimos un informe a una aplicación que hayamos implementado?
La forma de añadir el informe a la aplicación dependerá de cómo se cree el informe. Como hemos visto, es necesario tener la definición del informe y un origen de datos para rellenarlo, sin embargo, podemos crearlo dentro de la aplicación o tenerlo en un archivo independiente e insertarlo después.
Un informe incrustado es un informe que se ha importado al proyecto o que se ha creado directamente en él. Cuando se crea un informe incrustado en una aplicación, se crea una clase contenedora para el informe. Esta clase formará parte del proyecto. Cuando se importa o se crea el informe en el proyecto, se crea una clase contenedora, con el mismo nombre que el informe. Esta clase contiene, o representa, el informe en el proyecto. Cuando ocurre esto, todo el código del proyecto interactúa con la clase del informe que se ha creado para representarlo, en vez de hacerlo con el propio archivo de informe original.
Al compilar el proyecto, tanto el informe como su clase contenedora se incrustan en el ensamblado, lo mismo que ocurriría con cualquier otro recurso del proyecto.
Un informe no incrustado se ha generado con una herramienta específica aparte del proyecto y también se almacena independiente del proyecto. En este caso hay que planificar cómo se va a acceder y cargar el informe para interactuar con él. No existe una clase específica para manejar el informe. A un informe no incrustado siempre se obtiene acceso externamente y el SDK puede tener acceso a él de diversas formas:
El informe puede estar en la unidad de disco duro en una ruta de directorio de archivos.
El informe puede estar expuesto a través de un servicio web de informes.
Nunca se importan informes no incrustados en el proyecto y, por lo tanto, nunca se crea ninguna clase contenedora de informe, a diferencia de los informes incrustados. En su lugar, se carga el informe no incrustado en tiempo de ejecución.