Controis Editar formulario e Mostrar formulario en Power Apps

Mostrar, editar e cerar un rexistro nunha orixe de datos.

Descripción

Se engade un control de Mostrar formulario, o usuario poderá amosar todos os campos dun rexistro ou só os campos que especifique. Se engade un control de Editar formulario, o usuario poderá editar eses campos, crear un rexistro e gardar eses cambios nunha orixe de datos.

Formulario de exemplo e controis de visualización de formularios.

Se engade un control de Gallery, pode configuralo para que mostre unha táboa nunha orixe de datos e logo configurar un formulario para mostrar o rexistro que o usuario seleccione na galería. Tamén pode engadir un ou varios controis de Button que o usuario pode seleccionar para gardar edicións, cancelar edicións e crear un rexistro. Ao usar os controis xuntos, pode crear unha solución completa.

Limitacións

O control de formulario ten estas limitacións:

  • Non pode copiar e pegar formularios en tarxetas de datos. Isto é para evitar que se creen certas combinacións de controis que poñan en risco a estabilidade e o rendemento da aplicación.

Selección de rexistros

Para calquera tipo de formulario, estableza a súa propiedade DataSource nunha táboa de rexistros e estableza a propiedade Item do formulario para mostrar un rexistro específico nesa táboa. Por exemplo, pode configurar a propiedade Item dun formulario na propiedade SelectedItem dun control de Gallery. Cando o usuario selecciona un rexistro na galería, o mesmo rexistro aparece no formulario, excepto que o formulario pode mostrar máis campos. Se o usuario volve á galería e selecciona un rexistro diferente, a propiedade SelectedItem da galería cambia. Este cambio actualiza a propiedade Item do formulario, que despois mostra o rexistro recentemente seleccionado.

Tamén pode configurar unha propiedade Item dun formulario empregando un control Despregable, como se describe en Amosar, editar ou engadir un rexistro ou unha función como Buscar ou Primeira. Por exemplo, pode configurar a propiedade Item en calquera destas fórmulas para mostrar a entrada de Fabrikam na táboa Contas en Microsoft Dataverse:

First(Accounts)

Lookup(Accounts, "Fabrikam" in name)

Cada control de formulario contén un ou máis controis de Card. Definindo a propiedade DataField dunha tarxeta, especifique que campo mostra esa tarxeta e outros detalles.

Crear un rexistro

Cando un control de Editar formulario está en modo Editar, o usuario pode actualizar o rexistro especificado na propiedade Item do formulario. Se se inspecciona, a propiedade Mode devolve Editar.

Cando un control de Editar formulario está en modo Novo, non obstante a propiedade Item ignórase. O formulario non mostra un rexistro existente; no seu lugar, os valores de cada campo coinciden cos valores predeterminados da orixe de datos coa que configurou o formulario. A función NewForm fai que un formulario cambie a este modo.

Por exemplo, pode configurar a propiedade Texto dun botón para mostrar Novo e a súa propiedade OnSelect nunha fórmula que inclúe a función NewForm. Se o usuario selecciona ese botón, o formulario pasa ao modo Novo para que o usuario poida crear un rexistro a partir de valores coñecidos.

Un formulario volve ao modo Editar se a función ResetForm se executa ou a función SubmitForm se executa correctamente.

  • Pode configurar a propiedade Texto dun botón para mostrar Cancelar e a súa propiedade OnSelect nunha fórmula que inclúe a función ResetForm. Se o usuario selecciona ese botón, descártanse os cambios en curso e os valores do formulario, unha vez máis, coincidirán cos valores predeterminados da orixe de datos.
  • Pode configurar a propiedade Texto dun botón para mostrar Gardar cambios e a súa propiedade OnSelect nunha fórmula que inclúe a función SubmitForm. Se o usuario selecciona ese botón e a orixe de datos se actualiza, os valores do formulario restablécense aos valores predeterminados da orixe de datos.

Gardar as modificacións

Se crea un botón Gardar cambios como describe na sección anterior, o usuario poderá crear ou actualizar un rexistro e logo seleccionar ese botón para gardar eses cambios na orixe de datos. En vez diso, podería configurar un control de Image ou algún outro control para realizar a mesma tarefa, sempre que configure ese control coa función SubmitForm. En todo caso, as propiedades Error, ErrorKind, OnSuccess e OnFailure proporcionan comentarios sobre o resultado.

Cando se executa a función SubmitForm, primeiro valida os datos que o usuario quere enviar. Se un campo requirido non contén un valor ou outro valor non se axusta a algunha outra restrición, as propiedades ErrorKind establécense e a fórmula OnFailure execútase. Pode configurar o botón Gardar cambios ou outro control para que o usuario poida seleccionalo só se os datos son válidos (é dicir, se a propiedade Valid do formulario é verdadeira). Teña en conta que o usuario non só debe corrixir o problema senón que tamén debe seleccionar o botón Gardar cambios de novo (ou descartar os cambios seleccionando un botón Cancelar como se describiu anteriormente) para restablecer as propiedades Error e ErrorKind.

Se os datos pasan a validación, SubmitForm envíaos á orixe de datos, o cal pode levar algún tempo dependendo da latencia da rede.

  • Se o envío faise correctamente, a propiedade Error bórrase, a propiedade ErrorKind defínese en ErrorKind.None e execútase a fórmula OnSuccess. Se o usuario creou un rexistro (é dicir, se o formulario estivo anteriormente no modo Novo), o formulario cambia ao modo Editar para que o usuario poida editar o rexistro recentemente creado ou outro diferente.
  • Se a presentación falla, a propiedade Erro contén unha mensaxe de erro fácil de ver da orixe de datos explicando o problema. A propiedade ErrorKind establécese de forma adecuada, segundo o problema, e execútase a fórmula OnFailure.

Algunhas orixes de datos poden detectar cando dúas persoas intentan actualizar o mesmo rexistro ao mesmo tempo. Neste caso, ErrorKind está configurado en ErrorKind.Conflict e o remedio é actualizar a orixe de datos cos cambios do outro usuario e volver aplicar o cambio realizado por este usuario.

Suxestión

Se ofrece un botón Cancelar no seu formulario para que o usuario poida abandonar os cambios en curso, engada a función ResetForm á propiedade OnSelect do botón aínda que esa propiedade tamén conteña unha función Navegar para cambiar pantallas. Do contrario, o formulario conservará os cambios do usuario.

Deseño

Por defecto, as tarxetas colócanse nunha soa columna para as aplicacións do teléfono e en tres columnas para as aplicacións para tabletas. Pode especificar cantas columnas ten un formulario e se as tarxetas deben axustarse a elas mentres configura o formulario. Esta configuración non se expón como propiedades porque só se usan para configurar as propiedades X, Y e Ancho das tarxetas.

Para obter máis información, consulte Comprender o desaño do formulario de datos.

Propiedades clave

DataSource - A orixe de datos que contén o rexistro que o usuario amosará, editará ou creará.

  • Se non establece esta propiedade, o usuario non poderá mostrar, editar ou crear un rexistro e non se proporcionarán metadatos ou validacións adicionais.

DefaultMode - O modo inicial do control do formulario. Consulte a descrición do Modo a continuación para ver os valores aceptables e os seus significados.

DisplayMode - O modo a empregar para tarxetas de datos e controis dentro do control de formulario.

Derivado da propiedade Mode na que se basea e non se pode configurar de forma independente:

Modo DisplayMode Descripción
FormMode.Edit DisplayMode.Edit As tarxetas de datos e os controis son editables e están listos para aceptar cambios nun rexistro.
FormMode.New DisplayMode.Edit As tarxetas de datos e os controis son editables e están listos para aceptar un rexistro novo.
FormMode.View DisplayMode.View As tarxetas de datos e os controis non son editables e están optimizados para a súa visualización.

Erro - A mensaxe de erro fácil de usar para mostrar neste formulario cando falla a función SubmitForm.

  • Esta propiedade só se aplica ao control Editar formulario.
  • Esta propiedade só cambia cando se executa a función SubmitForm, EditForm ou ResetForm.
  • Se non se produce ningún erro, esta propiedade está en branco e ErrorKind está configurado en ErrorKind.None.
  • Cando sexa posible, a mensaxe de erro devolta estará no idioma do usuario. Algunhas mensaxes de erro proveñen da orixe de datos directamente e poden non estar no idioma do usuario.

ErrorKind - Se se produce un erro cando se executa SubmitForm, o tipo de erro que se produciu.

  • Aplícase só a un control de Editar formulario.
  • Esta propiedade ten a mesma enumeración que a función Erros. Un control de Editar formulario pode devolver estes valores:
ErrorKind Descripción
ErrorKind.Conflict Outro usuario cambiou o mesmo rexistro, dando lugar a un conflito de cambio. Execute a función Actualizar para cargar de novo o rexistro e probar de novo o cambio.
ErrorKind.None O erro é dun tipo descoñecido.
ErrorKind.Sync O orixe de datos informou dun erro. Comprobe a propiedade Error para obter máis información.
ErrorKind.Validation Detectouse un problema de validación xeral.

Elemento - O rexistro de DataSource que o usuario mostrará ou editará.

LastSubmit - O último rexistro enviado con éxito, incluídos os campos xerados polo servidor.

  • Esta propiedade só se aplica ao control Editar formulario.
  • Se a orixe de datos xera ou calcula automaticamente campos, como un campo de ID cun número único, a propiedade LastSubmit terá este novo valor despois de que SubmitForm se execute con éxito.
  • O valor desta propiedade está dispoñible na fórmula OnSuccess.

Modo - O control está no modo de Edición ou Novo.

Modo Descripción
FormMode.Edit O usuario pode editar un rexistro mediante o formulario. Os valores das tarxetas do formulario énchense previamente co rexistro existente, para que o usuario o cambie. Se a función SubmitForm se executa correctamente, modificarase un rexistro existente.
FormMode.New O usuario pode crear un rexistro mediante o formulario. Os valores dos controis do formulario énchense previamente cos valores predeterminados dun rexistro da orixe de datos. Se a función SubmitForm se executa correctamente, crearase un rexistro.
FormMode.View O usuario pode ver un rexistro mediante o formulario. Os valores dos controis do formulario énchense previamente cos valores predeterminados dun rexistro da orixe de datos.

O formulario cambia do modo Novo a Editar cando se produce algún destes cambios:

  • O formulario envíase con éxito e créase un rexistro. Se a galería está configurada para mover automaticamente a selección a este novo rexistro, o formulario estará no modo Editar para o rexistro creado para que o usuario poida facer cambios adicionais.
  • A función EditForm executarase.
  • A función ResetForm executarase. Por exemplo, o usuario pode seleccionar un botón Cancelar configurado con esta función.

OnFailure - Accións a realizar cando unha operación de datos fallou.

  • Esta propiedade só se aplica ao control Editar formulario.

OnReset - Accións a realizar cando un control Editar formulario se restablece.

  • Esta propiedade só se aplica ao control Editar formulario.

OnSuccess - Accións a realizar cando unha operación de datos foi correcta.

  • Esta propiedade só se aplica ao control Editar formulario.

Non gardado - Verdadeiro se o control Editar formulario contén cambios do usuario que non se gardaron.

  • Esta propiedade só se aplica ao control Editar formulario.
  • Use esta propiedade para avisar ao usuario antes de que perda cambios non gardados. Para evitar que o usuario seleccione un rexistro diferente nun control de Gallery antes de gardar cambios no rexistro actual, configure a propiedade Disabled da galería en Form.Unsaved e, do mesmo xeito, desactive as operacións de actualización.

Actualizacións - Os valores para escribir de novo na orixe de datos para un rexistro cargado nun control de formulario.

  • Esta propiedade só se aplica ao control Editar formulario.
  • Use esta propiedade para extraer os valores do campo das tarxetas dentro do control. Pode usar estes valores para actualizar manualmente a orixe de datos cunha chamada á función Parche ou outro método exposto por unha conexión. Non precisa empregar esta propiedade se está a usar a función SubmitForm.
  • Esta propiedade devolve un rexistro de valores. Por exemplo, se o control de formulario contén controis de tarxeta para os campos Nome e Cantidade e os valores das propiedades Update para esas tarxetas devolven "Widget" e 10 respectivamente, a continuación, a propiedade Updates do control do formulario devolvería { Name: "Widget", Quantity: 10 }.

Válido - Se unha Card ou un control de Formulario de edición contén entradas válidas, listas para ser enviadas á orixe de datos.

  • Esta propiedade só se aplica ao control Editar formulario.

  • A propiedade Valid do control Formulario engade as propiedades Valid de todos os controis de Card do formulario. A propiedade Valid dun formulario é verdadeira só se os datos de todas as tarxetas dese formulario son válidos; se non, a propiedade Valid do formulario é falsa.

  • Para activar un botón para gardar cambios só cando os datos dun formulario son válidos pero aínda non foron enviados, configure a propiedade DisplayMode do botón nesta fórmula:

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

Propiedades adicionais

BorderColor: cor do bordo dun control.

BorderStyle: se un bordo dun control é Sólido, A trazos, Punteado ou Ningún.

BorderThickness: grosor do bordo dun control.

Enchemento: a cor de fondo dun control.

Altura: distancia entre os bordos superior e inferior dun control.

Visible: se aparece un control ou está oculto.

Largura: distancia entre os bordos esquerdo e dereito dun control.

X: A distancia entre o bordo esquerdo dun control e o bordo esquerdo do seu contedor principal (pantalla, se non hai ningún contedor principal).

Y: A distancia entre o bordo superior dun control e o bordo superior do contedor principal (pantalla, se non hai ningún contedor principal).

Máis información

Directrices de accesibilidade

Soporte do lector de pantalla

  • Considere engadir unha cabeceira no formulario usando a Label.

Nota

Pode indicarnos as súas preferencias para o idioma da documentación? Realice unha enquisa breve. (teña en conta que esa enquisa está en inglés)

Esta enquisa durará sete minutos aproximadamente. Non se recompilarán datos persoais (declaración de privacidade).