# Componentes enlazados
# Introducción
El componente IrForm permite tener uno o más componentes (campos) que determinen una actualización total de todo el fomrulario o de alguno de sus componentes.
# Uso
El IrForm debe tener dos propiedades adicionales: campos_fcn_refresh y args_campos_fcn_refresh que determinan la función para actualizar los campos y sus argumentos respectivamente.
{
type: 'IrForm'
props: {
campos: [],
readonly: false,
campos_fcn_refresh: 'fn_consulta_form_refresh',
args_campos_fcn_refresh: ['argumentos_refresh'],
...
}
}
La función determinada en la propiedad campos_fcn_refresh debe retornar campos con la misma estructura que lo require la propiedad campos_fcn. Como se detalla aquí Pero si se quiere modificar campos (modo 'update') en lugar de reemplazar todo el formulario, puede retornar los campos que desee modificar, con su respectiva propiedad id coincidente con la del campo a modificar y con las modificaciones aplicadas.
El campo debe tener una propiedad linked que determina si se actualiza o no el IrForm. De la siguiente manera:
[
{
"type": "IrSelect",
"props": {
"key": "/_0005",
"id": "1",
"readonly": false,
"label": "IrSelect de ejemplo",
"linked": true,
"visible": true,
"width": 2
... //Demás propiedades del campo a mostrar
}
}
...
]
La propiedad linked puede tomar los siguientes valores:
true o "replace": Actualizan todo el formulario, pisando por completo el contenido de campos
false: No realiza ninguna acción
"update": Actualiza solo los campos retornados en la función campos_fcn_refresh, que coincidan con el prop id correspondiente, el resto de los campos permanecerá en su estado actual. Si se retorna un campo con un id que no coincida con los existentes, se creará.
Los campos que funcionan actualizándose con el modo update por el momento son:
IrTextField, IrFilePicker, IrCheckbox, IrDatePicker, IrFilePicker, IrLinkTo, IrNumericField, IrPassword, IrRadioGroup, IrRange, IrSelectInline, IrStepper, IrTabs, IrTextarea, IrTitulo, IrWysiwyg e IrSelect.
Por otra parte, verá en que componentes se puede establecer la propiedad linked en update en cada componente.
Se ampliará la funcionalidad en futuras actualizaciones.