Share via


Comprender referencias de registros y búsquedas polimórficas en aplicaciones de lienzo

Cuando escribía trabajos de investigación en la escuela, es probable que proporcionase una lista de las referencias al final. No incluía una copia de los documentos de referencia que utilizó, sino un vínculo web, el título del libro y el autor, u otra información para que alguien pudiera buscar la fuente original. Mezcló distintos tipos de fuentes en una sola lista, artículos de periódicos junto con grabaciones de audio, cada uno con sus propios detalles específicos para una cita adecuada. Por ejemplo, los artículos de Wikipedia suelen incluir una larga lista de referencias.

En las aplicaciones de lienzo, suele trabajar con copias de registros descargados de orígenes de datos. Usa las funciones LookUp y Filter y la propiedad Selected del control Galería para identificar el registro específico que desea. Todos los registros de Filtrar o Seleccionado será del mismo tipo de tabla, por lo que puede utilizar campos con una simple notación .Campo. Estas copias suelen incluir información de referencia para que pueda usar la función Patch para actualizar la fuente original.

Las aplicaciones de lienzo también son compatibles con referencias de registro. De forma muy similar a una referencia en un trabajo de investigación, una referencia de registro hace referencia a un registro sin incluir una copia completa de este. Tal referencia puede hacer referencia a un registro en cualquier tabla. También como referencias de trabajos de investigación, puede mezclar registros de diferentes tablas en una sola columna.

Muchas operaciones en referencias de registro son idénticas a trabajar con registros. Puede comparar referencias de registro entre sí y con registros completos. Puede establecer el valor de una referencia de registro con la función Patch como lo haría con una búsqueda con un registro completo.

Hay una diferencia de uso importante: no puede acceder directamente a los campos de una referencia de registro sin establecer primero a qué tabla se refiere. Esto se debe a que las aplicaciones de lienzo requieren que se conozcan todos los tipos al escribir fórmulas. Dado que no conoce el tipo de una referencia de registro hasta que se ejecuta la aplicación, no puede usar directamente la notación simple .Field. Primero debe determinar dinámicamente el tipo de tabla con la función IsType y luego usar la notación .Campo en el resultado de la función AsType función.

Tipo de tabla se refiere al esquema de cada registro en una tabla. Cada tabla tiene un conjunto único de campos con diferentes nombres y tipos de datos. Cada registro de la tabla hereda esa estructura; dos registros tienen el mismo tipo de tabla si provienen de la misma tabla.

Nota

Puede elegir entre muchos conectores diferentes para conectarse a diferentes tipos de fuentes de datos para aplicaciones de lienzo. Sin embargo, al trabajar con aplicaciones de lienzo dentro de Power Apps Studio, las columnas en Microsoft Dataverse se conocen como campos similares a todas las demás fuentes de datos. Columna solo se usa cuando se hace referencia a una columna dentro de Dataverse. Más información: actualizaciones de terminología de Dataverse

Búsquedas polimórficas

Microsoft Dataverse admite relaciones entre registros. Cada registro en la tabla Cuentas tiene una columna de búsqueda Contacto primario a un registro en la tabla Contactos. La búsqueda solo puede hacer referencia a un registro en Contactos y no puede hacer referencia a un registro en, digamos, la tabla Equipos. Ese último detalle es importante porque siempre sabe qué columnas estarán disponibles para la búsqueda.

Dataverse también admite búsquedas polimórficas, que pueden hacer referencia a un registro de cualquier tabla de un conjunto. Por ejemplo, la columna Propietario columna puede referirse a un registro en la tabla Usuarios o Equipos. La misma columna de búsqueda en diferentes registros podría hacer referencia a registros en diferentes tablas. En este caso, no siempre sabe qué columnas estarán disponibles.

Las referencias de registro de lienzo se diseñaron para trabajar con búsquedas polimórficas en Dataverse. También puede usar referencias de registros fuera de este contexto, que es la diferencia entre los dos conceptos.

En la siguiente sección, comenzará a explorar estos conceptos trabajando con la búsqueda Propietario.

Mostrar las columnas de un propietario de registro

Cada tabla en Dataverse incluye una columna Propietario. Esta columna no se puede eliminar, no se puede agregar otra y siempre requiere un valor.

Para mostrar esa columna en la tabla Cuenta:

  1. Inicie sesión en Power Apps.

  2. En la barra del panel de navegación izquierdo, seleccione Datos > Tablas.

  3. En la lista de tablas, seleccione Cuenta.

  4. En la esquina superior derecha, abra la lista de filtros (que está establecida en Default de forma predeterminada) y luego seleccione Todos.

  5. Desplácese hacia abajo hasta que aparezca la columna Propietario.

    Columna de propietario en la tabla de cuentas.

Esta columna de búsqueda puede referirse a un registro en la tabla Usuarios o Equipos. No todos los registros de estas tablas tienen permiso para ser un Propietario; compruebe los roles admitidos si tiene algún problema.

Este gráfico muestra una galería simple de Cuentas, donde la tabla Cuentas se ha agregado a la aplicación como origen de datos:

Cuentas que se muestran en un control Galería.

Importante

A lo largo de este tema, los gráficos muestran algunos nombres y otros valores que no forman parte de los datos de ejemplo que se incluyen con Dataverse. Los pasos demuestran con precisión cómo configurar los controles para un resultado particular, pero su experiencia variará según los datos de su organización.

Para mostrar el propietario de cada cuenta en la galería, puede que se sienta tentado a usar la fórmula ThisItem.Owner.Name. Sin embargo, el campo de nombre en la tabla Equipo es Nombre del equipo y el campo de nombre en la tabla Usuario es Nombre completo. La aplicación no puede saber con qué tipo de búsqueda está trabajando hasta que ejecuta la aplicación, y puede variar entre registros en la tabla Cuentas.

Necesita una fórmula que pueda adaptarse a esta variación. También debe agregar las fuentes de datos para los tipos de tabla que Propietario podría ser (en este caso, Usuarios y Equipos). Agregue estos tres orígenes de datos a su aplicación:

Tablas de cuentas, equipos y usuarios en el panel de datos.

Con estos orígenes de datos, utilice esta fórmula para mostrar el nombre de un usuario o equipo:

If( IsType( ThisItem.Owner, Teams ),
    "Team: " & AsType( ThisItem.Owner, Teams ).'Team Name',
    "User: " & AsType( ThisItem.Owner, Users ).'Full Name' )

Cuentas que se muestran en un control Galería con el campo Propietario mostrado.

En esta fórmula, la función IsType prueba el campo Dueño contra la tabla Equipos. Si es de ese tipo de tabla, la función AsType lo convierte en un registro Equipo. En este punto, puede acceder a todos los campos de la tabla Equipos, incluyendo Nombre del equipo, usando la notación .Campo. Si IsType determina que el Propietario no es un registro en la tabla Equipos, ese campo debe ser un registro en la tabla Usuarios porque el campo Propietario es obligatorio (no puede ser blanco).

Para usar cualquier campo de una referencia de registro, primero debe usar la función AsType para convertirlo en un tipo de tabla específico. No puede acceder a los campos directamente desde el campo Propietario porque el sistema no sabe qué tipo de tabla desea utilizar.

La función AsType devuelve un error si el campo Propietario no coincide con el tipo de tabla que se solicita, por lo que puede usar la función IfError para simplificar esta fórmula. En primer lugar, active la característica experimental Administración de errores a nivel de fórmula:

Cambio experimental para cambiar la administración de errores a nivel de fórmula.

A continuación, reemplace la fórmula anterior por esta:

IfError(
    "Team: " & AsType( ThisItem.Owner, Teams ).'Team Name',
    "User: " & AsType( ThisItem.Owner, Users ).'Full Name' )

Filtrar según un propietario

Enhorabuena: ha terminado el aspecto más difícil de trabajar con una referencia de registro. Otros casos de uso son más directos porque no acceden a los campos del registro. Como ejemplo, tomemos el filtrado, que explorará en esta sección.

Agregue un control Cuadro combinado sobre la galería y establezca estas propiedades del nuevo control:

  • Items: Users
  • SelectMultiple: false

Se agregó un control combo-box sobre la galería con la propiedad Items establecida en Usuarios.

Para filtrar la galería por un usuario específico seleccionado de este cuadro combinado, configure la propiedad Items de la galería de esta fórmula:

Filter( Accounts, Owner = ComboBox1.Selected )

Galería filtrada basada en el valor establecido en el control de cuadro combinado.

Importante

Las instrucciones en este tema son precisas si sigue los pasos exactamente. Sin embargo, cualquier fórmula que haga referencia a un control por su nombre da error si el control tiene un nombre diferente. Si elimina y agrega un control del mismo tipo, el número al final del nombre del control cambia. Para cualquier fórmula que muestre un error, confirme que contiene los nombres correctos de todos los controles.

No tiene que usar IsType o AsType porque está comparando referencias de registro con otras referencias de registro o con registros completos. La aplicación conoce el tipo de tabla de ComboBox1.Selected porque se deriva de la tabla Usuarios. Las cuentas para las que el propietario es un equipo no coincidirán con el criterio de filtro.

Puede ser un poco más sofisticado si admite el filtrado por parte de un usuario o un equipo.

  1. Deje algo de espacio cerca de la parte superior de la pantalla cambiando el tamaño de la galería y moviendo el cuadro combinado, inserte un control Radio encima de la galería y, a continuación, establezca estas propiedades para el nuevo control:

    • Items: [ "All", "Users", "Teams" ]
    • Layout: Layout.Horizontal
  2. Para el control Cuadro combinado, establezca esta propiedad (si el cuadro combinado desaparece, seleccione Usuarios en el control de radio):

    • Visible: Radio1.Selected.Value = "Users"
  3. Copie y pegue el control Cuadro combinado, mueva la copia directamente sobre el original y luego configure estas propiedades para la copia:

    • Items: Teams
    • Visible: Radio1.Selected.Value = "Teams"

    La aplicación mostrará solo un cuadro combinado a la vez, según el estado del control de radio. Puesto que están directamente uno encima del otro, parecerá que son el mismo control que cambia su contenido.

  4. Finalmente, establezca la propiedad Items del control Galería en esta fórmula:

    Filter( Accounts,
        Radio1.Selected.Value = "All"
        Or (Radio1.Selected.Value = "Users" And Owner = ComboBox1.Selected)
        Or (Radio1.Selected.Value = "Teams" And Owner = ComboBox1_1.Selected)
    )
    

    Galería filtrada que muestra todos los registros o un usuario o equipo específico.

Con estos cambios, puede mostrar todos los registros o filtrarlos en función de un usuario o un equipo:

Animación que muestra diferentes resultados filtrados según el control de radio y los cuadros combinados.

La fórmula es totalmente delegable. La parte que compara los valores de los botones de radio es una constante en todos los registros y se evalúa antes de enviar el resto del filtro a Dataverse.

Si desea filtrar por tipo de propietario, puede usar la función IsType, pero aún no es delegable.

Filtrar por tipo de propietario mediante IsType.

Actualizar el propietario mediante Patch

Puede actualizar el campo Propietario de la misma manera que cualquier otra búsqueda. Para establecer el propietario de la cuenta seleccionada actualmente en el primer equipo:

Patch( Accounts, Gallery1.Selected, { Owner: First( Teams ) } )

Este enfoque no difiere de una búsqueda normal porque la aplicación conoce el tipo de First( Teams ). Si desea el primer usuario, reemplace esa porción por First( Users ). La función Parche sabe que el campo Propietario se puede establecer en cualquiera de estos dos tipos de tabla.

Para agregar esta funcionalidad a la aplicación:

  1. En el panel Vista de árbol, seleccione el control Radio y los dos controles Cuadro combinado al mismo tiempo.

  2. En el menú de puntos suspensivos, seleccione Copiar estos elementos.

    Copiar múltiples controles mediante la vista de árbol.

  3. En el mismo menú, seleccione Pegar.

    Pegar múltiples controles mediante la vista de árbol.

  4. Mueva los controles copiados a la derecha de la galería.

    Controles copiados que se movieron a la derecha de la galería.

  5. Seleccione el control Radio copiado y, a continuación, cambie estas propiedades:

    • Items: [ "Users", "Teams" ]
    • Opción predeterminada: If( IsType( Gallery1.Selected.Owner, Users ), "Users", "Teams" )

    Se eliminó la opción de todo el control de radio.

  6. En el control Radio, seleccione Usuarios de manera que el control Cuadro combinado que enumera los usuarios sea visible.

  7. Seleccione el control Cuadro combinado visible y, a continuación, establezca la propiedad DefaultSelectedItems para esta fórmula:

    If( IsType( Gallery1.Selected.Owner, Users ),
        AsType( Gallery1.Selected.Owner, Users ),
        Blank()
    )
    

    Propiedad predeterminada establecida para el cuadro combinado Usuarios.

  8. En el control Radio, seleccione Equipos de manera que el control Cuadro combinado que enumera los equipos sea visible.

  9. Seleccione el control Radio para quitar la selección del control Cuadro combinado ahora visible para usuarios.

  10. Seleccione el control Cuadro combinado visible para equipos y, a continuación, establezca su propiedad DefaultSelectedItems para esta fórmula:

    If( IsType( Gallery1.Selected.Owner, Teams ),
        AsType( Gallery1.Selected.Owner, Teams ),
        Blank()
    )
    

    Propiedad predeterminada establecida para el cuadro combinado Equipos.

  11. Inserte un control Botón, colóquelo bajo el control Cuadro combinado y, a continuación, establezca la propiedad Text del botón en "Patch Owner".

  12. Establezca la propiedad OnSelect del botón en esta fórmula:

    Patch( Accounts, Gallery1.Selected,
        { Owner: If( Radio1_1.Selected.Value = "Users",
                     ComboBox1_2.Selected,
                     ComboBox1_3.Selected ) } )
    

    Fórmula establecida en el control Botón.

Los controles Radio y Cuadro combinado copiados muestran el propietario de la cuenta seleccionada actualmente en la galería. Con los mismos controles, puede establecer el propietario de la cuenta para cualquier equipo o usuario seleccionando el botón:

Animación que muestra el parche del Propietario con un Usuario o un Equipo.

Mostrar el propietario mediante un formulario

Puede mostrar un campo Propietario dentro de un formulario agregando una tarjeta personalizada. En el momento de redactar este documento, no puede cambiar el valor del campo con un control de formulario.

  1. Inserte un control Editar formulario y, a continuación, cambie el tamaño y muévalo a la esquina inferior derecha.

  2. En la pestaña Propiedades cerca del lado derecho de la pantalla, abra la lista Origen de datos y, a continuación, seleccione Cuentas.

    Control de formulario que muestra campos adicionales con valores en blanco.

  3. Establezca la propiedad Items del formulario en Gallery1.Selected.

    Control de formulario que muestra campos adicionales rellenados desde el elemento seleccionado en la galería.

  4. En la pestaña Propiedades cerca del lado derecho de la pantalla, seleccione Editar campos.

  5. En el panel Campos, seleccione los puntos suspensivos y luego seleccione Agregar una tarjeta personalizada.

    Comando para agregar una tarjeta personalizada.

    La nueva tarjeta aparece en la parte inferior del control de formulario.

  6. Cambie el tamaño de la tarjeta según sea necesario para mostrar todo el texto.

    Tarjeta personalizada insertada, en blanco.

  7. Inserte un control Etiqueta en la tarjeta personalizada y, a continuación, establezca la propiedad Text de la etiqueta en la fórmula que usó en la galería:

    If( IsType( ThisItem.Owner, Teams ),
        "Team: " & AsType( ThisItem.Owner, Teams ).'Team Name',
        "User: " & AsType( ThisItem.Owner, Users ).'Full Name' )
    

    Tarjeta personalizada que muestra el campo Propietario en un control Etiqueta.

Para cada selección en la galería, aparecen más campos de la cuenta, incluido el propietario del registro, en el formulario. Si cambia de propietario utilizando el botón Patch, el control del formulario también muestra ese cambio.

Animación que muestra el control del formulario respondiendo a los cambios en la galería.

Mostrar las columnas de un cliente

En Dataverse, la columna de búsqueda Cliente es otra búsqueda polimórfica que es muy similar a Propietario.

Propietario está limitado a uno por tabla, pero las tablas pueden incluir cero, una o más columnas de búsqueda Cliente. La tabla del sistema Contactos incluye la columna Nombre de empresa, que es una columna de búsqueda Cliente.

Tabla de contactos que muestra la columna Nombre de la empresa como un tipo de datos de cliente que no es obligatorio.

Puedes agregar mas columnas de búsqueda Cliente en una tabla seleccionando el tipo de datos Cliente para una nueva columna.

Tipo de datos del cliente de la lista de tipos de datos al crear una columna.

Un campo de búsqueda Cliente puede referirse a un registro de la tabla Cuentas o la tabla Contactos. Usará las funciones IsType y AsType con estas tablas, por lo que ahora es un buen momento para agregarlas como fuentes de datos (puede dejar Equipos y Usuarios en su lugar).

Tablas de cuentas, equipos, usuarios y contactos en el panel de datos.

El tratamiento de los campos Cliente y Propietario es tan similar que puede copiar literalmente la aplicación (Archivo > Guardar como y, a continuación, especifique un nombre diferente) y realice estos reemplazos simples:

Ubicación Ejemplo de Propietario Ejemplo de Cliente
Todas Propietario 'Nombre de cliente'
Todas Usuarios Cuentas
Todas Equipos Contactos
Propiedad Items de la galería Cuentas Contactos
Propiedad Items del formulario Cuentas Contactos
El primer argumento de Patch
en la propiedad OnSelect del botón
Cuentas Contactos
Propiedad Items del control de radio del filtro [ "Todos", "Usuarios", "Equipos" ] [ "Todos", "Cuentas", "Contactos" ]
Propiedad Items del control de radio del parche [ "Usuario", "Equipos" ] [ "Cuentas", "Contactos" ]
Propiedad Visible del cuadro combinado Usuarios y Equipos "Cuentas" y "Contactos"

Por ejemplo, la nueva galería debería tener esta propiedad Items:

Filter( Contacts,
    Radio1.Selected.Value = "All"
    Or (Radio1.Selected.Value = "Accounts" And 'Company Name' = ComboBox1.Selected)
    Or (Radio1.Selected.Value = "Contacts" And 'Company Name' = ComboBox1_1.Selected)
)

Aplicación del cliente derivada de la aplicación Propietario con cambios simples aplicados.

Dos diferencias importantes entre Cliente y Propietario requieren una actualización de las fórmulas dentro de la galería y el formulario:

  1. Las relaciones uno a varios entre Cuentas y Contactos tienen prioridad cuando se refiere a estos tipos de tablas por su nombre. En lugar de Cuentas, utilice [@Accounts]; en vez de Contactos, utilice [@Contacts]. Usando el operador de desambiguación global, asegúrese de que se refiere al tipo de tabla en IsType y AsType. Este problema solo existe en el contexto de registro de los controles Galería y Form.

  2. El campo Propietario debe tener un valor, pero los campos Cliente pueden estar en blanco. Para mostrar el resultado correcto sin un nombre de tipo, pruebe este caso con la función IsBlank y muestre una cadena de texto vacía.

Ambos cambios están en la misma fórmula, que aparece en la tarjeta personalizada en el formulario, así como en la propiedad Text del control de etiqueta de la galería:

If( IsBlank( ThisItem.'Company Name' ), "",
    IsType( ThisItem.'Company Name', Accounts ),
        "Account: " & AsType( ThisItem.'Company Name', Accounts ).'Account Name',
    "Contact: " & AsType( ThisItem.'Company Name', Contacts ).'Full Name'
)

Actualizar a la propiedad Text de la etiqueta de control Subtitle en la galería.

Con estos cambios, puede ver y cambiar el campo Nombre de empresa en la tabla Contactos.

Animación que muestra cómo seleccionar un contacto cambia los otros controles y el formulario.

Comprender las columnas de búsqueda

La columna de búsqueda Con respecto a difiere un poco de las que ya ha trabajado dentro de este tema. Comenzará aplicando los patrones que se describieron anteriormente en este tema y, a continuación, aprenderá otros trucos.

Puede comenzar simplemente con la tabla Faxes. Esta tabla tiene una columna de búsqueda polimórfica Con respecto a, que puede hacer referencia a Cuentas, Contactos y otras tablas. Puedes usar la aplicación para Clientes y modificarla para Faxes.

Ubicación Ejemplo de Cliente Ejemplo de Faxes
Todas 'Nombre de cliente' Referente a
Propiedad Items de la galería Contactos Faxes
Propiedad Items del formulario Contactos Faxes
El primer argumento de Patch
en la propiedad OnSelect del botón
Contactos Faxes

De nuevo, tendrá que agregar un origen de datos: esta vez para Faxes. En la pestaña Vista, seleccione Orígenes de datos:

Panel de datos mostrando las tablas cuentas, equipos, usuarios, contactos y faxes en el panel de datos.

Una diferencia importante para Referente a es que no se limita a Cuentas y Contactos. De hecho, la lista de tablas se puede ampliar con tablas personalizadas. La mayoría de las aplicaciones puede distribuir este punto sin modificaciones, pero debe actualizar la fórmula de la etiqueta en la galería y el formulario:

If( IsBlank( ThisItem.Regarding ), "",
    IsType( ThisItem.Regarding, Accounts ),
        "Account: " & AsType( ThisItem.Regarding, Accounts ).'Account Name',
    IsType( ThisItem.Regarding, Contacts ),
        "Contacts: " & AsType( ThisItem.Regarding, Contacts ).'Full Name',
    ""
)

Propiedad Text actualizada para el control Subtitle para búsqueda Referente a.

Después de realizar estos cambios, trabaja con la búsqueda Referente a tal como hizo con las búsquedas Propietario y Cliente.

Animación que muestra cómo seleccionar un elemento en la galería cambia los otros controles y el formulario.

Comprender relaciones Referente a

Referente a difiere de Propietario y Cliente porque el primero implica una relación de varios a uno. Por definición, una relación inversa de uno a varios le permite escribir First( Accounts ).Faxes.

Retrocedamos y veamos las definiciones de la tabla. En Dataverse, tablas como Faxes, Tareas, Correos electrónicos, Notas, Llamadas telefónicas, Cartas, y Chats están designadas como actividades. También puede crear sus propias tablas de actividad personalizadas. Cuando visualiza o crea una tabla de actividades, su configuración aparece en Más configuración.

Configuración de la tabla de actividades al crear una tabla.

Otras tablas se pueden relacionar con una tabla de actividad si están habilitadas como tarea de actividad en la configuración de la tabla. Cuentas, Contactos y muchas otras tablas estándar se designan así (nuevamente, bajo Más configuración).

Configuración de la tarea de actividades al crear una tabla.

Todas las tablas de actividad y las tablas de actividad-tarea tienen una relación implícita. Si cambia el filtro a Todas en la parte superior de la pantalla, selecciona la tabla Faxes y luego selecciona la pestaña Relaciones, todas las tablas que pueden ser el destino de un Con respecto a aparecen en la búsqueda.

Relaciones de la tabla de faxes que muestra Respecto a relaciones varios a uno.

Si muestra las relaciones para la tabla Cuentas, todas las tablas que pueden ser una fuente del campo de búsqueda Con respecto a aparecen.

Relaciones de la tabla de Cuenta que muestra Respecto a relaciones uno a varios.

¿Qué significa todo?

  • Cuando escribe fórmulas, debe tener en cuenta que la lista de tablas de actividad no es fija y puede crear la suya propia. La fórmula debe gestionar adecuadamente una tabla de actividades que no esperaba.
  • Las tareas de actividad y las actividades tienen una relación de uno a varios. Puede solicitar fácilmente todos los faxes relacionados con una cuenta.

Para explorar este concepto en la aplicación:

  1. Agregue otra pantalla.

    Insertar una pantalla en blanco.

  2. Inserte un control de galería, cambie su tamaño y luego muévalo al lado izquierdo de la pantalla.

  3. En la pestaña Propiedades junto al lado derecho de la pantalla, establézcala propiedad de la galería Items en Cuentas.

    Establecer Items en Cuentas en el panel de propiedades.

  4. Establezca el diseño de la galería en Título y, a continuación, establezca el campo de título en Nombre de la cuenta.

    Establecer Diseño en Título para el control de la galería en el panel de propiedades.

  5. Agregue una segunda galería, cambie su tamaño y luego muévalo al lado derecho de la pantalla.

  6. Establezca la nueva propiedad Items de la galería en Gallery2.Selected.Faxes.

    Este paso devuelve la lista filtrada de faxes para una cuenta determinada.

    Establecer la propiedad Items de la galería que muestra faxes.

  7. Establezca el diseño de la galería en Título y subtítulo y, a continuación, establezca el campo de título para mostrar el campo Asunto (que puede ser el asunto en minúsculas).

    Establecer título en el campo Asunto.

Cuando selecciona un elemento en la lista de cuentas, la lista de faxes muestra los faxes solo para esa cuenta.

Animación que muestra la selección en la galería de cuentas que maneja la lista de faxes.

Tabla de actividades

Como se describe en la sección anterior, puede mostrar todos los faxes de una cuenta. Sin embargo, también puede mostrar todas las actividades de una cuenta, incluidos faxes, mensajes de correo electrónico, llamadas telefónicas y otras interacciones.

Para el último escenario, use la tabla Actividad. Puede mostrar esta tabla activando Todas en la esquina superior derecha para eliminar el filtro de la lista de tablas.

Lista de tablas que muestran la tabla de actividades.

La tabla Actividad es especial. Siempre que agregue un registro a la tabla Faxes, el sistema también crea un registro en la tabla Actividad con las columnas que son comunes en todas las tablas de actividad. De esas columnas, Asunto es una de las más interesantes.

Puede mostrar todas las actividades cambiando solo una línea en el ejemplo anterior. Reemplace Gallery2.Selected.Faxes por Gallery2.Selected.Activities.

Cambio de la propiedad Items para la segunda galería, cambiando de faxes a actividades.

Los registros provienen de la tabla Actividad tabla, pero de todos modos puede utilizar la función IsType para identificar qué tipo de actividad son. De nuevo, antes de usar IsType con un tipo de tabla, debe agregar el origen de datos.

Panel de datos que muestra todas las tablas necesarias para la función IsType.

Al usar esta fórmula, puede mostrar el tipo de registro en un control de etiqueta dentro de la galería:

If( IsType( ThisItem, Faxes] ), "Fax",
    IsType( ThisItem, 'Phone Calls' ), "Phone Call",
    IsType( ThisItem, 'Email Messages' ), "Email Message",
    IsType( ThisItem, Chats ), "Chat",
    "Unknown"
)

Establezca la propiedad de texto en una fórmula para mostrar información para faxes, llamadas telefónicas y otras actividades.

También puedes usar AsType para acceder a los campos del tipo específico. Por ejemplo, esta fórmula determina el tipo de cada actividad y, para las llamadas telefónicas, muestra el número de teléfono y la dirección de la llamada desde la tabla Números de teléfono:

If( IsType( ThisItem, Faxes ), "Fax",
    IsType( ThisItem, 'Phone Calls' ),
       "Phone Call: " &
       AsType( ThisItem, 'Phone Calls' ).'Phone Number' &
       " (" & AsType( ThisItem, 'Phone Calls' ).Direction & ")",
    IsType( ThisItem, 'Email Messages' ), "Email Message",
    IsType( ThisItem, Chats ), "Chat",
    "Unknown"
)

Propiedad de texto ampliada con más información para una llamada telefónica.

Como consecuencia, la aplicación muestra una lista completa de actividades. El campo Asunto aparece para todo tipo de actividades, tanto si la fórmula las tiene en cuenta o no. Para los tipos de actividades que conoce, puede mostrar sus nombres de tipo e información específica de tipo sobre cada actividad.

Pantalla completa que muestra información para diferentes tipos de actividades.

Tabla de notas

Hasta ahora, todos los ejemplos de Con respecto a se han basado en actividades, pero la tabla Notas representa otro caso.

Cuando crea una tabla, puede habilitar los archivos adjuntos.

Habilitar archivos adjuntos y notas al crear una tabla.

Si selecciona la casilla de verificación para habilitar archivos adjuntos, creará una relación Con respecto a con la tabla Notas, como muestra este gráfico para la tabla Cuentas:

Tabla Cuenta mostrando relación con Notas mediante una relación uno a varios.

Aparte de esta diferencia, utiliza la búsqueda Referente a de la misma manera en que usa las actividades. Las tablas que están habilitadas para archivos adjuntos tienen una relación de uno a varios con Notas, como en este ejemplo:

First( Accounts ).Notes

Nota

En el momento de escribir estas líneas, la búsqueda Con respecto a no está disponible para la tabla Notas. No puede leer ni filtrar según la columna Con respecto a, y no puede configurar la columna usando Parche.

No obstante, la relación inversa de uno a varios de Notas está disponible, por lo que puede filtrar una lista de notas para un registro que esté habilitado para datos adjuntos. También puede usar la función Relate para agregar una nota a una tabla Notas del registro, pero la nota debe crearse primero, como en este ejemplo:

Relate( ThisItem.Notes, Patch( Notes, Defaults( Notes ), { Title: "A new note" } ) )

Grupos de actividad

En el momento de redactar este documento, las aplicaciones de lienzo no admiten grupos de actividad.

Nota

¿Puede indicarnos sus preferencias de idioma de documentación? Realice una breve encuesta. (tenga en cuenta que esta encuesta está en inglés)

La encuesta durará unos siete minutos. No se recopilan datos personales (declaración de privacidad).