Crystal Reports 10: Verständnis Object Linking and Embedding (OLE)

Der primäre Zweck für einen Bericht ist Datenbankdaten an Benutzer in einer Form zu präsentieren, die leicht zu verstehen. Crystal Reports bietet Ihnen alle Werkzeuge, die Sie brauchen, das zu tun. Manchmal aber wollen Sie einen Bericht, der mehr als nur vorhanden Datenbank Daten tut. Sie könnten Text aus einer Textverarbeitungsdatei aufnehmen möchten, oder wenn Daten in einer Tabelle befindet, oder ein grafisches Bild als Bitmap-Bilddatei gespeichert. Um den Austausch von verschiedenen Arten von Informationen in verschiedenen Arten von Dateien zu ermöglichen, entwickelte Microsoft das OLE (Object Linking and Embedding) Architektur.

Menu

Berichte, die Sie mit Crystal Reports erstellen können als OLE-Container-Anwendungen dienen. Das heißt, sie können OLE-Objekte enthalten, die von anderen Anwendungen erstellt wurden, OLE-Server-Anwendungen aufgerufen. Microsoft Word und Microsoft Excel sind Beispiele für OLE-Server-Anwendungen. Sie können Text aus einem Microsoft Word-Datei als OLE-Objekt übernehmen - oder eine Excel-Tabelle als OLE-Objekt nehmen - und es in einem Bericht Kristall platzieren.

Crystal Reports können auch als OLE-Server-Anwendung. Sie können einen Bericht als OLE-Objekt zu definieren und es in ein Word-Textdatei zu platzieren, eine Excel-Tabelle oder einer anderen OLE-kompatiblen Container-Anwendung.

OLE bietet einen ungewöhnlichen Vorteil: Wenn Sie ein OLE-Objekt in Crystal Reports bringen und es in einem Bericht zu platzieren, das Objekt eine Beziehung mit der Anwendung unterhält, die es erstellt. Die Natur dieser Beziehung hängt davon ab, ob das OLE-Objekt ist statisch, eingebettet oder verknüpft.

Statische OLE-Objekte

EIN statisches OLE-Objekt ist eine Momentaufnahme eines Objekts, das von der ursprünglichen Anwendung auf die Container-Anwendung kopiert wurde. Sie können ein statisches OLE-Objekt in einem Crystal-Bericht zu platzieren, aber nachdem Sie ihn dort, man kann es nicht bearbeiten oder in irgendeiner Weise zu ändern (außer es zu löschen). Ein statisches OLE-Objekt halten keine Verbindung zur Anwendung, die es erstellt.

Eingebettete Objekte und verknüpfte Objekte

Wie bei einem statischen OLE-Objekt, ein eingebettete OLE-Objekt ganz auf die Container-Anwendung, mit einem wichtigen Unterschied heruntergeladen wird: Ein eingebettetes Objekt kein Snapshot ist. Es hat ein "Bewusstsein", von der Server-Anwendung es kommt, und Sie können es innerhalb der Container-Anwendung bearbeiten. Wenn Sie einen Doppelklick auf ein eingebettetes OLE-Objekt, wird es bearbeitet werden. Die Server-Anwendung übernimmt die Menüs und Symbolleisten Bearbeitung zu ermöglichen. Zum Beispiel, wenn Sie eine Excel-Tabelle in einen Bericht einbetten, können Sie die Tabelle aus Crystal Reports bearbeiten - mit Hilfe von Excel-Menüs und Symbolleisten.

Alle Änderungen, die Sie auf eine eingebettete OLE-Objekt machen zeigen nicht in der Originaldatei in der OLE-Server-Anwendung auf. Wenn Sie das Original ändern möchten, müssen Sie das separat tun.

Verknüpfte Objekte sind wie Besucher- sie nicht tatsächlich in die Container-Anwendung bewegen. Was die Container-Anwendung enthält, ist ein Zeiger auf das verknüpfte Objekt (die in der Server-Anwendung bleibt). Diese Verbindung bedeutet, dass, wenn das ursprüngliche Objekt in der Server-Anwendung aktualisiert wird, wird das verknüpfte Objekt in der Container-Anwendung zu aktualisiert. Nehmen wir zum Beispiel, dass der Server-Anwendung ist Excel, und Sie können die Daten in der verknüpften Kalkulationstabelle aktualisieren. Das nächste Mal, wenn Sie Ihren Bericht in Crystal Reports laufen, zieht er die neuesten Daten aus der Excel in dem Bericht anzuzeigen Datei.

Die Verknüpfung ist am besten, wenn Ihr Bericht immer die neuesten Daten Rechnung tragen müssen - und wenn Sie die Daten in mehreren Anwendungen synchronisiert werden sollen bleiben. Der Zeiger nimmt auch weniger Platz als eine große Tabelle oder Word-Dokument einbetten, die der Bericht schneller macht zu laden. Berichte verknüpfte Objekte enthalten, sind jedoch weniger tragbar als Berichte eingebettete Objekte enthält. Für die Verbindung auf der Maschine vorhanden sein, zu arbeiten, muss der ursprüngliche Server-Anwendung, die Crystal Reports ausgeführt wird. Im Gegensatz dazu ist ein eingebettetes Objekt vollständig in sich geschlossene, keine Verbindung zu ihrer Quelldatei oder eine Anwendung benötigen.

Menü