# Word Reports

Diese Anleitung hilft Ihnen, eine Reportvorlage mit Word zu erstellen, die mit verschiedenen Datensatztypen funktioniert. Befolgen Sie diese Schritte, um eine Vorlage für einzelne oder mehrere Datensätze zu entwerfen.

# Gestalten Sie Ihre Vorlage

Öffnen Sie Microsoft Word und erstellen Sie ein neues Dokument. Fügen Sie Überschriften, Text, Tabellen und Bilder hinzu, um das Layout Ihrer Vorlage zu erstellen. Sie können die Platzhalter mit den integrierten Formatierungswerkzeugen von Word formatieren, z. B. Schriftgrösse, Schriftfarbe und Absatzausrichtung. Die Formatierung, die Sie auf die Platzhalter anwenden, bleibt erhalten, wenn die tatsächlichen Daten eingefügt werden.

# Platzhalter hinzufügen

Fügen Sie Platzhalter in die Vorlage ein, um die Daten anzuzeigen, die Sie darstellen möchten. Verwenden Sie data, um auf die Daten zuzugreifen. Sie können herausfinden, welche Felder in der Vorlage verwendet werden können, indem Sie sie einfach als JSON exportieren.

Für jede Datensätze, unabhängig davon, ob Sie versuchen, mehrere oder nur eine Entität zu exportieren, verwenden Sie diese Vorlage:

{% for item in data %}
  {{ item.property }}
{% endfor %}

# Templating Sprache und Nachschlagewerke

Im Word verwenden wir die Templating Sprache "Jinja". Diese bietet eine umfangreiche Werkzeugkiste zum Bauen von einfach und komplizierten Vorlagen.

Mit dieser Sprache können Inhalte in der Word-Datei eingebettet werden und auch Funktionen wie das Iterieren über mehrere Datensätze (for Loop) oder das Einfügen von Bedingungen (if) verwendet werden. Weiter unten finden Sie ein Beispiel dieser Möglichkeiten. Die Sprache bietet aber auch komplexere Möglichkeiten aus der Softwareentwicklung, wie das Definieren von Variabeln und Makros.

Die Dokumentation hier deckt die Möglichkeiten nur oberflächlich ab und bezieht sich vor allem auf die Funktionen, die durch oikos ergänzt werden, wie das Einbetten von Bildern. Wir empfehlen als Nachschlagewerk folgende zusätzliche Dokumentationen:

Dokumentation Jinja Templating Sprache

jinja.palletsprojects.com (opens new window)

Diese Dokumentation deckt die umfangreichen Möglichkeiten der Sprache ab und erklärt die Konzepte der Sprache. In Word Vorlagen können dabei die meisten Konzepte einfach verwendet werden. Gewisse komplexere Themen wie Template Inheritance sind in Word aber nicht möglich.

Dokumentation Word Templating mit Jinja

docxtpl.readthedocs.io (opens new window)

In dieser Dokumentation sind die allgemeinen Erweiterung im Word-Templating dokumentiert. Hier sind vor allem die Möglichkeiten spannend, um tabellarische Darstellungen zu erstellen. Weiter unten in dieser oikos Dokumentation finden sie auch ein Beispiel eines Word Reports mit tabellarischer Darstellung.

# Felder mit mehreren Werten

Wenn Sie als JSON exportieren, können Sie die Felder, die wir verwenden können, sowie die Werte dieser Felder sehen. Diese Felder werden auf diese Weise dargestellt, weil sie mehr als einen Datensatz enthalten können.

Sie können diese Felder direkt auf diese Weise verwenden, oder Sie können sie im Wortentwurf mit Schleifen verwenden. Nehmen wir zum Beispiel an, dass es in der Exportdatei als JSON folgende Datensätze gibt:

"images": [
  {
    "filename": "bild1.jpg"
  },
  {
    "filename": "bild2.jpg"
  },
  {
    "filename": "bild3.jpg"
  }
]

Sie können Schlüsselbegriffe direkt im Entwurf als images[0].filename verwenden. Um eine Schleife zu verwenden, anstatt alle Daten einzeln zu drucken, können Sie einen Ausdruck wie den folgenden verwenden:

{{ item.images|multiple("filename") }}

Auf diese Weise wird sichergestellt, dass jeder "Dateiname"-Wert in eine neue Zeile geschrieben wird.

bild1.jpg
bild2.jpg
bild3.jpg

Ein weiteres Anwendungsbeispiel:

"images": [
  {
    "created_by.username": "admin"
  },
  {
    "created_by.username": "archiv_personal"
  },
  {
    "created_by.username": "institution_personal"
  }
]
{{ item.images|multiple("created_by__username") }}

Gibt Ihnen die Ausgabe mit den folgenden Benutzernamen, die hintereinander geschrieben werden.

admin
archiv_personal
institution_personal

# Verwendung von Bildern

Wenn Sie die Bilder in der Word-Vorlage anzeigen möchten, müssen Sie einen speziellen Filter namens render verwenden. Word-Dateien müssen wissen, in welcher Grösse das Bild dargestellt wird. Diese Methode resize wird an das Word-Dokument übergeben und Ihr Bild wird basierend auf diesen Informationen dargestellt. Die Größe des Bildes kann in Millimetern angegeben werden. Sie können die Grösse des Bildes mithilfe der Word-Lineale bestimmen. Die angegebene Grösse wird nur auf die Breite des Bildes angewendet. Die Höhe des Bildes wird automatisch bestimmt. Standardmässig wird sie so dargestellt, wie sie auf der Detailseite angezeigt wird.

Beispiel:

item.images|render

Sie können den render-Filter auch mit einer beliebigen Bild-URL verwenden.

Beispiel:

image.original|render
image.original|render(width=150) # 150 Millimetern

# Beispiel mit Export von Relationen

Nachfolgend ist ein komplexeres Beispiel, welches folgendes illustrieren soll:

  • Beispiel für den Zugriff auf Relationen. Im Beispiel mit item.geolocation_relations auf Geographische Orte.
  • Umsetzung von for-Loops. In diesem Fall über diese Relationen.
  • Beispiel im Umgang mit ungewolltem Whitespace: die Ausdrücke ({% .. %}) können auf der gleichen Zeile vor den Inhalt (z.B. Überschrift) gesetzt werden.
  • Beispiel Einfärbung von Ausdrücken: es wird empfohlen, die zusammengehörenden Ausdrücke einzufärben um die Übersicht zu behalten. Innerhalb der Ausdrücke haben die Farben keine Relevanz.

Beispiel mit Iteration von Relationen

Download: example-relations.docx

{% for item in data %}#{{ item.id }} {{ item.title }}

Dateninhaber: {{ item.ownership.title }}
{{ item.images|render }}

{% if item.geolocation_relations %}Geographische Orte
{% for relation in item.geolocation_relations %}{{ relation.geolocation.properties.label }} ({{ relation.type.label }}): {{ relation.geolocation.geometry.coordinates[0][0] }} / {{ relation.geolocation.geometry.coordinates[0][1] }}{% endfor %}
{% endif %}

{% endfor %}

# Analyse der Datenstruktur

Um herauszufinden, welche Daten verwendet werden können und wie sie genau in der Datenstruktur erreichbar sind, kann der JSON Export verwendet werden. Die Daten, die im JSON-Export heruntergeladen werde können, werden 1:1 für den Word-Export verwendet.

Siehe Kapitel JSON-Export

# Weitere Informationen

Sie können auch ein Beispiel-Word-Dokument zum Starten hier finden: Klicken Sie hier zum Herunterladen.

Example Image