Informació de referència sobre la plantilla de pantalla de correu electrònic a les aplicacions de llenç

Per a les aplicacions de llenç de Power Apps, enteneu com cada control significatiu de la plantilla de pantalla de correu electrònic contribueix a la funcionalitat predeterminada general de la pantalla. En aquesta anàlisi en profunditat es presenten fórmules del comportament i els valors d'altres propietats que determinen com els controls responen a les entrades de l'usuari. Per a una discussió d'alt nivell sobre la funcionalitat per defecte d'aquesta pantalla, vegeu la informació general de la pantalla de correu electrònic.

En aquest tema es ressalten alguns controls importants i s'expliquen les expressions o les fórmules amb què es defineixen diverses propietats (com ara Items i OnSelect) d'aquests controls:

Requisit previ

Familiaritzar-se amb com afegir i configurar pantalles i altres controls a mesura que creeu una aplicació a Power Apps.

Control TextSearchBox

Hi ha diversos altres controls a la pantalla que tenen una dependència del control Quadre de cerca de text:

  • Si un usuari comença a escriure qualsevol text, PeopleBrowseGallery apareix.
  • Si un usuari escriu una adreça electrònica vàlida, AddIcon apareix.
  • Quan un usuari selecciona una persona dins PeopleBrowseGallery, el contingut de la cerca es restableix.

Icona Afegeix

Control AddIcon

El control Icona Afegeix permet als usuaris afegir persones que no existeixen dins de la seva organització a la llista de destinataris del correu electrònic que s'està escrivint.

  • Propietat: Visible
    Valor: la lògica per mostrar el control només quan un usuari escriu una adreça de correu electrònic vàlida al quadre de cerca:

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

    Línia per línia, el bloc de codi anterior indica que el control Icona Afegeix serà visible si:

    • TextSearchBox conté text.
    • El text de TextSearchBox és una adreça electrònica vàlida.
    • El text de TextSearchBox no existeix a la col·lecció MyPeople.
  • Propietat: OnSelect
    Valor: en seleccionar aquesta opció, l'adreça electrònica vàlida s'afegeix a la col·lecció MyPeople. Aquesta col·lecció s'utilitza a la pantalla com a llista de destinataris:

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

    Aquest bloc de codi afegeix una fila a la col·lecció MyPeople i emplena tres camps amb el text a TextSearchBox. Aquests tres camps són DisplayName, UserPrincipalName i Mail. Llavors restableix el contingut de TextSearchBox.

Control PeopleBrowseGallery

  • Propietat: Items
    Valor: els 15 millors resultats de la cerca del text de cerca teclejat al control TextSearchBox:

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

    Els resultats de la cerca emplenen els elements d'aquesta galeria mitjançant l'operació Office365.SearchUser. L'operació pren el text del Trim(TextSearchBox) com el seu terme de cerca i retorna els 15 primers resultats en funció d'aquesta cerca.

    TextSearchBox s'inclou en una funció Trim() perquè una recerca d'usuari en espais no és vàlida. L'operació Office365Users.SearchUser s'inclou en una funció If(!IsBlank(Trim(TextSearchBox.Text)) ... ), que vol dir que l'operació es realitza només si el quadre de cerca conté text introduït per l'usuari. Això millora el rendiment.

Control de títol PeopleBrowseGallery

  • Propietat: Text
    Valor: ThisItem.DisplayName

    Mostra el nom de visualització de la persona des del seu perfil Office 365.

  • Propietat: OnSelect
    Valor: codi per afegir l'usuari a una col·lecció de nivell d'aplicació i, a continuació, seleccionar l'usuari:

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

La selecció d'aquest control fa tres coses de manera simultània:

  • Defineix la variable selectedUser com l'element seleccionat.
  • Restableix el terme de cerca a TextSearchBox.
  • Afegeix l'element seleccionat a la col·lecció MyPeople, una recopilació de tots els usuaris seleccionats que la pantalla de correu electrònic utilitza com a conjunt de destinataris.

Control EmailPeopleGallery

  • Propietat: Items
    Valor: MyPeople

    Aquesta és la col·lecció de persones inicialitzades o afegides seleccionant el control PeopleBrowseGallery Title.

  • Propietat: Height
    Valor: la lògica per definir l'alçada, segons el nombre d'elements que s'estan actualment a la galeria:

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

    L'alçada d'aquesta galeria s'ajusta al nombre d'elements de la galeria, amb una alçada màxima de 304.

    Pren TemplateHeight + TemplatePadding * 2 com l'alçada total d'una sola fila de EmailPeopleGallery i, a continuació, ho multiplica pel nombre de files. Com que WrapCount = 2, el nombre de files veritables és RoundUp(CountRows(EmailPeopleGallery.AllItems) / 2, 0).

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

    Quan l'alçada de la galeria arriba a 304, la barra de desplaçament es fa visible.

Control de títol EmailPeopleGallery

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

    Defineix la variable _selectedUser com l'element seleccionat a EmailPeopleGallery.

Control de títol MonthDayGallery

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

    Cerca el registre a la col·lecció MyPeople, on UserPrincipalName coincideix amb el valor de UserPrincipalName de l'element seleccionat i suprimeix aquest registre de la col·lecció.

Icona de correu electrònic

  • Propietat: OnSelect
    Valor: lògica per enviar el missatge de correu electrònic de l'usuari:

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

    L'enviament d'un missatge de correu electrònic necessita una cadena d'adreces electròniques separades per un punt i coma. En el codi anterior:

    1. La primera línia de codi pren el camp Correu de totes les files de la col·lecció MyPeople, els concatena en una sola cadena d'adreces electròniques separades per punts i comes, i defineix la variable _emailRecipientString al valor de la cadena.

    2. A continuació, utilitza l'operació Office365.SendEmail per enviar el correu electrònic als destinataris. L'operació té tres paràmetres necessaris, Destinatari, Assumpte i Cos, i un paràmetre opcional, Importància. En el codi anterior, aquests són _emailRecipientString, TextEmailSubject.Text, TextEmailMessage.Text i Normal, respectivament.

    3. Finalment, restableix els controls TextEmailSubject i TextEmailMessage i esborra la col·lecció MyPeople.

  • Propietat: DisplayMode
    Valor: If( Len( Trim( TextEmailSubject.Text ) ) > 0 && !IsEmpty( MyPeople ), DisplayMode.Edit, DisplayMode.Disabled ) Per tal que un missatge de correu electrònic s'enviï, la línia d'assumpte del correu electrònic ha de tenir text i la col·lecció de destinataris (MyPeople) no pot estar buida.

Passos següents