Felder können gespeicherte Daten sein oder Daten, die aus anderen Daten berechnet werden, wie zum Beispiel Platzierungen.
Mit Ausdrücken und Funktionen können Sie verschiedene Felder kombinieren und verändern, Berechnungen durchführen und das Ergebnis z.B. auf Listen oder Urkunden anzeigen. Beispielsweise liefert ein Checkboxfeld den Wert 1, wenn es angeklickt ist und 0 andernfalls. Mit einem Ausdruck können stattdessen ja/nein oder X/- angezeigt werden.
Syntax
Definition von Syntax (Programmiersprache): Die Syntax einer Computersprache ist das System aus Regeln, das die Kombination von Symbolen definiert, die als korrekt strukturiertes Dokument oder Teilstück einer Sprache angesehen werden.
Definition von Syntax: Die Anordnung von Symbolen und Zeichen für die Erstellung von Ausdrücken oder Funktionen.
Symbole und deren Namen
Die folgenden Zeichen werden bei der Erstellung von Ausdrücken und Funktionen verwendet.
[ |
Eckige Klammer auf |
] | Eckige Klammer zu |
( | Klammer auf |
) | Klammer zu |
" | Anführungszeichen |
| | senkrechter Strich |
& | kaufmännisches Und |
{ | Geschweifte Klammer auf |
} | Geschweifte Klammer zu |
; | Semikolon |
: | Doppelpunkt |
# | Raute |
Wann Sie welches Symbol verwenden sollten
Wann verwenden wir Eckige Klammern?
Eckige Klammern werden verwendet, wenn ein Feld innerhalb eines Ausdrucks oder einer Funktion referenziert wird.
Beispiel: Um den Wettbewerb eines Teilnehmers zu erfahren, schreiben wir:
[Wettbewerb]
Beispiel: Um den Wettbewerb eines Teilnehmers mit einer bestimmten Wettbewerbs-ID zu vergleichen, schreiben wir:
[Wettbewerb] = 1
Wenn ein Teilnehmer in Wettbewerb 1 ist, erhalten wir bei Verwendung von [Wettbewerb] den Wert 1 zurück. Dadurch wird der Ausdruck korrekt, da 1 = 1 korrekt ist. Dies können wir zum Beispiel als Bedingung in einer if()-Formel verwenden oder in einem Filter.
Wann verwenden wir Klammern?
Klammern werden verwendet, um Parameter innerhalb einer Funktion zusammenzufassen.
Beispiel: Mittels einem if()-Statement wollen wir "ja" ausgeben, wenn ein Teilnehmer in Wettbewerb 1 ist, andernfalls "nein". Hierfür schreiben wir:
if([Wettbewerb]=1;"ja";"nein")
In diesem Beispiel verwenden wir die Klammern, um die zum if-Statement zugehörigen Parameter zusammenzufassen.
Klammern können auch verwendet werden, um die Reihenfolge von Operationen zu bestimmen, dies ist aus der Mathematik bekannt.
Beispiel: In einem Rennen mit einer variablen Anzahl Runden gibt es eine Auftaktrunde von 1km, die restlichen Runden sind 10 Kilometer lang. Um die absolvierte Strecke zu berechnen, benötigen wir mehrere Berechnungen, die wir wie folgt kombinieren und durch Verwendung von Klammern strukturieren:
(([AnzahlRunden]-1)*10)+1
Zunächst bestimmen wir, wie viele vollständige Runden ein Teilnehmer absolviert hat, wofür wir 1 von dem Datenfeld [AnzahlRunden] subtrahieren. Nun mulitplizieren wir diesen Wert mit 10. Abschließend addieren wir noch 1, da jeder Teilnehmer, der mindestens eine Runde absolviert hat, die kürzere Auftaktrunde beendet hat. Hat ein Teilnehmer 5 Runden absolviert, hat er 41 Kilometer zurückgelegt.
Wann verwenden wir Geschweifte Klammern?
Geschweifte Klammern werden verwendet, um den Wert des Datenmulitplikators auf Listen zu referenzieren.
Beispiel: Um auf die Runden 1 bis 3 zurückzugreifen, die als Runde1, Runde2 und Runde3 angelegt sind, schreiben wir:
[Runde{n}]
Wir hängen an den Text "Runde" den Wert des Datenmultiplikators an, der innerhalb der geschweiften Klammern definiert ist.
Geschweifte Klammern werden auch verwendet, um einen String in mehrere Sprachen zu übersetzen.
Beispiel: Wir wollen, dass bei obigem Beispiel "Yes" oder "No" angezeigt wird, wenn die Software oder my.raceresult.com auf Englisch verwendet wird, und "Si" oder "No" auf Spanisch:
if([Wettbewerb]=1;"{EN:yes|ES:si}";"no")
Beachten Sie, dass die Werte für die verschiedenen Sprachen durch einen senkrechten Strich getrennt werden.
Beispiel: Um den Ergebnis-Filter zu aktivieren, müssen Sie das Wort Selector in geschweifte Klammern setzen:
{Selector}.Zeit.Positiv
Wann verwenden wir Anführungszeichen?
Anführungszeichen werden verwendet, um einen String (Zeichenkette) zu referenzieren.
Definition von String: Ein String ist eine endliche Folge von Zeichen (z. B. Buchstaben, Ziffern, Sonderzeichen und Steuerzeichen) aus einem definierten Zeichensatz.
Beispiel: Um alle Teilnehmer mit dem Vornamen Max zu finden, können wir folgenden Filter verwenden:
[Vorname] = "Max"
Max ist in Anführungszeichen geschrieben, da es einen String darstellt, den wir vergleichen möchten. Vorname ist in eckigen Klammern, da es ein Feld ist, dessen Inhalt als String geliefert wird.
Wann verwenden wir ein Semikolon?
Ein Semikolon wird verwendet, um Parameter innerhalb einer Funktion zu trennen.
Beispiel: In einem if-Statement gibt es drei Parameter. Jeder Parameter muss durch ein Semikolon vom nächsten/vorherigen getrennt werden:
if([Wettbewerb]=1;"ja";"nein")
Wir überprüfen hier, ob der Wettbewerb = 1 ist. Wenn ja, dann liefert der Ausdruck "Ja", andernfalls "Nein".
Wann verwenden wir ein kaufmännisches Und?
Ein kaufmännisches Und wird verwendet, um Ausdrücke, Funktionen oder String miteinander zu verketten.
Beispiel: Um an den String "Max" das Datenfeld [Nachname] zu hängen, schreiben wir:
"Max " & [Nachname]
Ist der Nachname "Mustermann", würde dieser Ausdruck "Max Mustermann" liefern. Beachten Sie, dass das Leerzeichen im Auftaktstring enthalten ist.
Wann verwenden wir die Raute?
Eine Raute bedeutet, dass der nachfolgende Ausdruck Volltext ist. Somit müssen keine Anführungszeichen um einen String gesetzt werden und kein kaufmännisches Und zum Verketten von Inhalten verwendet werden. Felder und Funktionen müssen allerdings in eckige Klammern gesetzt werden.
Beispiel: Das vorherige Beispiel kann auch über folgenden Ausdruck erreicht werden:
#Max [Nachname]
Ausdrücke
RACE RESULT 12 unterstützt zwei unterschiedliche Arten von Ausdrücken. Bei normalen Ausdrücken stehen feste Texte in Anführungszeichen und Felder, Funktionen oder benutzerdefinierte Felder/Funktionen in eckigen Klammern. Der Text-Operator & verbindet die einzelnen Teile miteinander:
"Mein Name ist " & [Vorname] & " " & [Nachname]
Wenn Sie diesen Ausdruck auf einer Urkunde einfügen, könnte dort z.B. stehen: Mein Name ist Max Mustermann
Bei so genannten Volltext-Ausdrücken schreiben Sie einfach einen Text, in dem Felder, Funktionen und benutzerdefinierte Felder/Funktionen in eckigen Klammern ersetzt werden. Um zu kennzeichnen, dass es sich um einen Volltext-Ausdruck handelt, muss eine Raute vorangestellt werden. Der obige Ausdruck entspräche:
#Mein Name ist [Vorname] [Nachname]
Sie können in Ausdrücken ebenfalls Funktionen, benutzerdefinierte Funktionen, Operatoren und benutzerdefinierte Felder verwenden.
Felder
Felder können in Datenfelder, in denen Daten wie Nachname oder Verein gespeichert werden, und Felder, die aus anderen Daten wie Platzierungen berechnet werden, unterteilt werden.
Felder können entweder direkt in Listen oder Urkunden angezeigt werden, oder in Ausdrücken verwendet werden. Sie können einfach über die Feld-Auswahl ausgewählt werden.
Einige Felder verwenden die sog. Punkt-Logik. Bei der Punkt-Logik wird für Felder, die im gleichen Kontext stehen, das gleiche Präfix verwendet. Untergeordnete Parameter können dann getrennt durch einen Punkt angehängt werden. Wettbewerb verfügt bspw. über viele verschiedene Parameter, die angehängt werden können, z.B. Wettbewerb.Name oder Wettbewerb.Länge.
Datenfelder der Teilnehmer
Die Datenfelder der Teilnehmer beziehen sich jeweils auf einen eindeutigen Teilnehmerdatensatz.
Den Inhalt der folgenden Datenfelder können Sie für jeden Teilnehmer eingeben oder importieren:
Feld | Typ |
Startnr | int |
Nachname |
string (100) |
Vorname |
string (100) |
Titel |
string (15) |
Jahrgang |
int |
Geburtstag | date |
Geschlecht |
string (2) |
Nation |
string (50) |
Wettbewerb | int |
Verein |
string (100) |
Lizenz |
string (25) |
Status | int |
Kommentar |
string (*) |
Transponder1 |
string (40) |
Transponder2 |
string (40) |
RegNr |
int |
Straße |
string (100) |
PLZ |
string (10) |
Ort |
string (50) |
Bundesland |
string (3) |
Land |
string (50) |
string (100) |
|
Telefon |
string (50) |
Handy |
string (255) |
Kontoinhaber* |
string (50) |
KTN* |
string (12) |
BLZ* |
string (12) |
Bank* |
string (50) |
IBAN* |
string (36) |
BIC* |
string (11) |
SEPAMandat* |
string (35) |
*Nur bei eigener Abwicklung der Startgelder oder wenn die Felder in den Formular-Feldern abgefragt werden.
Die folgenden Felder werden automatisch vom System generiert:
Feld | Type |
ID |
int |
Gutschein |
string (20) |
Erstellt | date |
ErstelltVon |
string (25) |
Geändert | date |
SammelAnmPos |
int |
GroupID | int |
Abgeleitete Felder
Abgeleitete Felder können wie herkömmliche Datenfelder verwendet werden, sind allerdings von anderen Datenfelder des Teilnehmers abgeleitet und können nicht geändert werden.
Alter | Abgeleitet von Geburts- und Veranstaltungsdatum |
AlterAm31Dez | Alter des Teilnehmers am 31. Dezember des Veranstaltungsjahres |
Jahrgang2 | Zweistelliger Jahrgang (z.B. 83), abgeleitet vom Geburtsdatum |
NachVorname | Vereint Nach- und Vorname zu bspw. Doe, John |
VorNachname | Vereint Vor- und Nachname zu bspw. John Doe |
KTNX | Wie KTN, aber mit den letzten 3 Ziffern ersetzt durch X |
IBANX | Wie IBAN, aber mit den letzten 3 Ziffern ersetzt durch X |
StatusText | Gibt die Beschreibung des Status gemäß des Feld Status wieder (DSQ, DNF, etc.) |
Zufall | Gibt einen zufälligen Wert zwischen 0 und 1 zurück |
TransponderInChipFile | Sofern vorhanden gibt dieses Feld den Transponder Code zurück, der im Chip File zugeordnet wird |
Datenfelder der Veranstaltung
Sie haben Zugriff auf sämtliche Eigenschaften der Veranstaltung sowie der angelegten Wettbewerbe / Altersklassen. Ein einfacher Anwendungsfall ist die Urkunde: Anstelle des Veranstaltungsdatums als festen Text, fügen Sie das Feld [Veranstaltung.Datum] ein, so dass Sie die Urkunde nächstes Jahr nicht mehr aktualisieren müssen.
Veranstaltung
Veranstaltung | Haupteinstellungen - Veranstaltungsname |
Veranstaltung.Name | Entspricht [Veranstaltung] |
Veranstaltung.ID | ID der Veranstaltung |
Veranstaltung.Datum | Haupteinstellungen - Veranstaltungsdatum von |
Veranstaltung.Datum1 | Haupteinstellungen - Veranstaltungsdatum von |
Veranstaltung.Datum2 | Haupteinstellungen - Veranstaltungsdatum bis |
Veranstaltung.Typ | Haupteinstellungen - Veranstaltungstyp (Sportart) |
Veranstaltung.PLZ | Veranstaltungsort - Postleitzahl |
Veranstaltung.Ort | Veranstaltungsort - Ort |
Veranstaltung.Straße | Veranstaltungsort - Straße |
Veranstaltung.Land | Veranstaltungsort - Land |
Veranstaltung.Währung | Regionseinstellungen - Währung |
Veranstaltung.AttributName | Das entsprechende benutzerdefinierte Veranstaltungsattribut |
Wettbewerb
Wettbewerb | Wettbewerbsnummer, die dem Teilnehmer zugeordnet ist | |
Wettbewerb.Name | Name des zugeordneten Wettbewerbs | |
Wettbewerb.Datum | Datum des zugeordneten Wettbewerbs | |
Wettbewerb.Start | Geplante Startzeit des zugeordneten Wettbewerbs formatiert als hh:mm:ss | |
.Text | Geplante Startzeit des zugeordneten Wettbewerbs formatiert als hh:mm:ss | |
.Dezimal | Geplante Startzeit des zugeordneten Wettbewerbs dezimal | |
Wettbewerb.Zielschluss | Zielschlusszeit des zugeordneten Wettbewerbs formatiert als hh:mm:ss | |
|
.Text | Zielschlusszeit des zugeordneten Wettbewerbs formatiert als hh:mm:ss |
.Dezimal | Zielschlusszeit des zugeordneten Wettbewerbs dezimal | |
Wettbewerb.Länge | Länge des zugeordneten Wettbewerbs | |
.Unit | Verwendete Einheit von Wettbewerb.Länge | |
.Meter | Die Länge des Wettbewerbs als Wert in Metern | |
Wettbewerb.TimeFormat | Das im Wettbewerb verwendete Zeitformat | |
Wettbewerb.TimeRounding | Die im Wettbewerb verwendete Zeitrunding als Wert 1 bis 5 = aufrunden auf die nächste Sek. bis Zehntausendstel -1 bis -5 = abrunden auf die nächste Sek. bis Zehntausendstel 11 bis 15 = kaufmännisch runden auf Sek. bis Zehntausendstel |
|
Wettbewerb.Runden | Anzahl Runden des zugeordneten Wettbewerbs | |
Wettbewerb.MinimaleRundenzeit | Minimale Rundenzeit des zugeordneten Wettbewerbs | |
Wettbewerb.AttributName | Das jeweilige benutzerdefinierte Attribut des zugeordneten Wettbewerbs | |
Wettbewerb.OrderPos | Die Position des Wettbewerbs wie dargestellt im Überblick | |
Teilnahmeberechtigt |
0 wenn der Teilnehmer für den ausgewählten Wettbewerb teilnahmeberechtigt ist 1 wenn der Teilnehmer zu alt 2 wenn der Teilnehmer zu jung ist 4 wenn das Geschlecht nicht stimmt 5 wenn das Geschlecht nicht stimmt und der Teilnehmer zu alt ist 6 wenn das Geschlecht nicht stimmt und der Teilnehmer zu jung ist |
Altersklassen
Altersklasse/Altersklasse1*, Altersklasse2, Altersklasse3 |
ID der zugeordneten Altersklasse, bezogen auf das Altersklassen-Set 1, 2 oder 3 |
AltersklasseX.Name | Name der zugeordneten Altersklasse |
AltersklasseX.Abkürzung | Abkürzung der zugeordneten Altersklasse |
AltersklasseX.ID | Nummer der zugeordneten Altersklasse |
AltersklasseX.OrderPos | Sortierkriterium der Altersklassen. Verwenden Sie dieses Feld, um die Altersklassen wie eingegeben zu sortieren |
*Altersklasse und Altersklasse1 haben dieselbe Funktion und können synonym für alle Ableitungen verwendet werden.
Startgeld
Startgeld |
Startgeld berechnet gemäß der Startgeldeinstellungen |
Grundgebühr | Wie Startgeld, aber ohne zusätzliche Startgelder. |
Zeitfelder
Die folgenden Felder beziehen sich auf das Zielergebnis gemäß der Wettbewerbseinstellungen:
Zeit | Formatierte Zielzeit gemäß der Einstellungen zum Zeitformat. | |
.Existiert | Gibt 1 zurück, wenn eine Zeit oder ein Wert im Zielergebnis vorliegt. | |
.Positiv | Gibt 1 zurück, wenn im Zielergebnis eine Zeit > 0 gespeichert ist | |
.Dezimal | Numerischer Zahlenwert (in Sekunden) des Zielergebnisses | |
|
.Gerundet |
Zahlenwert gerundet gemäß der Einstellungen zur Zeitrundung |
.Text | Zeit formatiert in hh:mm:ss | |
ImZiel | Gibt 1 zurück, wenn im Zielergebnis eine Zeit > 0 gespeichert ist, equivalent zu [Zeit.Positiv] |
Das folgende Feld bezieht sich auf das Startergebnis.
Gestartet | Gibt 1 zurück, wenn im Startergebnis eine Zeit > 0 gespeichert ist. Wenn kein Startergebnis definiert ist, wird 1 zurückgegeben, wenn eine Zeit in dem Ergebnis mit der niedrigsten ID gespeichert ist. |
Die folgenden Felder beziehen sich auf die Startzeiten und Zielschlusszeiten. Die Felder für die Startzeit verhalten sich wie reguläre Ergebnisfelder.
Zeit0 | Zugewiesene Startzeit formatiert gemäß der Einstellungen zum Zeitformat |
Zeit0.Dezimal T0 |
Numerischer Wert (Dezimal) der zugewiesenen Startzeit |
Zeit0.Gerundet TR0 |
Numerischer, gerundeter Wert der zugewiesenen Startzeit gemäß der Einstellungen zur Zeitrundung |
Zielschluss | Zielschlusszeit als numerischer (Dezimal-)Wert |
ZielschlussText | Zielschlusszeit formatiert gemäß der Einstellungen zum Zeitformat |
Im Rohdatenmodus kann auf Rundenzeiten zugegriffen werden, ohne hierfür ein Ergebnis anzulegen (ersetzen Sie Messstelle durch den Namen der Messstelle und X durch die gewünschte Runde). Die Berechnung berücksichtigt die eingestelle Anzahl Runden sowie die dazugehörige minimale Rundenzeit.
Messstelle.LapX | Rundenzeit der Runde X in Sekunden. |
Messstelle.ReadX | Absolvierte Zeit nach Detektion X in Sekunden. |
Messstelle.LapXText | Formatierte Rundenzeit der Runde X gemäß der Einstellungen zum Zeitformat. |
Messstelle.ReadXText | Formatierte absolvierte Zeit nach Detektion X gemäß der Einstellungen zum Zeitformat. |
Felder der Zwischen- / Abschnittszeiten
Jede Zwischen- / Abschnittszeit berechnet automatisch eine Vielzahl an Feldern, die vormals aufwendig in Ergebnissen angelegt werden mussten. Zwischenzeiten und davon abhängige Felder werden über eine Verkettung abgerufen, die immer mit dem Namen der Zwischen-/Abschnittszeit beginnt. Zwischen-/Abschnittszeiten bedienen sich somit der Punkt-Logik. Weitere Felder können abgerufen werden, indem bestimmte Ausdrücke an den Namen der Zwischen-/Abschnittszeit durch einen Punkt getrennt angehängt werden, z.B. [ZwischenzeitName.FeldName].
Möchten Sie auf Daten von der vorherigen oder der nächsten Zwischenzeit zugreifen, erreichen Sie dies durch Anhängen von .Prev oder .Next an die gewählte Zwischenzeit. Durch Anhängen von weiteren Ausdrücken können Sie diese Zeit oder Platzierung in bestimmten Formaten abrufen, z.B. [ZwischenzeitName.Prev.FeldName] oder [ZwischenzeitName.Next.FeldName].
Auf Live-Leaderboards oder zur Überwachung des Rennverlaufs ist es notwendig, auf die letzte verfügbare Zwischenzeit eines Teilnehmers zugreifen zu können. Ersetzen Sie hierfür ZwischenzeitName durch {LastSplit}, wodurch die jeweils aktuellsten Felder der letzten Zwischenzeit gemäß der Reihenfolge im Rennverlauf abgerufen werden können, z.B. [{LastSplit}.FeldName].
Ergebnisfelder
Ergebnisse beinhalten Zahlenwerte, meistens Zeiten in Anzahl Sekunden, können aber auch Punkte, Anzahl Runden oder andere Werte annehmen.
Die Ergebnisfelder verwenden die Punkt-Logik und können entweder duch ZeitX oder NameDesErgebnisses abgerufen werden (ersetzen Sie X durch die ID des gewünschten Ergebnisses, z.B. Zeit5.Dezimal für den Wert im Ergebnis mit ID 5).
Für jedes Ergebnis sind die folgenden Felder verfügbar:
ZeitX NameDesErgebnisses |
Formatierte Zeit gemäß der Einstellungen zum Zeitformat. | |
.Dezimal | Gespeicherter Zahlenwert | |
|
.Gerundet |
Zahlenwert gerundet gemäß der Einstellungen zur Zeitrundung |
.Text |
Formatierte Zeit gemäß der Einstellungen zum Zeitformat |
|
.Positiv | Gibt 1 zurück, wenn in dem Ergebnis eine Zeit > 0 gespeichert ist | |
.Info | Text, der neben der Zeit gespeichert wird, normalerweile Details vom Timing System |
Sie können auch die folgenden Kurzformen verwenden, die nicht die Punkt-Logik verwenden.
Tx | Gespeicherter Zahlenwert (entspricht ZeitX.Dezimal) |
TRx |
Zahlenwert gerundet gemäß der Einstellungen zur Zeitrundung (entspricht ZeitX.Gerundet) |
Platzierungsfelder
Nachdem Sie eine Platzierung mit der ID X angelegt haben, können Sie folgende zusätzliche Felder nutzen.
Platzierungsfelder verwenden die Punkt-Logik, um auf eine Vielzahl an weiteren Feldern zurückgreifen zu können. Es kann jeweils immer PlatzX oder der PlatzierungsName verwendet werden.
PlatzX |
Die Platzierung des Teilnehmers gemäß Definition, z.B. 47 |
PlatzX.p |
Die Platzierung mit einem Punkt am Ende, z.B. 47. |
PlatzX.th NameDerPlatzierung.th |
Die Platzierung als englische Ordinalzahl, z.B. 1st, 2nd, 3rd, 4th. |
PlatzX.max |
Die Anzahl Teilnehmer in der gleichen Kategorie, z.B. 495. |
PlatzX.Top.Y NameDerPlatzierung.Top.Y |
Das Feld Y des Erstplatzierten gemäß Platzierung X. Y kann jedes beliebige Feld sein, [GesPl.Top.Startnr] liefert bspw. die Startnr des Erstplatzierten der Gesamtplatzierung. |
PlatzX.Last.Y NameDerPlatzierung.Last.Y |
Das Feld Y des Letztplatzierten gemäß Platzierung X. Y kann jedes beliebige Feld sein, [GesPl.Last.VorNachname] liefert bspw. den Vor- und Nachnamen des Letztplatzierten der Gesamtplatzierung. |
PlatzX.Prev.Y NameDerPlatzierung.Prev.Y |
Das Feld Y des Vorplatzierten der Platzierung X. Y kann jedes beliebige Feld sein, [GesPl.Prev.Startnr] liefert bspw. die Startnr des Vorplatzierten der Gesamtplatzierung. |
PlatzX.Next.Y NameDerPlatzierung.Next.Y |
Das Feld Y des Nachplatzierten der Platzierung X. Y kann jedes beliebige Feld sein, [GesPl.Next.Startnr] liefert bspw. die Startnr des Nachplatzierten der Gesamtplatzierung. |
Mannschaftswertungsfelder
Nachdem Sie die Mannschaftswertung mit ID X eingerichtet haben, können Sie auf folgende zusätzlichen Felder zugreifen (Sie können MWx hierbei jederzeit durch den Namen der Mannschaftswertung ersetzen, z.B. Mannschaftswertung m/w.Platz).
Die Mannschaftswertungsfelder greifen auf die Punkt-Logik zurück, um auf weitere Informationen zuzugreifen.
MWx.Platz |
Platzierung der Mannschaft, z.B. 13 |
|
|
.p |
Die Platzierung mit einem Punkt am Ende, z.B. 13. |
.th | Die Platzierung als englischer Ordinalwert, z.b. 1st, 2nd, 3rd, 4th. | |
.max | Anzahl gewerteter Mannschaften. | |
MWx.DezimalZeit1 |
Dezimalzeit der Mannschaft. | |
MWx.Zeit1 |
Formatierte Zeit der Mannschaft. | |
MWx.Gewertet |
1, wenn der Teilnehmer gewertet wird, andernfalls 0. Wenn Sie die Option Max. Anzahl Mannschaften: 1 und alle Teilnehmer anz. aktiviert haben, werden nicht alle Teilnehmer gewertet. |
|
MWx.Geschlecht |
Geschlecht aller gewerteten Teammitglieder. 1=nur Männer, 2=nur Frauen, 3=Männer und Frauen |
|
MWx.GeschlechtAlle |
Geschlecht aller Teammitglieder. 1=nur Männer, 2=nur Frauen, 3=Männer und Frauen |
|
MWx.Position |
Position des Teilnehmers innerhalb der Mannschaft. | |
MWx.Nummer |
Mannschaften werden durch dieses Feld nummeriert, wenn es mehrere Teams mit gleichen Namen gibt. | |
MWx.Anzahl |
Anzahl Teammitglieder. | |
MWx.AnzahlFrauen |
Anzahl Frauen in der Mannschaft. | |
MWx.AnzahlGewertet |
Anzahl gewerteter Teammitglieder. | |
MWx.AnzahlFrauenGewertet |
Anzahl gewerteter Frauen in der Mannschaft. | |
MWx.DecimalTimeTop1 |
Dezimalzeit der ersten Mannschaft innerhalb der Wertung. | |
MWx.DecimalTimePrev1 |
Dezimalzeit der vorigen Mannschaft innerhalb der Wertung. | |
MWx.TimeTextTop1 |
Formatierte Zeit der ersten Mannschaft innerhalb der Wertung. | |
MWx.TimeTextPrev1 |
Formatierte Zeit der vorigen Mannschaft innerhalb der Wertung. |
Felder für Online-Payment & Finanzen
Felder mit dem Prefix OP beziehen sich auf das tatsächliche Online-Payment. Nehmen Sie z.B. nach einer erfolgten Anmeldung Änderungen an den Startgeldeinstellungen vor, wirkt sich dies auf [Startgeld] aus, nicht aber auf [OPStartgeld], da zum Zeitpunkt der Anmeldung noch das "alte" Startgeld aktuell war.
Feld | Beschreibung |
OPID |
ID des Zahlungsvorgangs |
OPSaldo | Saldo des Online-Payments (<0: Geld fehlt, >0: zu viel bezahlt) |
OPSaldoDatum | Datum des Saldoeintrages |
OPWährung | Währung des verwendeten Zahlungsmittels |
OPZahlungsmittel |
Verwendetes Zahlungsmittel. 1=ELVD, 2=CCEUR, 3=CCCHF, 4=UEBD, 5=BAR, 6=SPF, 7=PPAL, 8=UEBCH, 9=VOUC, 10=EINZCH, 11=UEBAT, 12=SOFUEB, 13=ELVAT, 14=PPalGBP, 15=PPalUSD, 16=SEPA, 17=CCGBP, 19=SEPADATA, 20=OWNEPay, 21=OwnPPal, 22=OwnWireT, 24=OwnPaysBuy, 25=OwnPaytrail, 26=OwnOnePay , 27=TelrAccount, 28=OwnOnePay Domestic |
OPStartgeld | Das bei der Online-Anmeldung berechnete Startgeld |
OPZuZahlen |
Zu zahlender Betrag in Währung des Zahlungsmittels |
OPGebühren | Gesamte Gebühren für den Bezahlvorgang (in Währung des Zahlungsmittels) |
OPReferenz | Zahlungsreferenz (Verwendungszweck) |
BezahlLink | Link zum Bezahlen eines ausstehenden Startgeldes (seit v12.5 nicht mehr verfügbar) |
Startgeld | Berechnetes Startgeld |
Grundgebühr | Berechnetes Startgeld ohne optionale Startgelder |
StartgeldBezahlt | 1 wenn das Startgeld gezahlt wurde, 0 andernfalls |
Zahlung | Die Höhe des bezahlten Startgeldes |
Kontoinhaber | Bankverbindung des Teilnehmers (nur bei eigener Zahlungsabwicklung) |
KTN | Bankverbindung des Teilnehmers (nur bei eigener Zahlungsabwicklung) |
KTNX | Kontonummer mit den letzten 3 Ziffern durch X ersetzt (nur bei eigener Zahlungsabwicklung) |
BLZ | Bankverbindung des Teilnehmers (nur bei eigener Zahlungsabwicklung) |
IBAN | Bankverbindung des Teilnehmers (nur bei eigener Zahlungsabwicklung) |
IBANX | IBAN mit den letzten 3 Ziffern durch X ersetzt (nur bei eigener Zahlungsabwicklung) |
BIC | Bankverbindung des Teilnehmers (nur bei eigener Zahlungsabwicklung) |
SEPAMandat | Bankverbindung des Teilnehmers (nur bei eigener Zahlungsabwicklung) |
Bank | Bankverbindung des Teilnehmers (nur bei eigener Zahlungsabwicklung) |
Gutscheine
Gutscheine greifen auf die "Punkt-Logik" zurück
Feld | Beschreibung |
Gutschein | Gutschein-Code |
Gutschein.Betrag | Betrag des Gutscheins |
Gutschein.Vermerk | Vermerk des Gutscheins |
Nummerierung in Listen
Platzierungen sind ein nützliches Konzept, da sie, einmal angelegt, überall verwendet werden können - auf Listen, auf Urkunden, in Nachrichten. Allerdings möchte man manchmal auch eine fortlaufende Nummerierung erstellen, ohne dafür eine Platzierung anzulegen.
Stellen Sie sich vor, Sie benötigen eine Liste aller Teilnehmer mit dem Vornamen John. Fügen Sie ganz einfach einen Filter zur Liste hinzu und verwenden Sie Position anstelle der Platzierung.
Das sieht soweit schon gut aus, allerdings soll die Nummerierung für das 5km-Rennen erneut bei 1 beginnen. Hierfür verwenden Sie Position1, wodurch die Nummerierung wieder bei 1 anfängt, wenn sich das höchste Gruppierungskriterium ändert. Mit Position2 würde die Nummerierung wieder bei 1 beginnen, wenn sich entweder das höchste oder zweithöchste Gruppierungskriterium ändert.
Sonstige
Sonstige Datenfelder
Random | Zufallszahl zwischen 0 und 1. Wird bei jedem Laden des Wertes neu randomisiert. |
CRLF | Fügt \r\n ein, um in einem Textausdruck eine neue Zeile zu erzeugen |
Fields List Reference
Type | ||||
Participant Data Fields | Bib | Lastname | Firstname | Title |
YearOfBirth | DateOfBirth | Gender | Nation | |
Contest | Club | License | Status | |
Comment | Transponder1 | Transponder2 | RegNo | |
Street | ZIP | City | State | |
Country | Phone | CellPhone | ||
Created | Modified | CreatedBy | Language | |
Automatic Fields | ID | AccountOwner | AccountNo | BranchNo |
Bank | IBAN | BIC | SEPAMandate | |
Voucher | Created | Modified | GroupRegPos | |
GroupID | ||||
Derived Fields | Age* | AgeOnDec31 | YearOfBirth2 | StatusText |
LastFirstName | FirstLastName | TransponderInChipFile | Random | |
AccountNoX | IBANX | |||
Country and Nation | Country.Name | Nation.Name | Country.Name.lang | Nation.Name.lang |
Country.IntName | Nation.IntName | Country.Alpha2 | Nation.Alpha2 | |
Country.Alpha3 | Nation.Alpha3 | Country.IOC | Nation.IOC | |
Country.UCI | Nation.UCI | Country.Flag | Nation.Flag | |
Country.Currency | Nation.Currency | Country.isEU | Nation.isEU | |
Country.MultiName | Nation.MultiName | |||
Event Data Fields | Event | Event.Name | Event.ID | Event.Date |
Event.Date1 | Event.Date2 | Event.Type | Event.Country | |
Event.ZIP | Event.Location | Event.Street | Event.Currency | |
Event.AttributeName | ||||
Contest | Contest | Contest.Name | Contest.Date | Contest.Start |
Contest.Start | Contest.Start.Text | Contest.Start.Decimal | Contest.TimeFormat | |
Contest.FinishTimeLimit | Contest.FinishTimeLimit.Text | Contest.FinishTimeLimit.Decimal | Contest.TimeRounding | |
Contest.Length | Contest.Length.Unit | Contest.Length.Meter | Contest.OrderPos | |
Contest.Laps | Contest.MinLapTime | Contest.AttributeName | Eligible | |
Age Groups | AgeGroup.Name | AgeGroup.NameShort | AgeGroup.ID | AgeGroup.OrderPos |
AgeGroup2.Name | AgeGroup2.NameShort | AgeGroup2.ID | AgeGroup2.OrderPos | |
AgeGroup3.Name | AgeGroup3.NameShort | AgeGroup3.ID | AgeGroup3.OrderPos | |
Result Fields | TimeX.Exists | TimeX.Positive | TimeX.Decimal | TimeX.Rounded |
TimeX.Text | TimeX.Info | TimeX.Overwritten | ||
TX | TRX | |||
Time Fields | Started | Finished | ||
Time | Time.Exists | Time.Positive | Time.Decimal | |
Time.Rounded | Time.Text | FinishTimeLimit | FinishTimeLimitText | |
Time0 | Time0.Decimal | Time0.Rounded | ||
Timing Points | TimingPoint.LapX | TimingPoint.ReadX | TimingPoint.LapXText | TimingPoint.ReadXText |
Split fields | SplitName | SplitName.TOD | SplitName.Gun | SplitName.Chip |
SplitName.Sector | LegName | SplitName.Prev.FieldName | SplitName.Next.FieldName | |
.Predicted | .Text | .Decimal | .Rounded | |
.Name | .Label | .OrderPos | ||
Split Ranks | .Overall | .Gender | .AgeGroup | |
.P | .Th | .Max | ||
Split Gaps | .GapTop | .GapPrev | ||
.Top | .Last | .Prev | .Next | |
Split/Leg Calculations | .Exists | .Positive | .SplitCount | .Distance(.Meter/.Km/.Miles) |
.SpeedOrPace | .Speed(.Decimal) | .Pace(.Decimal) | ||
Rank Fields | RankX | RankX.p | RankX.th | RankX.Max |
RankX.Top.FieldName | RankX.Last.FieldName | RankX.Prev.FieldName | RankX.Next.FieldName | |
TeamScore Fields | TSx.Rank | TSx.Rank.P | TSx.Rank.th | TSx.Rank.Max |
TSx.DecimalTime1..4 | TSx.Time1..4 | TSx.Position | TSx.TeamIndex | |
TSx.Scored | TSx.NumberScored | TSx.NumberWomenScored | TSx.NumberWomen | |
TSx.Number | TSx.Gender | TSx.GenderAll | ||
TSx.DecimalTimeTop1..4 | TSx.DecimalTimePrev1..4 | TSx.TimeTextTop1..4 | TSx.TimeTextPrev1..4 | |
TSX.PY.[FieldName] | ||||
Team Lap Race Fields | TSX.LTNumber | TSX.LTMin | TSX.LTAvg | TSX.LTMax |
TSX.LapTimeMin | TSX.LapTimeAvg | TSX.LapTimeMax | TSX.LTMinLap | |
TSX.LTMaxLap | TSX.LTSum | TSX.LTLastLap | TSX.LTEtaps | |
TSX.LTLemans | TSX.LTActive | |||
TSX.LTTeamNumber | TSX.LTTeamNumberWomen | TSX.LapTimeTeamAbs(n) | TSX.LapTimeTeam(n) | |
TSX.LTTeamMin | TSX.LTTeamAvg | TSX.LTTeamMax | TSX.LapTimeTeamMin | |
TSX.LapTimeTeamAvg | TSX.LapTimeTeamMax | TSX.LTTeamMinLap | TSX.LTTeamMaxLap | |
TSX.LTTeamLastLap | TSX.LTTeamSum | TSX.LTTeamTotal | TSX.LTTeamEtaps | |
TSX.LTTeamLemans | TSX.LTTeamLemansBib | TSX.LTTeamPenaltyTime | TSX.LTTeamPenaltyLaps | |
Payment & Finance Fields | OPID | OPBalance | OPBalanceDate | OPCurrency |
OPMethod | OPEntryFee | OPToPay | OPPaymentFee | |
OPUserFee | OPReference | PaymentLink | EntryFee | |
BasicFee | EntryFeePaid | PaidEntryFee | AccountOwner | |
AccountNo | AccountNoX | BranchNo | IBAN | |
IBANX | BIC | SEPAMandate | Bank | |
Voucher | Voucher.Amount | Voucher.Remark |
* Age is calculated based on the Event date.
Operatoren
Folgende Operatoren können Sie in Ausdrücken verwenden:
Rechenoperatoren
Mit diesen Rechenoperatoren können Sie ganz normal rechnen:
+ | Addition |
- | Subtraktion |
* | Multiplikation |
/ | Division |
\ | Division ganzer Zahlen |
% | Rest nach Division ganzer Zahlen = modulo |
^ |
Potenzieren |
( | Klammer auf |
) | Klammer zu |
: | Time Operator, multipliziert den linken Operanden mit 60 und addiert den rechten |
Wollen Sie zum Beispiel Startnummer und Jahrgang addieren und das Ergebnis mit 2 multiplizieren, verwenden Sie diesen Ausdruck;
([Startnr] + [Jahrgang]) * 2
Vergleichsoperatoren
Verwenden Sie dieses Vergleichsoperatoren, um zwei Werte miteinander zu vergleichen:
< | kleiner |
> | größer |
= | gleich |
<> | ungleich |
<= | kleiner oder gleich |
>= | größer oder gleich |
Logische Operatoren
Mit logischen Operatoren können Sie Bedingungen miteinander kombinieren, beispielsweise in Filtern. Folgende Operatoren stehen zur Verfügung:
- OR (mindestens einer der Werte ist gültig)
- XOR (Einer der beiden Werte ist wahr, nicht aber beide)
- AND
Mengen-Operatoren
- IN
- NIN (NOT IN)
Sie können mehrere Werte durch Kommata trennen.
Beispiele:
[Wettbewerb] IN "2,4,8-10"
[Nachname] NIN "Müller,Meier,Hansen"
Funktionen()
Funktionen stellen in Ausdrücken weitere Funktionalitäten zur Verfügung. Nach dem Funktionsnamen folgen immer die Parameter in Klammern, getrennt durch Semikolons:
Funktionsname(Parameter1; Parameter2; Parameter3; ...)
Ablauf-Funktionen
String-Funktionen
Mathematische Funktionen
Zeit-Funktionen
Mit Zeit-Funktionen können Sie verschiedene Einzelergebnisse vergleichen und berechnen.
Die meisten Zeit-Funktionen verwenden das Format TFunktion(a;b), wobei a und b die Spanne der Ergebnis IDs definieren, die für die Berechnung berücksichtigt werden, z.B.
Einige Funktionen haben weitere Parameter, die zusammen mit der jeweiligen Funktion näher erläutert werden.
Konvertierungsfunktionen
Zeit- und Datumsfunktionen
Überprüfungsfunktionen
Datensatzübergreifende Funktionen
Andere Funktionen
Auswertungsfunktionen
Übersicht der Funktionen
Benutzerdefinierte Felder
Benutzerdefinierte Felder erlauben, beliebigen Ausdrücken einen bestimmten Namen zuzuweisen, unter dem sie in der gesamten Veranstaltungsdatei aufgerufen werden können. Sie werden im Hauptfenster -> Teilnehmerdaten definiert.
Standardmäßig ist zum Beispiel das benutzerdefinierte Feld AnzeigeName wie folgt definiert:
trim([Anrede] & " " & [Vorname] & " " & [Nachname])
AnzeigeName wird auf etlichen Listen benutzt, um diesen Ausdruck anzuzeigen. Wenn Sie sich hingegen entschließen, stattdessen auf allen Listen den Ausdruck
UCase([Nachname]) & ", " & [Vorname]
anzeigen zu wollen, können Sie einfach das benutzerdefinierte Feld entsprechend ändern, ohne jede einzelne Liste anpassen zu müssen.
Benutzerdefinierte Funktionen
Genauso wie benutzerdefinierte Felder können Sie ebenfalls Ihre eigenen Benutzerdefinierten Funktionen definieren. Ebenfalls werden diese im Hauptfenster ->Teilnehmerdaten definiert.
Angenommen Sie möchten die Groß- und Kleinschreibung von Wörtern ändern, so dass der erste Buchstabe groß und die restlichen Buchstaben kleingeschrieben werden. Dafür könnten Sie eine Funktion RightCase definieren:
RightCase(x) ucase(left([x];1)) & lcase(mid([x]; 2))
Diese Funktion können Sie nun wie jede andere Funktion verwenden. Dieses Beispiel gibt Raceresult zurück:
RightCase("raCEreSuLt")
Benutzerdefinierte Funktionen können mehrere Parameter haben. Zum Beispiel könnten Sie eine Additionsfunktion add definieren:
add(x;y) [x]+[y]
Die Namen der Parameter können frei gewählt werden. Innerhalb der Definition der Funktion müssen diese genau wie Felder in eckigen Klammern stehen.
Filter
An vielen Stellen in der race result Software finden Sie ein Textfeld zur Eingabe des Filters. Ein Filter ist ein Ausdruck, der entweder true oder false liefert. Er basiert auf Vergleichen, Bereichen und logischen Operatoren.
Feldnamen stehen dabei in eckigen Klammern und Werte (außer Zahlen) in doppelten Anführungszeichen. Z.B.:
[Nachname]="Müller"
Wenn Sie mehrere Filter miteinander verknüpfen wollen, können Sie die logischen Operatoren AND und OR verwenden:
[Nachname]="Müller" AND [Ort]="Hamburg"
Feld-Auswahl
