Kalendrikuva mall lõuendirakendustes

Lisage lõuendirakenduses kalendrikuva, mis kuvab kasutajatele nende Office 365 Outlooki kontodelt eelseisvaid sündmuseid. Kasutajad saavad valida kalendrist kuupäeva ja kerida läbi selle päeva sündmuste loendi. Saate muuta seda, kuidas üksikasjad loendis kuvatakse, lisada teise kuva, mis näitab iga sündmuse kohta rohkem üksikasju, kuvada iga sündmuse osalejate loendi ja teha teisi kohandusi.

Lisaks saate lisada ka teisi mallipõhiseid kuvasid, mis näitavad Office 365 erinevaid andmeid, nagu meil, organisatsiooni inimesed ja inimeste kättesaadavus, keda kasutajad võivad tahta koosolekutele kutsuda.

Selles ülevaates saate teavet järgneva kohta.

  • Vaikimisi kalendrikuva kasutamine.
  • Selle muutmine.
  • Selle integreerimine rakendusse.

Üksikasjalikumat teavet selle kuva vaikefunktsiooni kohta vaadake kalendrikuva viitest.

Eeltingimus

Peate teadma, kuidas Power Appsis rakendust luues lisada ja konfigureerida kuvasid ning teisi juhtelemente.

Vaikefunktsioonid

Mallist kalendrikuva lisamiseks tehke järgmist.

  1. Logige sisse platvormile Power Apps ja looge rakendus või avage Power Apps Studios olemasolev rakendus.

    Selles teemas on näidatud telefonirakendus, kuid samad põhimõtted kehtivad ka tahvelarvuti rakendusele.

  2. Valige riba vahekaardil Kodu suvand Uus kuva > Kalender.

    Vaikimisi sarnaneb kuva järgnevale:

    Kalendrikuva.

  3. Andmete kuvamiseks valige kuva ülaosa lähedal ripploendist soovitud suvand.

    Kalendrikuva pärast laadimise lõppemist.

Mõned kasulikud märkused.

  • Vaikimisi on valitud tänane kuupäev ja saate selle juurde hõlpsasti naasta, valides üleval paremas nurgas kalendri ikooni.
  • Kui valite mõne muu kuupäeva, ümbritseb seda ring ja tänase kuupäeva ümber ilmub hele ristkülik (vaikekujunduse rakendamisel sinine).
  • Kui konkreetseks kuupäevaks on kavandatud vähemalt üks sündmus, ilmub kalendris selle kuupäeva alla väike värviline ring.
  • Kui valite kuupäeva, millele on kavandatud üks või mitu sündmust, kuvatakse kalendri all sündmuste loend.

Kuva muutmine

Saate muuta selle kuva vaikefunktsioone paaril levinud viisil.

Kui soovite kuva veelgi rohkem muuta, kasutage juhendina kalendrikuva viidet.

Kalendri määratlemine

Kui te juba teate, milline kalender tuleb teie kasutajatele kuvada, saate kuva lihtsustada, määratledes selle kalendri enne rakenduse avaldamist. See muudatus eemaldab kalendrite ripploendi vajaduse, et saaksite selle eemaldada.

  1. Määrake OnStart rakenduste atribuut sellele valemile:

    Set( _userDomain, Right( User().Email, Len( User().Email ) - Find( "@", User().Email ) ) );
    Set( _dateSelected, Today() );
    Set( _firstDayOfMonth, DateAdd( Today(), 1 - Day( Today() ), Days ) );
    Set( _firstDayInView, 
        DateAdd( _firstDayOfMonth, -( Weekday( _firstDayOfMonth) - 2 + 1 ), Days )
    );
    Set( _lastDayOfMonth, DateAdd( DateAdd( _firstDayOfMonth, 1, Months ), -1, Days ) );
    Set( _calendarVisible, false );
    Set( _myCalendar, 
        LookUp(Office365Outlook.CalendarGetTablesV2().value, DisplayName = "{YourCalendarNameHere}" )
    );
    Set( _minDate, 
        DateAdd( _firstDayOfMonth, -( Weekday(_firstDayOfMonth) - 2 + 1 ), Days )
    );
    Set( _maxDate, 
        DateAdd(
            DateAdd( _firstDayOfMonth, -( Weekday(_firstDayOfMonth) - 2 + 1 ), Days ),
            40, 
            Days 
        )
    );
    ClearCollect( MyCalendarEvents, 
    Office365Outlook.GetEventsCalendarViewV3(_myCalendar.name, 
        Text( _minDate, UTC),
        Text( _maxDate, UTC)
    ).value
    );
    Set( _calendarVisible, true )
    

    Märkus

    Seda valemit redigeeritakse veidi kalendri valimiseks ripploendi atribuudi OnSelect vaikeväärtusest. Lisateavet selle juhtelemendi kohta vaadake kalendrikuva viite sellest jaotisest.

  2. Asendage üksus {YourCalendarNameHere} (sh loogelised sulud) kalendri nimega, mida soovite kuvada (nt Kalender).

    Oluline

    Järgmised sammud eeldavad, et olete lisanud rakendusse ainult ühe kalendrikuva. Kui olete lisanud mitu kuva, lõppevad juhtelementide nimed (nt iconCalendar1) erineva numbriga ja peate muutma valemeid vastavalt.

  3. Määrake juhtelemendi iconCalendar1 atribuudiks Y järgmine avaldis:

    RectQuickActionBar1.Height + 20

  4. Määrake juhtelemendi LblMonthSelected1 atribuudiks Y järgmine avaldis:

    iconCalendar1.Y + iconCalendar1.Height + 20

  5. Määrake juhtelemendi LblNoEvents1 atribuudiks Tekst järgmine avaldis:

    "No events scheduled"

  6. Määrake juhtelemendi LblNoEvents1 atribuudiks Nähtav järgmine valem:

    CountRows(CalendarEventsGallery1.AllItems) = 0 && _calendarVisible

  7. Kustutage järgmised juhtelemendid:

    • dropdownCalendarSelection1
    • LblEmptyState1
    • iconEmptyState1
  8. Kui kalendrikuva ei ole vaikekuva, lisage nupp, mis navigeerib vaikekuvalt kalendrikuvale, et saaksite rakendust testida.

    Näiteks lisage nupp kuvale 1, mis navigeerib kuvale 2, kui lõite kalendrikuva rakenduses, mille lõite nullist.

  9. Salvestage rakendus ja katsetage seda brauseris või mobiiliseadmes.

Sündmuse kohta erinevate üksikasjade kuvamine

Vaikimisi kuvab suvandi kalender galerii nimega CalendarEventsGallery iga sündmuse alguskellaaja, kestuse, teema ja asukoha. Saate konfigureerida galerii kuvama mis tahes välja (nt korraldaja), mida Office 365 konnektor toetab.

  1. Üksuses CalendarEventsGallery määrake uue või olemasoleva sildi atribuut Tekst valikule ThisItem, millele järgneb punkt.

    IntelliSense loetleb väljad, mida saate valida.

  2. Valige soovitud väli.

    Silt kuvab teabetüübi, mille määratlesite.

Mitteblokeerivate sündmuste peitmine

Paljudes kontorites saadavad meeskonnaliikmed koosolekukutseid, et teavitada üksteist, kui nad on kontorist eemal. Kõigi ajakavade blokeerimise vältimiseks määrab kutse saatja kättesaadavuseks Vaba. Saate neid sündmuseid kalendrist ja galeriist peita, värskendades paari atribuuti.

  1. Määrake üksuse CalendarEventsGallery atribuut Üksused järgmisele valemile:

    SortByColumns(
        Filter(
            MyCalendarEvents,
            Text( Start, DateTimeFormat.ShortDate ) = 
                Text( _dateSelected, DateTimeFormat.ShortDate ),
            ShowAs <> "Free"
        ),
        "Start"
    )
    

    Selles valemis peidab funktsioon Filtreerimine mitte ainult neid sündmusi, mis on planeeritud mõnele muule kuupäevale kui valitud, vaid ka sündmusi, mille puhul on saadavuseks määratud Vaba.

  2. Määrake kalendris juhtelemendi Ring atribuut Nähtav järgmisele valemile:

    CountRows(
        Filter(
            MyCalendarEvents,
            DateValue( Text(Start) ) = DateAdd( _firstDayInView, ThisItem.Value, TimeUnit.Days ),
            ShowAs <> "Free"
        )
    ) > 0 && !Subcircle1.Visible && Title2.Visible
    

    See valem sisaldab eelmise valemiga samu filtreid. Seetõttu kuvatakse sündmust näitav ring kuupäeva all ainult juhul, kui valitud kuupäeval on üks või mitu sündmust, mille saadavuseks ei ole määratud Vaba.

Kuva rakendusse integreerimine

Kalendrikuva on iseenesest võimas juhtelementide kogum, kuid tavaliselt toimib see kõige paremini suurema mitmekülgsema rakenduse osana. Saate selle kuva integreerida suurema rakendusega mitmel viisil, sealhulgas lisades järgmises suvandid.

Sündmuse üksikasjade vaatamine

Kui kasutajad valivad üksuses CalendarEventsGallery sündmuse, saate avada teise kuva, mis näitab selle sündmuse kohta rohkem teavet.

Märkus

See toiming kuvab sündmuse üksikasjad dünaamilise sisuga galeriis, kuid saate sarnased tulemid arhiivida, kui võtate kasutusele muud lähenemisviisid. Näiteks saate juhtida kujundust rohkem, kui kasutate selle asemel siltide seeriat.

  1. Lisage tühi kuva nimega EventDetailsScreen, mis sisaldab tühja paindliku kõrgusega galeriid ja nuppu, mis viib tagasi kalendrikuvale.

  2. Lisage paindliku kõrgusega galeriisse juhtelement Silt ja juhtelement HTML-tekst ning määrake mõlema atribuut AutoHeight (Automaatne kõrgus) väärtusele tõene.

    Märkus

    Power Apps hangib iga sündmuse sõnumisisu HTML-tekstina, seega peate kuvama selle sisu juhtelemendis HTML-tekst.

  3. Määrake juhtelemendi HTML-tekst atribuudiks Y järgmine avaldis:

    Label1.Y + Label1.Height + 20

  4. Reguleerige vastavalt vajadusele täiendavaid atribuute, et need vastaksid teie laadi vajadustele.

    Näiteks võite soovida lisada juhtelemendi HTML-tekst alla eraldusjoone.

  5. Määrake paindliku kõrguse galerii atribuut Üksused järgmisele valemile:

    Table(
        { Title: "Subject", Value: _selectedCalendarEvent.Subject },
        { 
            Title: "Time", 
            Value: _selectedCalendarEvent.Start & " - " & _selectedCalendarEvent.End 
        },
        { Title: "Body", Value: _selectedCalendarEvent.Body }
    )
    

    See valem loob dünaamiliste andmete galerii, mis on määratud _selectedCalendarEvent välja väärtustele, mis määratakse iga kord, kui kasutaja valib juhtelemendis CalendarEventsGallery sündmuse. Saate laiendada seda galeriid, et sellele rohkem silte lisades kaasata rohkem välju, kuid see komplekt annab hea lähtepunkti.

  6. Kui galerii elemendid on paigas, määrake juhtelemendi Silt atribuut Tekst väärtusele ThisItem.Title ja juhtelemendi HTML-tekst atribuut HtmlText väärtusele ThisItem.Value.

  7. Üksuses CalendarEventsGallery määrake juhtelemendi Pealkiri atribuut OnSelect järgmisele valemile:

    Set( _selectedCalendarEvent, ThisItem );
    Navigate( EventDetailsScreen, None )
    

    Märkus

    Muutuja _selectedCalendarEvent kasutamise asemel võite kasutada varianti CalendarEventsGallery.Selected.

Sündmuse osalejate kuvamine

Toiming Office365.GetEventsCalendarViewV2 toob iga sündmuse jaoks mitmed väljad, sealhulgas semikooloniga eraldatud nõutud ja valikuliste osalejate komplekt. Selle toimingu puhul sõelute iga osalejate kogumit, määrate, millised osalejad on teie organisatsioonis, ja toote Office 365 profiilid nende jaoks, kes on.

  1. Kui rakendus ei sisalda Office 365 kasutajate konnektorit, lisage see.

  2. Koosoleku osalejate Office 365 profiilide toomiseks määrake juhtelemendi Pealkiri atribuut OnSelect asukohas CalendarEventsGallery järgmisele valemile:

    Set( _selectedCalendarEvent, ThisItem );
    ClearCollect( AttendeeEmailsTemp,
        Filter(
            Split( ThisItem.RequiredAttendees & ThisItem.OptionalAttendees, ";" ),
            !IsBlank( Result )
        )
    );
    ClearCollect( AttendeeEmails,
        AddColumns( AttendeeEmailsTemp, 
            "InOrg",
            Upper( _userDomain ) = Upper( Right( Result, Len( Result ) - Find( "@", Result ) ) )
        )
    );
    ClearCollect( MyPeople,
        ForAll( AttendeeEmails, If( InOrg, Office365Users.UserProfile( Result ) ) ) 
    );
    Collect( MyPeople,
        ForAll( AttendeeEmails,
            If( !InOrg, 
                { DisplayName: Result, Id: "", JobTitle: "", UserPrincipalName: Result }
            )
        )
    )
    

Selles loendis on toodud ,mida iga toiming ClearCollect teeb.

  • ClearCollect(AttendeeEmailsTemp)

    ClearCollect( AttendeeEmailsTemp,
        Filter(
            Split( ThisItem.RequiredAttendees & ThisItem.OptionalAttendees, ";" ), 
            !IsBlank( Result)
        )
    );
    

    See valem ühendab nõutud ja valikud osalejad üheks stringiks ja seejärel jagab selle stringi iga semikooloni juures individuaalseteks aadressideks. Valem filtreerib seejärel komplektist välja tühjad väärtused ja lisab teised väärtused kollektsiooni nimega AttendeeEmailsTemp.

  • ClearCollect(AttendeeEmails)

    ClearCollect( AttendeeEmails,
        AddColumns( AttendeeEmailsTemp, 
            "InOrg",
            Upper( _userDomain ) = Upper( Right( Result, Len(Result) - Find("@", Result) ) )
        )
    );
    

    See valem määrab umbkaudu, kas osavõtja on teie organisatsioonis. Üksuse _userDomain definitsioon on lihtsalt rakendust käitava inimese meiliaadressi domeeni URL. See rida loob täiendava tõene/väär veeru nimega InOrg kogumikus AttendeeEmailsTemp. See veerg sisaldav väärtus tõene, kui üksus userDomain on võrdne meiliaadressi domeeni URL-iga selles konkreetses üksuse AttendeeEmailsTemp reas.

    See lähenemine ei ole alati täpne, kuid see on küllaltki ligilähedane. Näiteks võib teie organisatsiooni teatud osalejatel olla selline e-posti aadress nagu Jane@OnContoso.com _userDomain samas kui Contoso.com. Rakenduse kasutaja ja Jane võivad töötada samas ettevõttes, kuid nende meiliaadressid on veidi erinevad. Sellistel juhtudel võite tahta kasutada järgmist valemit:

    Upper(_userDomain) in Upper(Right(Result, Len(Result) - Find("@", Result)))

    Kuid see valem vastab e-posti aadressidele nagu a Jane@NotTheContosoCompany.com _userDomain nagu Contoso.com, ja need inimesed ei tööta samas ettevõttes.

  • ClearCollect(MyPeople)

    ClearCollect( MyPeople,
        ForAll( AttendeeEmails, 
            If( InOrg, 
                Office365Users.UserProfile( Result )
            )
        )
    );
    Collect( MyPeople,
        ForAll( AttendeeEmails,
            If( !InOrg, 
                { 
                    DisplayName: Result, 
                    Id: "", 
                    JobTitle: "", 
                    UserPrincipalName: Result
                }
            )
        )
    );
    

    Office 365 profiilide toomiseks peate kasutama toimingut Office365Users.UserProfile või Office365Users.UserProfileV2. Need toimingud koguvad kõigepealt kokku kõik teie kasutaja organisatsioonis olevate osalejate Office 365 profiilid. Seejärel lisavad toimingud paar välja osalejatele väljastpoolt organisatsiooni. Eraldasite need kaks üksust eraldi toiminguteks, kuna silmus ForAll ei garanteeri järjekorda. Seetõttu võib ForAll koguda kõigepealt osaleja väljastpoolt organisatsiooni. Sellisel juhul sisaldab suvand Minu inimesed ainult atribuute DisplayName (Kuva nimi), Id, JobTitle (Ametinimetus) ja UserPrincipalName (Kasutaja subjektinimi). Samas toovad toimingud UserProfile sellest palju rikkalikumaid andmeid. Seega sunnite kollektsiooni Minu inimesed lisama enne teisi profiile Office 365 profiilid.

    Märkus

    Saate saavutada sama tulemuse ühega funktsioonidest ClearCollect:

    ClearCollect( MyPeople, 
        ForAll(
            AddColumns(
                Filter(
                    Split(
                        ThisItem.RequiredAttendees & ThisItem.OptionalAttendees, 
                        ";"
                    ), 
                    !IsBlank( Result )
                ), 
                "InOrg", _userDomain = Right( Result, Len( Result ) - Find( "@", Result ) )
            ), 
            If( InOrg, 
                Office365Users.UserProfile( Result ), 
                { 
                    DisplayName: Result, 
                    Id: "", 
                    JobTitle: "", 
                    UserPrincipalName: Result, 
                    Department: "", 
                    OfficeLocation: "", 
                    TelephoneNumber: ""
                }
            )
        )
    )
    

Selle harjutuse lõpetamiseks tehke järgmist.

  1. Lisage kuva, mis sisaldab galeriid, kus atribuut Üksused on määratud valikule Minu inimesed.

  2. Juhtelemendi Pealkiri atribuudi OnSite üksuses CalendarEventsGallery lisage funktsioon Navigeeri kuvale, mille eelmises etapis lõite.

Järgmised etapid

Märkus

Kas saaksite meile dokumentatsiooniga seotud keele-eelistustest teada anda? Osalege lühikeses uuringus. (Uuring on ingliskeelne.)

Uuringus osalemine võtab umbes seitse minutit. Isikuandmeid ei koguta (privaatsusavaldus).