Para conocer más detalles, consulte la sección Sintaxis de corchetes para el acceso dinámico.
// un componente de registro fijo
Record ExampleFixedRecordPart type=serialRecord
{
fileName = "myFile"
}
10 ID INT;
10 Job CHAR(10);
end
// un componente de registro (no fijo)
Record ExampleDynamicRecordPart type=basicRecord
ID INT;
Job CHAR(10);
end
Program myProgram
dynamicPerson ExampleDynamicRecordPart;
myFlexID INT;
fixedPerson ExampleFixedRecordPart;
myFixedID INT;
Function main()
dynamicPerson.ID = 123;
dynamicPerson.Job = "Student";
fixedPerson.ID = 456;
fixedPerson.Job = "Teacher";
relationship Dictionary
{
dynamicRecord=dynamicPerson,
staticRecord=fixedPerson
};
end
end
end
myDynamicID INT; myDynamicID = relationship.dynamicRecord.ID;
La referencia a dynamicRecord sería dinámica y la referencia a ID sería dinámica, con el identificador ID visible en tiempo de ejecución.
myFixedID INT; // NO válido myFixedID = relationship.fixedRecord.ID;
myFixedID INT; myOtherRecord ExampleFixedRecordPart; myOtherRecord = relationship.staticRecord; myFixedID = myOtherRecord.ID;
El acceso dinámico es válido en las asignaciones (en los lados izquierdo o derecho); en expresiones lógicas y en las sentencias set,for y openUI.
Conceptos relacionados
Sintaxis de corchete para el acceso dinámico
Diccionario
Componente de programa
Referencias a variables en EGL
Typedef
Tareas relacionadas
Declarar variables y constantes en EGL
Consulta relacionada
Asignaciones
Expresiones lógicas
Tipos primitivos
set