Compartir a través de


Comprender las tarjetas de datos en aplicaciones de lienzo

Los controles Mostrar formulario y Editar formulario en aplicaciones de lienzo son contenedores para registros completos. Cada formulario tiene varios controles de tarjeta, que son los componentes fundamentales del formulario. Cada tarjeta muestra o permite editar un único campo del registro y está vinculada a ese campo a través de su propiedad DataField. El formulario muestra el registro completo y cada tarjeta se centra en un campo, por lo que se controla cómo se muestran o actualizan los datos.

Abra la aplicación para editarla en Power Apps Studio. En la vista de árbol, seleccione un control de formulario. En el panel Propiedades , elija los campos que se van a mostrar, cómo mostrar cada campo y el orden para mostrarlos. Por ejemplo, en la captura de pantalla siguiente se muestra un control Editar formulario en una aplicación creada a partir de una lista denominada Activos, donde se personalizan los campos para adaptarlos a sus necesidades.

Captura de pantalla de un control Editar formulario en una aplicación compilada a partir de una lista denominada Activos. El formulario muestra varios campos que puede personalizar.

Comience con tarjetas leyendo agregar un formulario y comprender los formularios de datos. En este artículo se explica cómo funcionan las tarjetas y cómo personalizar o crear sus propias tarjetas.

Tarjetas predefinidas

Power Apps ofrece un conjunto predefinido de tarjetas para cadenas, números y otros tipos de datos, por lo que puede adaptar la aplicación a necesidades de datos específicas. En el panel derecho, verá los tipos disponibles y puede cambiar la tarjeta de un campo.

Captura de pantalla de una tarjeta seleccionada en Power Apps.

En este ejemplo, se selecciona una tarjeta de texto de una sola línea, pero el texto de la URL es más largo que lo que cabe en una sola línea. Cambie esto a una tarjeta de texto de varias líneas para que los usuarios tengan más espacio para editar.

Captura de pantalla de una edición de tarjeta de texto multilínea en Power Apps.

Algunos de los campos de este origen de datos no se muestran, pero puede mostrar u ocultar un campo seleccionando su casilla. En este ejemplo se muestra cómo mostrar el campo SecurityCode .

Personalizar una tarjeta

Las tarjetas tienen otros controles. En un control Editar formulario, el usuario escribe datos en un control Entrada de texto estándar que se agrega desde la pestaña Insertar.

En este artículo se explica cómo cambiar la apariencia de una tarjeta cambiando los controles en él.

  1. En primer lugar, vamos a volver a la tarjeta que insertamos más recientemente para el campo SecurityCode. Para seleccionar esta tarjeta, selecciónela una vez:

    Seleccionar código de seguridad.

  2. Seleccione el control Entrada de texto dentro de la tarjeta seleccionando el propio control de entrada.

    Seleccionar text input.

  3. Mueva el control dentro de la tarjeta arrastrando el cuadro de selección y redimensionándolo arrastrando los controladores a lo largo del borde del cuadro de selección. Captura de pantalla de arrastrar y cambiar el tamaño del control de entrada de texto dentro de la tarjeta SecurityCode.

Puede cambiar el tamaño de los controles de una tarjeta, moverlos y realizar otras modificaciones, pero no puede eliminarla sin desbloquearla primero.

Desbloquear una tarjeta

Además de contener controles, las tarjetas constituyen en sí mismas controles que tienen propiedades y fórmulas, permitiendo una personalización avanzada. Cuando decide mostrar un campo en un formulario, el panel derecho crea automáticamente la tarjeta y genera las fórmulas necesarias, ahorrándole tiempo y esfuerzo. Podemos ver estas fórmulas en la pestaña Avanzado del panel derecho:

Bloqueo avanzado.

Inmediatamente vemos una de las propiedades más importantes de la tarjeta: la propiedad DataField. Esta propiedad indica qué campo del origen de datos puede ver y editar el usuario en esta tarjeta.

En la pestaña Avanzado, el banner que aparece en la parte superior indica que las propiedades de esta tarjeta están bloqueadas. También aparece un icono de bloqueo junto a las propiedades DataField, DisplayName y Required. El panel derecho fue el que creó estas fórmulas y el bloqueo impide que se realicen cambios accidentales en estas propiedades.

Iconos de candado.

Seleccione la pancarta que aparece en la parte superior para desbloquear la tarjeta y poder modificar estas propiedades:

Tarjeta desbloqueada.

Modifique DisplayName para agregar un espacio entre Asset e ID. Al realizar este cambio, estamos alterando lo que se ha generado automáticamente. En el panel derecho, esta tarjeta tiene una etiqueta distinta:

Cambiar nombre para mostrar.

Ahora hemos tomado el control de esta tarjeta y podemos modificarla para que se ajuste a sus necesidades. Pero hemos perdido la capacidad que teníamos antes de cambiar la tarjeta de una representación a otra (por ejemplo, de texto de una sola línea a texto de múltiples líneas). Hemos transformado la tarjeta predefinida en una "tarjeta personalizada" sobre la que tenemos control.

Importante

Si ha desbloqueado una tarjeta, no podrá volver a bloquearla. Para volver al estado de bloqueo, quite la tarjeta y vuelva a insertarla en el panel derecho.

Puede cambiar la apariencia y el comportamiento de una tarjeta desbloqueada de varias formas como, por ejemplo, con la adición y eliminación de los controles dentro de ella. Por ejemplo, puede agregar una forma de estrella desde el menú Iconos de la pestaña Insertar.

Agregar estrella.

Ahora, la estrella forma parte de la tarjeta y se moverá con ella si, por ejemplo, reordena las tarjetas en el formulario.

Como otro ejemplo, desbloquee la tarjeta ImageURL y, a continuación, agregue un control Imagen en ella mediante la pestaña Insertar:

Agregar imagen.

En la barra de fórmulas, establezca la propiedad Imagen de este control en TextBox.Text, en la que TextBox es el nombre del control Entrada de texto que contiene la URL:

Mostrar imagen.

Ahora ya podemos ver las imágenes y editar sus direcciones URL. Podríamos haber usado Parent.Default como la propiedad Image , pero no habría actualizado si el usuario cambió la dirección URL.

Podemos hacer lo mismo en la segunda pantalla de esta aplicación, en la que usamos un control Mostrar formulario para mostrar los detalles de un registro. En este caso, es posible que queramos ocultar la etiqueta (establezca la propiedad Visible de la etiqueta, no la tarjeta, en false) porque el usuario no editará la dirección URL en esa pantalla:

Mostrar imagen para mostrar.

Interactuar con un formulario

Después de desbloquear una tarjeta, puede cambiar la forma en que interactúa con el formulario que la contiene.

Más adelante se muestran directrices sobre cómo deben funcionar los controles con su tarjeta y cómo deben funcionar las tarjetas con el formulario. Estas directrices le ayudan a comprender cómo crear fórmulas que hagan referencia a otros controles, incluidas las tarjetas y los controles dentro de tarjetas. Desarrolle la creatividad: puede crear una aplicación de muchas maneras para satisfacer sus necesidades específicas.

Propiedad DataField

La propiedad más importante de la tarjeta es DataField. Esta propiedad controla la validación, qué campo se actualiza y otros aspectos de la tarjeta.

Información que entra

Como contenedor, el formulario pone ThisItem a disposición de todas las tarjetas que incluye. Este registro contiene todos los campos del registro actual de interés.

La propiedad Default de todas las tarjetas debe establecerse como ThisItem.FieldName. En algunos casos, puede transformar este valor a medida que entra. Por ejemplo, es posible que desee dar formato a una cadena o traducir el valor de un idioma a otro.

Todos los controles de la tarjeta deben hacer referencia a Parent.Default para tener acceso al valor del campo. Esta estrategia encapsula la tarjeta, lo que permite que la propiedad Default de la tarjeta cambie sin afectar a sus fórmulas internas.

De forma predeterminada, las propiedades DefaultValue y Required se toman de los metadatos del origen de datos basándose en la propiedad DataField. Puede reemplazar estas fórmulas con su propia lógica, integrando los metadatos del origen de datos mediante el uso de la función DataSourceInfo.

Información que sale

Después de que el usuario modifique un registro usando los controles de las tarjetas, la función SubmitForm guarda esos cambios en el origen de datos. Cuando se ejecuta esa función, el control de formulario lee los valores de la propiedad DataField de cada tarjeta para saber qué campo debe cambiar.

El control de formulario también lee el valor de la propiedad Update de cada tarjeta. Este valor se almacenará en el origen de datos para este campo. Este es el lugar para aplicar otra transformación, quizás para revertir la transformación que se ha aplicado en la fórmula Default de la tarjeta.

La propiedad Valid se toma de los metadatos del origen de datos, basándose en la propiedad DataField. También depende de la propiedad Required y de si la propiedad Update contiene un valor. Si el valor de la propiedad Update no es válido, la propiedad Error proporciona un mensaje de error descriptivo.

Si la propiedad DataField de una tarjeta está en blanco, la tarjeta sencillamente es un contenedor de controles. Sus propiedades Valid y Update no participan cuando se envía el formulario.

Examinar un ejemplo

Echemos un vistazo a los controles que componen una tarjeta de entrada de datos básica. El espacio entre los controles se ha aumentado para mostrar cada uno de ellos con mayor claridad, lo que le ayuda a comprender cómo contribuye cada componente a la funcionalidad de la tarjeta:

Diseccionar tarjeta.

En este gráfico, los controles de la tarjeta de datos tienen la etiqueta:

Diseccionar tarjetas.

Cuatro controles hacen que esta tarjeta funcione:

Nombre Tipo Descripción
TextRequiredStar Control Label Muestra una estrella, que se utiliza habitualmente en los formularios de entrada de datos para indicar que un campo es obligatorio.
TextFieldDisplayName Control Label Muestra el nombre descriptivo de este campo. Este nombre puede diferir de lo que aparece en el esquema del origen de datos.
InputText Control Input text Muestra el valor inicial del campo y permite al usuario cambiar dicho valor.
TextErrorMessage Control Label Muestra un mensaje de error descriptivo al usuario si se produce un problema con la validación. También garantiza que el campo tiene un valor si es necesario.

Para rellenar estos controles con datos, se pueden tomar sus propiedades de las propiedades de la tarjeta a través de estas fórmulas claves. Las fórmulas se refieren a un campo específico. En su lugar, toda la información procede de la tarjeta.

Propiedad de control Fórmula Descripción
TextRequiredStar.Visible Parent.Required La estrella solo aparece si el campo es obligatorio. "Required" es una fórmula controlada por usted o los metadatos del origen de datos.
TextFieldDisplayName.Text Parent.DisplayName El control de cuadro de texto muestra el nombre descriptivo, proporcionado por usted o los metadatos del origen de datos, y que se establece en la propiedad DisplayName de la tarjeta.
InputText.Default Parent.Default Inicialmente, el control de entrada de texto muestra el valor del campo del origen de datos, según lo proporcionado por el valor predeterminado de la tarjeta.
TextErrorMessage.Text Parent.Error Si se produce un problema de validación, la propiedad Error de la tarjeta proporciona el correspondiente mensaje de error.

Nota

La propiedad Parent.Error es una propiedad de solo salida que no se puede establecer mediante una fórmula. Esta propiedad no aparecerá en la lista de propiedades cerca de la esquina superior izquierda o en las pestañas Propiedades o Avanzado cerca del borde derecho. La barra de fórmulas sugiere esta propiedad si está escribiendo una fórmula que podría hacer referencia a la propiedad.

Para extraer información de estos controles y volver a insertarla en el origen de datos, tenemos las siguientes fórmulas clave:

Nombre del control Fórmula Descripción
DataCard.DataField "ApproverEmail" El nombre del campo que el usuario puede mostrar y editar en esta tarjeta.
DataCard.Update InputText.Text El valor que se valida y se vuelve a insertar en el origen de datos cuando se ejecuta SubmitForm.