Pagrindinis ataskaitos tikslas – pateikti duomenų bazės duomenis vartotojams lengvai suprantama forma. „Crystal Reports“ suteikia jums visus reikalingus įrankius. Tačiau kartais norisi ataskaitos, kuri ne tik pateiktų duomenų bazės duomenis. Galbūt norėsite įtraukti tekstą iš teksto apdorojimo failo arba duomenis, esančius skaičiuoklėje, arba grafinį vaizdą, saugomą kaip taškinio atvaizdo failą. Kad būtų galima dalytis įvairia informacija įvairių tipų failuose, Microsoft sukūrė OLE (Object Linking and Embedding) architektūrą.
Ataskaitos, kurias sukuriate naudodami „Crystal Reports“, gali būti naudojamos kaip OLE talpyklos programos. Tai reiškia, kad juose gali būti OLE objektų, kuriuos sukūrė kitos programos, vadinamos OLE serverio programomis. „Microsoft Word“ ir „Microsoft Excel“ yra OLE serverio programų pavyzdžiai. Galite paimti tekstą iš „Microsoft Word“ failo kaip OLE objektą arba paimti „Excel“ skaičiuoklę kaip OLE objektą ir įdėti jį į „Crystal“ ataskaitą.
„Crystal Reports“ taip pat gali veikti kaip OLE serverio programa. Galite apibrėžti ataskaitą kaip OLE objektą ir įdėti ją į Word tekstinį failą, Excel skaičiuoklę arba bet kurią kitą su OLE suderinamą sudėtinio rodinio programą.
OLE siūlo neįprastą pranašumą: kai įkeliate OLE objektą į „Crystal Reports“ ir įdedate jį į ataskaitą, objektas palaiko ryšį su jį sukūrusia programa. Šio ryšio pobūdis priklauso nuo to, ar OLE objektas yra statinis, įdėtas ar susietas.
Statiniai OLE objektai
Statinio OLE objektas yra objektas, kuris buvo nukopijuotas nuo pirminės paraiškos į indą taikymo fotografiją. Galite įdėti statinį OLE objektą į „Crystal“ ataskaitą, tačiau įdėję jį ten, jo redaguoti ar keisti jokiu būdu (išskyrus ištrinti). Statinis OLE objektas nepalaiko jokio ryšio su jį sukūrusia programa.
Įterptieji objektai ir susieti objektai
Kaip ir naudojant statinį OLE objektą, įterptasis OLE objektas visiškai atsisiunčiamas į konteinerio programą, tačiau yra svarbus skirtumas: įterptas objektas nėra momentinė nuotrauka. Jis „žino“, iš kurios serverio programos jis ateina, ir galite ją redaguoti konteinerio programoje. Dukart spustelėjus įterptąjį OLE objektą, jį galima redaguoti. Serverio programa perima meniu ir įrankių juostas, kad būtų galima redaguoti. Pavyzdžiui, jei į ataskaitą įterpiate „Excel“ skaičiuoklę, skaičiuoklę galite redaguoti naudodami „Crystal Reports“ naudodami „Excel“ meniu ir įrankių juostas.
Bet kokie įterptojo OLE objekto pakeitimai nerodomi pradiniame OLE serverio programos faile. Jei norite pakeisti originalą, turite tai padaryti atskirai.
Susieti objektai yra kaip lankytojai; jie iš tikrųjų neperkeliami į sudėtinio rodinio programą. Sudėtinio rodinio programoje yra žymeklis į susietą objektą (kuris lieka serverio programoje). Ši nuoroda reiškia, kad kiekvieną kartą, kai atnaujinamas pradinis objektas serverio programoje, atnaujinamas ir susietas objektas konteinerio programoje. Tarkime, kad jūsų serverio programa yra „Excel“ ir atnaujinate duomenis susietoje skaičiuoklėje. Kai kitą kartą paleisite ataskaitą „Crystal Reports“, ji iš „Excel“ failo ištraukia naujausius duomenis, kad būtų rodoma ataskaitoje.
Geriausia susieti, jei ataskaitoje visada turi būti pateikti naujausi duomenys ir jei norite, kad kelių programų duomenys išliktų sinchronizuoti. Žymiklis taip pat užima mažiau vietos nei įterpiant didelę skaičiuoklę ar Word dokumentą, todėl ataskaita įkeliama greičiau. Tačiau ataskaitos, kuriose yra susietų objektų, yra mažiau nešiojamos nei ataskaitos, kuriose yra įterptųjų objektų. Kad nuoroda veiktų, įrenginyje, kuriame veikia Crystal Reports, turi būti originali serverio programa. Priešingai, įdėtas objektas yra visiškai savarankiškas, jam nereikia nuorodos į šaltinio failą ar programą.