Compartir a través de


Editar y mostrar controles de formulario en Power Apps

Mostrar, editar y crear un registro en un origen de datos.

Description

Si agrega un control Mostrar formulario , el usuario puede mostrar todos los campos de un registro o solo los campos que especifique. Si agrega un control Editar formulario , el usuario puede editar esos campos, crear un registro y guardar esos cambios en un origen de datos.

Controles de ejemplo de formulario y vista de formulario.

Si agrega un control Galería , puede configurarlo para mostrar una tabla en un origen de datos y, a continuación, configurar un formulario para mostrar el registro que el usuario seleccione en la galería. También puede agregar uno o varios controles Button que el usuario puede seleccionar para guardar ediciones, cancelar ediciones y crear un registro. Mediante el uso de controles juntos, puede crear una solución completa.

Limitaciones

El control de formulario tiene estas limitaciones:

  • No se pueden copiar y pegar formularios en tarjetas de datos. Esto es para evitar que se creen determinadas combinaciones de controles que arriesgan la estabilidad y el rendimiento de la aplicación.

Selección de registros

Para cualquier tipo de formulario, establezca su propiedad DataSource en una tabla de registros y establezca la propiedad Item del formulario para mostrar un registro específico en esa tabla. Por ejemplo, puede establecer la propiedad Item de un formulario en la propiedad SelectedItem de un control Gallery . Cuando el usuario selecciona un registro en la galería, aparece el mismo registro en el formulario, salvo que el formulario puede mostrar más campos. Si el usuario vuelve a la galería y selecciona un registro diferente, cambia la propiedad SelectedItem de la galería. Este cambio actualiza la propiedad Item del formulario, que muestra el registro recién seleccionado.

También puede establecer la propiedad Item de un formulario mediante un control Desplegable , como Mostrar, editar o agregar un registro , o una función como Lookup o First. Por ejemplo, puede establecer la propiedad Item en cualquiera de estas fórmulas para mostrar la entrada Fabrikam en la tabla Accounts de Microsoft Dataverse:

First(Accounts)

Lookup(Accounts, "Fabrikam" in name)

Cada control de formulario contiene uno o varios controles Card . Al establecer la propiedad DataField de una tarjeta, se especifica el campo que muestra la tarjeta y otros detalles.

Creación de un registro

Cuando un control Editar formulario está en modo De edición, el usuario puede actualizar el registro especificado en la propiedad Item del formulario. Si se inspecciona, la propiedad Mode devuelve Edit.

Sin embargo, cuando un control Editar formulario está en modo Nuevo , se omite la propiedad Item . El formulario no muestra un registro existente; en su lugar, los valores de cada campo coinciden con los valores predeterminados del origen de datos con el que configuró el formulario. La función NewForm hace que un formulario cambie a este modo.

Por ejemplo, puede establecer la propiedad Text de un botón para mostrar New y su propiedad OnSelect en una fórmula que incluya la función NewForm . Si el usuario selecciona ese botón, el formulario cambia al modo Nuevo para que el usuario pueda crear un registro a partir de valores conocidos.

Un formulario vuelve al modo Editar si la función ResetForm se ejecuta o la función SubmitForm se ejecuta correctamente.

  • Puede establecer la propiedad Text de un botón para mostrar Cancel y su propiedad OnSelect en una fórmula que incluya la función ResetForm . Si el usuario selecciona ese botón, se descartan los cambios en curso y los valores del formulario, una vez más, coinciden con los valores predeterminados del origen de datos.
  • Puede establecer la propiedad Text de un botón para mostrar Guardar cambios y su propiedad OnSelect en una fórmula que incluya la función SubmitForm . Si el usuario selecciona ese botón y el origen de datos se actualiza, los valores del formulario se restablecen a los valores predeterminados del origen de datos.

Guardar los cambios

Si crea un botón Guardar cambios como se describe en la sección anterior, el usuario puede crear o actualizar un registro y, a continuación, seleccionar ese botón para guardar esos cambios en el origen de datos. En su lugar, podría configurar un control Image u otro control para realizar la misma tarea, siempre y cuando configure ese control con la función SubmitForm . En cualquier caso, las propiedades Error, ErrorKind, OnSuccess y OnFailure proporcionan comentarios sobre el resultado.

Cuando se ejecuta la función SubmitForm , primero valida los datos que el usuario quiere enviar. Si un campo obligatorio no contiene un valor u otro valor no se ajusta a alguna otra restricción, se establecen las propiedades ErrorKind y se ejecuta la fórmula OnFailure . Puede configurar el botón Guardar cambios u otro control para que el usuario pueda seleccionarlo solo si los datos son válidos (es decir, si la propiedad Valid del formulario es true). Tenga en cuenta que el usuario no solo debe corregir el problema, sino también seleccionar de nuevo el botón Guardar cambios (o descartar los cambios seleccionando un botón Cancelar , como se ha descrito anteriormente) para restablecer las propiedades Error y ErrorKind .

Si los datos pasan la validación, SubmitForm lo envía al origen de datos, lo que puede tardar algún tiempo en función de la latencia de red.

  • Si el envío se realiza correctamente, se borra la propiedad Error , la propiedad ErrorKind se establece en ErrorKind.None y se ejecuta la fórmula OnSuccess . Si el usuario creó un registro (es decir, si el formulario estaba anteriormente en modo Nuevo ), el formulario se cambia al modo De edición para que el usuario pueda editar el registro recién creado o uno diferente.
  • Si se produce un error en el envío, la propiedad Error contiene un mensaje de error descriptivo del origen de datos, lo que explica el problema. La propiedad ErrorKind se establece correctamente, según el problema y se ejecuta la fórmula OnFailure .

Algunos orígenes de datos pueden detectar cuándo dos personas intentan actualizar el mismo registro al mismo tiempo En este caso, ErrorKind se establece en ErrorKind.Conflict y el remedio es actualizar el origen de datos con los cambios del otro usuario y volver a aplicar el cambio realizado por este usuario.

Sugerencia

Si ofrece un botón Cancelar en el formulario para que el usuario pueda abandonar los cambios en curso, agregue la función ResetForm a la propiedad OnSelect del botón, incluso esa propiedad también contiene una función Navigate para cambiar las pantallas. De lo contrario, el formulario conservará los cambios del usuario.

Diseño

De forma predeterminada, las tarjetas se colocan en una sola columna para las aplicaciones de teléfono y tres columnas para las aplicaciones de tableta. Puede especificar cuántas columnas tiene un formulario y si las tarjetas deben ajustarlas a medida que configure el formulario. Esta configuración no se expone como propiedades porque solo se usan para establecer las propiedades X, Y y Width de las tarjetas.

Para obtener más información, consulte Descripción del diseño del formulario de datos.

Propiedades de la clave

DataSource : el origen de datos que contiene el registro que el usuario mostrará, editará o creará.

  • Si no establece esta propiedad, el usuario no puede mostrar, editar ni crear un registro, y no se proporcionan metadatos ni validación adicionales.

DefaultMode : modo inicial del control de formulario. Vea la descripción del modo siguiente para ver los valores aceptables y sus significados.

DisplayMode : modo que se va a usar para tarjetas de datos y controles dentro del control de formulario.

Derivado de la propiedad Mode basada en y no se puede establecer de forma independiente:

Mode DisplayMode Description
FormMode.Edit DisplayMode.Edit Las tarjetas de datos y los controles son editables, listos para aceptar cambios en un registro.
FormMode.New DisplayMode.Edit Las tarjetas de datos y los controles son editables, listos para aceptar un nuevo registro.
FormMode.View DisplayMode.View Las tarjetas de datos y los controles no son editables y optimizados para su visualización.

Error : mensaje de error descriptivo que se va a mostrar para este formulario cuando se produce un error en la función SubmitForm .

  • Esta propiedad solo se aplica al control Editar formulario .
  • Esta propiedad solo cambia cuando se ejecuta la función SubmitForm, EditForm o ResetForm .
  • Si no se produce ningún error, esta propiedad está en blanco y ErrorKind se establece en ErrorKind.None.
  • Cuando sea posible, el mensaje de error devuelto estará en el idioma del usuario. Algunos mensajes de error proceden directamente del origen de datos y es posible que no estén en el idioma del usuario.

ErrorKind : si se produce un error cuando se ejecuta SubmitForm , el tipo de error que se produjo.

  • Solo se aplica a un control Editar formulario .
  • Esta propiedad tiene la misma enumeración que la función Errors . Un control Editar formulario puede devolver estos valores:
ErrorKind Description
ErrorKind.Conflict Otro usuario cambió el mismo registro, lo que da lugar a un conflicto de cambios. Ejecute la función Refresh para volver a cargar el registro e inténtelo de nuevo.
ErrorKind.None El error es de un tipo desconocido.
ErrorKind.Sync El origen de datos notificó un error. Compruebe la propiedad Error para obtener más información.
ErrorKind.Validation Se detectó un problema de validación general.

Elemento : el registro del origen de datos que el usuario mostrará o editará.

LastSubmit : el último registro enviado correctamente, incluidos los campos generados por el servidor.

  • Esta propiedad solo se aplica al control Editar formulario .
  • Si el origen de datos genera o calcula automáticamente los campos, como un campo id . con un número único, la propiedad LastSubmit tendrá este nuevo valor después de que SubmitForm se ejecute correctamente.
  • El valor de esta propiedad está disponible en la fórmula OnSuccess .

Modo : el control está en modo Editar o Nuevo .

Mode Description
FormMode.Edit El usuario puede editar un registro mediante el formulario . Los valores de las tarjetas del formulario se rellenan previamente con el registro existente, para que el usuario cambie. Si la función SubmitForm se ejecuta correctamente, se modifica un registro existente.
FormMode.New El usuario puede crear un registro mediante el formulario . Los valores de los controles del formulario se rellenan previamente con los valores predeterminados de un registro del origen de datos. Si la función SubmitForm se ejecuta correctamente, se crea un registro.
FormMode.View El usuario puede ver un registro mediante el formulario. Los valores de los controles del formulario se rellenan previamente con los valores predeterminados de un registro del origen de datos.

El formulario cambia de Nuevo modo a Modo de edición cuando se produce cualquiera de estos cambios:

  • El formulario se envía correctamente y se crea un registro. Si la galería está establecida para mover automáticamente la selección a este nuevo registro, el formulario estará en modo de edición para el registro creado para que el usuario pueda realizar cambios adicionales.
  • La función EditForm se ejecuta.
  • La función ResetForm se ejecuta. Por ejemplo, el usuario podría seleccionar un botón Cancelar configurado con esta función.

OnFailure : acciones que se deben realizar cuando una operación de datos no se ha realizado correctamente.

  • Esta propiedad solo se aplica al control Editar formulario .

OnReset : acciones que se deben realizar cuando se restablece un control Editar formulario .

  • Esta propiedad solo se aplica al control Editar formulario .

OnSuccess : acciones que se deben realizar cuando una operación de datos se ha realizado correctamente.

  • Esta propiedad solo se aplica al control Editar formulario .

No guardado : true si el control Editar formulario contiene cambios de usuario que no se han guardado.

  • Esta propiedad solo se aplica al control Editar formulario .
  • Use esta propiedad para advertir al usuario antes de perder los cambios no guardados. Para evitar que el usuario seleccione un registro diferente en un control Galería antes de guardar los cambios en el registro actual, establezca la propiedad Disabled de la galería en Form.Unsaved y, del mismo modo, deshabilite las operaciones de actualización.

Actualizaciones : los valores para volver a escribir en el origen de datos de un registro cargado en un control de formulario.

  • Esta propiedad solo se aplica al control Editar formulario .
  • Utilice esta propiedad para extraer los valores de campo de las tarjetas del control . A continuación, puede usar estos valores para actualizar manualmente el origen de datos con una llamada de función Patch u otro método expuesto por una conexión. No es necesario usar esta propiedad si usa la función SubmitForm .
  • Esta propiedad devuelve un registro de valores. Por ejemplo, si el control de formulario contiene controles de tarjeta para los campos Nombre y Cantidad , y los valores de las propiedades Update para esas tarjetas devuelven "Widget" y 10 respectivamente, la propiedad Updates para el control de formulario devolvería { Name: "Widget", Quantity: 10 }.

Válido : indica si un control de formulario de tarjeta o edición contiene entradas válidas, listas para enviarse al origen de datos.

  • Esta propiedad solo se aplica al control Editar formulario .

  • La propiedad Valid de un control Form agrega las propiedades Valid de todos los controles Card del formulario. La propiedad Valid de un formulario solo es true si los datos de todas las tarjetas de ese formulario son válidos; De lo contrario, la propiedad Valid del formulario es false.

  • Para habilitar un botón para guardar los cambios solo cuando los datos de un formulario son válidos, pero aún no se han enviado, establezca la propiedad DisplayMode del botón en esta fórmula:

    SubmitButton.DisplayMode = If(IsBlank( Form.Error ) || Form.Valid, DisplayMode.Edit, DisplayMode.Disabled)

Propiedades adicionales

BorderColor : color del borde de un control.

BorderStyle : indica si el borde de un control es Sólido, Discontinuo, Punteado o Ninguno.

BorderThickness : grosor del borde de un control.

Relleno : color de fondo de un control.

Alto : distancia entre los bordes superior e inferior de un control.

Visible : indica si un control aparece o está oculto.

Ancho : distancia entre los bordes izquierdo y derecho de un control.

X: la distancia entre el borde izquierdo de un control y el borde izquierdo de su contenedor primario (la pantalla si no hay un contenedor primario).

Y: la distancia entre el borde superior de un control y el borde superior de su contenedor primario (la pantalla si no hay un contenedor primario).

Información adicional

Directrices de accesibilidad

Compatibilidad con lector de pantalla

  • Considere la posibilidad de agregar un encabezado al formulario mediante una etiqueta.