Campos, Expresiones y Funciones

Los Campos contienen datos los cuales pueden ser datos almacenados o datos calculados a partir de otros datos como un rango.

Al usar Expresiones y Funciones puede combinar campos, hacer cálculos, modificar valores, y mostrar el resultado en Listas or Certificados. Por ejemplo, un Campo Adicional de Si/No tiene el valor 1 si se está marcado y 0 en caso contrario. Usando una expresión puede mostrar si/no o X/- en su lugar.

Syntax

Definition of Syntax (programming languages): The syntax of a computer language is the set of rules that defines the combination of symbols that are considered to be a correctly structured document or fragment in that language.

Definition of Syntax: The arrangement of symbols and characters to form expressions or functions.

 

Symbols and their names

The following are symbols used to write Expressions and functions.

[

Open bracket
] Close bracket
( Open or left parenthesis
) Close or right parenthesis
" Quote, quotation mark, or inverted comma
| Pipe, or vertical bar
& Ampersand
{ Open brace, squiggly brackets, or curly bracket
} Close brace, squiggly brackets, or curly brackets
; Semicolon
: Colon
# Hash

 

When to use each symbol

When to use Brackets?

Brackets are used when referencing a Field within an Expression or a function.

Example: If we want to reference a participant's Contest we would do this

[Contest]

Example: If we want to compare a participant's Contest to see if it matches a specified contest id we need to do this

[Contest] = 1

If a participant is in contest 1 when we reference [Contest] with the use of brackets we will get the value of 1 back. This would evaluate the above example as true because 1 does equal to 1.

 

When to use Parentheses?

Parentheses are used to contain parameters within a Function.

Example: If we wanted to write an if statement to return yes if a participant is in contest 1 otherwise return no we could do this

​​​​​​if(​[Contest]=1;"yes";"no")

In the above example, we are using an if statement with parentheses to contain our expression.

Parentheses are also used to define the order of operations.

Example: You have a variable laps race with a parade lap, where the parade lap is 1 mile and a full lap is 10 miles. You want to calculate how many miles each participant completes, including the parade lap. You could use parentheses to define the order of operations for this calculation.

​​​​​(​([NumberOfLaps]-1)*10)+1

First, we want to calculate the number of full laps a participant completes. To do this, we subtract 1 lap (the parade lap) from the NumberOfLaps data field. Then we need to multiply that value by 10 miles. Lastly, we need to add 1 mile for the parade lap. If we were to fill in the above example with 5 laps the result would be 41 miles, which is 4 10-mile laps and 1 parade lap of 1-mile distance. This example assumes that the start/lap/finish timing point is the same for all laps, normal laps and the parade lap.

 

When to use Braces?

Braces are used when referencing the value of a Record Multiplier within a List.

Example: If we wanted to reference laps 1 through 3 and the laps are named Lap1, Lap2, Lap3 under Main Window->Special Results then we could do this

[Lap{n}]

In the above example, we are referencing laps 1 through 3 by appending the text Lap with the value of the record multiplier which is defined within two braces.

Braces are also used to translate strings into different languages.

Example: If we want the example above to display "Yes" or "No" when using the software or my.raceresult.com in English, or "Si" or "No" for Spanish, we would write:

​​​​​​if(​[Contest]=1;"{EN:yes|ES:si}";"no")

Note that the value for the different languages is separated by a pipe.

Braces are also used to call a Splits Selector in an output list.

Example: To call a selector you need to surround the selector with braces like this:

{Selector}.TimePositive

 

When to use Quotes?

Quotes are used to reference a text string.

Definition of String (computer science): A string is traditionally a sequence of characters, either as a literal constant or as some kind of variable.

Example: If we wanted to find all participants with the first name of John then we could set a filter like this

[Firstname] = "John"

In the above example, John is in quotation marks because his name is a String we are trying to compare to. Firstname is in brackets because it is a filed that will return a String value to compare with the String John.

 

When to use a Semicolon?

Semicolons are used to separate parameters within an Function.

Example: In an if statement there are three parameters. Each parameter needs to be separated with a semicolon like this

if([Bib]=1;"yes";"no")

In the above example, we are checking to see if Bib is equal to 1. If Bib is equal to 1 (true) then we return Yes otherwise (false) we return "No".

 

When to use an Ampersand?

Ampersands are used to append one string to another.

Example: If you want to add a string like "John" to a data field like [Lastname] then you can do something like this

"John " & [Lastname]

In the above example if the value of [Lastname] was "Doe" then the returned string would be "John Doe". This is also known as concatenating two strings together.

 

When to use a Hash?

A hash indicates that the expression is full-text. This way, you don't need to use quotes around text strings, and to use ampersands to combine fields, strings and functions. Fields and functions do need to be in square brackets.

Example: You can obtain the same result as above by writing the expression like this:

#John [Lastname]

 

 

 

Expressions

RACE RESULT offers two types of expressions. In Normal Expressions fixed texts will be in quotations marks, fields, functions and user defined fields/functions in square brackets and the text operator & connects several parts:

"My name is " & [FirstName] & " " & [LastName]

If you use this expression on a certificate, it will show for example: My name is John Doe.

Full-Text Expressions, on the other hand, are more suitable for longer texts such as the text of the confirmation email of the online registration. They start with a hash tag (#) and fields, functions and user defined fields/functions will be in square brackets:

#My name is [FirstName] [LastName]

In expressions, you can use FieldsFunctions, User Defined Functions, Operators and User Defined Fields.

Campos

Los Campos se pueden diferenciar entre Campos de Datos, los cuales se usan para almacenar información como Apellido o Club, y campos que contienen valores calculados de otros datos como rango.

Todos los campos se pueden mostrar en listas o certificados directamente o se pueden usar en expresiones. Se pueden seleccionar fácilmente en el Asistente de Campo.

Algunos campos utilizan una lógica de puntos, lo que significa que para los conjuntos de datos que todos hacen referencia al mismo contexto se utiliza el mismo prefijo y parámetros subsiguientes se pueden definir despúes de un período.

Por ejemplo, la Competencia puede tener una variedad de parámetros relacionados con la competencia que se pueden anexar, como Nombre.Competencia o Longitud.Competencia.

 

Campos de Datos del Participante

Los Campos de Datos del Participante son específicos para cada registro individual del participante.

Se pueden introducir o importar los siguientes registros para cada participante.

Campo Tipo
Dorsal int
Apellido

string (100)

Nombre

string (100)

Título

string (15)

Año De Nacimiento

int

Fecha De Nacimiento date
Sexo

string (2)

Nación

string (50)

Competencia int
Club

string (100)

Licencia

string (25)

Estatus int
Comentario

string (*)

Transpondedor1

string (40)

Transpondedor2

string (40)

RegNo

int

Calle

string (100)

CP

string (10)

Ciudad

string (50)

Estado

string (3)

País

string (50)

Correo electrónico

string (100)

Teléfono

string (50)

Tel. Móvil

string (255)

 

El sistema genera automáticamente los siguientes campos durante la creación; vea los enlaces adicionales para obtener más información.

Campo Tipo
ID

int

Titular de la Cuenta

string (50)

No. de Cuenta

string (12)

No. de Sucursal

string (12)

Banco

string (50)

IBAN

string (36)

BIC

string (11)

MandatoSEPA

string (35)

Cupón

string (20)

Creado date
Creado Por

string (25)

Modificado date

RegPosGrupo

int
ID del Grupo int

Campos Derivados

Los Campos Derivados se pueden utilizar como cualquier otro campo de datos, pero se derivan de otros campos del participante y no se pueden modificar.

Edad

Derivado de la fecha de nacimiento y de la fecha del evento

Edad el 31 de Dic

Edad del participante el 31 de diciembre del año del evento

Año De Nacimiento2

two digit year of birth (e.g. 83), derived from date of birth

NombreApellido

Combina el apellido y el nombre, por ejemplo, Doe, John

ApellidoNombre

Combina el nombre y el apellido, por ejemplo, John Doe

No. X Cuenta Como "No. de Cuenta", pero los últimos 3 caracteres se sustituyen por X
IBANX

Como IBAN, pero los últimos 3 caracteres se sustituyen por X

TextoEstatus Devuelve el nombre del estatus según el campo Estatus (DSQ, DNF, etc.)
Aleatorio Devuelve un valor aleatorio entre 0 y 1
TranspondedorEnArchivoDeChip

Si existe, este campo devuelve el código del transpondedor asignado por el Archivo de Chip

Campos de Datos del Evento

También tiene acceso a los muchos atributos del evento y a la competencia o al grupo de edad seleccionado. Un ejemplo de esto sería un certificado de carrera: en lugar de poner la fecha del evento en el certificado como texto fijo, mejor use el campo [FechaEvento] para que no tenga que actualizar el certificado el año siguiente.

Evento

Consultar la configuración en la Ventana Principal - Configuración Basica

Evento Nombre del Evento
Nombre.Evento Funciona igual que [Evento]
ID.Evento ID Evento
Fecha.Evento Fecha de Inicio del Evento
Fecha.Evento1 Fecha de Inicio del Evento
Fecha.Evento2 Fecha de Inicio del Evento
Tipo.Evento Tipo de Evento
Pais.Evento Ubicación del Evento - Pais
CP.Evento Ubicación del Evento - Codigo Postal
Ubicación.Evento Ubicación del Evento - Ciudad
Calle.Evento Ubicación del Evento - Calle
Moneda.Evento Moneda del Evento
NombreAtributo.Evento El correspondiente Atributo definido por el usuario para el Evento

Competencia
 

Competencia ID del concurso asignado por el participante
Nombre.Competencia Nombre de Competencia
Fecha.Competencia Fecha de inicio de la competencia
Inicio.Competencia Hora de inicio de la competencia planificado
  .Texto Formato de la hora de inicio como texto
  .Decimal Formato de la hora de inicio como valor incial
Competencia.TiempoLimiteDeFinalización  

Limite de tiempo de finalización cuando se asigna por concurso

  .Texto Formato limite de tiempo de finalización como texto
  .Decimal Formato limite de tiempo de finalización como valor decimal
Contest.Length  

Duración de concurso tal como se ha escrito

  .Unidades Unidad asignada para Duracion.Competencia
  .Metros La longitud de la competencia como valor en metros
Competencia.FormatoDeTiempo Formato de hora de competencia
Competencia.TiempoRedondeado

Un valor correspondiente al redondeo para arriba de tiempo que se aplicará a la competencia.
1 a 5 = Redondea hasta el segundo a diez milésimas más cercano

-1 a -5 = Redondeo para ABAJO al segundo diez milésima mas cercano
11 a 15 = Redondea hasta el segundo a diez milésimas MAS CERCANO

Competencia.vuelta Numero de vueltas para la competencia
Competencia.TiempoMinVuelta Tiempo minímo de vuelta del concurso
Competencia.NombreAtributo El atributo definido por el usuario correspondiente para el concurso
Admisible

0 si el participante es elegible para la competencia asignada

1 si la edad es mayor que la fecha de nacimiento máxima (DOB)

2 si la edad es inferior a la fecha de nacimiento mínima (DOB)

4 si el género es incorrecto

5 si la edad es mayor que la fecha de nacimiento máxima (DOB) y el género es incorrecto

6 si la edad es inferior a la fecha de nacimiento mínima (DOB) y el género es incorrecto

 

GrupoEdad

 

GrupoEdad/GrupoEdad1*, GrupoEdad2, GrupoEdad3

ID of the participants assigned Age Group, referring to sets 1, 2 and 3 respectively

GrupoEdadX.ID

ID del Grupo de Edad

GrupoEdadX.Nombre

Nombre del grupo de Edad
GrupoEdadX.NombreCorto Nombre Corto del grupo de Edad
GrupoEdadX.OrdenPos La posición del grupo de edad de acuerdo con el pedido en la configuración

 

* GrupoEdad y GrupoEdad 1 funcionan identicamente y se pueden utilizar para todos los derivados.

TarifaEntrada

TarifaEntrada Monto de la tarifa de entrada, la cual se calcula de acuerdo con la Configuración de la Tarifa de Entrada].
TarifaBásica Igual que TarifaEntrada, pero sin considerar las tarifas de entrada opcionales.

Time Fields

The following fields refer to the Contest Finish Result:

Time  

Formatted time according to Time Format settings

  .Exists Returns a 1 if there is a time of any value in the result
  .Positive Returns 1 if a time greater than 0 is saved in the result.
  .Decimal Numerical value saved

 

.Rounded

Numerical value rounded according to Time Rounding settings

  .Text

Time as text formatted hh:mm:ss

Finished Returns 1 if a time > 0 is saved in the result, equivalent to [Time.Positive]

The following fields refer to the Contest Start Result:

Started Returns 1 if a time > 0 is saved in the result, if no start result is defined then this will be true if there is a time in the Result with the lowest ID.

The following refer to Start Times and Finish Time Limits. Fields for the Start Time work in the same way as general Result Fields.

Time0 Assigned Start time formatted according to the Time Format settings
Time0.Decimal
T0
Numerical Value of the assigned Start time
Time0.Rounded
TR0
Numerical Value of the assigned Start time rounded according to Time Rounding settings 
FinishTimeLimit Finish Time Limit as a numerical (decimal) value
FinishTimeLimitText Finish Time Limit formatted as a formatted time according to the Time Format settings

Lap times in Raw Data mode can be accessed without the need to set up individual lap calculations. Replace TimingPointName and X. Lap times considers contest Minimum Lap Time. 

TimingPointName.LapX Lap time of lap X in seconds.
TimingPointName.ReadX Race time after the read X in seconds
TimingPointName.LapXText Formatted lap time X which considers contest rounding settings
TimingPointName.ReadXText Formatted race time X which considers contest rounding settings

Campos de Splits

Cada split y sector calcula automáticamente un gran número de campos, que antes con race result 11 se tenían que crear en Resultados. Los splits y sus campos derivados se invocan usando un string el cual siempre comienza con el nombre del split o el nombre del sector.

Splits utiliza el formato de Dot Logic para todos los campos y todos los campos Split comienzan con el nombre del Split o el nombre del Tramo

por ejemplo: [NombreSplit.NombreCampo]

En ocasiones puede servir acceder a los datos ya sea del split anterior o del siguiente. Para hacer esto, añada .prev o .next al nombre del split y así cualquier otro campo de Splits puede ser invocado de la misma manera.

Por ejemplo: [SplitName.Prev.Fieldname] o [SplitName.Next.FieldName]

Para tablas de posiciones en vivo puede ser útil ingresar los datos del último Split por el que un participante cruzó. Para hacer esto reemplace SplitName con {LastSplit}, esto devolverá los campos del último Split de acuerdo al orden de los Splits en la configuración.

Por ejemplo: [{LastSplit}.FieldName]

 

Campos de Resultados

Los Resultados tienen valores numéricos, los cuales en la mayoría de los casos son tiempos en segundos. Sin embargo, también pueden representar puntos, número de vueltas u otros valores.

Los campos de resultados utilizan la lógica de puntos mediante TiempoX o NombreDelResultado, reemplace X, p. ej. TiempoDecimal5 por el valor en el resultado con el ID 5.

Para cada resultado están disponibles los siguientes campos

TiempoX
NombreDelResultado
 

Tiempo formateado según Formato de Tiempo ajustes

  .Decimal Valor numerico guardado

 

.Redondeado

Valor numerico redondeado de acuerdo con ajustes deRedondeo de Tiempo 

  .Texto

Tiempo como texto formateado

hh:mm:ss

  .Positivo Devuelve 1 si se guarda un tiempo > 0 en el resultado
  .Info Texto guardado junto con la hora, por lo general detalles del sistema de cronometraje

También se pueden utilizar las siguientes versiones cortas, estas no aolican a la Logica de Puntos.

Tx Valor numerico guardado

TRx

Valor numerico redondeado de acuerdo con ajustes de Redondedo de Tiempo 

Campos de Rango

Después de definir la clasificación con el ID X, los siguientes campos adicionales se pueden utilizar.

Los campos de rango usan la lógica de puntos para devolver una variedad de campos, en todos los campos de lógica de puntos se puede utilizar RankX o RankName.

RangoX
NombreDelRango

El lugar del participante de acuerdo a la definición del rango, e.g. 47
También se puede utilizar el nombre del rango, por ejemplo MFRank

RangoX.p
NombreDelRango.p

El lugar con un punto al final, por ejemplo 47.

 

RangoX.th

NombreDelRango.th

El rango como valor ordinal, por ejemplo, 47th

RangoX.Max

NombreDelRango.Max

El número de participantes en el mismo grupo, por ejemplo 495.

MaxRank ayuda a crear un output como: 47 de 495 

RangoX.Top.Y

NombreDelRango.Top.Y

Los datos en el campo Y del primer atleta de acuerdo con el rango especificado.

El campo Y puede ser cualquier nombre de campo

RangoX.Last.Y

NombreDelRango.Last.Y

Los datos en el campo Y del último atleta según el rango especificado.

El campo Y puede ser cualquier nombre de campo

RangoX.Prev.Y

NombreDelRango.Prev.Y

Los datos en el campo y del primer atleta de acuerdo con el rango especificado.

El campo Y puede ser cualquier nombre de campo

RangoX.Next.Y

NombreDelRango.Next.Y

Los datos en el campo Y del alteta anterior según el rango X.

El campo Y puede ser cualquier nombre de campo

Campos de Puntuación por Equipo

Después de definir la Puntuación de Equipo con el ID X, se pueden utilizar los siguientes campos adicionales (tenga en cuenta que siempre puede sustituir TSx con el nombre de la Puntuación del Equipo, por ejemplo Resultados por Equipo M/F.Rank):

Los rangos de puntuación de equipo también usan la Logica de puntos para el formato adicional del rangos.

TSx.Rango

EquipoPuntuacionEquipo.Rango

 

Rango del equipo, p. ej. 13

 

.P

Rango del equipo con un punto al final, p. ej. 13.

  .Th El rango como valor ordinal, p. ej. 13
  .Max Rango máximo otorgado a un equipo en el grupo, o en otros términos, el número de equipos ranqueados en el mismo grupo que el participante considerado.

TSx.TiempoDecimal1
TSx.TiempoDecimal2
TSx.TiempoDecimal3
TSx.TiempoDecimal4

Tiempos decimales del equipo

TSx.Tiempo1
TSx.Tiempo2
TSx.Tiempo3
TSx.Tiempo4

Tiempos formateados del equipo

TSx.Puntuado

1 si el participante fue puntuado, 0 de lo contrario.

Si utiliza la opción Núm. Máx. de Equipos: 1 y mostrar todos los participantes, no todos los miembros serán puntuados.

TSx.Sexo

Sexo de los miembros del equipo puntuados.
1=solo hombres, 2=solo mujeres, 3=hombres y mujeres 

TSx.SexoTodos

Sexo del equipo incluyendo todos los miembros del equipo.

1=solo hombres, 2=solo mujeres, 3=hombres y mujeres 

TSx.Posición

Posición del atleta dentro del equipo, basada en la configuración de los resultados o del orden en la Puntuación de Equipo.

TSx.IndiceEquipo

Número del equipo, si existen varios equipos para el mismo club.

TSx.Número

Número de miembros en el equipo.

TSx.NúmeroMujeres

Número de mujeres en el equipo.

TSx.NúmeroPuntuado

Número de miembros en el equipo puntuados.

TSx.NúmeroMujeresPuntuadas

Número de mujeres en el equipo puntuadas.

TSx.DecimalTimeTop1
TSx.DecimalTimeTop2
TSx.DecimalTimeTop3
TSx.DecimalTimeTop4

Tiempos decimales del primer equipo en la clasificación.

TSx.DecimalTimePrev1
TSx.DecimalTimePrev2
TSx.DecimalTimePrev3
TSx.DecimalTimePrev4

Tiempos decimales del equipo anterior en la clasificación.

TSx.TimeTextTop1
TSx.TimeTextTop2
TSx.TimeTextTop3
TSx.TimeTextTop4

Tiempos formateados del primer equipo en la clasificación.

TSx.TimeTextPrev1
TSx.TimeTextPrev2
TSx.TimeTextPrev3
TSx.TimeTextPrev4

Tiempos formateados del equipo anterior en la clasificación.

Payment & Finance Fields

Fields with the prefix OP refer to the actual Online Payment. If you perform any entry fee changes after a regular registration, it will change [EntryFee] but not [OPEntryFee]. Online Payment Fields always relate to the settings at the time of registration.

Field Explanation

OPID

ID of the payment process
OPBalance Balance of the online payment (<0: not paid completely, >0: paid too much)
OPBalanceDate Date of the balance entry
OPCurrency Currency used for the chosen payment method
OPMethod

Payment Method. 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, 31=Stripe

OPEntryFee Total Entry fee charged through online registration
OPToPay

Amount to pay (currency of the payment method)

OPPaymentFee Total payment fees (currency of the payment method)
OPUserFee

Payment fees covered by the participant.

OPReference

Payment reference.

PaymentLink Link to pay remaining entry fee amount (no longer available since v12.5)
EntryFee Calculated entry fee
BasicFee Calculated entry fee without optional fees.
EntryFeePaid 1 if entry fee has been paid, 0 otherwise
PaidEntryFee Amount of entry fee paid during registration only.
AccountOwner Participant's bank account details.
AccountNo Participant's bank account details.
AccountNoX Account number with the last three digits replaced by X
BranchNo Participant's bank account details.
IBAN Participant's bank account details.
IBANX IBAN with the last three digits replaced by X
BIC Participant's bank account details.
SEPAMandate Participant's bank account details.
Bank Participant's bank account details.

 

Vouchers

Voucher fields use the Dot Logic for subsequent fields

Field Description
Voucher Voucher code used
Voucher.Amount Amount of Voucher
Voucher.Remark Voucher Remark

List Numbering

Rankings are a handy concept since they are defined once and can then be used everywhere - on a list, in a certificate, in a text message. However, sometimes you may want to create a numbered list quickly without creating a rank definition.

Let's assume you need a result list of all participants named John. Simply add a filter to the list and use the field Position instead of the rank:



Looks good, but it should start at 1 again for the 5K race. For that, you can use the field Position1 which will start over at 1 when the highest grouping level changes the value. Position2 would start over at 1 when the first or second highest grouping level changes the value.



Other

Other Data Fields

Random Random number between 0 and 1
CRLF Inserts \r\n to create a new line in a text expression

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. 

Operators

The following Operators can be used in expressions:

Arithmetic Operators

Using the following arithmetic operators you can make any type of calculation:

+ addition
- subtraction
* multiplication
/ division
\ integer division
% the remainder after division of integers
^ exponentiation
( opening parenthesis
) closing parenthesis
: time operator, multiplies the left operand with 60 and adds the right operand

If you would like to add the race number and the year of birth and multiply the result with two, use the following expression:

([Bib] + [Year]) * 2

Comparison Operators

Use the following comparsion operators to compare two values:

< less than
> greather than
= equal
<> not equal
<= less than or equal to
>= greater than or equal to

Logical Operators

Using logical operators, you can combine two conditions, for example in a Filter. The following operators are available:

  • OR (At least one of the values is true)
  • XOR (Must be one OR the other, cannot be both)
  • AND

Array Operators

  • IN
  • NIN (NOT IN)

If the Data field is IN or is NOT IN the text string, multiple values can be separated by commas.

Examples:

[Contest] IN "2,4,8-10"
[Lastname] NIN "Smith,Doe"

Funciones

Las funciones añaden cierta funcionalidad a las expressions. Después del nombre de la función, siguen los parámetros separados por punto y coma entre paréntesis:

 

FunctionName(parameter1; parameter2; parameter3; ...)

 

Funciones de control

String Functions

Mathematical Functions

Funciones de Resultados

Las Funciones de Resultados se utilizan para comparar resultados de participantes individuales.

La mayoría utiliza el formato TFunction(a;b) en donde a y b definen el rango de los IDs de los resultados que se desean considerar. 

por ejemplo: TMin(1;10) - devuelve el tiempo mínimo de los resultados con ID de 1 a 10

Algunas funciones cuentan con parámetros adicionales, los cuales se explican con la función. Hay además variaciones adicionales de cada función, las cuales también están explicadas en la función.

Conversion Functions

Time and Date Functions

Check Functions

Inter-Record Functions

Other Functions

Scoring Functions

Functions Reference

Type  

 

   
Arithmetic Operators + (addition) - (subtraction) * (multiplication) / (division)
  \ (integer division) % (remainder) ^ (exponentiation) : (time operator)
         
Comparison Operators < (less than) > (greater than) = (equal to) <> (not equal to)
  <= (less than or equal to) >= (greater than or equal to)    
         
Logical Operators OR  XOR (one or the other) AND  
         
Array Operators  IN NIN (not in)    

 

       
Control Functions if() switch() choose()  
         
String Functions left() right() mid() instr()
  instr2() val() len() lcase()
  ucase() trim() string() replace()
  reduceChars() removeAccents() chr() asc()
  ordinal() similarity() CorrectSpelling() stringCount()
  SplitString()      
         
Mathematical Functions int() sqrt() quersumme() abs()
  round() speed() pace()  
         
Result Functions 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() TMinIfID() TMaxIfID()
         
Conversion Functions urlencode() NumberToWords() ZahlInWort() TimeFromString()
  md5() crc7()    
         
Time and Date Functions format() date() now() ElapsedTime()
  AgeOnDate()      
         
Check Functions inRange() isNumeric() isAlpha() hasChip()
  search() isUCICode() isUCIID() hasEntryFee(entryFeeID)
  isEligible() isValidEmail()    
         
Inter-Record Functions BunchTime() GapTimeTop() GapTimePrev() TeamGapTimeTop()
  TeamGapTimePrev() DCount() DSum() DMin()
  DAvg() DMax() DFirst() DLast()
  DConcat() DQuantile()    
         
Other Functions nz() min() max() first()
  last() table() Setting()     GetSex()    
  translate() rank(x) Text() ChangeLink()
         
Scoring Functions AgeGradedOC2015() AgeGradedLevel2015() AgeGradedFactor2015()  
  AgeGradedOC2020() AgeGradedLevel2020() AgeGradedFactor2020()  

 

Campos/ Funciones personalizados

Utilizando los campos/ funciones personalizados puede asignar un nombre específico a cualquier [@1056|Expression]]. La expresión puede entonces ser accedida en todo el archivo de eventos. Se definen en Ventana Principal->Datos de Participantes->Campos/ Funciones personalizados.

Por ejemplo, por defecto, el campo personalizados DisplayName se define utilizando esta expresión:

trim([Title] & "" & [Nombre] & "" & [Apellido])

DisplayName se utiliza en casi todas las listas para mostrar esa expresión. Si decide utilizar una expresión diferente como

UCase([Apellido]) & "" & [Nombre]

entonces sólo tiene que cambiar el campo personalizado una vez en lugar de modificar cada lista.

User Defined Functions

Similar to User Defined Fields you can also define your own User Defined Functions. They will also be defined in the Main Window->Participants Data->User Defined Fields/Fcts.

Assume you would like to change the upper/lower case of words, so that the first letter is in upper case and the other letters in lower case. For this you could define a function RightCase:

RightCase(x)
lcase(left([x];1)) & lcase(mid([x]; 2))

You can use the new function like any other function now. For example this will return Raceresult:

RightCase("raCEreSuLt")

Functions can also have several parameters. As an example, define a function add:

add(x;y)
[x]+[y]

The names of the parameters can be defined freely. When using them in the definition of the function, they have to be in square brackets.

Filtro

In many parts of RACE RESULT 12 you will find a textbox to enter a filter. A filter is an expression that returns true or false. It is based on the comparision, array, and logical operators.

Field names will be in square brackets and values (apart from numbers) in double quotation marks. For example:

En muchas partes de RACE RESULT 12 encontrará un cuadro de texto para introducir un filtro. Un filtro es una expresión que devuelve verdadero o falso. Se basa en los operators de comparación, de matriz y lógicos.

Los nombres de los campos irán entre corchetes y los valores (aparte de los números) entre comillas dobles. Por ejemplo:

[Apellido]="Miller"

Si desea conectar varios filtros, puede utilizar los operadores lógicos AND y OR:

[Apellido]="Miller" AND [City]="New York"

Field Wizard

The Field Wizard pops up at many places in RACE RESULT 12 below setting fields, for example. in the settings of a lists or when defining ranks. The Field Wizard makes it easy to select the fields shown on a list for example. The field wizard will automatically appear when entering a new field, if editing an existing field then you can choose to show the wizard by clicking the gear icon on the right of the entry field.