Passwort vergessen? Registrieren
Unsere Lösung

Diese Lösung ist eine erweiterte und detailliertere Version des Artikels How to time a virtual race, der die Grundlagen für ein virtuelles Rennen beschreibt.

Erfassung / Berechnung von Zeiten

Für jede Disziplin legen wir ein eigenes ZTF an, daher benötigen wir drei ZTFs, die wir VirtualSwim, VirtualBike und VirtualRun nennen. 

Anschließend erstellen wir 4 (spezielle) Ergebnisse. Je eines für jede Disziplin (SwimTime, BikeTime und RunTime), die den Inhalt des ZTF in eine Zeit kovertieren. Hierfür verwenden wir die Funktion TimeFromString(). Außerdem erstellen wir ein weiteres Ergebnis, in dem wir die Gesamtzeit (TotalTime) über die Funktion TSum() berechnen.

Für die Platzierungen und Ausgabelisten möchten wir das Standard-Zielergebnis verwenden, um zu bestimmen, wer alle Disziplinen absolviert hat. Da die Formel TSum in unserer TotalTime immer ein Ergebnis produziert, würde es alle Teilnehmer von vornherein als "ImZiel" markieren. Aus diesem Grund benötigen wir ein weiteres Ergebnis, in dem wir bestimmen, wer tatsächlich "ImZiel" ist, also alle Disziplinen absolviert hat.

Hierfür legen wir ein weiteres Ergebnis an und verwenden hierbei folgende if()-Bedingung:

If(T1>0;1)

Diese Formel schaut, ob die Zeit in Ergebnis 1 (TotalTime) größer als 0 ist. Wenn ja, dann liefert die Formel 1. Da in der Formel kein Parameter angegeben ist für den Fall, dass die Bedingung nicht zutrifft, liefert sie in diesem Fall nichts (leerer Wert). Daher verwenden wir dieses Ergebnis als unser Zielergebnis.

Aufbau Platzierungen

Da wir das Zielergebnis verwenden, können wir die den Standardaufbau für die Gesamt- (OverallRank), M/W- (GenderRank) und Altersklassenplatzierung (AgeGroupRank) verwenden.

Für unsere einzelnen Abschnitte nutzen wir die Ergebnis-Punkt-Logik sowohl für den Filter als auch für die Sortierung. Wir gruppieren nach dem Wettbewerb und dem Geschlecht, da die einzelnen Abschnitte nach Geschlechtern getrennt gewertet werden.

So setzen wir bspw. für unseren SwimRank den Filter SwimTime.Positive (nur, wer eine Schwimmzeit eingetragen hat, soll gewertet werden) und sortieren nach SwimTime.Dezimal.

Online-Änderung

In der Aufgabe ging es primär um die Funktionalität, dennoch möchten wir auch eine Lösung präsentieren, die sich von Standard-Anmeldeformularen abhebt. Sämtliche hier vorgestellten Schritte können Sie auch in der regulären Online-Anmeldung anwenden. Werfen Sie hier einen Blick auf unsere Online-Änderung.

Um das Formular noch weiter zu personalisieren, an das Markenbild des Veranstalters anzupassen, o.ä. können Sie beliebig weitere HTML-Zeilen einfügen oder CSS verwenden. Die Möglichkeiten sind nahezu grenzenlos.

Die Online-Änderung besteht aus 2 Hauptabschnitten. Im ersten geben wir dem Teilnehmer einen Überblick über seine persönlichen Daten. Im zweiten Abschnitt geben wir dem Teilnehmer jeweils die Möglichkeit, die Zeiten für seine Disziplin einzutragen.

Für alle zusammenhängenden Daten verwenden wir die sog. PICBOX (Formular-Felder PICBOXSTART und PICBOXEND). Dies erstellt einen Rahmen um die Daten, was dem Formular eine bessere Struktur verpasst. Vor jeder PICBOX fügen wir für eine noch bessere Übersicht einen <Absatz/Text breit> ein.

Wir haben 4 Boxen erstellt, eine für die Teilnehmerdaten und jeweils eine je Disziplin. Im ersten Formular-Feld nach PICBOXSTART fügen wir einen <Absatz/Text breit> ein, der die Überschrift für die Box darstellt. Für die Struktur geben wir den Überschriften eine weiße Schrift auf rotem Grund und setzen das Format auf Fett. Dies richten wir in den erweiterten Einstellungen des Formular-Feldes ein.

Da wir Teilnehmern nicht erlauben, ihre Daten zu ändern, definieren wir das Pflichtfeld als Nicht editierbar, so dass die Daten lediglich angezeigt werden.

Innerhalb der PICBOX greifen wir auf die Bilder zurück, die in der Datei gespeichert sind. Hierfür legen wir ein <Bild>-Formular-Feld an und geben bei der Bezeichnung den Dateinamen des Bildes an. Bilder in der Picbox werden automatisch linksbündig angezeigt und (Daten-)Felder werden rechts von dem Bild dargestellt.

Für die Eingabe der Zeiten möchten wir 2 Dinge sicherstellen. Daten sollen im richtigen Format eingegeben werden, und die Zeiten sollten realistisch sein. Um beides umzusetzen, definieren wir weitere Einstellungen für die ZTFs.

Zunächst nutzen wir die Spezialfunktion Zeiteingabe (HH:MM:SS). Dies bewirkt, dass das Eingabefeld in Form von 3 Dropdown-Menüs erscheint, um die Zeit im Format hh:mm:ss einzugeben.

Außerdem legen wir eine Validierungsregel für jedes ZTF fest. In der Validierungsregel verwenden wir wieder die TimeFromString()-Funktion und vergleichen somit das ZTF mit einem Zeitwert. Um den Zeitwert besser lesen und eingeben zu können, fügen wir ihn in eckigen Klammern ein. Andernfalls müssten wir das Limit in Sekunden angeben. Für das Radfahren ist eine minimale Zeit von 25 Minuten vorgegeben, die Validierungsregel sieht dann wie folgt aus:

TimeFromString([VirtualBike])>[25:00]

Für Teilnehmer, die einen niedrigeren Wert eingeben möchten, können wir eine Validierungs-Fehlermeldung hinterlegen.

  • RR_Challenge_VirtualRace_Solution.ses
×

Haben Sie eine Frage?

Unser Team berät Sie gern persönlich.

Schreiben Sie uns!

Das Team von RACE RESULT berät Sie gerne zu Ihren individuellen Bedürfnissen, behebt bestehende Probleme und beantwortet Ihre Fragen. Kontaktieren Sie uns jetzt über das Formular.

Wenn Sie eine Support-Frage haben, fügen Sie bitte Ihre Event-ID hinzu!

Ich habe die Datenschutzbestimmungen gelesen.