Crystal Reports 10: Understanding Object Linking and Embedding (OLE)

Lo scopo primario di una relazione è quello di presentare i dati del database di utenti in una forma che è facile da capire. Crystal Reports fornisce tutti gli strumenti necessari per farlo. A volte, però, si vuole un rapporto che non si limita a presentare i dati del database. Si potrebbe desiderare di includere il testo da un file di elaborazione testi, o dati che si trovano in un foglio di calcolo, o un'immagine grafica memorizzata come file immagine bitmap. Per consentire la condivisione dei vari tipi di informazioni in diversi tipi di file, Microsoft ha sviluppato il OLE (Object Linking and Embedding) Architettura.

I rapporti creati con Crystal Reports possono servire come applicazioni contenitore OLE. Cioè, possono contenere oggetti OLE creati da altre applicazioni chiamate applicazioni server OLE. Microsoft Word e Microsoft Excel sono esempi di applicazioni server OLE. Si può prendere il testo da un file di Microsoft Word come un oggetto OLE - o prendere un foglio di calcolo di Excel come un oggetto OLE - e inserirlo in un report Crystal.

Crystal Reports può anche funzionare come un'applicazione server OLE. È possibile definire un rapporto come un oggetto OLE e inserirlo in un file di Word di testo, un foglio di calcolo Excel, o qualsiasi altra applicazione compatibile con OLE container.

OLE offre un beneficio straordinario: Quando si porta un oggetto OLE in Crystal Reports e collocarlo in un report, l'oggetto mantiene una relazione con l'applicazione che lo ha creato. La natura di questo rapporto dipende dal fatto che l'oggetto OLE è statico, incorporato o collegato.

Oggetti OLE statici

Un oggetto OLE statico è un'istantanea di un oggetto che è stato copiato dalla domanda iniziale per l'applicazione contenitore. È possibile inserire un oggetto OLE statico in un report Crystal, ma dopo lo metti lì, non è possibile modificare o cambiare in alcun modo (tranne per eliminarlo). Un oggetto OLE statico non mantiene alcun collegamento con l'applicazione che lo ha creato.

Gli oggetti incorporati e oggetti collegati

Come con un oggetto OLE statico, un oggetto OLE incorporato viene scaricato interamente l'applicazione container, con una differenza importante: Un oggetto incorporato non è istantanea. Ha una "consapevolezza" di quali application server proviene, ed è possibile modificarlo all'interno dell'applicazione contenitore. Quando si fa doppio clic su un oggetto OLE incorporato, diventa modificabile. L'applicazione server riprende i menu e le barre degli strumenti per consentire la modifica. Ad esempio, se si incorpora un foglio di calcolo di Excel in un rapporto, è possibile modificare il foglio di calcolo all'interno di Crystal Reports - utilizzando i menu e barre degli strumenti di Excel.

Le modifiche apportate a un oggetto OLE incorporato non appaiono nel file originale nell'applicazione server OLE. Se si desidera modificare l'originale, dovete farlo separatamente.

Oggetti collegati sono come i visitatori; in realtà non si muovono all'applicazione contenitore. Che l'applicazione contenitore contiene un puntatore per l'oggetto collegato (che rimane nella domanda di server). Questo link significa che ogni volta che l'oggetto originale nell'applicazione server viene aggiornato, l'oggetto collegato nell'applicazione contenitore viene aggiornato troppo. Supponiamo, per esempio, che l'applicazione server sia Excel, e si aggiornano i dati nel foglio di calcolo collegato. La prossima volta che si esegue il report in Crystal Reports, tira gli ultimi dati del file Excel da visualizzare nel report.

Il collegamento è meglio se il report deve riflettere sempre gli ultimi dati - e se si desidera che i dati in più applicazioni di rimanere sincronizzati. Il puntatore prende anche meno spazio di incorporare un grande foglio di calcolo o un documento di Word, il che rende il rapporto più veloce da caricare. Rapporti contenenti oggetti collegati sono, tuttavia, meno portabile di report contenenti oggetti incorporati. Per il collegamento di lavoro, l'applicazione server originale deve essere presente sul computer che è in esecuzione Crystal Reports. Al contrario, un oggetto incorporato è completamente autosufficiente, che necessitano di alcun collegamento al suo file di origine o l'applicazione.