DDE-Verknüpfungen bei geänderter Ausgangsdatei

Das Textverarbeitungsprogramm

Moderator: Moderatoren

nic215
*
Beiträge: 14
Registriert: So, 01.01.2012 15:43

DDE-Verknüpfungen bei geänderter Ausgangsdatei

Beitrag von nic215 »

Hallo Forum,

folgendes zu Ausgangslage:

- Benutzt wird OO 4.0.0 auf einem Win7-System
- es gibt eine Calc-ods-Datei und viele Writer-odt-Dateien

Alle Writer Dateien sind über DDE-Verknüpfungen mit der Calc-Datei verknüpft. Um es etwas genauer zu beschreiben: Es werden automatisch Personenkürzel aus Calc in die Writer-Dateien eingefügt. Das klappt auch problemlos.

Nun zum eigentlichen Problem:
Füge ich in der Calc-Datei eine neue Zeile ein, stimmt natürlich der Bezug nicht mehr und zwar bei allen nachfolgenden Zellen. Gibt es eine einfachere Möglichkeit, als manuell jedes Writer-Dokument aufzurufen und jede einzelne Verknüpfung zu ändern :?:

Besten Dank für Eure Hilfe!
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: DDE-Verknüpfungen bei geänderter Ausgangsdatei

Beitrag von F3K Total »

Hi,
nic215 hat geschrieben:gibt es eine einfachere Möglichkeit, als manuell jedes Writer-Dokument aufzurufen und jede einzelne Verknüpfung zu ändern
Nein, es sein denn, du schreibst ein Makro. Das dürfte relativ komplex werden.
nic215 hat geschrieben:Es werden automatisch Personenkürzel aus Calc in die Writer-Dateien eingefügt. Das klappt auch problemlos.
Wieso so kompliziert?
Vermutlich gibt es da bessere Lösungen als die DDE-Verknüpfungen, allerdings müßtest du uns für eine sinnvolle Hilfestellung mehr Informationen oder besser, verfremdete Beispieldokumente hochladen.
Ansonsten bliebe:
Neue Daten in Calc von unten anfügen, damit die alten Bezüge erhalten bleiben.
Gruß R
nic215
*
Beiträge: 14
Registriert: So, 01.01.2012 15:43

Re: DDE-Verknüpfungen bei geänderter Ausgangsdatei

Beitrag von nic215 »

Hallo F3K Total!

Danke für die Antwort. Ich habe mal zwei Dateien mit hochgeladen, die die Problematik verdeutlichen sollen.
Insbesondere bin ich natürlich an "besseren Lösungen", wie Du es nennst, interessiert :wink:

Da es sich bei der Calc-Datei quasi um ein Inhaltsverzeichnis handelt, würde die Lösung Daten unten anzuhängen zwar funktionieren, wäre aber etwas verwirrend... trotzdem Danke!

Falls noch irgendwelche Infos fehlen, bitte melden.

Besten Dank!

Gruß
nic215
Dateianhänge
Daten.ods
(8.43 KiB) 34-mal heruntergeladen
Dokument.odt
(8.61 KiB) 33-mal heruntergeladen
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: DDE-Verknüpfungen bei geänderter Ausgangsdatei

Beitrag von F3K Total »

Hallo nic215,
nun, die Beispieldokumente zeigen, wie du den Inhalt einer Zelle aus Calc als DDE-Verknüpfung in ein Writer Dokument eingefügt hast.
War soweit klar.
Leider erschließt sich mir nicht, wieso du das machst.
Das solltest Du genauer beschreiben.
Was genau möchtest Du erreichen?

Gruß R
nic215
*
Beiträge: 14
Registriert: So, 01.01.2012 15:43

Re: DDE-Verknüpfungen bei geänderter Ausgangsdatei

Beitrag von nic215 »

Hallo F3K Total!

Warum ich das so mache? Nun, mir ist bisher keine bessere Lösung eingefallen :D

Ich versuche es kurz zu erklären:

Die Dateien sind das QM-Handbuch unseres Betriebs. In der Calc-Tabelle stehen die einzelnen Prozesse und die Prozessverantwortlichen (und noch einige weitere Angaben).
In den Anfängen des Handbuchs habe ich in jedem Textdokument im Kopf manuell die Prozessverantwortlichen eingetragen. Gab`s dann eine Änderung (wir hatten eine Zeit lang einen regen Personalwechsel, bzw. lange Krankheiten, Schwangerschaft etc.), musste ich jede Datei öffnen (davor den Schreibschutz weg, anschließend wieder rein) und die Änderungen machen. Das war ein heftiger Aufwand! Irgendwann bin ich dann zu der "Verknüpfungslösung" gekommen. Damals noch mit Microsoft Office '97 Professional :wink:. Das hat auch einige Jahre lang gut funktioniert, ging schnell und der TÜV-Auditor war begeistert! Vor ca. 2 Jahren wurde dann von Win XP auf Win7 umgestellt und das war das Aus für MO '97. Für ein neues MO wollte die Geschäftsleitung kein Geld ausgeben (11 PCs) und so sind wir bei OO gelandet. Erst hatte ich ein paar Probleme mit den Verknüpfungen, aber inzwischen geht auch das.
Das "Sahnehäubchen" wäre nun eine Lösung, in der das Programm "merkt", sobald eine Verknüpfung verschoben wird und man quasi die Chance hätte, diese gleich mit abzuändern... aber das ist wahrscheinlich Wunschdenken!

Ich hoffe, nun ist es klarer? Falls nicht, geb ich gerne weiter Auskunft :wink:

Gruß
nic215
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: DDE-Verknüpfungen bei geänderter Ausgangsdatei

Beitrag von F3K Total »

Hi,
da hab ich wohl den Mund etwas zu voll genommem. Da das Quelldokument (Daten.ods) gar nicht weiß, das auf es per DDE-Link zugegriffen wird, kann es auch nichts ausrichten.
Was wohl, aber eben komplex, möglich wäre:
Wenn Du im Calc-Dokument die URL's der Writer Dokumente neben der "Verantwortlichen" Zelle stehen hättest, könnte man, nach einer Änderung alle Writer-Dokumente per Makro laden und aktualisieren.
Gruß R
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: DDE-Verknüpfungen bei geänderter Ausgangsdatei

Beitrag von F3K Total »

Hi,
ich habe es probiert, geht.
angenommen:
  • In Tabelle1 im Bereich A2:B5 stehen
    • in Spalte A die Verantwortlichen (Test, ABC, XYZ ...)
    • in Spalte B die URLs zu den Dateien, z.B. C:\Users\<USER>\QM\Dokument1.odt
  • Pro Datei gibt es nur einen DDE-Link (soffice1)
Dann kannst du mit Ausführung dieses Makros die DDE-Links in allen Dateien aktualisieren.

Code: Alles auswählen

Sub S_update_dde_links
    Dim Args(0) as New com.sun.star.beans.PropertyValue
    Args(0).Name = "Hidden"
    Args(0).Value = False 'True
    osheet = Thiscomponent.sheets.getbyname("Tabelle1")
    oRange = osheet.getcellrangebyname("A2:B5")
    aFormula = oRange.FormulaArray
    for i = 0 to ubound(aFormula)
      oDDECell = oRange.getcellbyposition(0,i)
      sDDECommandElement = oDDECell.AbsoluteName
      oUrlCell = oRange.getcellbyposition(1,i)
      sUrl = converttourl(oUrlCell.string)
      odocument = stardesktop.loadcomponentFromUrl(surl,"_blank", 0, args())
      odocument.TextFieldMasters.getByName("com.sun.star.text.fieldmaster.DDE.soffice1").DDECommandElement = sDDECommandElement
      odocument.store
      odocument.close -1
   next i
   msgbox "" + i + " Dokumente bearbeitet"
End Sub
Wenn du die Zeile

Code: Alles auswählen

    Args(0).Value = False 'True
in

Code: Alles auswählen

    Args(0).Value = True
änderst, passiert alles unsichtbar im Hintergrund.
Das Entfernen eines Schreibschutzes ist bisher noch nicht berücksichtigt.
Gruß R
nic215
*
Beiträge: 14
Registriert: So, 01.01.2012 15:43

Re: DDE-Verknüpfungen bei geänderter Ausgangsdatei

Beitrag von nic215 »

Hallo F3K Total!

Danke für den Tipp! Allerdings muss ich zugeben, dass ich mich mit Makros noch nie beschäftigt habe/musste. Das muss ich erstmal "verdauen" und probieren.
Darf ich mich dann bei Dir noch mal melden, falls es nicht klappt?
Würde das Makro prinzipiell auch funktionieren, falls es mehrere Verknüpfungen aus dem Calc-Dokument zum Writer-Dok. gibt? Ich hatte nämlich schon seit längerer Zeit vor, die Versionsnummer und das Änderungsdatum mit in die Calc-Datei zu legen...

Danke nochmals! :-D

Gruß
nic215
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: DDE-Verknüpfungen bei geänderter Ausgangsdatei

Beitrag von F3K Total »

Hi,
nic215 hat geschrieben:Würde das Makro prinzipiell auch funktionieren, falls es mehrere Verknüpfungen aus dem Calc-Dokument zum Writer-Dok. gibt?
  • Prinzipiell: Ja
  • So wie es momentan ist: Nein
Wenn Du in allen Writer-Dokumenten die gleiche Anzahl DDE-Links hast, und sie jeweils auf die gleiche Spalte im Calc-Dokument zugreifen (z.B.: A: Verantwortlicher, B: Version, C:Änderungsdatum, D:URL zur Writer-Datei), und die Daten pro Writer Dokument in einer Zeile stehen, ist es leicht das Makro anzupassen.
Gruß R
Antworten