Last modified by YellowFox_RD on 2025/04/16 12:29

Show last authors
1 Mithilfe einer Maske, die im Admin für einzelne Displays definiert wird, kann man den Inhalt bei jeder Tour/jedem Auftrag in der Übersichtsliste und in der Detailansicht vielfältig gestalten. Es gibt zwei frei definierbare Felder, die jeweils eine Maske bekommen können. Es ist vollkommen frei, nur ein Feld oder beide mit einer Maske zu definieren. Der Unterschied zwischen der beiden Feldern besteht darin, dass, wenn beide definiert sind, das erste ein bisschen prominenter erscheint als das zweite (mit einer größeren Schriftart). Ist dagegen nur ein Feld definiert (egal welches), erscheint es immer an der prominentesten Stelle.
2
3 [[image:1744721474413-533.png||height="303" width="400"]]
4
5 Im Bild oben ist ein Beispiel, wo das erste Feld die Ortschaften beim Tour-Start und dem Tour-Stopp zeigt und das zweite Feld die entsprechenden Kontaktdaten mit Angaben zu der Anzahl der Sendungen an jeweiligen Zielen zeigt.
6
7 [[image:1744787358395-981.png||height="330" width="500"]]
8
9 Hier im Bild oben ist ein Beispiel, das komplexer ist und auch HTML-Formatierung beinhaltet.
10
11 [[image:1744721605609-894.png||height="405" width="500"]]
12
13 Im Admin (Bild oben) definiert man diese Masken unter "Display" im Tab "Aufträge".
14
15 = Syntax =
16
17 Eine Maske besteht aus einer oder mehreren Angaben zu den gewünschten Datenfeldern aus einer Tour/einem Auftrag. Die allgemeine Syntax:
18
19 {{code language="none"}}
20 ${Datenfeld[.Suffix[Parameter][.Suffix[...]]]}[Weitere Datenfelder]
21 {{/code}}
22
23 Ein Datenfeld ist durch ein Schlüsselwort definiert. Außerdem kann fast jedes Datenfeld parametrisiert werden. Mit zusätzlichen Parametern lässt sich ein Datenfeld präzise adressieren und mit freien Texten umrahmen. Ohne Parametern versteht sich ein Datenfeld immer aus einem ersten Ziel in einer Tour (für Ziel-Felder) und aus einer ersten Sendung in einem Ziel (für Sendung-Felder).
24
25 Außerdem kann man Zahl-basierte Datenfelder mit einem Ausgabenformat versehen, um die Darstellung von Zahlen zu präzisieren.
26
27 {{code language="none"}}
28 $int{${Datenfeld};Format}
29 $float{${Datenfeld};Format}
30 $double{${Datenfeld};Format}
31 {{/code}}
32
33 Das Format versteht sich als Standardformat in einer **printf**-Funktion (C++, Java etc.).
34
35 Jedes Datenfeld (mit einigen Ausnahmen) aus einer Tour/einem Auftrag kann in einer Maske abgebildet werden. Hier ist die Liste mit allen möglichen Datenfeldern:
36
37 |**Schlüsselwort**|**Bedeutung**
38 |TourChildrenCount|Die Anzahl aller Ziele.
39 |TourNumber|Text, Tour-Nummer
40 |TourDescription|Text, Tour-Beschreibung
41 |OrderNumber|Text, Auftragsnummer
42 |OrderDescription|Text, Auftragsbeschreibung
43 |OrderName|Text, Kontaktname aus dem Auftrag
44 |OrderCity|Text, Stadt aus dem Auftrag
45 |OrderStreet|Text, Straße aus dem Auftrag
46 |OrderCountry|Text, Land aus dem Auftrag
47 |OrderZipCode|Text, PLZ aus dem Auftrag
48 |OrderHouseNumber|Text, Hausnummer aus dem Auftrag
49 |OrderContact|Text, Kontaktdaten aus dem Auftrag
50 |DestinationChildrenCount|Die Anzahl aller Sendungen im aktuellen Ziel.
51 |DestinationNumber|Text, Nummer aus dem Ziel
52 |DestinationDescription|Text, Beschreibung aus dem Ziel
53 |DestinationPosition|Zahl, Position des Ziels in der Tour: kann mit "int" formatiert werden
54 |ShipmentNumber|Text, Nummer der Sendung
55 |ShipmentDescription|Text, Beschreibung der Sendung
56 |ShipmentPosition|Zahl, Position der Sendung im Ziel: kann mit "int" formatiert werden
57 |ShipmentAction|Text, Aktion der Sendung (Beladen, Entladen oder Dienstleistung)
58 |ShipmentPackageCount|Zahl, die Anzahl der Pakete in der Sendung: kann mit "double" oder "float" formatiert werden
59 |ShipmentUnit|Text, Einheit aus der Sendung
60 |ShipmentName1|Text, Name 1 aus der Sendung
61 |ShipmentName2|Text, Name 2 aus der Sendung
62 |ShipmentContact|Text, Kontaktdaten aus der Sendung
63 |ShipmentStreet|Text, Straße aus der Sendung
64 |ShipmentHouseNumber|Text, Hausnummer aus der Sendung
65 |ShipmentZipCode|Text, PLZ aus der Sendung
66 |ShipmentCity|Text, Stadt aus der Sendung
67 |ShipmentCountry|Text, Land aus der Sendung
68
69 **Parameter für die Datenfelder.**
70
71 |**Suffix**|**Bedeutung**|**Argumente**|**Beispiel**
72 |(((
73 **first**
74
75 **last**
76 )))|(((
77 Definiert die genaue Position eines Elementes aus der Tour:
78
79 * **first** das erste Element bei der übergeordneten Stelle (Ziel oder Tour)
80 * **last **das letzte Element bei der übergeordneten Stelle (Ziel oder Tour)
81
82 Die Reihenfolge von **first **und **last **bestimmt, welches Unterelement angesprochen wird:
83
84 * ein Ziele kann nur eine Suffix beinhalten;
85 * eine Sendungen: von links nach rechts eintretende Suffixes - erst die Position der Sendung im Ziel, dann die Position des Ziels in der Tour.
86 )))|(((
87 **+/-//N//** wo //**N**// ist eine Zahl, die relative Position des Elementes bestimmt:
88
89 * **first+3** das vierte Element vom Anfang
90 * **last-2** das vor vor vorletzte Element
91
92 Wenn nicht angegeben: versteht sich immer als **first**.
93 )))|(((
94 * **${ShipmentCity.first.last-1}** Stadt aus der ersten Sendung, aus dem vorletzten Ziel.
95 * **${ShipmentPackageCount.first+1}** Anzahl von Paketen aus der zweiten Sendung, aus dem ersten Ziel.
96 * **${DestinationNumber.first+2}** Die Nummer des dritten Ziels in der Tour
97 )))
98 |**skip**|Wenn dieses Element nicht ermittelbar ist, werden alle Ausgaben bis zum nächsten gültigen Tour-Element übersprungen.|Ein beliebiger Text. Die Zeichen '.' und '}' sind nicht erlaubt.|(((
99 * **${OrderContact.skip}** Wenn das Element kein Auftrag ist, werden keine Ausgaben generiert.
100 * **${DestinationNumber.first+1.skip keine Nummer vorhanden }** Wenn das zweite Ziel keine Nummer hat, werden keine Ausgaben generiert, stattdessen erscheint der Text '** keine Nummer vorhanden **'.
101 )))
102 |**count**|(((
103 Kombinierbar mit zwei Feldnamen: **TourChildrenCount **oder **DestinationChildrenCount**.
104
105 Gibt die Anzahl der Kinderelemente bei der übergeordneten Stelle.
106
107 * **TourChildrenCount **die Anzahl der Ziele in der Tour
108 * **DestinationChildrenCount **die Anzahl der Sendungen im Ziel
109
110 Wenn die berechnete Zahl eine 0 oder negativ ist, erscheint keine Anzeige.
111 )))|**-//N//** wo //**N**// ist eine negative Zahl, die von der Gesamtzahl subtrahiert wird.|(((
112 * **${TourChildrenCount.count-2}** die Anzahl aller Ziele minus 2
113 )))
114 |**ltext**|Ein beliebiger Text links vom eigentlichen Datenfeld.|(((
115 Ohne Text macht dieses Suffix keinen Sinn.
116
117 Die Zeichen '.' und '}' sind nicht erlaubt.
118 )))|**${TourChildrenCount.count-2.ltext Dazwischen: .rtext Ziele(n)}** Zeigt eine Gesamtzahl aller Ziele minus 2 und schreibt vor und nach der Zahl die entsprechenden Texte. Die Ausgabe wäre bei einer Gesamtzahl 10 für aller Ziele so: '** Dazwischen: 8 Ziele(n)**'.
119 |**rtext**|Ein beliebiger Text rechts vom eigentlichen Datenfeld.|(((
120 Ohne Text macht dieses Suffix keinen Sinn.
121
122 Die Zeichen '.' und '}' sind nicht erlaubt.
123 )))|
124 |**range**|Das Datenfeld wird in einem angegebenen Bereich bei allen Zielen wiederholt. Die Suffix "range" ersetzt die Adressierung eines Ziels (sowohl bei Ziel- als auch bei Sendungsfeldern).|//**+N-M**// wo //**N**// ist eine positive Zahl, die den Abstand zum Anfang aller Ziele bestimmt und //**M**// ist eine negative Zahl, die den Abstand zum letzten Ziel festlegt.|**${ShipmentName1.first.range1-1}** Zeigt einen Sendungsnamen aus allen ersten Sendungen, die zwischen dem zweiten und dem vorletzten Ziel liegen.