Felder, Ausdrücke und Funktionen

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)

Mail

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

KTNXWie KTN, aber mit den letzten 3 Ziffern ersetzt durch X
IBANX

Wie IBAN, aber mit den letzten 3 Ziffern ersetzt durch X

StatusTextGibt die Beschreibung des Status gemäß des Feld Status wieder (DSQ, DNF, etc.)
ZufallGibt 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
NameDerPlatzierung

Die Platzierung des Teilnehmers gemäß Definition, z.B. 47
Der Name der Platzierung kann ebenso verwendet werden, zum Beispiel MWPl.

PlatzX.p
NameDerPlatzierung.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
NameDerPlatzierung.max

Die Anzahl Teilnehmer in der gleichen Kategorie, z.B. 495.
Mit PlatzX.max können Sie bspw. folgendes erstellen: 47. von 495

PlatzX.Top.Y

NameDerPlatzierung.Top.Y

Das Feld Y des Erstplatzierten gemäß Platzierung X.
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.
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.
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.
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
MWx.DezimalZeit2
MWx.DezimalZeit3
MWx.DezimalZeit4

Dezimalzeit der Mannschaft.

MWx.Zeit1
MWx.Zeit2
MWx.Zeit3
MWx.Zeit4

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
MWx.DecimalTimeTop2
MWx.DecimalTimeTop3
MWx.DecimalTimeTop4

Dezimalzeit der ersten Mannschaft innerhalb der Wertung.

MWx.DecimalTimePrev1
MWx.DecimalTimePrev2
MWx.DecimalTimePrev3
MWx.DecimalTimePrev4

Dezimalzeit der vorigen Mannschaft innerhalb der Wertung.

MWx.TimeTextTop1
MWx.TimeTextTop2
MWx.TimeTextTop3
MWx.TimeTextTop4

Formatierte Zeit der ersten Mannschaft innerhalb der Wertung.

MWx.TimeTextPrev1
MWx.TimeTextPrev2
MWx.TimeTextPrev3
MWx.TimeTextPrev4

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 Email 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.

TMin(1;10) - liefert die kleinste Zeit der Ergebnisse mit den IDs von 1 bis 10.

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

Type  

 

   
Rechenoperatoren + (Addition) - (Subtraktion) * (Multiplikation) / (Division)
  \ (Division ganzer Zahlen) % (Rest nach Division ganzer Zahlen) ^ (Potenzieren) : (Time Operator)
         
Vergleichsoperatoren < (kleiner) > (größer) = (gleich) <> (ungleich)
  <= (kleiner oder gleich) >= (größer oder gleich)    
         
Logische Operatoren OR  XOR (eines oder das andere) AND  
         
Mengen-Operatoren  IN NIN (not in)    

 

       
Ablauf-Funktionen if() switch() choose()  
         
String-Funktionen left() right() mid() instr()
  instr2() val() len() lcase()
  ucase() trim() string() replace()
  reduceChars() removeAccents() chr() asc()
  ordinal() similarity() CorrectSpelling() stringCount()
  SplitString()      
         
Mathematische Funktionen int() sqrt() quersumme() abs()
  round() speed() pace()  
         
Zeit-Funktionen TCount() TCountIf() TSum() TRSum()
  TMin() TRMin() TMinID() TMinName()
  TAvg() TRAvg() TMax() TRMax()
  TMaxID() TMaxName() TFirst() TRFirst()
  TFirstName() TFirstID() TLast() TRLast()
  TLastID() TLastName() T() TR()
  TName() TText() TPrev() DMaxMin()
  TMinIf() TMaxIf()    
         
Konvertierungsfunktionen urlencode() NumberToWords() ZahlInWort() TimeFromString()
  md5() crc7()    
         
Zeit- und Datumsfunktionen format() date() now() ElapsedTime()
  AgeOnDate()      
         
Überprüfungsfunktionen inRange() isNumeric() isAlpha() hasChip()
  search() isUCICode() isUCIID() hasEntryFee(entryFeeID)
  isEligible() isValidEmail()    
         
Datensatzübergreifende Funktionen BunchTime() GapTimeTop() GapTimePrev() TeamGapTimeTop()
  TeamGapTimePrev() DCount() DSum() DMin()
  DAvg() DMax() DFirst() DLast()
  DConcat() DQuantile()    
         
Andere Functions nz() min() max() first()
  last() table() Setting() GetSex()
  translate() rank(x) Text() ChangeLink()
         
Auswertungsfunktionen AgeGradedOC2015() AgeGradedLevel2015() AgeGradedFactor2015()  
  AgeGradedOC2020() AgeGradedLevel2020() AgeGradedFactor2020()  

 

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

Die Feld-Auswahl erscheint an zahlreichen Stellen in der race result Software unter Einstellungsfeldern, z.B. in den Einstellungen von Listen oder bei der Definition von Platzierungen. Sie ermöglicht die einfache Auswahl von Felder, die z.B. auf einer Liste angezeigt werden sollen.