Verschachtelte Vorlagen: Aktualisieren oder nicht?

Hallo,

nach Lesen des Handbuchs und der Hilfe hatte ich mir das so schön ausgemalt mit den untereinander verschachtelten Vorlagen. Meine Idee war am Beispiel CALC:

  * CALC Master: Das ist der Master für (alle) CALC-Vorlagen, ich habe zwei Seiten A4 hoch und A4 quer definiert mit Rändern etc. definiert. Kopf- und Fußzeile sind hier leer (d.h. unverändert). Die folgenden drei sind auf "CALC Master" gegründet:
      o CALC Michael: Das ist "meine", ich habe eine Kopf- und Fußzeile mit Inhalte definiert und "meine" Standard-Schriftart.
      o CALC Barbara: Das ist "ihre", anderer Name in der Kopfzeile und andere Schriftart.
      o CALC Firma: Entsprechend mit noch weiteren, unterschiedlichen Definitionen.

Nun mache ich irgendeine Änderung (z.B. Rand rechts) an "CALC Master" und werde wie erwartet beim nächsten Öffnen einer der untergeordneten z.B. "CALC Michael" gefragt, ob ich die Änderungen übernehmen will. Eigentlich will ich das, denn auch den Bezug möchte ich eigentlich behalten.
PROBLEM: Mit dieser Übernahme sind die Einträge der Kopf- und Fußzeile, die Schriftart-Definition futsch und diese Felder sehen so aus wie in CALC Master. So ist die Verknüpfung kontraproduktiv denn ich muss mehr Änderungen an den untergeordneten Vorlagen vornehmen (Kopf- und Fußzeile und Schriftart) als wenn ich auch in allen untergeordneten diese eine Änderung (Rand rechts) vornehme.

Wie löst ihr das: Gar keine Verknüpfungen und alle Vorlagen stehen für sich allein? Oder ...
Danke, Michael

Hallo Michael,

vorsichtshalber schicke ich die Mail auch direkt, da ich nicht sicher sein kann, ob du die Liste abonniert hast ( https://de.libreoffice.org/get-help/mailing-lists/).
Ohne die Details ausprobiert zu haben: wenn du einen Master definierst hast, dann gelten die Angaben halt defintionsgemäß für alle untregeordneten Elemente.

Hallo Gerhard,

vielen Dank für die Rückmeldung.

vorsichtshalber schicke ich die Mail auch direkt, da ich nicht sicher sein kann, ob du die Liste abonniert hast

Danke, habe die Liste abonniert.

Ohne die Details ausprobiert zu haben: wenn du einen Master definierst hast, dann gelten die Angaben halt defintionsgemäß für alle untregeordneten Elemente.

Ja die oberste ist als Master für CALC definiert:

  * CALC Master: Das ist der Master für (alle) CALC-Vorlagen, ich habe zwei Seiten A4 hoch und A4 quer definiert mit Rändern etc. definiert. Kopf- und Fußzeile sind hier leer (d.h. unverändert). Die folgenden drei sind auf "CALC Master" gegründet:
      o CALC Michael: Das ist "meine", ich habe eine Kopf- und Fußzeile mit Inhalte definiert und "meine" Standard-Schriftart.
      o CALC Barbara: Das ist "ihre", anderer Name in der Kopfzeile und andere Schriftart.
      o CALC Firma: Entsprechend mit noch weiteren, unterschiedlichen Definitionen.

Ich frage mich nun, wobei eine solche Abhängigkeit helfen könnte. Meine Annahme war, das die untergeordneten _nur_die Einstellungen übernehmen, die sie _nicht selbst definiert haben_; Beispiel

  * in MASTER:
      o definiert sind: Seitenränder für Hoch- und Querformat,
      o nicht definiert sind: Schriftart, Inhalt der Kopf- und Fußzeile.
  * in "Michael" und "Barbara" ist's grad umgekehrt:
      o definiert sind: Schriftart, Inhalt der Kopf- und Fußzeile,
      o nicht definiert sind: Seitenränder für Hoch- und Querformat.

Im Beispiel habe ich im Master den rechten Rand verändert und habe "Übernehmen?" bestätigt, auch um die Verknüpfung zu erhalten; natürlich sollten die nur in den untergeordneten vorhandenen Definitionen erhalten bleiben. Tatsächlich werden aber alle Definitionen übernommen und die Definitionen der Schriftart sowie Inhalte der Kopf- und Fußzeile sind futsch. Wenn ich unterstelle, das bei untergeordneten Vorlagen im Allgemeinen mehr Details definiert sind, als in der übergeordneten bei Bedarf geändert werden (mein Beispiel Rand rechts) frage ich mich, wann bzw. ob überhaupt jemals eine solche Abhängigkeit sinnvoll ist.

Danke, Michael

Hallo Michael,

dass "untergeordnete Vorlagen nur die Einstellungen übernehmen, die sie nicht selbst definiert haben", gilt für manche Formatvorlagen, z.B. bei Calc für die Zellvorlagen und bei Writer für die Absatz- und Zeichenvorlagen. Aber diese Vorlagen sind ganz anders gebaut als die Dokumentvorlagen:

  * bei den genannten Formatvorlagen steht _im Dokument_ genau die
    Information zu den *in* der Vorlage gesetzten Attributen; die
    weiteren, von der übergeordneten Vorlage zu übernehmenden Attribute
    können leicht aus dieser ergänzt werden, da sie sich auch im
    Dokument befindet.
  * Eine Dokumentvorlage dagegen ist ein eigenes Dokument (mit der
    Endung .ots statt .ods), das getrennt vom daraus abgeleiteten
    Dokument gespeichert ist. Da ist die Beziehung natürlich viel
    unsicherer als im vorigen Fall: die Vorlage kann gelöscht, umbenannt
    oder verschoben werden. Ich habe es bei einer Dokumentvorlage
    ähnlich deiner "michael", die auf einer wie "master" beruht, für die
    Umbenennung ausprobiert: wenn ich master umbenenenne, wird die
    Vorlage nicht mehr gefunden, es kommt daher auch nicht die Frage, ob
    die Eigenschaften aus der Vorlage übernommen werden sollen.
    Der Eintrag in der ensprechenden xml-Datei (manifest.xml) im
    entpackten Dokument lautet übrigens: xlink:href="../master.ots"

Ich glaube ja, dass die Möglichkeit, dass eine Dokumentvorlage überhaupt mit einer anderen Dokumentvorlage verknüpft werden kann, nur deshalb besteht, weil man ja zunächst ein normales Dokument auf Basis der ersten - also in unserem Fall "master" - Vorlage erstellt, wobei die Information der Verknüpfung gespeichert wird, und erst danach eventuell dieses Dokument nach irgendwelchen Änderungen als Vorlage speichert; und zwar zusätzlich, das Dokument ist weiterhin geöffnet! Die Möglichkeit der Verknüpfung der zweiten zur ersten hätte also mit der Vorlageneigenschaft gar nichts zu tun.
Wenn die Verknüpfung von Dokumentvorlagen beabsichtigt wäre, müsste das Problem des Löschen, Verschiebens und Umbenennens gelöst werden, was ja wohl nur mit vertretbarem Aufwand ginge, wenn master auch auf michael zeigen würde, was wiederum bedeuten würde, dass master sehr viele solche Zeiger auf alle abgeleiteten Dokumentvorlagen beinhalten müsste. Und dann müsste zusätzlich noch gelöst werden, wie man erkennt welche Attribute aus master stammen und welche aus michael, denn man nutzt ja wie gesagt ein normales Dokument, aus dem man zusätzlich eine Vorlage generiert, und in diesem normalen Dokument besteht kein Bedarf, diese Information zu kennen. Der Prompt, ob aus der Vorlage übernommen werden soll, beruht, soweit ich das sehe, einfach aus dem Vergleich des Änderungszeitpunkts in der Vorlage mit dem im Dokument gespeicherten Stand zum Zeitpunkt der Erzeugung des Dokuments aus der Vorlage (und wahrscheinlich dann auch dem überschriebenen Zeitpunkt bei einer eventuell früher schon einmal erfolgten Übernahme aus dieser Vorlage).
Deine Annahme ist, wie man am entsprechenden Vorgehen bei den Formatvorlagen sieht, ja nicht unsinnig und hätte auch gewisse Vorteile. Aber das Verhalten ist wie gezeigt bei den Dokumentvorlagen deutlich schwieriger zu realisieren als bei den Formatvorlagen. Hinzu kommt, dass es andererseits wohl deutlich weniger Bedarf an hierarchisch gegliederten Dokumentvorlagen geben dürfte als das der Fall bei Zell-, Zeichen- und Absatzvorlagen ist.
Deshalb wird wohl, wenn jemand sich darüber schon einmal Gedanken gemacht haben sollte, die Entscheidung gewesen sein, dass sich der Aufwand nicht lohnt und es wichtigere Erweiterungen gibt.
Du wirst also nicht umhin kommen, deine drei "sekundären" Dokumentvorlagen einzeln anzupassen, wenn du den "master", der dann ja eher nur noch dazu dient, die gemeinsame Eigenschaft zu dokumentieren, ändern möchtest. Das wird aber sicher nicht häufig sein, ich denke, das ist zu verkraften.

Gruß

Gerhard

Hallo Gerhard,

ein großes Dankeschön für die ausführlichen und gut verständlichen Erklärungen!

Bei den verschachtelten bzw. aufeinander aufbauenden Dokumentvorlagen hätte ich mir selbst das Umbenennen und Verschieben "verboten", bzw. nicht erwartet, dass der Verbund auch danach noch funktioniert. Schließlich funktioniert z.B. in IMPRESS ein Hyperlink auf eine lokale Datei auch nur so lange, wie diese noch (mit ursprünglichem Namen) vorhanden ist.

Du wirst also nicht umhin kommen, deine drei "sekundären" Dokumentvorlagen einzeln anzupassen, wenn du den "master", der dann ja eher nur noch dazu dient, die gemeinsame Eigenschaft zu dokumentieren, ändern möchtest.

OK, das ist natürlich möglich aber m.E. absolut unsinnig. Nehme ich nur die individuellen Kopf- und Fußzeilen, müsste ich die für das Seitenformat hoch und das Seitenformat quer neu eingeben, Schriftart und Größe definieren etc. Viel einfacher, übersichtlicher und schneller ist da die Anpassung des Rand rechts in allen drei Dokumentvorlagen. Und auch einfacher nachzuvollziehen, d.h. es gilt die Regel: Änderungen an der Dokumentvorlagen "CALC Master" müssen händisch auch in die Dokumentvorlagen "CALC *.*" übertragen werden. Andersherum ist das nämlich gefährlich: Man muss (auswendig!) wissen, welche Definitionen (z.B. Kopf- und Fußzeile, ...) in jeder der Dokumentvorlagen vorhanden sind, um nach einer Aktualisierung alles wieder richtig zu definieren.

Ich möchte deshalb unsere Vorlagen unabhängig voneinander bauen, um so die etwaige Frage nach einer Aktualisierung auszuschließen und damit die Löschung z.B. der Kopf- und Fußzeilentexte etc. erst gar nicht zu ermöglichen. Was ist also das empfohlene Verfahren, die Verbindung zu löschen, idealerweise so, dass sie auch nicht in Dateieigenschaften etc. angezeigt wird. Jetzt steht nämlich in der Dokumentvorlage "CALC Michael": Datei > Eigenschaften > Allgemein > Vorlage = "CALC Master"; war ja auch so gebaut, soll aber jetzt weg ...

Danke, Michael

Hallo Michael,

für mich ist die Thematik, abgesehen von dem, was ich im Kapitel "Formate und Vorlagen" des Handbuchs "Erste Schritte" geschrieben habe (und das habe ich sicherlich zum großen Teil aus dem früheren Stand oder anderen Quellen gelernt, aber natürlich selbst überprüft). Das Thema der Dokumentvorlagen scheint auch von vielen als unvollständig empfunden zu werden, wei ich bei einem bisschen Stöbern in den Bugs gesehen habe; es gibt auch eine Extension, um die Vorlage zu ersetzen, aber die scheint auch Probleme zu haben.

Hallo Gerhard,

ein großes Dankeschön für die ausführlichen und gut verständlichen Erklärungen!

gern geschehen. Ich profitiere so oft von Informationen, die ich auf diesen und anderen Seiten finde, dass ich gerne auch etwwas zurückgebe, wenn ich mich selber in etwas vertieft habe. Es macht mir allerdings auch schon immer Freude, etwas so lange hin und her zu wälzen, bis ich als klar und präzise befinde. Aber schön zu hören, dass es tatsächlich gelungen ist.

...
Ich möchte deshalb unsere Vorlagen unabhängig voneinander bauen, um so die etwaige Frage nach einer Aktualisierung auszuschließen und damit die Löschung z.B. der Kopf- und Fußzeilentexte etc. erst gar nicht zu ermöglichen.

halte ich auch für den richtigen Weg.

Was ist also das empfohlene Verfahren, die Verbindung zu löschen, idealerweise so, dass sie auch nicht in Dateieigenschaften etc. angezeigt wird. Jetzt steht nämlich in der Dokumentvorlage "CALC Michael": Datei > Eigenschaften > Allgemein > Vorlage = "CALC Master"; war ja auch so gebaut, soll aber jetzt weg ...

Da scheint es nun aufgrund der nur halbherzigen oder nicht zu Ende gedachten Realisierung nichts Rechtes zu geben.
Die Verbindung deiner "CALC Michael" zu "CALC Master" hast du ja wohl schon gekappt (notfalls könntest du "CALC Master" nochmals ändern - sie ist ja nun überflüssig - und "CALC Michael" usw. öffnen und die Übernahme verneinen). Aber, wie du festgestellt hast und wie ich auch im Handbuch geschrieben habe, obwohl ich erst wieder da lesen musste, weil ich mich nicht mehr erinnerte, ist der Bezug noch in den Eigenschaften eingetragen. In deinem Fall ist das, wenn auch funktionslos, störend, weil du das endgültig eliminieren willst. Bei normalen Dokumenten könnte das aber eventuell hilfreich sein, weil die Verbindung durch eine Versehen oder Unaufmerksamkeit gekappt wurde; da möchte man sie gern wiederherstellen, dafür gibt es allerdings auch keinen Knopf oder Menüpunkt, nur ein kleines Makro, das in dem Handbuch-Kapitel (zu Version 5.2) auf S. 26 steht.
Für das Löschen der Infos zur Verbindung habe ich bisher nichts gefunden.
Du kannst dich nun mit den wirkungslosen Einträgen abfinden. Wenn dich das aber stört:
Ich habe ein kleines Makro geschrieben, das diese Informationen löscht:

Sub loescheVorlageInfos

dim dt as NEW com.sun.star.util.DateTime

oDoc = ThisComponent
prop = oDoc.DocumentProperties
prop.TemplateName = ""
' die folgenden Befehle bis zum Kommentar 'bis hier...' sind nicht nötig, damit in den Eigenschaften keine Vorlage
'   mehr erscheint, aber so sind alle Infos zur Vorlage veschwunden
prop.TemplateURL = ""
dt = prop.TemplateDate
dt.Nanoseconds = 0
dt.Seconds = 0
dt.Minutes = 0
dt.Hours = 0
dt.Day = 0
dt.Month = 0
dt.Year = 0
dt.IsUTC = FALSE
' bis hier...
prop.TemplateDate = dt

End Sub

Falls du es tatsächlich verwenden willst und wenig Ahnung von Makros hast, dann kannst du den Angaben auf der zitierten Seite des Handbuch-Kapitels folgen, du musst nur das Makro ersetzen. Aber ich kann keine Garantie dafür geben, dass dann alles stimmt (obwohl ich es glaube/hoffe). Ich wollte halt bloß mal selber wissen, ob das funktioniert.

Aber ich würde, da der Aufwand doch sehr überschaubar ist, lieber reinen Tisch machen: die vier erstellten Dokumentvorlagen löschen und dann die drei, die du brauchst, neu erstellen ohne Bezug zu einer Dokument-Vorlage (was heißt, dass das wohl implizit die Standard-Vorlage ist, aber deren Name erscheint ja nicht). Wenn du mit Makros nicht gut vertraut bist, wirst du allein für die Handhabung des Makros wahrscheinlich länger brauchen als für die Neuerstellung der Dokumentvorlagen.

Gruß

Gerhard

Hallo Michael,

der erste Satz ist unvollständig: die Thematik ist für mich auch neu.