Crystal Reports 10: Forstå Object Linking and Embedding (OLE)

June 4  by Eliza

Det primære formålet for en rapporten er å presentere database data til brukere i en form som er lett å forstå. Crystal Reports gir deg alle verktøyene du trenger for å gjøre det. Men noen ganger ønsker du en rapport som gjør mer enn bare stede database data. Du ønsker kanskje å inkludere tekst i et tekstbehandlingsfilen, eller data som ligger i et regneark, eller et grafisk bilde lagret som en punktgrafikk bildefil. Å tillate deling av ulike typer informasjon i ulike typer filer, utviklet Microsoft OLE (Object Linking and Embedding) arkitektur.

Rapporter som du oppretter med Crystal Reports kan tjene som OLE beholdere. Det vil si, de kan inneholde OLE-objekter som ble opprettet av andre applikasjoner kalt OLE-server applikasjoner. Microsoft Word og Microsoft Excel er eksempler på OLE serverprogrammer. Du kan ta tekst fra en Microsoft Word-fil som et OLE-objekt - eller ta et Excel-regneark som et OLE-objekt - og legg den i en Crystal rapport.

Crystal Reports kan også fungere som et OLE-server program. Du kan definere en rapport som et OLE-objekt og legg det inn i et Word tekstfil, et Excel-regneark, eller hvilken som helst annen OLE-kompatibel beholderprogrammet.

OLE tilbyr en uvanlig fordel: Når du tar et OLE-objekt i Crystal Reports og legg den i en rapport, opprett objektet et forhold til programmet som opprettet den. Naturen i dette forholdet avhenger av om OLE objekt er statisk, innebygd, eller linket.

Statiske OLE-objekter

En statisk OLE-objekt er et øyeblikksbilde av et objekt som er kopiert fra den opprinnelige søknaden til beholderprogrammet. Du kan plassere en statisk OLE-objekt i en Crystal rapport, men etter at du har satt den der, kan du ikke redigere det eller endre det på noen måte (bortsett fra å slette den). En statisk OLE objekt holder ikke noen tilknytning til programmet som opprettet den.

Innebygde objekter og koblede objekter

Som med en statisk OLE objekt, er et innebygd OLE objekt ned helt til beholderprogrammet, med en viktig forskjell: En innebygd objekt er ingen øyeblikksbilde. Den har en "bevissthet" som serverapplikasjon det kommer fra, og du kan redigere den i beholderen søknad. Når du dobbeltklikker en innebygd OLE-objekt, blir det redigerbare. Serveren programmet tar over menyene og verktøylinjene for å tillate redigering. For eksempel, hvis du bygger inn et Excel-regneark i en rapport, kan du redigere regnearket fra i Crystal Reports - ved hjelp av Excel-menyer og verktøylinjer.

Eventuelle endringer du gjør i et innebygd OLE-objekt ikke møter opp i den opprinnelige filen i OLE server applikasjon. Hvis du ønsker å endre den opprinnelige, må du gjøre det separat.

Koblede objekter er som besøkende; de gjør faktisk ikke flytte til beholderprogrammet. Hva beholderprogrammet inneholder er en peker til det koblede objektet (som fortsatt er i serverprogrammet). Denne koblingen betyr at når det opprinnelige objektet i serverprogrammet er oppdatert, er det koblede objektet i beholderprogrammet oppdateres også. Tenk deg for eksempel at din server applikasjon er Excel, og oppdatere deg dataene i den koblede regneark. Neste gang du kjører rapporten i Crystal Reports, trekker det de siste dataene fra Excel-filen som skal vises i rapporten.

Linking er best hvis rapporten må alltid gjenspeile den nyeste data - og hvis du vil at dataene i flere programmer for å forbli synkronisert. Pekeren også tar opp mindre plass enn å bygge et stort regneark eller Word-dokument, som gjør rapporten raskere å laste. Rapporter som inneholder koblede objekter er imidlertid mindre portabel enn rapporter som inneholder innebygde objekter. For koblingen skal fungere, må den opprinnelige serveren søknaden være til stede på maskinen som kjører Crystal Reports. Derimot, er et innebygd objekt helt selvstendig, trenger ingen link til kilden fil eller et program.