Archiv des LibreOffice- und OpenOffice.org-Wiki

[ÜberSicht] [TitelIndex] [WortIndex] [SeiteFinden

(./) OOo1.1 nur Windows; OOo2.0 auch Linux1

Auszug aus dem Hilfetext: DDE steht für "Dynamic Data Exchange", also den dynamischen Datenaustausch.

1. DDE-Objekte

DDE-Objekte sind nicht eingebettet. Sie werden immer aktuell aus der Quelle bezogen. Steht diese nicht zur Verfügung, so fehlt auch deren Inhalt in der Zieldatei. Einmal eingefügte DDE-Verknüpfungsinhalte können jedoch von ihrere Quelle gelöst und direkt ins Dokument eingebunden werden: Bearbeiten → Verknüpfungen → lösen. Das sollte allerdings zu einem Zeitpunkt geschehen, an dem die Quelle zur Verfügung steht, damit der Verknüpfungs-Inhalt ins Zieldokument eingefügt wird. Siehe dazu auch Abschnitt Hinweise.

Anders als bei OLE-Objekten wird kein Rahmenobjekt erzeugt; stattdessen wird der Inhalt der DDE-Quelle in die aktuelle Umgebung integriert, also z.B. direkt in den Fliesstext oder eine TextTabelle eines Writer-Dokumentes bzw. in Zellen eines Calc-Dokumentes. Damit entfällt die Beschränkung auf die Rahmengrösse und auch Seitenumbrüche sind kein Problem.

Für die Formatierung werden die Instrumente verwendet, welche die aktuelle Umgebung zur Verfügung stellt wie beispielsweise Absatzvorlagen für die Formatierung von Zellinhalten, die aus einer Calc-Tabelle in ein Writer-Dokument eingebunden werden.

2. DDE-Objekte in Writer-Dokumenten

2.1. Eine sCalc-Tabelle als DDE-Objekt in ein writer-Dokument integrieren

Es gibt drei Wege, in einem Textdokument eine DDE-Verknüpfung einzurichten, die auch zu unterschiedlichen Ergebnissen führen:

2.1.1. Kopieren/Einfügen -> Writer-Tabelle

Der Nachteil dieser sehr einfachen Art der Erstellung besteht darin, dass Änderungen in der Quelldatei zwar im Textdokument nachgeführt werden können, aber nur innerhalb der ursprünglich übernommenen Anzahl Zeilen/Spalten.

Unter Bearbeiten → Verknüpfungen kann die Verbindung zur Quelle bearbeitet werden.

Hier muss auch zuerst die Verknüpfung gelöst werden, wenn die Tabelle gelöscht werden soll.

DDE1.png

2.1.2. Einfügen/Bereich/Verknüpfen/DDE -> Writer-Tabelle

Hier muss der DDE-Befehl von Hand eingegeben werden. Für einen Bereich aus einer Calc-Tabelle sieht der Befehl z.B. so aus:
soffice C:\Verzeichnis\Unterverzeichnis\Dokument.sxc Tabelle1.A1:H80 2
Der so eingefügte Befehl kann über Format -> Bereich angepasst werden, wenn sich die Anzahl Zeilen/Spalten in der Quelltabelle ändert.

Tipp:
Man kann zunächst auch eine DDE-Verbindung per Kopieren/Inhalte einfügen erstellen, wie im ersten Abschnitt beschrieben, diese dann unter Bearbeiten/Verknüpfungen aufrufen, kopieren (und lösen) und den Befehl per Ctrl+v ins Feld DDE-Befehl einfügen.

Anschliessend die überflüssige Tabelle wieder löschen.

DDE2.png

2.1.3. ''Live-Textbausteine'' mittels: Einfügen/Feldbefehl/Variablen/DDE-Feld

Diese Art der Verknüpfung ist vor allem für das Einbinden von Inhalten einzelner Zellen geeignet, die man nicht als Tabelle abgebildet haben möchte, sondern in den Fliesstext integriert. Als DDE Anweisung für den Feldbefehl gibt man den gleichen Befehl ein wie im oben beschriebenen DDE-Bereich (siehe auch Fussnote: "Bei Leerzeichen in Verzeichnis...").
Wenn in der Quelldatei für das entsprechende Feld ein Name festgelegt wurde, kann statt des Zellbereichs dieser angegeben werden, also z.B. so:
C:\Verzeichnis\Unterverzeichnis\Dokument.sxc Umsatz
Statt:
C:\Verzeichnis\Unterverzeichnis\Dokument.sxc Tabelle1.D23

Tipp:
Man kann zunächst auch eine DDE-Verbindung per Kopieren/Inhalte einfügen erstellen, wie im ersten Abschnitt beschrieben, diese dann unter Bearbeiten/Verknüpfungen aufrufen, kopieren (und lösen) und den Befehl per Ctrl+v ins Feld DDE Anweisung einfügen.

Anschliessend die überflüssige Tabelle wieder löschen.

DDE3.png

Mit dieser Art der Einbindung kann man aktualisierbare Textbausteine kreieren. Hier ein Beispiel:

In einer Calc-Tabelle wurden 52 kleine Weisheiten erfasst und durchnummeriert.
Aus dieser Liste wird jede Woche ein anderer Wochenspruch zugeordnet.

(1): Mit =KALENDERWOCHE(HEUTE();2) wird die aktuelle Kalenderwoche ermittelt
(2): Mit SVERWEIS($A$1;Weisheiten;2) wird der Spruch zur aktuellen Woche ermittelt
Die Zelle erhält den Namen: Wochenspruch
(3): Mit SVERWEIS($A$1;Weisheiten;3) wird der zugehörige Autor ermittelt.
Die Zelle erhält den Namen: Autor

DDE5.png

Im Textdokument gibt es zwei DDE-Felder, die sich auf die Zellnamen Wochenspruch und Autor beziehen und bei jedem Öffnen oder Aktualisieren den aktuellen Inhalt dieser Zellen ins Dokument übernehmen.
Die graue Unterlegung resultiert aus der Einstellung Ansicht -> Markierungen

DDE4.png

Hier die Musterdateien als Download: Weisheiten.sxc DDEbeispiel.sxw. Um den Pfad anzupassen, nicht die Feldbefehle ändern, sondern unter Bearbeiten → Verknüpfungen jeden Eintrag einzeln anklicken und über ändern anpassen.

Tipp:
Aus einem DDE-Feldbefehl, den man einmal in ein Dokument eingefügt hat, kann man auch einen AutoText generieren: Feldbefehl markieren und Ctrl+F3 aufrufen. Dieser steht dann auch in jedem anderen Dokument zur Verfügung.

2.2. Einen Bereich eines writer-Dokumentes in ein writer-Dokument verlinken

Auf den Seiten Bereiche und GlobalDokumente wurden bereits ausführlich Varianten beschrieben, um Inhalte von Writer-Dokumenten als aktualisierbare Bereiche in andere Writer-Dokumente zu integrieren. Bei dieser Art der Integration unterbricht ein eingefügter Bereich stets den Textfluss.

Eine DDE-Verknüpfung hingegen gliedert sich nahtlos in den Fliesstext ein. Die Quelle für die Verknüpfung kann im gleichen Dokument liegen oder extern.

Das Vorgehen:

Im Quell-Dokument wird damit automatisch eine TextMarke angelegt.

Diese Art der Text-Verlinkung kann u.U. auch Referenzen/Querverweise ersetzen: In grossen Dokumenten, die auf mehrere Teildokumente aufgeteilt und z.B. in einem GlobalDokument zusammengefasst sind, kann es passieren, dass Verweisziel und Quelle sich nicht im gleichen Dokument befinden. Wenn dann das Dokument mit dem Verweis alleine (nicht innerhalb des GlobalDokument-Verbundes) geöffnet wird, kann das Verweisziel nicht angezeigt werden. Soll als Verweis der Verweistext benutzt werden, so kann eine DDE-Verlinkung die Verweis-Definition ersetzen: Die Quelle markieren, kopieren und am Zielort über Bearbeiten → Inhalte einfügen → DDE Verknüpfung einfügen. DDE-Verknüpfungen erzwingen bei der Anforderung Aktualisieren das Öffnen der Quelldatei und damit das zur-Verfügung-stellen der Quelle, was bei konventionell verknüpften Bereichen nicht der Fall ist.

2.3. Formatieren von DDE-Verknüpfungen

Der Inhalt einer DDE-Verknüpfung kann am Zielort z.B. mit AbsatzVorlagen oder - bei Tabellen - mit einem TabellenAutoformat formatiert werden. Zahlenformate müssen u.U. hart formatiert werden: Spalte in der Writer-Tabelle markieren und Format → Zahlenformat drücken.

Im Tabellenformat einer writer-Tabelle kann ausserdem die erste Zeile als Überschriftzeile definiert werden, die bei Seitenumbrüchen automatisch wiederholt wird: Format → Tabelle → Textfluss.

3. DDE-Objekte in Tabellen-Dokumenten

3.1. Zellinhalte anderer Tabellen verknüpfen

Wenn man in sCalc Zellinhalte anderer Tabellen dynamisch einbinden will, hat man einerseits die Möglichkeit, eine solche Funktion zu benutzen:

='file:///C:/Verzeichnis/Unterverzeichnis/Datei.SXC'#$Tabelle1.A1
und diese Formel in alle Zellen des gewünschten Bereichs zu kopieren.

oder man benutzt die Funktion DDE():

{=DDE("soffice";"C:\Verzeichnis\Unterverzeichnis\Datei.sxc";"Tabelle1.A1:H23")},
die als Matrix-Formel einzugeben ist.
(Man kann auch den Quellbereich einfach markieren+kopieren und am Ziel das Einfüge-Icon aufklappen und DDE-Verknüpfung wählen. Allerdings kann es sein, das auf diese Art nicht alle Zellen korrekt abgebildet werden; es kommt auf die Quell-Zellinhalte an.)

Der Unterschied macht sich vor allem dann bemerkbar, wenn es um Tabellen geht, die sich im gleichen Tabellendokument befinden und bei denen die Quelldaten regelmässig überarbeitet werden:
Bei einer DDE-Verknüpfung passiert alles live. D.h., wenn man die Quell-Tabelle bearbeitet und dann in die Ziel-Tabelle wechselt, findet man dort schon die angepassten Daten vor. Bei der Einbindung mit =Zelladresse muss das geänderte Dokument immer zuerst gespeichert, neu geladen und aktualisiert werden.

Folgende Punkte sind zu beachten:

3.2. Text aus einem Writer-Dokument in eine Calc-Tabellenzelle verknüpfen

Es wird eine Matrix-Funktion in dieser Form eingefügt:
{=DDE("soffice";"C:\Verzeichnis\Unterverzeichnis\Datei.sxw";"DDE_LINK1")}
und untere Bearbeiten -> Verknüpfungen kann die Verknüpfung bearbeitet oder gelöst werden.

Im Textdokument wird eine TextMarke (in dem Fall: DDE_LINK1) angelegt, die natürlich auch im Textdokument als das benutzt werden kann, um z.B. Verweise einzufügen.

Beinhaltet der kopierte Textbereich Absatzenden, so wird pro Absatz eine Zelle gefüllt. Eine einzelne Zelle aus diesem Matrix-Verbund kann nicht bearbeitet oder gelöscht werden. Hingegen können pro Zelle verschiedene Formate benutzt werden.

3.3. Formatieren von DDE-Verknüpfungen

Der Inhalt von DDE-Verknüpfungen kann in der Calc-Tabelle z.B. mit ZellVorlagen oder einem TabellenAutoformat oder auch direkt formatiert werden. Auch eine bedingte Formatierung ist möglich. Die Aktualisierung der DDE-Verknüpfung wirkt entfernt nicht eine im Zieldokument vorgenommene Formatierung.

4. Hinweise

Wenn eine Datei, welche DDE-Verknüpfungen enthält, elektronisch verschickt (oder im Verzeichnisbaum verschoben) werden soll und am Zielort ist die DDE-Quelle nicht vorhanden, sollten die DDE-Verbindungen vor dem Verschicken gelöst werden, damit deren Inhalt direkt ins Dokument eingebettet wird: Bearbeiten → Verknüpfungen.

Wurde der DDE-Befehl als Feldbefehl erfasst, so bleibt der Feldbefehl erhalten, auch wenn die Verknüpfung gelöst wird und kann bei erneutem Bedarf einfach über Einfügen → Feldbefehl → Register:Variablen, DDE-Feld wieder ins Dokument eingefügt und ggf. angepasst werden.

5. Siehe auch


KategorieWriter KategorieCalc

  1. Unter Linux kann es zu Zeichensatzproblemen kommen, sodass z.B. Umlaute am Zielort nicht dargestellt werden. Das kann vermieden werden, wenn man OpenOffice.org mit den richtigen Spacheinstellungen startet, also z.B. LANG=de_DE '/opt/openoffice.org2.4/program/swriter'. (1)

  2. Bei Leerzeichen in Verzeichnis- oder Dateinamen gibt das Programm eine Fehlermeldung aus. In dem Fall die Bereichserstellung trotzdem abschliessen. Der DDE-Befehl muss jetzt „nachbehandelt“ werden unter Bearbeiten → Verknüpfungen. Beim Aufruf dieses Menueintrags darf sich der Cursor nicht mehr innerhalb des Bereichs befinden. Wenn man die eben erstellte Verknüpfung anklickt und ändern wählt, erhält man einen Dialog mit 3 Feldern. Es ist leicht zu erkennen, dass der Pfad am ersten Leerzeichen unterbrochen wurde und zum Teil im Feld Bereich steht. Hier kann man ihn mit Strg+x ausschneiden (Tabellenname und Bereich am Ende des Befehls aber stehen lassen) und im Feld Datei nach einem LeerZeichen einfügen. (2)


LizenzBedingungen | AnbieterKennzeichnung | DatenschutzErklärung | Stand: 2013-04-28