Comprender as referencias de rexistros e as buscas polimórficas en aplicacións de lenzo

Cando escribía estudos de investigación na escola, probablemente achegaba unha lista das súas referencias ao final. Non incluía unha copia do material de investigación real que empregou, senón unha ligazón web, o título e o autor dun libro ou outra información para que alguén poida rastrexar a fonte orixinal. Mesturaba diferentes tipos de fontes nunha única lista, artigos de xornais xunto a gravacións de audio, cada unha coas súas propias informacións específicas para ofrecer unha cita correcta. Por exemplo, os artigos da Wikipedia adoitan incluír unha longa lista de referencias.

Nas aplicacións de lenzo, moitas veces traballa con copias de rexistros descargados de orixes de datos. Vostede utiliza as funcións Busca e Filtrar e a propiedade Seleccionado do control Galería para identificar o rexistro específico que desexa. Todos os rexistros de Filter ou Selected serán do mesmo tipo de táboa, polo que pode empregar campos cunha notación .Field simple. Estas copias adoitan incluír información de referencia para que poida usar a función Parche para actualizar a fonte orixinal.

As aplicacións de lenzo tamén son compatibles referencias de rexistros. Ao igual que unha referencia dun estudo de investigación, unha referencia de rexistro fai referencia a un rexistro sen incluír unha copia completa del. Tal referencia pode referirse a un rexistro en calquera táboa. Tamén como referencias de traballos de investigación, pode mesturar rexistros de diferentes táboas nunha soa columna.

Moitas operacións de referencias de rexistros son idénticas a traballar con rexistros. Pode comparar referencias de rexistros entre si e con rexistros completos. Pode definir un valor de referencia de rexistro coa función Parche igual que cunha busca cun rexistro completo.

Hai unha diferenza de uso importante: non pode acceder directamente aos campos dunha referencia de rexistro sen antes establecer a que táboa se refire. Isto é debido a que as aplicacións de lenzo requiren que se coñezan todos os tipo ao escribir fórmulas. Debido a que non coñece o tipo de referencia de rexistro ata que a aplicación está en execución, non pode usar a notación de .Campo sinxela directamente. Primeiro debe determinar dinamicamente o tipo de táboa coa función IsType e despois usar a notación .Field no resultado da función AsType.

Tipo de táboa refírese ao esquema de cada rexistro nunha táboa. Cada táboa ten un conxunto único de campos con diferentes nomes e tipos de datos. Cada rexistro da táboa herda esa estrutura; dous rexistros teñen o mesmo tipo de táboa se proceden da mesma táboa.

Nota

Pode escoller entre moitos conectores diferentes para conectarse a diferentes tipos de orixes de datos para aplicacións de lenzo. Non obstante, cando se traballa con aplicacións de lenzo en Power Apps Studio, as columnas en Microsoft Dataverse coñécense como campos, de forma semellante a todas as outras orixes de datos. Columna só se usa cando se fai referencia a unha columna en Dataverse. Máis información: Actualizacións de terminoloxía de Dataverse

Buscas polimórficas

Microsoft Dataverse admite relacións entre rexistros. Cada rexistro da táboa Contas ten unha columna de busca Contacto principal para un rexistro da táboa Contactos. A busca só pode referirse a un rexistro en Contactos e non pode facer referencia a un rexistro en, digamos, a táboa Equipos. Este último detalle é importante porque sempre sabe que columnas estarán dispoñibles para a busca.

Dataverse tamén admite buscas polimórficas, que poden facer referencia a un rexistro de calquera táboa nun conxunto. Por exemplo, a columna Propietario pode referirse a un rexistro na táboa Usuarios ou na táboa Equipos. A mesma columna de busca en diferentes rexistros podería referirse a rexistros en diferentes táboas. Neste caso, non sempre sabe que columnas estarán dispoñibles.

As referencias dos rexistros de lenzo deseñáronse para traballar con buscas polifórmicas de Dataverse. Tamén pode usar referencias de rexistros fóra deste contexto, maneira mediante a que varían os dous conceptos.

Na seguinte sección, comezará a explorar estes conceptos traballando coa busca de Propietario.

Mostrar as columnas dun propietario de rexistros

Cada táboa en Dataverse inclúe unha columna Propietario. Esta columna non se pode eliminar, non se pode engadir outra e sempre require un valor.

Para amosar esa columna na táboa Conta:

  1. Inicie sesión en Power Apps.

  2. Na barra do panel esquerdo, seleccione Datos > Táboas.

  3. Na lista de táboas, seleccione Conta.

  4. Na esquina superior dereita, abra a lista de filtros (que está axustada en Predeterminado por defecto) e seleccione Todo.

  5. Desprácese ata que apareza a columna Propietario.

    Columna Propietario na táboa Conta.

Esta columna de busca pode referirse a un rexistro da táboa Equipos ou da táboa Usuarios. Non todos os rexistros destas táboas teñen permiso para ser un Propietario; comprobe os roles compatibles se ten algún problema.

Este gráfico mostra unha sinxela galería de Contas, onde a táboa Contas se engadiu á aplicación como orixe de datos:

Contas mostradas nun control de galería.

Importante

Neste tema, os gráficos mostran algúns nomes e outros valores que non forman parte dos datos de mostra que se envían con Dataverse. Os pasos demostran con precisión como configurar os controis para un determinado resultado, pero a súa experiencia variará en función dos datos da súa organización.

Para amosar o propietario de cada conta na galería, pode ser tentado a usar a fórmula ThisItem.Owner.Name. Non obstante, o campo de nome na táboa Equipos é Nome do equipo e o campo de nome na táboa Usuario é Nome completo. A aplicación non pode saber con que tipo de busca está a traballar ata que a executa e pode variar entre os rexistros da táboa Contas.

Necesita unha fórmula que poida adaptarse a esta diferenza. Tamén cómpre engadir as orixes de datos para os tipos de táboa que pode ser Propietario (neste caso, Usuarios e Equipos). Engada estas tres orixes de datos á súa aplicación:

Táboas Contas, Equipos e Usuarios no panel Datos.

Con estas orixes de datos, use esta fórmula para amosar o nome dun usuario ou dun equipo:

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

As contas mostradas nun control de galería co campo Propietario amosado.

Nesta fórmula, a función IsType proba o campo Propietario respecto á táboa Equipos. Se é dese tipo de táboa, a función AsType converterao nun rexistro Equipo. Neste punto, pode acceder a todos os campos da táboa Equipos, incluído o Nome do equipo, empregando a notación .Field. Se IsType determina que o Propietario non é un rexistro na táboa Equipos, ese campo debe ser un rexistro na táboa Usuarios porque o campo Propietario é obrigatorio (non pode estar en branco).

Para usar calquera campo dunha referencia de rexistro, primeiro debe empregar a función AsType para convertelo nun tipo de táboa específico. Non pode acceder aos campos directamente desde o campo Propietario porque o sistema non sabe que tipo de táboa quere empregar.

A función AsType devolve un erro se o campo Propietario non coincide co tipo de táboa solicitado, polo que pode empregar a función IfError para simplificar esta fórmula. Primeiro, active a función experimental Xestión de erros a nivel de fórmula:

Conmutador experimental para activar a xestión de erros a nivel de fórmula.

A continuación, substitúa a fórmula anterior por esta:

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

Filtro baseado nun propietario

Parabéns: rematou o aspecto máis difícil de traballar cunha referencia de rexistro. Outros casos de uso son máis sinxelos porque non acceden aos campos do rexistro. Por exemplo, tome a filtraxe, que explorará nesta sección.

Engada unha Caixa de combinación sobre a galería e estableza estas propiedades do novo control:

  • Elementos: Users
  • SelectMultiple: false

Engadiuse o control de caixas de combinación enriba da galería coa propiedade Items establecida en Usuarios.

Para filtrar a galería por un usuario específico seleccionado nesta caixa de combinación, configure propiedade Items da galería nesta fórmula:

Filter( Accounts, Owner = ComboBox1.Selected )

Galería filtrada baseada no valor configurado no control da caixa de combinación.

Importante

As instrucións deste tema son precisas se segue os pasos exactamente. Non obstante, calquera fórmula que faga referencia a un control polo seu nome fallará se o control ten un nome diferente. Se elimina e engade un control do mesmo tipo, o número ao final do nome do control cambiará. Para calquera fórmula que amose un erro, confirme que contén os nomes correctos de todos os controis.

Non precisa usar IsType ou AsType porque está a comparar referencias de rexistros con outras referencias de rexistros ou con rexistros completos. A aplicación coñece o tipo de táboa de ComboBox1.Selected porque se deriva da táboa Usuarios. As contas para as que o propietario é un equipo non coincidirán co criterio de filtraxe.

Podes mellorar lixeiramente apoiando a filtraxe mediante un usuario ou un equipo.

  1. Faga espazo preto da parte superior da pantalla cambiando o tamaño da galería e movendo a caixa de combinación, insira un control de Radio enriba da galería e logo estableza estas propiedades para o novo control:

    • Elementos: [ "All", "Users", "Teams" ]
    • Deseño: Layout.Horizontal
  2. Para o control Caixa de combinación, estableza esta propiedade (se a caixa de combinación desaparece, seleccione Usuarios no control de radio):

    • Visible: Radio1.Selected.Value = "Users"
  3. Copie e pegue o control Caixa de combinación, mova a copia directamente sobre o orixinal e logo estableza estas propiedades para a copia:

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

    A aplicación amosará só unha caixa de combinación á vez, dependendo do estado do control de radio. Debido a que están directamente uns enriba dos outros, parecerán ser o mesmo control que cambia o seu contido.

  4. Finalmente, configure a propiedade Items do control Galería nesta 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 mostra todos os rexistros ou un usuario ou equipo específico.

Con estes cambios, pode mostrar todos os rexistros ou filtralos en función dun usuario ou dun equipo:

Animación con diferentes resultados filtrados baseados no control de radio e nas caixas de combinación.

A fórmula é totalmente delegable. A parte que compara os valores de botón de opción é unha constante en todos os rexistros e avalíase antes de que se envíe o resto do filtro a Dataverse.

Se desexa filtrar sobre o tipo de propietario, pode usar a función IsType, pero aínda non é delegable.

Filtrar por tipo de propietario usando IsType.

Actualizar o propietario usando Patch

Pode actualizar o campo Propietario do mesmo xeito que calquera outra busca. Para configurar o propietario da conta seleccionada actualmente no primeiro equipo:

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

Este enfoque non difire dunha busca normal porque a aplicación sabe o tipo de Primeiro (Equipos). Se desexa o primeiro usuario, substitúa esa parte por Primeiro (usuarios). A función Patch sabe que o campo Propietario se pode establecer en calquera destes dous tipos de táboas.

Para engadir esta capacidade á aplicación:

  1. No panel Vista de árbore, seleccione o control Radio e os dous controis de Caixa de combinación ao mesmo tempo.

  2. No menú de tres puntos, seleccione Copiar estes elementos.

    Copia de varios controis usando a vista de árbore.

  3. No mesmo menú, seleccione Pegar.

    Pegado de varios controis usando a vista de árbore.

  4. Mova os controis copiados á dereita da galería.

    Controis copiados movidos á dereita da galería.

  5. Seleccione o control Radio copiado e logo cambie estas propiedades:

    • Elementos: [ "Users", "Teams" ]
    • Valor predefenido: If( IsType( Gallery1.Selected.Owner, Users ), "Users", "Teams" )

    Elimináronse todas as seleccións do control de radio.

  6. No control Radio, seleccione Usuarios para que o control Caixa de combinación que enumera os usuarios estea visible.

  7. Seleccione o control Caixa de combinación e, a continuación, estableza a propiedade DefaultSelectedItems nesta fórmula:

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

    Propiedade establecida por defecto para a caixa de combinación Usuarios.

  8. No control Radio, seleccione Equipos para que o control Caixa de combinación que enumera os equipos estea visible.

  9. Seleccione o control Radio para quitar a selección do control Caixa de combinación que agora está invisible para os usuarios.

  10. Seleccione o control Caixa de combinación para os equipos e, a continuación, estableza a propiedade DefaultSelectedItems nesta fórmula:

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

    Propiedade establecida por defecto para a caixa de combinación Equipos.

  11. Insira un control Botón, móvao ao control Caixa de combinación e logo configure a propiedade Text do botón en "Patch Owner".

  12. Axuste a propiedade OnSelect do botón nesta fórmula:

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

    Fórmula configurada no control de Botón.

Os controis Radio e Caixa de combinación copiados mostran ao propietario a conta seleccionada actualmente na galería. Cos mesmos controis, pode configurar o propietario da conta en calquera equipo ou usuario seleccionando o botón:

Animación que mostra o parche do Propietario cun Usuario ou cun Equipo.

Amosar o propietario usando un formulario

Pode mostrar un campo Propietario dentro dun formulario engadindo unha tarxeta personalizada. A partir desta escritura, non pode cambiar o valor do campo cun control de formulario.

  1. Insira un control de Editar formulario e, a continuación, redimensióneo e móvao á esquina inferior dereita.

  2. No separador Propiedades situado preto do lado dereito da pantalla, abra a lista Orixe de datos e logo seleccione Contas.

    Control de formulario que mostra campos adicionais con valores en branco.

  3. Axuste a propiedade Item do formulario en Gallery1.Selected.

    Control de formulario que mostra campos adicionais completados desde o elemento seleccionado na galería.

  4. No separador Propiedades, preto do lado dereito da pantalla, seleccione Editar campos.

  5. No panel Campos, seleccione os tres puntos e Engadir unha tarxeta personalizada.

    Comando para engadir unha tarxeta personalizada.

    A nova tarxeta aparecerá na parte inferior do control de formulario.

  6. Cambie o tamaño da tarxeta segundo sexa necesario para amosar todo o texto.

    Tarxeta personalizada inserida, en branco.

  7. Insira un control de Etiqueta na tarxeta personalizada e logo estableza a propiedade Text da etiqueta na fórmula que utilizou na galería:

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

    Tarxeta personalizada que mostra o campo Propietario nun control de etiqueta.

Para cada selección da galería, aparecen máis campos da conta, incluído o propietario do rexistro, no formulario. Se cambia de propietario usando o botón Parche, o control do formulario tamén amosa ese cambio.

Animación que mostra o control de formulario respondendo aos cambios da galería.

Mostrar as columnas dun cliente

En Dataverse, a columna de busca Cliente é outra busca polimórfica moi parecida a Propietario.

A columna Propietario está limitada a unha por táboa, pero as táboas poden incluír cero, unha ou máis columnas de busca Cliente. A táboa do sistema Contactos inclúe a columna Nome da empresa, que é unha columna de busca Cliente.

Táboa Contactos que mostra a columna Nome da empresa como un tipo de datos do cliente que non é necesario.

Pode engadir máis columnas de busca Cliente nunha táboa seleccionando o tipo de datos de Cliente para unha nova columna.

Tipo de datos de cliente da lista de tipos de datos ao crear unha columna.

Un campo de busca Cliente pode referirse a un rexistro da táboa Contas ou da táboa Contactos. Empregará as funcións IsType e AsType con estas táboas, polo que agora é un bo momento para engadilas como orixes de datos (pode deixar Equipos e Usuarios no seu sitio).

Táboas Contas, Usuarios e Contactos no panel Datos.

O tratamento dos campos Cliente e Propietario é tan semellante que pode copiar literalmente a aplicación (Ficheiro > Gardar como e logo especificar un nome diferente) e facer estas substitucións sinxelas:

Localización Exemplo de Propietario Exemplo de Cliente
En todo Propietario "Nome do cliente"
En todo Usuarios Contas
En todo Equipos Contactos
Propiedade Items da galería Contas Contactos
Propiedade Items do formulario Contas Contactos
O primeiro argumento de Parche
na propiedade OnSelect do botón
Contas Contactos
Propiedade Items da radio do filtro [ "Todo", "Usuarios", "Equipos" ] [ "Todo", "Contas", "Contactos" ]
Propiedade Items da radio do parche ["Usuarios", "Equipos"] ["Contas", "Contactos"]
Propiedade Visible da caixa de combinación "Usuarios" e "Equipos" "Contas" e "Contactos"

Por exemplo, a nova galería debería ter esta propiedade 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 de cliente derivada da aplicación Propietario con sinxelos cambios aplicados.

Dúas diferenzas importantes entre Cliente e Propietario requiren unha actualización das fórmulas situadas dentro da galería e do formulario:

  1. As relacións de un a varios entre Contas e Contactos teñen prioridade cando se refire a estes tipos de táboas por nome. En vez de Contas, use [@Contas]; en lugar de Contactos, use [@Contactos]. Co operador de desambiguación global, asegúrase de facer referencia ao tipo de táboa en IsType e AsType. Este problema só existe no contexto de rexistro da galería e dos controis de formularios.

  2. O campo Propietario ten que ter un valor, pero os campos Cliente poden estar en branco. Para amosar o resultado correcto sen nome de tipo, probe este caso coa función IsBlank e mostre no seu lugar unha cadea de texto baleira.

Estes dous cambios están na mesma fórmula, que aparece na tarxeta personalizada no formulario, así como na propiedade Texto do control da etiqueta da 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'
)

Propiedade Actualizar a texto do control de etiquetas de subtítulos na galería.

Con estes cambios, pode ver e cambiar o campo Nome da empresa na táboa Contactos.

Animación que mostra como ao seleccionar un contacto cambia os outros controis e o formulario.

Comprender as columnas de busca Referente a

As columnas de busca Referente a difiren un pouco daquelas coas que xa traballou neste tema. Comezarás aplicando os padróns que se describiron neste tema anteriormente e logo aprenderá outros trucos.

Pode comezar simplemente coa táboa Fax. Esta táboa ten unha columna de busca Referente a polimórfica, que pode facer referencia a Contas, Contactos e outras táboas. Pode coller a aplicación de Clientes e modificala para Faxes.

Localización Exemplo de Cliente Exemplo de Faxes
En todo "Nome do cliente" Referente a
Propiedade Items da galería Contactos Fax
Propiedade Items do formulario Contactos Fax
O primeiro argumento de Parche
na propiedade OnSelect do botón
Contactos Fax

Novamente, necesitará engadir un orixe de datos: esta vez para Faxes. No separador Vista, seleccione Orixes de datos:

Panel Datos mostrando as táboas Contas, Equipos, Usuarios, Contactos e Fax.

Unha diferenza importante para Relacionado con é que non se limita a Contas e Contactos. De feito, a lista de táboas é extensible con táboas personalizadas. A maioría da aplicacións pode acomodar este punto sen ningunha modificación, pero ten que actualizar a fórmula da etiqueta na galería e o 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',
    ""
)

Propiedade de Texto actualizado para o control de subtítulos para consultas de Relacionado con.

Despois de facer estes cambios, pode traballar coa busca de Relacionado con do mesmo xeito que coas buscas de Propietario e Cliente.

Animación que mostra como ao seleccionar un elemento da galería cambia os outros controis e o formulario.

Comprender as relacións de Relacionado con

Relacionado con varía respecto de Propietario e Cliente porque o primeiro implica unha relación de moitos a un. Por definición, unha relación inversa de un a moitos permite escribir First( Accounts ).Faxes.

Fagamos unha copia de seguridade e vexamos as definicións da táboa. En Dataverse, as táboas como Fax, Tarefas, Correos electrónicos, Notas, Chamadas telefónicas, Cartas e Chats son designadas como actividades. Tamén pode crear as súas propias táboas de actividades personalizadas. Cando ve ou crea unha táboa de actividades, a súa configuración aparece en Máis configuracións.

Configuración da táboa de actividades cando se crea unha táboa.

As outras táboas poden estar relacionadas cunha táboa de actividades se están activadas como unha tarefa de actividade na configuración da táboa. Contas, Contactos e moitas outras táboas estándar desígnanse así (de novo, en Máis configuracións).

Configuración da tarefa de actividades cando se crea unha táboa.

Todas as táboas de actividades e táboas de tarefas de actividades teñen unha relación implícita. Se cambia o filtro a Todo na parte superior da pantalla, selecciona a táboa Fax e logo selecciona o separador Relacións, aparecen todas as táboas que poden ser un destino da busca Referente a.

Relacións da táboa Fax mostrando relacións Referentes a de varios a un.

Se mostra as relacións para a táboa Contas, todas as táboas que poden ser unha orixe dunha busca Referente a aparecen.

Relacións da táboa Conta mostrando relacións Referente a de un a varios.

Que significa todo iso?

  • Cando escriba fórmulas, debe considerar que a lista de táboas de actividades non é fixa e pode crear a súa propia. A fórmula debe tratar adecuadamente unha táboa de actividades que non esperaba.
  • As tarefas de Actividade e as actividades teñen unha relación de un con moitos. Pode solicitar facilmente todos os faxes relacionados cunha conta.

Para explorar este concepto na aplicación:

  1. Engada outra pantalla.

    Inserir unha pantalla en branco.

  2. Insira un control de galería, cámbielle o tamaño e logo móvao ao lado esquerdo da pantalla.

  3. No separador Propiedades, preto do lado dereito da pantalla, estableza Elementos da galería en Contas.

    Establecer Elementos en Contas no panel de propiedades.

  4. Estableza o deseño da galería en Título e logo configure o campo do título en Nome da conta.

    Establecer o deseño en Título para o control da galería no panel de propiedades.

  5. Engada unha segunda galería, cámbielle o tamaño e logo móvaa ao lado dereito da pantalla.

  6. Estableza a propiedade Items da nova galería en Gallery2.Selected.Faxes.

    Este paso devolve a lista de faxes filtrados para unha determinada conta.

    Estableza a propiedade Items da galería que amosa faxes.

  7. Estableza o deseño da galería en Título e subtítulo e logo estableza o campo de título para mostrar o campo Asunto (que pode ser o asunto en minúscula).

    Establecer o título no campo Asunto.

Ao seleccionar un elemento na lista de contas, a lista de faxes mostra os faxes só para esa conta.

Animación que mostra a selección na galería de contas que dirixe a lista de faxes.

Táboa da actividade

Como se describe na sección anterior, pode mostrar todos os faxes dunha conta. Non obstante, tamén pode amosar todas as actividades dunha conta, incluídos os faxes, as mensaxes de correo electrónico, as chamadas de teléfono e outras interaccións.

Para este último escenario, use a táboa Actividade. Pode amosar esta táboa activando Todo na esquina superior dereita para eliminar o filtro da lista de táboas.

Lista de táboas que mostra a táboa Actividades.

A táboa Actividade é especial. Sempre que engada un rexistro á táboa Fax, o sistema tamén crea un rexistro na táboa Actividade coas columnas que son comúns en todas as táboas de actividades. Desas columnas, Asunto é unha das máis interesantes.

Pode mostrar todas as actividades cambiando só unha liña no exemplo anterior. Substitúa Gallery2.Selected.Faxes por Gallery2.Selected.Activities.

Cambiar a propiedade Items da segunda galería, cambiando de faxes a actividades.

Os rexistros proceden da táboa Actividade, pero pode usar a función IsType para identificar que tipo de actividade son. Unha vez máis, antes de usar IsType cun tipo de táboa, debe engadir a orixe de datos.

Panel Datos que mostra todas as táboas necesarias para a función IsType.

Usando esta fórmula, pode mostrar o tipo de rexistro nun control de etiquetas dentro da galería:

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

Establecer a propiedade de texto a fórmula para mostrar información sobre faxes, chamadas de teléfono e outras actividades.

Tamén pode usar AsType para acceder aos campos do tipo específico. Por exemplo, esta fórmula determina o tipo de cada actividade e, para as chamadas telefónicas, mostra o número de teléfono e a dirección da chamada desde a táboa 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"
)

Propiedade de texto ampliada con máis información para un chamada telefónica.

Como resultado, a aplicación mostra unha lista completa de actividades. O campo Asunto aparece para todo tipo de actividades, tanto se a fórmula as ten en conta coma se non. Para os tipos de actividades que coñece, pode amosar os seus nomes de tipo e información específica de tipo sobre cada actividade.

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

Táboa Notas

Ata agora, todos os exemplos de Referente a baseáronse en actividades, pero a táboa Notas representa outro caso.

Cando crea unha táboa, pode activar os anexos.

Activar anexos e notas ao crear unha táboa.

Se selecciona a caixa de verificación para activar os anexos, creará unha relación Referente a coa táboa Notas, como mostra este gráfico para a táboa Contas:

Táboa Conta mostrando unha relación a Notas mediante unha relación de un a varios.

Aparte desta diferenza, use a busca Relacionado con do mesmo xeito en que emprega as actividades. As táboas activadas para anexos teñen unha relación de un a varios a Notas, como neste exemplo:

First( Accounts ).Notes

Nota

Tras a escritura deste documento, a busca Referente a non está dispoñible para a táboa Notas. Non pode ler nin filtrar en función da columna Referente a e non pode configurar a columna usando Patch.

Non obstante, está dispoñible a relación de un a varios das Notas, para que poida filtrar unha lista de notas para un rexistro compatible cos ficheiros adxuntos. Tamén pode usar a función Relacionar para engadir unha nota á táboa Notas dun rexistro, pero a nota debe crearse primeiro, como neste exemplo:

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

Participantes na actividade

A partir deste escrito, as aplicacións de lenzo non admiten participantes nas actividades.

Nota

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

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