Registro del formulario (C.)
El prefijo que lee y escribe los campos del registro abierto en el formulario, sus relaciones encadenadas, sus enumeraciones y su registro contenedor.
C. es el registro abierto en el formulario: lo lee y lo escribe. Es el prefijo de los scripts de formulario y de campo (TipoScriptE.Terminal). En un algoritmo o un documento dinámico no hay registro en edición y C. da error: ahí se usan I. y D..
Leer y escribir campos
C.<Campo> devuelve el valor actual del campo, con los cambios sin guardar. Asignarlo lo cambia en el formulario, como si lo tecleara el usuario:
@ El título de la tarea se compone solo: clave + resumen
C.TextoPrincipal = F.Concat(C.Clave, ' ', C.Resumen)S.Fields.<Seccion>.<Campo>.ID da la referencia del campo; C.<Campo> da su valor. C.ID es el identificador del propio registro:
F.AddElement_SetValue(S.Fields.ActividadEnTareasDeProyectos.ReferenciaTarea.ID, C.ID)Un registro sin guardar no tiene C.ID. Antes de usarlo para relacionar otros registros, comprueba F.IsNew (devuelve 1 mientras no se haya guardado) y pide que se guarde. Ver la receta Un botón que crea un registro relacionado.
Leer por una relación
Cuando el campo es una relación, C. encadena con punto y lee campos de la ficha relacionada:
@ Condiciones de pago definidas en la ficha del cliente seleccionado
txt condiciones = C.ReferenciaCliente.CondicionesPagoVenta
num dias = C.ReferenciaCliente.PlazoDiasCobroVentasEl encadenado admite más de un salto:
C.ReferenciaTipo = F.GetRowById(S.Sections.TiposDeTareaDeProyectos.ID, C.ReferenciaProyecto.ReferenciaFlujo.ReferenciaTipo)Un campo con Obsoleto_PorDesarrollador activo no compila: El campo 'X' está marcado como obsoleto. Código de error (B-6106).
Asignar una relación
Un campo de relación acepta cualquier expresión que devuelva un identificador de registro:
| Origen | Ejemplo |
|---|---|
| Otro campo de relación | C.ReferenciaNumeracionSerie = C.ReferenciaTipoDeVenta.ReferenciaNumeracionOrdinarias |
| Un registro buscado por ID | C.ReferenciaBono = F.GetRowById(S.Sections.BonosHoras.ID, C.ReferenciaProyecto.ReferenciaBono) |
| Vaciarla | C.ReferenciaProducto = '' |
Una relación sin valor es cadena vacía. La comprobación es contra '':
if C.ReferenciaCliente <> ''
C.CondicionesDePago = C.ReferenciaCliente.CondicionesPagoVenta
end ifComparar con enumeraciones
Los campos de tipo lista se comparan con S.Enums, también por una relación: C.ReferenciaEstado.EstadoTarea = S.Enums.tareaestado.enproceso. Ver Enumeraciones.
Desde una línea, el registro que la contiene
En una tabla de líneas (las líneas de una factura o de un pedido), el script de la línea lee su registro contenedor con C.RelacionElementoContenedorListador:
@ La línea hereda la categoría general indicada en la factura
if C.RelacionElementoContenedorListador.ReferenciaCategoriaGeneral <> ''
C.ReferenciaCategoriaDeVenta = C.RelacionElementoContenedorListador.ReferenciaCategoriaGeneral
end ifAlgoritmos del registro
C.<Algoritmo>, con un nombre interno que empieza por algoritmo, devuelve el valor de ese algoritmo sobre el registro abierto. El intérprete lo distingue de un campo por ese prefijo del nombre.
R.: la sección relacionada
En un script con sección secundaria, R. apunta al registro de esa sección y resuelve las rutas con las mismas reglas que C.. Se lee y se escribe.