Crystal Reports 10: Object Linking Entendimiento e incrustación de objetos (OLE)

December 29

El propósito principal de un informe es presentar los datos de base de datos a los usuarios de una forma que es fácil de entender. Crystal Reports le da todas las herramientas que necesita para hacer eso. A veces, sin embargo, usted quiere un informe que hace algo más que presente los datos de base de datos. Es posible que desee incluir texto de un archivo de procesador de textos o datos que residen en una hoja de cálculo o una imagen gráfica almacenada como un archivo de imagen de mapa de bits. Para permitir el intercambio de diversos tipos de información en diferentes tipos de archivos, Microsoft desarrolló el OLE (Object Linking and Embedding) arquitectura.

Los informes que se crean con Crystal Reports pueden servir como aplicaciones de contenedor OLE. Es decir, pueden contener objetos OLE creados por otras aplicaciones llamadas aplicaciones de servidor OLE. Microsoft Word y Microsoft Excel son ejemplos de aplicaciones de servidor OLE. Usted puede tomar el texto de un archivo de Microsoft Word como un objeto OLE - o tomar una hoja de cálculo de Excel como un objeto OLE - y colocarlo en un informe de Crystal.

Crystal Reports también puede funcionar como una aplicación de servidor OLE. Puede definir un informe como un objeto OLE y colóquelo en un archivo de Word de texto, una hoja de cálculo Excel, o cualquier otra aplicación de contenedor compatible con OLE.

OLE ofrece una ventaja inusual: Cuando usted trae un objeto OLE en Crystal Reports y colocarlo en un informe, el objeto mantiene una relación con la aplicación que lo creó. La naturaleza de esa relación depende de si el objeto OLE es estática, incrustado o vinculado.

Objetos OLE estáticos

Un objeto OLE estático es una fotografía de un objeto que ha sido copiado de la solicitud original para la aplicación contenedora. Usted puede colocar un objeto OLE estático en un informe de Crystal, pero después lo pones ahí, no se puede editar o cambiar de ninguna manera (excepto para eliminarlo). Un objeto OLE estático no mantiene ninguna relación con la aplicación que lo creó.

Los objetos incrustados y objetos vinculados

Al igual que con un objeto OLE estático, un objeto OLE incrustado se descarga por completo a la aplicación contenedora, con una diferencia importante: Un objeto incrustado hay ninguna instantánea. Tiene una "conciencia" de que el servidor de aplicaciones viene, y usted puede editarlo dentro de la aplicación contenedora. Al hacer doble clic en un objeto OLE incrustado, se convierte en editable. La aplicación de servidor se hace cargo de los menús y barras de herramientas para permitir la edición. Por ejemplo, si incrusta una hoja de cálculo de Excel en un informe, puede editar la hoja de cálculo desde Crystal Reports - el uso de menús y barras de herramientas de Excel.

Cualquier modificación que realice en un objeto OLE incrustado no aparecen en el archivo original en la aplicación de servidor OLE. Si desea cambiar el original, lo que tienes que hacer eso por separado.

Objetos vinculados son como visitantes; que en realidad no se mueven a la aplicación contenedora. Lo que la aplicación contenedora contiene un puntero al objeto vinculado (que permanece en la aplicación de servidor). Este enlace significa que cada vez que el objeto original en la aplicación de servidor se actualiza, el objeto vinculado en la aplicación de contenedor se actualiza también. Supongamos, por ejemplo, que la aplicación de servidor es Excel y actualizar los datos en la hoja de cálculo vinculada. La próxima vez que ejecute el informe en Crystal Reports, que tira de los últimos datos del archivo de Excel para mostrar en el informe.

La vinculación es mejor si su informe siempre debe reflejar los datos más recientes - y si desea que los datos en múltiples aplicaciones para permanecer sincronizado. El puntero también ocupa menos espacio que la incorporación de una gran hoja de cálculo o documento de Word, lo que hace el informe más rápido en cargar. Los informes que contienen objetos vinculados son, sin embargo, menos portátil de informes que contienen objetos incrustados. Para que el enlace funcione, la aplicación de servidor original debe estar presente en la máquina que ejecuta Crystal Reports. Por el contrario, un objeto incrustado es completamente autónomo, sin necesidad de un enlace a su archivo o aplicación de origen.