Befehle für Exportvorlagen – Spickzettel
Du kennst dich mit den Grundlagen für Exportvorlagen schon aus? Dann findest du hier in aller Kürze die passenden Befehle.
Bevor du loslegst
Dieser Artikel dient nur als Spicker, wenn du dich bereits mit Exportvorlagen auskennst. Wir haben dir auch eine ausführliche Anleitung geschrieben, die dir alles im Detail erklärt: Welche Einstellungen kann ich in meinen Exportvorlagen vornehmen?
In diesem Artikel erfährst du, wo du deine Exportvorlage anschließend in Vaira hochladen kannst: Wie kann ich eine Export-Vorlage für einen Workflow hochladen?
Übersicht und Schnellnavigation
- Syntax für normale Datenexports
- Text, Zahl, Datum, Zeitstempel, Benutzer und Auswahlfeld
- Einzelne Fotos aus Foto-Feldern
- Mehrere Fotos aus Foto-Feldern als Galerie
- Skizze aus Vermessungsfeld
- Das Aussehen und die Inhalte deiner Skizzen
- Eine einzelne, spezifische Skizze exportieren
- Fotos aus Vermessungsfeld
- Mehrere Fotos aus Vermessungs-Feldern als Galerie
- Werte aus Listen
- Checkbox-Werte aus Feldern
- Checkbox-Werte aus Listen
- Syntax für Bedingungen
- Syntax für Formatierungen
Syntax für normale Datenexports
Bei den folgenden Befehlen musst du nur die fettgedruckten Werte anpassen. Alles andere darfst du nicht verändern. Nur so kann Vaira mit den Befehlen arbeiten. Achte also bitte darauf, immer den richtigen Klammer-Typ zu nutzen, jedes Anführungszeichen und jedes Komma zu übernehmen.
Tipp für alle, die Programmieren können: innerhalb der -Blöcke kannst du mit normalem JavaScript arbeiten.
Text, Zahl, Datum, Zeitstempel, Benutzer und Auswahlfeld
{% raw %}Diese Feldtypen teilen sich alle den gleichen Aufruf:
{# field("taskID/fieldID") #}
Einzelne Fotos aus Fotofeldern
Bei diesem Feldtyp musst du neben einer auf Bilder angepassten Grundstruktur auch die Breite und Höhe zusätzlich angeben.
{# FOR img IN field("taskID/fieldID") #}
{# IMAGE getImage($img, Breite,Höhe) #}
{# END-FOR img #}
Breite und Höhe werden in cm angegeben, mindestens ein Wert muss angegeben werden, nicht angegebene Werte werden mit undefined angegeben. Wenn du nur einen Wert angibst, bleibt das Seitenverhältnis erhalten; bei Breite und Höhe wird das Bild ggf. verzerrt, um zu passen.
Mehrere Fotos aus Foto-Feldern als Galerie
Das Exportieren von Fotos als Galerie benötigt zunächst ein Kommando direkt vor (bzw. oberhalb) deiner Tabelle. Füge dort den folgenden Code in deine Word-Vorlage ein:
{# EXEC
const imagesPerRow = 3;
var images = field("taskID/fieldID");
gallery = [];
while (images.length > 0) {
gallery.push(images.slice(0, imagesPerRow));
images = images.slice(imagesPerRow);
}
#}
Anschließend folgt die Tabelle:
{# FOR row IN gallery #} |
|
|
{# IMAGE getImage($row[0], 5.5) #} |
{# IF $row.length > 1 #} {# IMAGE getImage($row[1], 5.5) #} {# END-IF #} |
{# IF $row.length > 2 #} {# IMAGE getImage($row[2], 5.5) #} {# END-IF #} |
{# END-FOR row #} |
|
|
Fotos aus Vermessungsfeld
Der Befehl lautet:
{# FOR measurement IN field("taskID/fieldID") #}
{# FOR img IN $measurement.images #}
{# $img.featureId #}
{# IMAGE getImage($img, Breite,Höhe) #}
{# END-FOR img #}
{# END-FOR measurement #}
Mehrere Fotos aus Vermessungs-Feldern als Galerie
Das Exportieren von Vermessungs-Fotos als Galerie benötigt zunächst ein Kommando direkt vor (bzw. oberhalb) deiner Tabelle. Füge dort den folgenden Code in deine Word-Vorlage ein:
{# FOR measurement IN field(“taskID/fieldID”) #}
{# EXEC
const imagesPerRow = 3;
var images = $measurement.images;
gallery = [];
while (images.length > 0) {
gallery.push(images.slice(0, imagesPerRow));
images = images.slice(imagesPerRow);
}
#}
Anschließend die Tabelle:
{# FOR row IN gallery #} |
|
|
{# IMAGE getImage($row[0], 5.5) #} |
{# IF $row.length > 1 #} {# IMAGE getImage($row[1], 5.5) #} {# END-IF #} |
{# IF $row.length > 2 #} {# IMAGE getImage($row[2], 5.5) #} {# END-IF #} |
{# END-FOR row #} |
|
|
Alle Skizzen aus einem Vermessungsfeld
Alle Skizzen aus einem Vermessungsfeld erhält man mit folgendem Befehl:
{# FOR measurement IN field("taskID/fieldID") #}
{# IMAGE getImage($measurement.sketch,Breite,Höhe) #}
{# END-FOR measurement #}
Wichtig: Wenn du Breite und Höhe gleichzeitig angibst, wird der Skizzen-Export gestreckt oder gestaucht, damit es die angegebenen Maße erhält. Das Seitenverhältnis von Breite zu Höhe wird also gezwungen verändert. Wenn du nur Breite oder nur Höhe angibst, zählt dieser Wert und der andere Wert wird entsprechend dem Seitenverhältnis angepasst. Wenn du einen Wert nicht angegeben möchtest, schreibe einfach undefined an seine Stelle, also z.B.: ($measurement.sketch,undefined,5).
In die Schleife kannst du außerdem noch einen oder beide der folgenden Befehle einfügen. Diese ermöglichen dir den Export des Anzeigenamens
{# $measurement.sketch.displayName #}
und den Export der Beschreibung der jeweiligen Skizze.
{# $measurement.sketch.description #}
Wenn du beide mit exportieren möchtest, sieht dein Export-Befehl also am Ende so aus:
{# FOR measurement IN field("taskID/fieldID") #}
{# IMAGE getImage($measurement.sketch,Breite,Höhe) #}
{# $measurement.sketch.displayName #}
{# $measurement.sketch.description #}
{# END-FOR measurement #}
In den beiden optionalen Befehlen musst du keine Änderungen vornehmen.
Das Aussehen und die Inhalte deiner Skizzen
Du kannst deine Skizze noch weiter individualisieren, indem du Parameter durch Komma getrennt in geschweiften Klammern an den Skizzen-Aufruf anfügst.
{# IMAGE getImage($measurement.sketch,17.5, 19, {fullBackground: true, withMarkers: false, withSymbols: true, withLengthsAndAreas: false, withDimensionLines: true}) #}
withMarkers: true
bzw.withMarkers: false
- Das sind die dicken, farbigen Vermessungs-Punkte.
withSymbols: true
bzw.withSymbols: false
- Das sind die Symbole an Bauteilen und Vermessungspunkten.
Tipp: entweder withSymbols: true
und withMarkers: false
oder withSymbols: false
und withMarkers: true
und nicht beide gleichzeitig auf true
, damit die Skizze nicht zu überladen wird.
withDimensionLines: true
bzw.withDimensionLines: false
- Das sind die Bemaßungslinien.
withLengthsAndAreas: true
bzw.withLengthsAndAreas: false
- Das sind die Längenangaben an Teilstücken deiner Vermessung und die Flächengrößen von Polygonen.
fullBackground: true
bzw.fullBackground: false
- Bestimmt, ob die komplette Hintergrundgrafik mit exportiert werden soll (bei
true
) und dabei ggf. die Skizze kleiner exportiert wird, oder ob die Skizze Maximalgröße haben soll und dafür auch Teile der Hintergrundgrafik abgeschnitten werden (beifalse
und als Standardwert auch empfohlen).
- Bestimmt, ob die komplette Hintergrundgrafik mit exportiert werden soll (bei
Eine einzelne, spezifische Skizze exportieren
Wichtig: Diese Funktion kann zu unerwarteten Ergebnissen führen und sollte nur von erfahrenen Nutzerinnen und Nutzern verwendet werden. Da die Ausgabe eine spezifische Skizze basierend auf der Reihenfolge der Vermessungen ausgibt, ist es in den meisten Fällen ausreichend und ratsam, stattdessen dem Kapitel Alle Skizzen aus einem Vermessungsfeld zu folgen und alle Skizzen auszugeben.
Eine bestimmte Skizze aus einem Vermessungsfeld erhält man mit folgendem Befehl:
{# IMAGE getImage(field("taskID/fieldID“)[0].sketch,Breite,Höhe) #}
Breite und Höhe werden in cm angegeben, mindestens ein Wert muss angegeben werden, nicht angegebene Werte werden mit undefined angegeben. Wenn du nur einen Wert angibst, bleibt das Seitenverhältnis erhalten; bei Breite und Höhe wird das Bild ggf. verzerrt, um zu passen.
Optional kannst du außerdem sowohl den Anzeigenamen der Vermessung exportieren
{# $measurement.sketch.displayName #}
als auch die Beschreibung der Vermessung
{# $measurement.sketch.description #}
Werte aus Listen
Das Exportieren von Listen benötigt zunächst ein Kommando direkt vor (bzw. oberhalb) deiner Tabelle. Füge dort den folgenden Code in deine Word-Vorlage ein:
{# EXEC
def = (val) => val ? val: 1;
#}
Der Aufbau deiner Tabelle:
Material | Einheit | Menge | Positionsnummer |
{# FOR item IN field("taskID/listID") #} |
|
|
|
{# $item.asset #} |
{# $item.values.attributeID #} |
{# def($item.values.attributeID) #} |
{# $item.values.attributeID #} |
{# END-FOR item #} |
Den Code kannst du jeweils einfach am Stück schreiben – die Zeilenumbrüche kommen hier nur daher, dass die Tabelle zu klein ist.
Checkbox-Werte aus Feldern
Auch hier musst du vor bzw. oberhalb der Checkbox einen Befehl hinzufügen:
{# EXEC
jaNein = (v) => (v? "Ja": "Nein");
simple = (v) => (v? "X": "_");
retro = (v) => (v? "☒": "☐");
#}
Zum Abrufen einer Box:
{# jaNein(field("taskID/boxID")) #}
Du kannst in deinem Befehl also jaNein auch durch simple oder retro ersetzen, um so die Darstellung zu ändern.
Checkbox-Werte aus Listen
Ganz ähnlich kann man auch Checkbox-Werte aus Listen exportieren. Hier setzt du auch vor bzw. oberhalb der Liste den Code von oben:
{# EXEC
jaNein = (v) => (v? "Ja": "Nein");
simple = (v) => (v? "X": "_");
retro = (v) => (v? "☒": "☐");
#}
Anschließend erstellst du wieder eine Liste, wie du es schon bei Werten aus Listen allgemein gemacht hast:
Material | Fehlerfrei | Verbaut? | Zufrieden? |
{# FOR item IN field("taskID/fieldID") #} |
|
|
|
{# $item.asset #} |
{# jaNein($item.values.boxID) #} |
{# simple($item.values.boxID) #} |
{# retro($item.values.boxID) #} |
{# END-FOR item #} |
In den einzelnen Attribut-Zellen kannst du dann auswählen, wie das (Nicht-)Ankreuzen dargestellt werden soll per jaNein, simple und retro. Die boxID ersetzt du wieder mit der richtigen ID der Box, die du dort abfragen möchtest.
Syntax für Bedingungen
Du kannst auch Einstellungen in deiner Exportvorlage vornehmen, damit bestimmte Werte – wie zum Beispiel eine 0 – auch gar nicht exportiert werden.
Auch bei den folgenden Befehlen musst du nur die fettgedruckten Werte individuell anpassen, der Rest ist allgemeiner Befehls-Code und darf nicht verändert werden.
Bestimmte Werte (nicht) im Export anzeigen
Wenn-Abfrage mit Werten (1. Fall WENN NICHT GLEICH, 2. Fall WENN GLEICH):
{# IF field("taskID/fieldID") != 0 #}
{# field("taskID/fieldID") #}
{# END-IF #}
{# IF field("taskID/fieldID") == 1 #}
{# field("taskID/fieldID") #}
{# END-IF #}
== bedeutet ist gleich.
!= bedeutet ist nicht gleich.
> bedeutet ist größer als.
< bedeutet ist kleiner als.
Wichtig bei Vergleichen mit Worten ist, dass du sie in Anführungszeichen (wie bei "Rohr") setzt. Auf Zahlen hin kannst du auch ohne Anführungszeichen hin abfragen.
{# IF field("taskID/fieldID") == "Rohr"}
{# field("taskID/fieldID") #}
{# END-IF #}
Syntax für Formatierungen
Die Anzahl von Nachkommastellen einstellen
Über den Wert in der Klammer kannst du bestimmen, wie viele Nachkommastellen angezeigt werden soll. Die Zahl wird aufgerundet.
{# Field("taskID/fieldID").toFixed(3) #}