Información de referencia acerca do modelo de pantalla de correo electrónico para aplicacións de lenzo

Para aplicacións de lenzo en Power Apps, obteña información sobre como contribúe cada control significativo do modelo da pantalla de correo electrónico á funcionalidade predefinida xeral da pantalla. Esta información presenta as fórmulas de comportamento e os valores doutras propiedades que determinan como responden os controis á entrada do usuario. Para manter un debate de alto nivel sobre a funcionalidade predefinida desta pantalla, consulte a visión xeral da pantalla de correo electrónico.

Este tema resalta algúns controis significativos e explica as expresións ou fórmulas nas que as diversas propiedades (como Elementos e OnSelect) destes controis se establecen:

Requisito previo

Familiarícese con como engadir e configurar pantallas e outros controis ao crear unha aplicación en Power Apps.

Control TextSearchBox

Outros controis da pantalla dependen do control da Caixa de busca de texto:

  • Se un usuario comeza a escribir un texto, PeopleBrowseGallery pasa a estar visible.
  • Se un usuario escribe un enderezo de correo electrónico válido, AddIcon pasa a estar visible.
  • Cando un usuario selecciona unha persoa dentro de PeopleBrowseGallery, restablécese o contido de busca.

Icona Engadir

Control AddIcon

O control Engadir icona permite aos usuarios das aplicacións engadir persoas que non existen dentro da súa organización á lista de destinatarios do correo electrónico que se está a redactar.

  • Propiedade: Visible
    Valor: lóxico para mostrar o control só cando un usuario introduce un enderezo de correo electrónico válido na caixa de busca:

    !IsBlank( TextSearchBox.Text ) &&
        IsMatch( TextSearchBox.Text, Match.Email ) &&
        Not( Trim( TextSearchBox.Text ) in MyPeople.UserPrincipalName )
    

    Liña por liña, o código anterior indica que o control Icona Engadir só estará visible se:

    • TextSearchBox contén texto.
    • O texto de TextSearchBox é un enderezo de correo electrónico válido.
    • O texto de TextSearchBox xa non existe na colección MyPeople.
  • Propiedade: OnSelect
    Valor: seleccionando isto engádese o enderezo de correo electrónico válido á colección MyPeople. Esta colección é usada pola pantalla como lista de destinatarios:

    Collect( MyPeople,
        { 
            DisplayName: TextSearchBox.Text, 
            UserPrincipalName: TextSearchBox.Text, 
            Mail: TextSearchBox.Text
        }
    );
    Reset( TextSearchBox )
    

    Este bloque de código engade unha fila á colección MyPeople e enche tres campos co texto de TextSearchBox. Estes tres campos son DisplayName, UserPrincipalName e Correo. A continuación, restablece o contido de TextSearchBox.

Control PeopleBrowseGallery

  • Propiedade: Elementos
    Valor: os 15 resultados da busca máis importantes do texto da busca escritos no control TextSearchBox:

    If( !IsBlank( Trim(TextSearchBox.Text ) ), 
        'Office365Users'.SearchUser( {searchTerm: Trim( TextSearchBox.Text ), top: 15} )
    )
    

    Os elementos desta galería están cubertos con resultados da operación Office365.SearchUser A operación leva o texto en Trim(TextSearchBox) como termo de busca e devolve os 15 primeiros resultados en función desa busca.

    TextSearchBox axústase nunha función Trim() porque unha busca do usuario en espazos non é válida. A operación Office365Users.SearchUser axústase nunha función If(!IsBlank(Trim(TextSearchBox.Text)) ... ), o cal significa que a operación só se realiza se a caixa de busca contén texto introducido polo usuario. Isto mellora o rendemento.

Control do título de PeopleBrowseGallery

  • Propiedade: Texto
    Valor: ThisItem.DisplayName

    Amosa o nome de visualización da persoa desde o seu perfil de Office 365.

  • Propiedade: OnSelect
    Valor: código para engadir ao usuario a unha colección a nivel de aplicación e, a continuación, seleccionar o usuario:

    Concurrent(
        Set( _selectedUser, ThisItem ),
        Reset( TextSearchBox ),
        If( Not( ThisItem.UserPrincipalName in MyPeople.UserPrincipalName ), 
            Collect( MyPeople, ThisItem )
        )
    )
    

Seleccionar este control fai tres cousas ao mesmo tempo:

  • Configura a variable selectedUser para o elemento seleccionado.
  • Restablece o termo de busca en TextSearchBox.
  • Engade o elemento seleccionado á colección MyPeople, unha colección de todos os usuarios seleccionados que a pantalla de correo electrónico usa como un conxunto de destinatarios.

EmailPeopleGallery control

  • Propiedade: Elementos
    Valor: MyPeople

    Esta é a colección das persoas iniciadas ou engadidas ao seleccionar o control PeopleBrowseGallery.

  • Propiedade: Altura
    Valor: Lóxico para establecer a altura, en función do número de elementos que hai actualmente na galería:

    Min( 
        ( EmailPeopleGallery.TemplateHeight + EmailPeopleGallery.TemplatePadding * 2) *
            RoundUp(CountRows(EmailPeopleGallery.AllItems) / 2, 0 ),
        304
    )
    

    A altura desta galería axústase ao número de elementos da galería, cunha altura máxima de 304.

    Ten TemplateHeight + TemplatePadding * 2 como altura total dunha única fila de EmailPeopleGallery e, despois, multiplícase polo número de filas. Dende WrapCount = 2, o número de filas verdadeiras é RoundUp(CountRows(EmailPeopleGallery.AllItems) / 2, 0).

  • Propiedade: ShowScrollbar
    Valor: EmailPeopleGallery.Height >= 304

    Cando a altura da galería chega a 304, a barra de desprazamento é visible.

Control do título de EmailPeopleGallery

  • Propiedade: OnSelect
    Valor: Set(_selectedUser, ThisItem)

    Configura a variable _selectedUser para o elemento seleccionado en EmailPeopleGallery.

Control do título MonthDayGallery

  • Propiedade: OnSelect
    Valor: Remove( MyPeople, LookUp( MyPeople, UserPrincipalName = ThisItem.UserPrincipalName ) )

    Busca o rexistro na colección MyPeople, onde UserPrincipalName coincide co UserPrincipalName do elemento seleccionado e, a continuación, elimina ese rexistro da colección.

Icona de correo

  • Propiedade: OnSelect
    Valor: Lóxica para enviar a mensaxe de correo electrónico do usuario:

    Set( _emailRecipientString, Concat( MyPeople, Mail & ";" ) );
    'Office365'.SendEmail( _emailRecipientString, 
        TextEmailSubject.Text,  
        TextEmailMessage.Text, 
        { Importance:"Normal" }
    );
    Reset( TextEmailSubject );
    Reset( TextEmailMessage );
    Clear( MyPeople )
    

    Para enviar unha mensaxe de correo electrónico necesítase unha cadea de enderezos de correo electrónico separada por punto e coma. No código anterior:

    1. A primeira liña de código toma o campo Correo de todas as filas da colección MyPeople, concaténaos nunha única cadea de enderezos de correo electrónico separados por puntos e coma e establece a variable _emailRecipientString no valor desa cadea.

    2. A continuación, usa a operación Office365.SendEmail para enviar o correo electrónico aos destinatarios. A operación ten tres parámetros necesarios, Para, Asunto e Corpo e un parámetro opcional--Importancia. No código anterior, estes son _emailRecipientString, TextEmailSubject.Text, TextEmailMessage.Text e Normal respectivamente.

    3. Finalmente, restablece os controis TextEmailSubject e TextEmailMessage e borra a colección MyPeople.

  • Propiedade: DisplayMode
    Valor: If( Len( Trim( TextEmailSubject.Text ) ) > 0 && !IsEmpty( MyPeople ), DisplayMode.Edit, DisplayMode.Disabled ) Para que se envíe un correo electrónico, a liña de asunto de correo electrónico debe ter texto e a colección do destinatario (MyPeople) non debe estar baleira.

Pasos seguintes