Основната цел на отчета е да представи данните от базата данни на потребителите във форма, която е лесна за разбиране. Crystal Reports ви предоставя всички необходими инструменти за това. Понякога обаче искате отчет, който прави повече от просто представяне на данни от базата данни. Може да искате да включите текст от файл за текстообработка, или данни, които се намират в електронна таблица, или графично изображение, съхранено като файл с растерно изображение. За да позволи споделянето на различни видове информация в различни видове файлове, Microsoft разработи OLE (Object Linking and Embedding) архитектура.
Отчетите, които създавате с Crystal Reports, могат да служат като OLE контейнерни приложения. Тоест, те могат да съдържат OLE обекти, създадени от други приложения, наречени OLE сървърни приложения. Microsoft Word и Microsoft Excel са примери за OLE сървърни приложения. Можете да вземете текст от файл на Microsoft Word като OLE обект — или да вземете електронна таблица на Excel като OLE обект — и да го поставите в отчет Crystal.
Crystal Reports може да функционира и като OLE сървърно приложение. Можете да дефинирате отчет като OLE обект и да го поставите в текстов файл на Word, електронна таблица на Excel или всяко друго съвместимо с OLE приложение за контейнер.
OLE предлага необичайно предимство: Когато внесете OLE обект в Crystal Reports и го поставите в отчет, обектът поддържа връзка с приложението, което го е създало. Естеството на тази връзка зависи от това дали OLE обектът е статичен, вграден или свързан.
Статични OLE обекти
А статично OLE обект е моментна снимка на един обект, който е копиран от оригиналното приложение към заявлението за контейнер. Можете да поставите статичен OLE обект в Crystal отчет, но след като го поставите там, не можете да го редактирате или променяте по какъвто и да е начин (освен да го изтриете). Статичният OLE обект не поддържа никаква връзка с приложението, което го е създало.
Вградени обекти и свързани обекти
Както при статичен OLE обект, вграденият OLE обект се изтегля изцяло в контейнерното приложение, с важна разлика: Вграденият обект не е моментна снимка. Той има „осведоменост“ от кое сървърно приложение идва и можете да го редактирате в контейнерното приложение. Когато щракнете двукратно върху вграден OLE обект, той става редактируем. Сървърното приложение поема менютата и лентите с инструменти, за да позволи редактиране. Например, ако вградите електронна таблица на Excel в отчет, можете да редактирате електронната таблица от Crystal Reports — с помощта на менюта и ленти с инструменти на Excel.
Всички модификации, които правите на вграден OLE обект, не се показват в оригиналния файл в приложението OLE сървър. Ако искате да промените оригинала, трябва да го направите отделно.
Свързаните обекти са като посетители; те всъщност не се преместват в приложението за контейнери. Това, което съдържа контейнерното приложение, е указател към свързания обект (който остава в сървърното приложение). Тази връзка означава, че всеки път, когато оригиналният обект в сървърното приложение се актуализира, свързаният обект в приложението на контейнера също се актуализира. Да предположим, например, че вашето сървърно приложение е Excel и актуализирате данните в свързаната електронна таблица. Следващият път, когато стартирате отчета си в Crystal Reports, той изтегля най-новите данни от файла на Excel, за да се покаже в отчета.
Свързването е най-добре, ако отчетът ви винаги трябва да отразява най-новите данни — и ако искате данните в множество приложения да останат синхронизирани. Показалецът също така заема по-малко място от вграждането на голяма електронна таблица или документ на Word, което прави отчета по-бърз за зареждане. Отчетите, съдържащи свързани обекти, обаче са по-малко преносими от отчетите, съдържащи вградени обекти. За да работи връзката, оригиналното сървърно приложение трябва да присъства на машината, на която се изпълнява Crystal Reports. Обратно, вграденият обект е напълно самостоятелен и не се нуждае от връзка към неговия изходен файл или приложение.