Editar registros de tabla relacionados directamente desde el formulario principal de otra tabla
Hay varias formas de trabajar con registros de tabla relacionados en un formulario de tabla dentro de Power Apps. Por ejemplo, puede incluir tablas relacionadas en modo de solo lectura con un formulario de vista rápida y crear o editar un registro usando un formulario principal en un cuadro de diálogo.
Otra forma en que puede trabajar con registros de tabla relacionados es agregando un control form component al formulario principal de otra tabla. El control form component permite a los usuarios editar información de un registro de tabla relacionado directamente desde el formulario de otra tabla.
Por ejemplo, aquí está el componente de formulario en una pestaña independiente en el formulario de cuenta principal, que permite al usuario editar un registro de contacto sin salir del formulario de cuenta.
Por ejemplo, aquí está el componente de formulario en una pestaña existente en el formulario de la cuenta principal, que también permite al usuario editar un registro de contacto sin salir de la pestaña Resumen del formulario de la cuenta.
Agregar el componente de formulario a un formulario principal de tabla
- En el panel de navegación izquierdo, seleccione Componentes. Si el elemento no está en el panel lateral, Seleccionar …Más y luego Seleccionar el elemento que desea.
- Expanda Entrada o Pantalla, y luego Seleccionar Formulario.
En la página de configuración del control del componente de formulario, Seleccionar las propiedades para el control:
- Seleccionar la columna de búsqueda del formulario.
- Seleccionar la Forma relacionada. Dependiendo de la configuración de la tabla relacionada para la columna:
- Si la columna está conectada a una sola tabla (como la columna Creado por), Seleccionar el Formulario relacionado a utilizar.
- Si la columna está conectada a varias tablas (polimórfica, como la columna del propietario), Seleccionar + Formulario relacionado y luego Seleccionar Agregar para agregar el formulario relacionado. Continúe hasta Seleccionar + Formulario relacionado>Agregar para agregar un formulario relacionado para cada tabla relacionada.
- De forma predeterminada, todos los tipos de aplicaciones cliente Web, Teléfono y Tablet están habilitados para mostrar el formulario. Borre los tipos de clientes en los que no desea que aparezca el formulario.
- Seleccione Listo.
- Guarde y luego Publique el formulario.
Agregar el componente de formulario usando la experiencia clásica
En este ejemplo, el formulario principal estándar Contacto se configura para el control de componente de formulario que se agrega al formulario principal de la cuenta.
Importante
La manera de agregar un control form component ha cambiado. Le recomendamos que use la experiencia más reciente. Más información: Agregar el componente de formulario al formulario principal de una tabla
Inicie sesión en Power Apps.
Seleccionar Tablas en el panel izquierdo. Como alternativa, abra una solución y luego Seleccionar una tabla, como Cuenta. Si el elemento no está en el panel lateral, Seleccionar …Más y luego Seleccionar el elemento que desea.
Seleccionar Formularios del menú de componentes.
Seleccionar un formulario con un tipo de formulario Principal de los formularios disponibles.
Seleccione Cambiar a clásico. La interfaz clásica editor de formularios se abre como una pestaña en su navegador.
Seleccionar la pestaña Insertar . Luego, crea una nueva pestaña y agrega una nueva sección o agrega una nueva sección a una pestaña existente.
En la nueva sección, agregue una columna de búsqueda, como la columna de búsqueda Contacto principal .
Seleccionar la columna de búsqueda y luego, en la pestaña Inicio , Seleccionar Cambiar propiedades.
En la pestaña Controles , Seleccionar Agregar control, en la lista de tipos de control, Seleccionar Control de componente de formulario y, luego, Seleccionar Agregar.
Seleccionar Web, Tablet y Teléfono para el componente.
Seleccionar Editar (icono de lápiz) y en el cuadro de diálogo Configurar propiedad Seleccionar Enlazar a un valor estático y luego agregar una entrada XML similar a esta donde TableName es el nombre único de la tabla y FormID es el ID del formulario principal:
<QuickForms><QuickFormIds><QuickFormId entityname="TableName">FormID</QuickFormId></QuickFormIds></QuickForms>
- Por ejemplo, para representar el formulario principal de Contacto en el formulario de cuenta, utilice:
<QuickForms><QuickFormIds><QuickFormId entityname="contact">1fed44d1-ae68-4a41-bd2b-f13acac4acfa</QuickFormId></QuickFormIds></QuickForms>
- Por ejemplo, para representar el formulario principal de Contacto en el formulario de cuenta, utilice:
Seleccionar Aceptar, y luego Seleccionar Aceptar otra vez.
Guarde y luego Publique su formulario.
Propina
Para encontrar el nombre único de una tabla, Seleccionar la tabla en Power Apps y luego Seleccionar Configuración. El Nombre aparece en el panel de la tabla Editar . El ID del formulario se puede encontrar en la dirección URL del navegador cuando edita un formulario. El ID sigue a la parte /edit/ de la URL.
En el clásico diseñador de formularios, el ID del formulario sigue a la parte formId%3d de la URL.
Comportamiento del componente del formulario
Esta sección describe el comportamiento del componente de formulario cuando se usa en una aplicación basada en modelo.
Selección de registros
Para que el control form component muestre un formulario, la columna de búsqueda a la que está vinculado debe tener un valor. De lo contrario, el control mostrará el mensaje Registro de origen no seleccionado. Una forma de establecer el valor es agregar al formulario un control search que está enlazado a la misma columna de búsqueda que el control del componente del formulario. Cuando usa el control search para cambiar el valor de la columna de búsqueda, el control form component mostrará un formulario con los datos del nuevo valor de la columna de búsqueda.
Validación de columna
Todas las columnas, tanto en el formulario principal como en los controles de componentes del formulario, deben ser válidas para que los datos se envíen a Microsoft Dataverse. Esto es cierto para los errores de validación de ambas columnas, las columnas obligatorias que faltan, etc.
OnSave
Los controladores se ejecutan para el formulario principal y sus controles de componentes de formulario. Cualquier controlador puede Cancelar guardar el formulario principal y los controles de componentes de formulario usando preventDefault. Esto significa que ninguna operación de guardado puede solicitar que se envíen datos a preventDefault
. Dataverse No está definido el orden en que se llaman los controladores. OnSave
Más información: Evento OnSave de formulario (referencia de API de cliente) en aplicaciones basadas en modelos
Guardar registro
Una vez pasada la fase de validación, los datos se envían a Dataverse para cada registro. Actualmente, cada registro se actualiza de forma independiente con diferentes solicitudes. Los guardados no son transaccionales y el orden de los guardados no está definido. Un error al guardar un componente del formulario no revertirá los cambios en el formulario principal u otros componentes del formulario. Una vez que se completa cada guardado, los datos se actualizan para todos los registros del formulario.
Notificaciones
Las notificaciones del componente de formulario se agregan a las notificaciones del formulario principal. Por ejemplo, si hay columnas no válidas en el componente de formulario e intenta guardar, la notificación de columna no válida aparecerá en la parte superior del formulario principal en lugar de en el componente de formulario.
Control de errores
Si hay varios errores durante el guardado, solo se mostrará un error al usuario. Si el usuario puede realizar cambios para corregir el primer error y guarda, el siguiente error será visible. El usuario deberá seguir guardando hasta que se hayan resuelto todos los errores.
Cambio de registros con cambios no guardados
Si hay cambios sin guardar en un formulario para un componente de formulario y un usuario intenta cambiar la columna de búsqueda a la que está vinculado el componente de formulario, el usuario recibirá una alerta sobre este cambio.
API de cliente
Hay un contexto de formulario disponible para el control del componente de formulario. Se puede acceder a él a través del contexto de formulario del formulario principal accediendo al control a través de una API, como getControl. Antes de acceder a los datos de la tabla relacionada en el control del componente de formulario, los controladores de eventos deben esperar a que la API isLoaded para que el control devuelva verdadero.
Limitaciones
Tenga en cuenta las siguientes limitaciones cuando agrega el control form component a un formulario de tabla:
El control form component solo admite la representación de formularios principales. De manera similar, la compatibilidad para agregar un control form component solo se admite con formularios principales. No se admiten otros tipos de formularios, como creación rápida, vista rápida y tarjeta.
Actualmente no se admiten formularios con un flujo de proceso de negocio ni en el formulario de la tabla principal ni en el formulario de la tabla relacionada. Si tiene un formulario con flujo de proceso de negocio, puede encontrar un comportamiento inesperado. Le recomendamos que no utilice un componente de formulario con un formulario que utilice un flujo de proceso de negocio.
El control form component no admite controles de componente de formulario incrustados, como agregar un control form component a un formulario usado por un control form component.
El control del componente de formulario no admite aplicaciones de lienzo integradas. Es posible que encuentres un comportamiento inesperado con estas aplicaciones de lienzo.
El control form component solo mostrará la primera pestaña del formulario que usa si se incluyen varias pestañas en ese formulario.
No se admite el uso del mismo formulario para diferentes controles de componentes de formulario en un solo formulario.
El formulario que utiliza con un componente de formulario debe estar incluido en su aplicación. Si no es así, o si el usuario actual no tiene acceso al formulario, volverá al formulario principal superior que se incluye en la aplicación y está disponible para el usuario (según el orden del formulario).
Todos los componentes utilizados por el formulario en un componente de formulario deben estar incluidos en su aplicación. Estos componentes incluyen tablas, vistas y flujos de procesos de negocio relacionados. Si no es así, no estarán disponibles en el formulario o puede haber un comportamiento inesperado.
Los controles de componentes de formularios tienen ciertas limitaciones cuando se representan en aplicaciones multisesión. Específicamente, los controladores agregados dinámicamente en el componente de formulario como
addOnSave
oaddOnChange
podrían no ejecutarse después de cambiar las pestañas multisesión.Podría observar que el muro de la línea de tiempo podría no actualizarse cuando una columna que se usa para configurar el muro de la línea de tiempo ha cambiado en el componente de formulario. Cuando se actualice la página, el muro de la línea de tiempo se actualizará como se esperaba.
En dispositivos móviles, el control timeline no aparece actualmente en el control form component.
Para las subcuadrículas, los botones de comando Ver todos los registros y Ver registros asociados no estarán disponibles si se representan dentro de un componente de formulario.
Los controles de componentes del formulario no son compatibles con los diálogos de edición masiva. No aparecerán en el formulario del diálogo de edición masiva de forma predeterminada y los cambios realizados en los registros de la tabla relacionados con ellos no se guardarán.
Cuando se detectan registros duplicados al guardar un control de componente de formulario, es posible que los usuarios no puedan ver los duplicados para resolver conflictos.
Consulte también
Utilice controles personalizados para visualizaciones de datos de aplicaciones basadas en modelos