Usar el control Formulario de la entidadUse the Entity form control

Cree aplicaciones más rápidamente mediante el control Formulario de la entidad para agregar completos formularios para una entidad de Common Data Service.Create apps faster by using the Entity form control to add rich forms for a Common Data Service entity.

Para ver una introducción al control Formulario de la entidad, consulte esta entrada de blog: New entity form control (experimental feature) for Common Data Service (Nuevo control Formulario de la entidad (versión preliminar) para Common Data Service).For an introduction to the Entity form control, see this blog post: New entity form control (experimental feature) for Common Data Service.

Importante: Tenga en cuenta la naturaleza experimental del control Formulario de la entidad, tal como se describe en la entrada de blog, y tenga cuidado al usarlo en aplicaciones de producción, al menos por ahora.Important: Please be aware of the experimental nature of the Entity form control as outlined in the blog post, and be careful about using the Entity form control in production apps, at least for now.

Propiedades principalesKey properties

Estas son las propiedades fundamentales de un control Formulario de la entidad.Here are the key properties of an Entity form control.

DataSource: especifica el origen de datos que contiene el registro o los registros que desea mostrar.DataSource – Specifies the data source that contains the record(s) that you want to display.
Nota: Actualmente se admiten solo entidades en Common Data Service como orígenes de datos para el control Formulario de la entidad.Note: Currently only entities in the Common Data Service are supported as data sources for the Entity form control.

Patrón: especifica el estilo del formulario que desea mostrar en el control Formulario de la entidad.Pattern – Specifies the style of the form that you want to display in the Entity form control. Establezca esta propiedad mediante la enumeración FormPattern.Set this property by using the FormPattern enumeration.

  • FormPattern.List: muestra una lista tabular de registros.FormPattern.List – Displays a tabular list of records.
  • FormPattern.CardList: muestra una lista de tarjetas de registros.FormPattern.CardList – Displays a card list of records.
  • FormPattern.Details: muestra un formulario para ver o editar los detalles de un único registro.FormPattern.Details – Displays a form to view or edit the details of a single record.
  • FormPattern.None: no se ha especificado explícitamente ningún estilo.FormPattern.None – No style has been explicitly specified. El valor predeterminado es List para aplicaciones de tableta y CardList para las de teléfono.Defaults to List for tablet apps and CardList for phone apps.

Item: especifica el registro en el origen de datos que el control Formulario de la entidad debería mostrar.Item – Specifies the record in the data source that the Entity form control should display. Esta propiedad se usa solo cuando Patrón está establecida en FormPattern.Details.This property is used only when Pattern is set to FormPattern.Details.

Seleccionado: obtiene el registro que está seleccionado actualmente.Selected – Gets the record that’s currently selected.
Ejemplo: si el control Formulario de la entidad muestra una lista de registros de pedido de ventas, la propiedad Seleccionado le proporcionará el registro que está seleccionado actualmente.Example: If the Entity form control displays a list of sales-order records, the Selected property will give you the record that’s currently selected. También puede acceder a un campo dentro de un registro.You can also access a field within a record. (Por ejemplo, especifique el valor del campo Account del registro seleccionado como Selected.Account).(For example, specify the value of the Account field of the selected record as Selected.Account.)

CamposSeleccionables: especifica qué campos deben aparecer como vínculos.SelectableFields – Specifies which fields should appear as links. Establezca el valor de esta propiedad con esta sintaxis:Set the value of this property by using this syntax:
{NombreDeCampo1: true, NombreDeCampo2: true}{Field1Name : true, Field2Name : true}
Ejemplo: si desea que los campos SalesOrderId y Account aparezcan como vínculos en un formulario, establezca la propiedad CamposSeleccionables de ese formulario en este valor:Example: If you want the SalesOrderId and Account fields to appear as links in a form, set the SelectableFields property of that form to this value:
{SalesOrderId : true, Account : true}{SalesOrderId : true, Account : true}

CampoSeleccionado: determina en qué campo se hizo clic o se pulsó.SelectedField – Determines which field was clicked or tapped. Esto solo se aplica a los campos especificados como CamposSeleccionables.This applies only to the fields specified as SelectableFields.
Ejemplo: si establece la propiedad CamposSeleccionables en {SalesOrderId: true, Account: true} y el usuario hace clic o pulsa en el campo Account, SelectedField.Account está establecido en true.Example: If you set the SelectableFields property to {SalesOrderId : true, Account : true} and the user clicks or taps the Account field, SelectedField.Account is set to true.

OnFieldSelect: cómo responde una aplicación cuando el usuario hace clic o pulsa en un campo.OnFieldSelect – How an app responds when the user clicks or taps a field. Esto solo se aplica a los campos especificados como CamposSeleccionables.This applies only to the fields specified as SelectableFields.

Mode: determina el modo del formulario.Mode – Determines the mode of the form. Para cambiar el modo, utilice la función ViewForm, EditarFormulario o NewForm.To change the mode, use the ViewForm, EditForm, or NewForm function. Estas funciones solo se pueden usar cuando la propiedad Patrón está establecida en FormPattern.Details.These functions work only when the Pattern property is set to FormPattern.Details. Establezca el valor de la propiedad Mode en uno de los de la enumeración FormMode.Set the value of the Mode property to a value of the FormMode enumeration.

  • FormMode.View: permite que los usuarios vean pero no que editen ni agreguen un registro.FormMode.View – Allows users to view but not edit or add a record.
  • FormMode.Edit: permite que los usuarios editen un registro.FormMode.Edit – Allows users to edit a record.
  • FormMode.New: permite que los usuarios agreguen un registro.FormMode.New – Allows users to add a record.

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.

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.

Unsaved: determina si un registro que un usuario está editando tiene cambios no guardados.Unsaved – Determines whether a record that a user is editing has unsaved changes.

Puede usar estas funciones compartidas con el control Formulario de la entidad o el control de formulario Editar.You can use these shared functions with either the Entity form control or the Edit form control. Estas funciones se pueden usar con el control Formulario de la entidad solo cuando su propiedad Patrón está establecida en FormPattern.Details.These functions work with the Entity form control only when its Pattern property is set to FormPattern.Details.

ViewForm: establece la propiedad Mode de un control Formulario de la entidad en FormMode.View.ViewForm – Sets the Mode property of an Entity form control to FormMode.View.

EditarFormulario: establece la propiedad Mode de un control Formulario de la entidad en FormMode.Edit.EditForm- Sets the Mode property of an Entity form control to FormMode.Edit.

NewForm: establece la propiedad Mode de un control Formulario de la entidad en FormMode.New.NewForm - Sets the Mode property of an Entity form control to FormMode.New.

SubmitForm: guarda los cambios cuando un usuario edita un registro en un control Formulario de la entidad.SubmitForm - Saves changes when a user edits a record in an Entity form control.

ResetForm: abandona los cambios sin guardar cuando un usuario edita un registro en un control Formulario de la entidad.ResetForm - Abandons unsaved changes when a user edits a record in an Entity form control.

Después de esta introducción a las distintas propiedades y funciones, se van a mostrar en acción.Now that you have an overview of the various properties and functions, let’s look at them in action.

Nota: Si no tiene acceso a una base de datos de Common Data Service, cree una antes de empezar a seguir estos pasos.Note: If you don’t have access to a Common Data Service database, create one before you start to follow these steps.

Mostrar una lista de registrosDisplay a list of records

Los cinco procedimientos siguientes proporcionan un ejemplo único, de principio a fin, de cómo usar controles Formulario de la entidad.The next five procedures provide a single, end-to-end example of how to use Entity form controls. En este procedimiento, se agrega un formulario que muestra una lista de pedidos de ventas.In this procedure, add a form that shows a list of sales orders.

  1. Cree una aplicación de tableta vacía.Create a blank tablet app.

  2. Cambie el nombre de la primera pantalla a SalesOrderListScreen.Rename the first screen SalesOrderListScreen.

  3. En la pestaña Insertar, haga clic o pulse en Formularios y en Formulario de la entidad (versión preliminar).On the Insert tab, click or tap Forms, and then click or tap Entity form (experimental).

    Se agrega un control Formulario de la entidad a la pantalla.An Entity form control is added to the screen.

  4. Cambie el nombre del control Formulario de la entidad a SalesOrderListForm y aumente su tamaño para cubrir toda la pantalla.Rename the Entity form control SalesOrderListForm, and resize it to cover the entire screen.
  5. En el panel derecho, haga clic en o pulse en el icono de la base de datos junto al texto No se ha seleccionado un origen de datos y haga clic o pulse en Agregar un origen de datos.In the right-hand pane, click or tap the database icon next to the text No data source selected, and then click or tap Add a data source.

  6. En la lista de conexiones, haga clic o pulse en la conexión para la base de datos.In the list of connections, click or tap the connection for your database.

  7. En la lista de entidades, haga clic o pulse en Pedido de ventas y en Conectar.In the list of entities, click or tap Sales order, and then click or tap Connect.

    Se crea un origen de datos para la entidad Pedido de ventas y la propiedad DataSource de SalesOrderListForm se establece en ese origen de datos.A data source for the Sales order entity is created, and the DataSource property of the SalesOrderListForm is set to that data source.

    El control Formulario de la entidad muestra una lista de pedidos de ventas.The Entity form control shows a list of sales orders. Con el control Formulario de la entidad, ha mostrado rápidamente un formulario de lista sin tener que crearlo manualmente.By using the Entity form control, you quickly displayed a list form without having to manually build it.

    No ha configurado la propiedad Patrón para el control Formulario de la entidad, por lo que el valor predeterminado es el patrón List.You didn’t set the Pattern property for the Entity form control, so it defaults to the List pattern. Por otra parte, el grupo de campos DefaultList de la entidad Pedido de ventas se usa para mostrar el formulario de lista.In addition, the DefaultList field group of the Sales order entity is used to display the list form. Además, el formulario es dinámico y reflejará automáticamente cualquier cambio en el grupo de campos.The form is also dynamic and will automatically reflect any change in the field group.

  8. (Opcional) Vea el grupo de campos DefaultList de la entidad Pedido de ventas:(Optional) View the DefaultList field group of the Sales order entity:

    1. Inicie sesión en powerapps.com, haga clic o pulse en Common Data Service en el panel de navegación izquierdo y, después, en Entidades.Sign in to powerapps.com, click or tap Common Data Service in the left navigation pane, and then click or tap Entities.
    2. En la lista de entidades, haga clic o pulse en Pedido de ventas, en la pestaña Grupos de campos y en el grupo de campos DefaultList.In the list of entities, click or tap Sales order, click or tap the Field groups tab, and then click or tap the DefaultList field group.

      Los campos en la lista de pedidos de ventas coinciden con los mencionados aquí.The fields in the sales order list match those listed here.

      En Common Data Service, también puede modificar grupos de campos para entidades personalizadas (pero no entidades estándar) con el fin de cambiar los campos que aparecen en los formularios correspondientes que el control Formulario de la entidad muestra.In the Common Data Service, you can modify field groups for custom entities (but not standard entities) to change the fields that appear on the corresponding forms that the Entity form control displays. Lo mejor de todo es que cualquier cambio en el grupo de campos se refleja automáticamente en todas las aplicaciones que usan un control Formulario de la entidad para mostrar el formulario correspondiente.Best of all, any change to the field group is automatically reflected in all the apps that use an Entity form control to display the corresponding form.

Mostrar los detalles de un registroDisplay the details of a record

Ahora se va a agregar otro control Formulario de la entidad para mostrar los detalles del pedido de ventas que está seleccionado en la lista que creó antes.Let’s add another Entity form control to display the details of the sales order that’s selected in the list that you created earlier.

  1. Cambie el tamaño de SalesOrderListForm hasta que cubra la mitad de la pantalla y agregue un segundo control Formulario de la entidad para cubrir la otra mitad.Resize SalesOrderListForm to cover half the screen, and add a second Entity form control to cover the other half of the screen.

  2. Cambie el nombre del segundo control Formulario de la entidad a SalesOrderDetailsForm y conéctelo al origen de datos Pedido de ventas que creó antes.Rename the second Entity form control SalesOrderDetailsForm, and connect it to the Sales order data source that you created earlier.

  3. Establezca la propiedad Patrón de SalesOrderDetailsForm en FormPattern.Details.Set the Pattern property of SalesOrderDetailsForm to FormPattern.Details.

    SalesOrderDetailsForm usa el grupo de campos DefaultDetails de la entidad Pedido de ventas para mostrar el formulario.SalesOrderDetailsForm uses the DefaultDetails field group of the Sales order entity to display the form. Al igual que con SalesOrderListForm, puede mostrar rápidamente los detalles del registro sin tener que crear manualmente un formulario.As with the SalesOrderListForm, you can quickly show record details without having to manually build a form.

  4. Establezca la propiedad Item de SalesOrderDetailsForm en SalesOrderListForm.Selected.Set the Item property of SalesOrderDetailsForm to SalesOrderListForm.Selected.

    SalesOrderDetailsForm mostrará los detalles del registro en el que el usuario hace clic o pulsa en SalesOrderListForm.SalesOrderDetailsForm will display the details of the record that the user clicks or taps in SalesOrderListForm.

  5. Para obtener una vista previa de la aplicación, presione F5 y haga clic o pulse en un pedido de ventas en la lista de la izquierda.Preview the app by pressing F5, and then click or tap a sales order in the list on the left.

    Los detalles del pedido que ha seleccionado aparecen a la derecha.The details of the order that you selected appear on the right side.

Configurar un campo para ir a otra pantallaConfigure a field to navigate to another screen

A continuación, se van a agregar más pantallas a la aplicación y a configurar campos en un control Formulario de la entidad para ir a otra pantalla de la aplicación cuando el usuario hace clic o pulsa en un campo.Next let’s add more screens to our app and then configure fields in an Entity form control to navigate to another screen in the app when the user clicks or taps a field.

  1. Agregue una segunda pantalla a la aplicación y cámbiela de nombre a SalesOrderDetailsScreen.Add a second screen to the app, and rename the screen SalesOrderDetailsScreen.
  2. Corte SalesOrderDetailsForm, péguelo en SalesOrderDetailsScreen y cambie el formulario de tamaño para que cubra la mayor parte de la pantalla, dejando espacio suficiente para un icono en la parte superior.Cut the SalesOrderDetailsForm, paste it on the SalesOrderDetailsScreen, and resize the form to cover most of the screen, leaving enough space for an icon at the top.
  3. Agregue un icono Flecha atrás cerca de la esquina superior izquierda de SalesOrderDetailsScreen.Add a back-arrow icon near the upper-left corner of SalesOrderDetailsScreen.
  4. Establezca la propiedad AlSeleccionar del icono Flecha atrás en la función Atrás.Set the OnSelect property of the back-arrow icon to the Back function.

  5. En SalesOrderListScreen, cambie el tamaño de SalesOrderListForm para que cubra toda la pantalla.On the SalesOrderListScreen, resize the SalesOrderListForm to cover the entire screen.
  6. Haga clic o pulse en SalesOrderListForm para seleccionarlo.Click or tap the SalesOrderListForm to select it.
  7. En el panel derecho, en Campos, establezca SalesOrderId para que vaya a SalesOrderDetailsScreen.In the right-hand pane, under Fields, set SalesOrderId to navigate to the SalesOrderDetailsScreen.

    El control Formulario de la entidad muestra los valores del campo SalesOrderId (la primera columna de la lista) como vínculos.The Entity form control displays the values in the SalesOrderId field (the first column in the list) as links.

  8. Para obtener una vista previa de la aplicación, presione F5 y haga clic o pulse en un vínculo de la lista de pedidos de ventas.Preview the app by pressing F5, and then click or tap a link in the list of sales orders.

    Se abre la segunda pantalla y se muestran los detalles del pedido de ventas que ha especificado.The second screen opens and displays the details of the sales order that you specified.

    Para mostrar los detalles de otro pedido de ventas, haga clic o pulse en la flecha atrás para volver a la lista y haga clic o pulse en el vínculo del pedido cuyos detalles desea mostrar.To display the details of a different sales order, click or tap the back arrow to navigate back to the list, and then click or tap the link of the order for which you want to show details.

La propiedad Item de SalesOrderDetailsForm está establecida en SalesOrderListForm.Selected para que SalesOrderDetailsForm muestre detalles sobre el registro que el usuario seleccione en SalesOrderListForm.The Item property of the SalesOrderDetailsForm is set to SalesOrderListForm.Selected so that SalesOrderDetailsForm shows details about the record that the user selects in SalesOrderListForm. También puede obtener el contexto del registro seleccionado mediante la variable de contexto NavigationContext, que se crea automáticamente cuando se usa el panel de personalización de formularios para configurar un campo al que ir.You can also get the context of the selected record by using the NavigationContext context variable, which gets automatically created when you use the form-customization pane to configure a field to navigate.

  1. Establezca la propiedad Item de SalesOrderDetailsForm en NavigationContext.Set the Item property of SalesOrderDetailsForm to NavigationContext.

  2. Para obtener una vista previa de la aplicación, presione F5 y haga clic o pulse en un vínculo de la lista de pedidos de ventas.Preview the app by pressing F5, and then click or tap a link in the list of sales orders.

    La aplicación abre SalesOrderDetailsScreen y muestra los detalles del pedido de ventas que ha especificado.The app opens SalesOrderDetailsScreen and displays the details of the sales order that you specified.

Ahora se va a profundizar en cómo el panel de personalización de formularios configura la navegación y el contexto.Let’s dig into how the form-customization pane sets up the navigation and context for us.

La propiedad CamposSeleccionables de SalesOrderListForm especifica SalesOrderId como campo seleccionable.The SelectableFields property of the SalesOrderListForm specifies SalesOrderId as a selectable field.

Esto se configura automáticamente cuando se utiliza el panel de personalización de formularios para hacer que el campo SalesOrderId vaya a SalesOrderDetailsScreen.This was set up automatically when we used the form-customization pane to make the SalesOrderId field navigate to the SalesOrderDetailsScreen. Por lo tanto, los valores del campo SalesOrderId aparecen como vínculos.Therefore, the values in the SalesOrderId field appear as links.

La propiedad OnFieldSelect de SalesOrderListForm está establecida en una función If, que determina si el usuario hace clic o pulsa en el campo Id. de pedido de ventas: SalesOrderListForm.SelectedField.SalesOrderId = true.The OnFieldSelect property of the SalesOrderListForm is set to an If function, which determines whether the user clicks or taps the Sales order ID field: SalesOrderListForm.SelectedField.SalesOrderId = true.

Si la función se evalúa como true, SalesOrderDetailsScreen se abre con la variable de contexto denominada NavigationContext que se ha usado antes.If the function is evaluated as true, the SalesOrderDetailsScreen opens with the context variable named NavigationContext that we used earlier.

Además, todo esto se configura automáticamente cuando se utiliza el panel de personalización de formularios para hacer que el campo SalesOrderId vaya a SalesOrderDetailsScreen.All this was also set up automatically when we used the form-customization pane to make the SalesOrderId field navigate to the SalesOrderDetailsScreen.

Por lo tanto, cuando el usuario hace clic o pulsa en un campo Id. de pedido de ventas, la función If se evalúa como true y se llama a la función Navegar con el contexto correspondiente, lo que abre la pantalla de detalles.Therefore, when the user clicks or taps a sales order ID field, the If function evaluates to true, and the Navigate function is called with the corresponding context, opening the details screen.

Nota: Cuando se usa el panel de personalización de formularios, se determina NavigationContext de forma inteligente y automática.Note: When you use the form-customization pane, the NavigationContext is intelligently determined for you. Cuando el usuario hace clic o pulsa en SalesOrderId, NavigationContext se establece en SalesOrderListForm.Selected, como se muestra en la fórmula anterior.When the user clicks or taps SalesOrderId, NavigationContext is set to SalesOrderListForm.Selected, as the earlier formula shows. Si se hubiera especificado el campo Account para la navegación en su lugar, NavigationContext se habría establecido en SalesOrderListForm.Selected.Account para asegurarse de que se pasara el contexto correcto.If we had specified the Account field for navigation instead, NavigationContext would have been set to SalesOrderListForm.Selected.Account, ensuring that the correct context is passed. Sin embargo, para consumir ese contexto, necesitaría tener un control Formulario de la entidad conectado a la entidad Cuenta en Common Data Service.However, to consume that context, you would need an Entity form control connected to the Account entity in the Common Data Service.

Editar y guardar un registroEdit and save a record

Por último, se va a explicar cómo editar y guardar un registro en un control Formulario de la entidad.Finally let’s look at how we can edit and save a record in an Entity form control.

  1. En SalesOrderDetailsScreen, agregue un icono Editar y establezca su propiedad AlSeleccionar en esta fórmula:On the SalesOrderDetailsScreen, add an edit icon, and then set its OnSelect property to this formula:
    EditForm(SalesOrderDetailsForm)EditForm(SalesOrderDetailsForm)

  2. Agregue un icono de marca de verificación junto al icono Editar y establezca la propiedad AlSeleccionar del icono de marca de verificación en esta fórmula:Add a checkmark icon next to the edit icon, and then set the OnSelect property of the checkmark icon to this formula:
    SubmitForm(SalesOrderDetailsForm)SubmitForm(SalesOrderDetailsForm)

  3. Para obtener una vista previa de la aplicación, presione F5, haga clic o pulse en un vínculo Id. de pedido de ventas para ver los detalles de un pedido de ventas y haga clic o pulse en el icono Editar.Preview the app by pressing F5, click or tap a Sales order ID link to view the details of a sales order, and then click or tap the edit icon.

    La propiedad Mode del control Formulario de la entidad se establece en FormMode.Edit para que pueda editar el registro.The Mode of the Entity form control is set to FormMode.Edit so that you can edit the record.

  4. Actualice Estado de pedido a Factura.Update the Order status to Invoice.

  5. Actualice Vendedor a WRK014.Update the Sales person to WRK014.

    Para ayudarle a elegir un valor en Vendedor, el control Formulario de la entidad representa automáticamente una búsqueda detallada completa.To help you pick the Sales person, the Entity form control automatically renders a rich detailed lookup. Para generar y mostrar esta búsqueda, el control usa el grupo de campos DefaultLookup de la entidad Trabajador en Common Data Service.To generate and display this lookup, the control uses the DefaultLookup field group of the Worker entity in the Common Data Service. Se usa la entidad Trabajador porque el campo Vendedor es de tipo Trabajador.The Worker entity is used because the Sales person field is of type Worker.

  6. Haga clic o pulse en el icono de marca de verificación para guardar los cambios.Click or tap the checkmark icon to save your changes.

Con este paso se finaliza este artículo sobre cómo usar el control Formulario de la entidad en sus aplicaciones.This step concludes this article on how to use the Entity form control in your apps. Esperamos que la información que se trata aquí le haya resultado útil para empezar a usar el control Formulario de la entidad.We hope that you find the information covered here useful to get started using the Entity form control. Estamos deseando escuchar lo que piensa sobre el control Formulario de la entidad y nuestra iniciativa general para ayudarle a agregar rápidamente formularios completos a las aplicaciones.We look forward to hearing what you think about the Entity form control and our overall push toward helping you quickly add rich forms to your apps.