Controles Formulario de presentación y Formulario de edición en PowerAppsEdit form and Display form controls in PowerApps

Muestra, edición y creación de un registro en un origen de datos.Display, edit, and create a record in a data source.

DescripciónDescription

Si agrega un control Formulario de presentación , el usuario puede mostrar todos los campos de un registro o solo los campos que usted especifique.If you add a Display form control, the user can display all fields of a record or only the fields that you specify. Si agrega un control Formulario de edición, el usuario puede editar esos campos, crear un registro y guardar los cambios realizados en un origen de datos.If you add an Edit form control, the user can edit those fields, create a record, and save those changes to a data source.

Controles de ejemplo y vista de formulario

Si agrega un control Galería, puede configurarlo para mostrar una tabla en un origen de datos y luego configurar un formulario para mostrar cualquier registro que el usuario seleccione en la galería.If you add a Gallery control, you can configure it to show a table in a data source and then configure a form to show whichever record the user selects in the gallery. También puede agregar uno o varios controles Botón que el usuario puede seleccionar para guardar las modificaciones, cancelar las modificaciones y crear un registro.You can also add one or more Button controls that the user can select to save edits, cancel edits, and create a record. Al usar varios controles juntos, puede crear una solución completa.By using controls together, you can create a complete solution.

Selección de registrosRecord selection

Para cada tipo de formulario, establezca su propiedad DataSource en una tabla de registros y establezca la propiedad Elemento para mostrar un registro específico en esa tabla.For either type of form, you set its DataSource property to a table of records, and you set the form's Item property to show a specific record in that table. Por ejemplo, puede establecer la propiedad Elemento de un formulario en la propiedad SelectedItem de un control Galería.For example, you can set the Item property of a form to the SelectedItem property of a Gallery control. Cuando el usuario selecciona un registro en la galería, aparece el mismo registro en el formulario, excepto que el formulario puede mostrar más campos.When the user selects a record in the gallery, the same record appears in the form, except that the form can show more fields. Si el usuario vuelve a la galería y selecciona un registro diferente, la propiedad SelectedItem de la galería cambia.If the user returns to the gallery and selects a different record, the SelectedItem property of the gallery changes. Este cambio actualiza la propiedad Elemento del formulario, que mostrará el registro recién seleccionado.This change updates the Item property of the form, which then shows the newly selected record.

Cada control de formulario contiene uno o varios controles Tarjeta.Each form control contains one or more Card controls. Estableciendo la propiedad DataField de una tarjeta, se especifica qué campo muestra esta tarjeta y otros detalles.By setting the DataField property of a card, you specify which field that card shows and other details.

Creación de un registroCreate a record

Cuando un control Formulario de edición se encuentra en modo Edición, el usuario puede actualizar el registro que se especifica en la propiedad Elemento del formulario.When an Edit form control is in Edit mode, the user can update the record that's specified in the form's Item property. Si se inspecciona, la propiedad Modo devuelve Edición.If inspected, the Mode property returns Edit.

Cuando un control Formulario de edición se encuentra en modo Nuevo pero la propiedad Elemento se omite.When an Edit form control is in New mode, however, the Item property is ignored. 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 ha configurado el formulario.The form doesn't show an existing record; instead, the values in each field match the default values of the data source with which you configured the form. La función NuevoFormulario hace que un formulario cambie a este modo.The NewForm function causes a form to switch to this mode.

Por ejemplo, puede establecer la propiedad Texto de un botón para mostrar Nuevo y su propiedad AlSeleccionar en una fórmula que incluya la función NuevoFormulario.For example, you can set the Text property of a button to show New and its OnSelect property to a formula that includes the NewForm function. Si el usuario selecciona ese botón, el formulario cambia al modo Nuevo para que el usuario puede crear un registro a partir de los valores conocidos.If the user selects that button, the form switches to New mode so that the user can create a record starting with known values.

Un formulario vuelve a cambiar a modo Edición si es ejecuta la función ResetForm o la función SubmitForm se ejecuta correctamente.A form switches back to Edit mode if either the ResetForm function runs or the SubmitForm function runs successfully.

  • Puede establecer la propiedad Texto de un botón para mostrar Cancelar y su propiedad AlSeleccionar en una fórmula que incluya la función ResetForm.You can set the Text property of a button to show Cancel and its OnSelect property to a formula that includes the ResetForm function. Si el usuario selecciona ese botón, se descartan todos los cambios en curso, y los valores en el formulario, una vez más, coinciden con los valores predeterminados del origen de datos.If the user selects that button, any changes in progress are discarded, and the values in the form, once again, match the default values of the data source.
  • Puede establecer la propiedad Texto de un botón para mostrar Guardar cambios y su propiedad AlSeleccionar en una fórmula que incluya la función SubmitForm.You can set the Text property of a button to show Save changes and its OnSelect property to a formula that includes the SubmitForm function. Si el usuario selecciona ese botón y se actualiza el origen de datos, los valores en el formulario se restablecen a los valores predeterminados del origen de datos.If the user selects that button and the data source is updated, the values in the form are reset to the default values of the data source.

Guardar cambiosSave changes

Si crea un botón Guardar cambios tal y como se describe en la sección anterior, el usuario puede crear o actualizar un registro y luego seleccionar ese botón para guardar esos cambios en el origen de datos.If you create a Save changes button as the previous section describes, the user can create or update a record and then select that button to save those changes to the data source. En su lugar, puede configurar un control Imagen o algún otro control para realizar la misma tarea, siempre y cuando configure ese control con la función SubmitForm.You could, instead, configure an Image control or some other control to perform the same task, as long as you configure that control with the SubmitForm function. En cualquier caso, las propiedades Error, ErrorKind, OnSuccess, y OnFailure proporcionan comentarios sobre el resultado.In any case, the Error, ErrorKind, OnSuccess, and OnFailure properties provide feedback on the outcome.

Cuando la función SubmitForm se ejecuta, validará primero los datos que el usuario desea enviar.When the SubmitForm function runs, it first validates the data that user wants to submit. Si un campo obligatorio no contiene un valor u otro valor no se ajusta a alguna otra restricción, las propiedades ErrorKind se establecen y se ejecuta la fórmula OnFailure.If a required field doesn't contain a value or another value doesn't conform to some other constraint, the ErrorKind properties are set, and the OnFailure formula runs. Puede configurar el botón Guardar cambios u otro control de forma que el usuario pueda seleccionarlo solo si los datos son válidos (es decir, si la propiedad Válido del formulario es true).You can configure the Save changes button or other control so that the user can select it only if the data is valid (that is, if the Valid property of the form is true). Tenga en cuenta que el usuario no solo tiene que corregir el problema sino que también tiene que volver a seleccionar el botón Guardar cambios (o descartar los cambios seleccionando un botón Cancelar, como se describió anteriormente) para restablecer las propiedades Error y ErrorKind.Note that the user must not only correct the problem but also select the Save changes button again (or discard the changes by selecting a Cancel button, as described earlier) to reset the Error and ErrorKind properties.

Si los datos pasan la validación, SubmitForm los envía al origen de datos, lo que puede tardar algún tiempo dependiendo de la latencia de red.If the data passes validation, SubmitForm sends it to the data source, which can take some time depending on network latency.

  • Si el envío se realiza correctamente, la propiedad Error se desactiva, la propiedad ErrorKind se establece en ErrorKind.Noney se ejecuta la fórmula OnSuccess.If the submission succeeds, the Error property is cleared, the ErrorKind property is set to ErrorKind.None, and the OnSuccess formula runs. Si el usuario creó un registro (es decir, si el formulario se encontraba anteriormente en modo Nuevo), el formulario se cambia a modo Edición para que el usuario pueda editar el registro recién creado o uno diferente.If the user created a record (that is, if the form was previously in New mode), the form is switched to Edit mode so that the user can edit the newly created record or a different one.
  • Si se produce un error en el envío, la propiedad Error contiene un mensaje de error descriptivo del origen de datos, en donde se explica el problema.If the submission fails, the Error property contains a user-friendly error message from the data source, explaining the problem. La propiedad ErrorKind se establece como corresponda, dependiendo del problema y se ejecuta la fórmula OnFailure.The ErrorKind property is set appropriately, depending on the issue, and the OnFailure formula runs.

Algunos orígenes de datos pueden detectar cuando hay dos personas tratando de actualizar el mismo registro a la vez. En este caso, ErrorKind se establece en ErrorKind.Conflict, y la solución es actualizar el origen de datos con los cambios del otro usuario y volver a aplicar los cambios realizados por este usuario.Some data sources can detect when two people try to update the same record at the same time In this case, ErrorKind is set to ErrorKind.Conflict, and the remedy is to refresh the data source with the other user's changes and reapply the change made by this user.

Sugerencia

Si ofrece un botón Cancelar en el formulario para que el usuario puede descartar los cambios en curso, agregue la función ResetForm a la propiedad AlSeleccionar del botón, aunque dicha propiedad contenga también una función Navegar para cambiar de pantalla.If you offer a Cancel button on your form so that the user can abandon changes in progress, add the ResetForm function to the button's OnSelect property even that property also contains a Navigate function to change screens. De lo contrario, el formulario conservará los cambios del usuario.Otherwise, the form will retain the user's changes.

DiseñoLayout

De forma predeterminada, las tarjetas se colocan en una sola columna para las aplicaciones de teléfono y en tres columnas para las aplicaciones de tableta.By default, cards are placed in a single column for phone apps and three columns for tablet apps. Puede especificar cuántas columnas tiene un formulario y si se deben ajustar a ellas las tarjetas al configurar el formulario.You can specify how many columns a form has and whether cards should snap to them as you configure the form. Esta configuración no se expone en propiedades, porque se usa únicamente para definir las propiedades X, Y y Width de las tarjetas.These settings aren't exposed as properties because they're used only to set the X, Y, and Width properties of the cards.

Para más información, consulte Understand data form layout in Microsoft PowerApps (Introducción al diseño de formularios de datos en Microsoft PowerApps).For more information, see Understand data form layout.

Propiedades principalesKey properties

DataSource: el origen de datos que contiene el registro que el usuario muestra, edita o crea.DataSource – The data source that contains the record that the user will show, edit, or create.

  • Si no establece esta propiedad, el usuario no puede mostrar, editar o crear un registro, y no se proporcionan ni metadatos adicionales ni la validación.If you don't set this property, the user can't show, edit, or create a record, and no additional metadata or validation is provided.

DefaultMode: el modo inicial del control de formulario.DefaultMode - The initial mode of the form control. Consulte a continuación la descripción de Modo para conocer los valores aceptables y sus significados.See the description of Mode below for the acceptable values and their meanings.

DisplayMode: el modo que se utiliza para las tarjetas de datos y los controles del control de formulario.DisplayMode - The mode to use for data cards and controls within the form control.

Deriva de la propiedad Modo en la que se basa y no se puede establecer de forma independiente:Derived from the Mode property based and cannot be set independently:

ModoMode DisplayModeDisplayMode DescripciónDescription
FormMode.EditFormMode.Edit DisplayMode.EditDisplayMode.Edit Las tarjetas de datos y los controles son editables, y están listos para aceptar los cambios de un registro.Data cards and controls are editable, ready to accept changes to a record.
FormMode.NewFormMode.New DisplayMode.EditDisplayMode.Edit Las tarjetas de datos y los controles son editables, y están listos para aceptar un nuevo registro.Data cards and controls are editable, ready to accept a new record.
FormMode.ViewFormMode.View DisplayMode.ViewDisplayMode.View Las tarjetas de datos y los controles no son editables y están optimizados para su visualización.Data cards and controls are not editable and optimized for viewing.

Error: un mensaje de error descriptivo para mostrar para este formulario cuando se produce un error en la función SubmitForm.Error – A user friendly error message to display for this form when the SubmitForm function fails.

  • Esta propiedad solo se aplica al control Formulario de edición.This property applies only to the Edit form control.
  • Esta propiedad cambia solo cuando se ejecuta la función SubmitForm, EditForm, o ResetForm.This property changes only when the SubmitForm, EditForm, or ResetForm function runs.
  • Si no se produce ningún error, esta propiedad está en blanco, y ErrorKind se establece en ErrorKind.None.If no error occurs, this property is blank, and ErrorKind is set to ErrorKind.None.
  • Cuando sea posible, el mensaje de error devuelto estará en el idioma del usuario.When possible, the error message returned will be in the user's language. Algunos mensajes de error proceden directamente del origen de datos y puede que no estén en el idioma del usuario.Some error messages come from the data source directly and may not be in the user's language.

ErrorKind: si se produce un error cuando se ejecuta SubmitForm, el tipo de error que se produjo:ErrorKind – If an error occurs when SubmitForm runs, the kind of error that occurred.

  • Solo se aplica a un control Formulario de edición.Applies only to an Edit form control.
  • Esta propiedad no tiene la misma enumeración que la función Errores.This property has the same enumeration as the Errors function. Un control Formulario de edición puede devolver estos valores:An Edit form control can return these values:
ErrorKindErrorKind DescripciónDescription
ErrorKind.ConflictErrorKind.Conflict Otro usuario ha cambiado el mismo registro, lo que produce un conflicto de cambios.Another user changed the same record, resulting in a change conflict. Ejecute la función Actualizar para volver a cargar el registro e intente de nuevo el cambio.Execute the Refresh function to reload the record, and try the change again.
ErrorKind.NoneErrorKind.None El error es de un tipo desconocido.The error is of an unknown kind.
ErrorKind.SyncErrorKind.Sync El origen de datos informó de un error.The data source reported an error. Compruebe la propiedad Error para obtener más información.Check the Error property for more information.
ErrorKind.ValidationErrorKind.Validation Se detectó un problema de validación general.A general validation issue was detected.

Elemento: el registro en el origen de datos que el usuario mostrará o editará.Item – The record in the DataSource that the user will show or edit.

LastSubmit: el último registro enviado correctamente, incluidos los campos generada por el servidor.LastSubmit – The last successfully submitted record, including any server generated fields.

  • Esta propiedad solo se aplica al control Formulario de edición.This property applies only to the Edit form control.
  • Si el origen de datos genera automáticamente o calcula cualquier campo, como un campo de identificador con un número único, la propiedad LastSubmit tendrá este nuevo valor después de que SubmitForm se ejecute correctamente.If the data source automatically generates or calculates any fields, such as an ID field with a unique number, the LastSubmit property will have this new value after SubmitForm successfully runs.
  • El valor de esta propiedad está disponible en la fórmula OnSuccess.The value of this property is available in the OnSuccess formula.

Modo: el control se encuentra en modo Edición o Nuevo.Mode – The control is in Edit or New mode.

ModoMode DescripciónDescription
FormMode.EditFormMode.Edit El usuario puede editar un registro mediante el formulario.The user can edit a record by using the form. Los valores de las tarjetas del formulario se rellenan con el registro existente, el usuario puede cambiarlos.The values in the form's cards are pre-populated with the existing record, for the user to change. Si la función SubmitForm se ejecuta correctamente, se modifica un registro existente.If the SubmitForm function runs successfully, an existing record is modified.
FormMode.NewFormMode.New El usuario puede crear un registro mediante el formulario.The user can create a record by using the form. Los valores de los controles del formulario se rellenan con los valores predeterminados para un registro del origen de datos.The values in the form's controls are pre-popoulated with the defaults for a record of the data source. Si la función SubmitForm se ejecuta correctamente, se crea un registro.If the SubmitForm function runs successfully, an record is created.
FormMode.ViewFormMode.View El usuario puede ver un registro mediante el formulario.The user can view a record by using the form. Los valores de los controles del formulario se rellenan con los valores predeterminados para un registro del origen de datos.The values in the form's controls are pre-popoulated with the defaults for a record of the data source.

El formulario cambia de modo Nuevo a modo Edición cuando se produce cualquiera de estos cambios:The form switches from New mode to Edit mode when any of these changes occurs:

  • El formulario se envía correctamente y se crea un registro.The form is successfully submitted, and a record is created. Si se establece la galería para mover automáticamente la selección a este nuevo registro, el formulario estará en modo Edición para el registro creado para que el usuario puede realizar cambios adicionales.If the gallery is set to automatically move selection to this new record, the form will be in Edit mode for the created record so that the user can make additional changes.
  • Se ejecuta la función EditForm.The EditForm function runs.
  • Se ejecuta la función ResetForm.The ResetForm function runs. Por ejemplo, el usuario puede seleccionar un botón Cancelar que se haya configurado con esta función.For example, the user might select a Cancel button that's been configured with this function.

OnFailure: la forma en la que responde una aplicación cuando una operación de datos ha sido incorrecta.OnFailure – How an app responds when a data operation has been unsuccessful.

  • Esta propiedad solo se aplica al control Formulario de edición.This property applies only to the Edit form control.

OnReset: la forma en la que responde una aplicación cuando se restablece un control Formulario de edición.OnReset – How an app responds when an Edit form control is reset.

  • Esta propiedad solo se aplica al control Formulario de edición.This property applies only to the Edit form control.

OnSuccess: la forma en la que responde una aplicación cuando una operación de datos se ha realizado correctamente.OnSuccess – How an app responds when a data operation has been successful.

  • Esta propiedad solo se aplica al control Formulario de edición.This property applies only to the Edit form control.

Sin guardar: True si el control Formulario de edición contiene cambios de usuario que no se guardaron.Unsaved – True if the Edit form control contains user changes that have not been saved.

  • Esta propiedad solo se aplica al control Formulario de edición.This property applies only to the Edit form control.
  • Utilice esta propiedad para advertir al usuario antes de que pierda los cambios no guardados.Use this property to warn the user before they lose any unsaved changes. Para impedir que el usuario seleccione un registro diferente en un control Galería antes de guardar los cambios en el registro actual, establezca la propiedad Deshabilitado en Form.Unsaved y, asimismo, deshabilite las operaciones de actualización.To prevent the user from selecting a different record in a Gallery control before saving changes to the current record, set the gallery's Disabled property to Form.Unsaved and, likewise, disable refresh operations.

Actualizaciones: los valores que se van a escribir en el origen de datos para un registro cargado en un control de formulario.Updates – The values to write back to the data source for a record loaded in a form control.

  • Esta propiedad solo se aplica al control Formulario de edición.This property applies only to the Edit form control.
  • Utilice esta propiedad para extraer los valores de campo de las tarjetas en el control.Use this property to extract the field values from the cards within the control. A continuación, puede utilizar estos valores para actualizar manualmente el origen de datos con una llamada de función Revisión u otro método expuesto por una conexión.You can then use these values to manually update the data source with a Patch function call or another method exposed by a connection. No es necesario utilizar esta propiedad si usa la función SubmitForm.You do not need to use this property if you are using the SubmitForm function.
  • Esta propiedad devuelve un registro de valores.This property returns a record of values. Por ejemplo, si el control de formulario contiene controles de tarjeta para los campos Nombre y Cantidad y los valores de la propiedad Actualizaciones para dichas tarjetas devuelven "Widget" y 10, respectivamente, la propiedad Actualizaciones para el control de formulario devolvería {Nombre: "Widget", Cantidad: 10}.For example, if the form control contains card controls for Name and Quantity fields, and the values of the Update properties for those cards return "Widget" and 10 respectively, then the Updates property for the form control would return { Name: "Widget", Quantity: 10 }.

Válido: indica si un control Tarjeta o Formulario de edición contiene entradas válidas listas para enviarse al origen de datos.Valid – Whether a Card or Edit form control contains valid entries, ready to be submitted to the data source.

  • Esta propiedad solo se aplica al control Formulario de edición.This property applies only to the Edit form control.
  • La propiedad Válido de un control de formulario agrega las propiedades Válido de todos los controles Tarjeta del formulario.A Form control's Valid property aggregates the Valid properties of all the Card controls in the form. La propiedad Válido de un formulario es true solamente si los datos en todas las tarjetas de ese formulario son válidos, de lo contrario, la propiedad Válido del formulario es false.A form's Valid property is true only if the data in all cards in that form is valid; otherwise, the form's Valid property is false.
  • Para habilitar un botón para guardar los cambios solo cuando los datos en un formulario son válidos pero aún no se han enviado, establezca el botón Habilitado con esta fórmula:To enable a button to save changes only when the data in a form is valid but hasn't yet been submitted, set the button's Enabled to this formula:

    SubmitButton.Enabled = IsBlank( Form.Error ) || Form.ValidSubmitButton.Enabled = IsBlank( Form.Error ) || Form.Valid

Propiedades adicionalesAdditional properties

BorderColor: el color de un borde del control.BorderColor – The color of a control's border.

BorderStyle: si el borde del control es Solid, Dashed, Dotted o None.BorderStyle – Whether a control's border is Solid, Dashed, Dotted, or None.

BorderThickness: el grosor de un borde del control.BorderThickness – The thickness of a control's border.

Fill: el color de fondo de un control.Fill – The background color of a control.

Height: la distancia entre los bordes superior e inferior de un control.Height – The distance between a control's top and bottom edges.

Visible: indica si un control aparece o está oculto.Visible – Whether a control appears or is hidden.

Width: la distancia entre los bordes derecho e izquierdo de un control.Width – The distance between a control's left and right edges.

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).X – The distance between the left edge of a control and the left edge of its parent container (screen if no parent container).

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).Y – The distance between the top edge of a control and the top edge of the parent container (screen if no parent container).

Más informaciónMore information

Para información general integral sobre cómo funcionan los formularios, consulte la introducción a los formularios de datos.For a comprehensive overview of how forms work, see Understand data forms.