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 Fields, Functions, 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 = Redondeo para ABAJO al segundo diez milésima 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 |
El lugar del participante de acuerdo a la definición del rango, e.g. 47 |
RangoX.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 |
Tiempos decimales del equipo | |
TSx.Tiempo1 |
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 |
Tiempos decimales del primer equipo en la clasificación. | |
TSx.DecimalTimePrev1 |
Tiempos decimales del equipo anterior en la clasificación. | |
TSx.TimeTextTop1 |
Tiempos formateados del primer equipo en la clasificación. | |
TSx.TimeTextPrev1 |
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 | 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.
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
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.