Kalendāra ekrāna veidne pamatnes programmās

Audekla programmā pievienojiet kalendāra ekrānu, kas rāda lietotājiem nākamos notikumus no viņu Office 365 Outlook kontiem. Lietotāji kalendārā var atlasīt datumu un ritināt šīs dienas notikumu sarakstu. Varat mainīt, kāda informācija tiek parādīta sarakstā, pievienot otru ekrānu, kurā ir sniegta detalizēta informācija par katru notikumu, parādīts dalībnieku sarakstu katram notikumam, un veikt citus pielāgojumus.

Varat arī pievienot citus uz veidnēm balstītus logus, kuros parādīti dažādi dati no Office 365, piemēram, e-pasts, personas organizācijā un personu pieejamība, kuras var būt nepieciešamas uzaicināt uz sapulci.

Šis pārskats māca:

  • Kā izmantot noklusējuma kalendāra ekrānu.
  • Kā to modificēt.
  • Kā to integrēt programmā.

Lai dziļāk izpētītu šī ekrāna noklusējuma funkcionalitāti, skatiet kalendāra ekrāna atsauci.

Priekšnosacījums

Jāzina, kā pievienot un konfigurēt ekrānus un citas vadīklas, kad izveidojat programmu platformā Power Apps.

Noklusējuma funkcionalitāte

Lai pievienotu kalendāra ekrānu no veidnes, veiciet tālāk norādītās darbības.

  1. Piesakieties programmā Power Apps un pēc tam izveidojiet programmu vai atveriet esošu programmu platformā Power Apps Studio.

    Šajā tēmā ir parādīta tālruņa programma, taču uz planšetdatora programmu attiecas tie paši jēdzieni.

  2. Lente cilnē Sākums atlasiet Jauns ekrāns > Kalendārs.

    Pēc noklusējuma ekrāns izskatās līdzīgi kā:

    Kalendāra ekrāns.

  3. Lai parādītu datus, nolaižamajā sarakstā atlasiet opciju, kas atrodas ekrāna augšdaļā.

    Kalendāra ekrāns pēc ielādes pabeigšanas.

Dažas noderīgas piezīmes.

  • Pēc noklusējuma ir atlasīts šīsdienas datums, un pie tā iespējams viegli atgriezties, augšējā labējā stūrī atlasot kalendāra ikonu.
  • Ja atlasāt citu datumu, to ieskauj aplis, un gaišas krāsas taisnstūris (zils, ja tiek lietots noklusējuma dizains) ieskauj šīsdienas datumu.
  • Ja konkrētajā datumā ir ieplānots vismaz viens notikums, kalendārā zem šī datuma tiek parādīts neliels krāsainais aplis.
  • Ja atlasāt datumu, kurā ieplānots viens vai vairāki notikumi, šie notikumi tiek parādīti sarakstā zem kalendāra.

Ekrāna modificēšana

Varat modificēt šī ekrāna noklusējuma funkcionalitāti tālāk norādītajos parastajos veidos.

Ja vēlaties turpināt modificēt ekrānu, kā ceļvedi izmantojiet kalendāra ekrāna atsauci.

Kalendāra norādīšana

Ja jūs jau zināt, kuru kalendāru jāskata lietotājiem, varat vienkāršot ekrānu, norādot attiecīgo kalendāru pirms programmas publicēšanas. Šīs izmaiņas likvidē nepieciešamību pēc nolaižama kalendāru saraksta, tādēļ varat to noņemt.

  1. Iestatiet programmas OnStart rekvizītu uz šo formulas vērtību:

    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 )
    

    Piezīme

    Šī formula nedaudz tiek rediģēta no nolaižamā saraksta rekvizīta OnSelect noklusējuma vērtības kalendāra atlasīšanai. Papildinformācijai par šo vadīklu skatiet tās sadaļu kalendāra ekrāna atsaucē.

  2. Aizstājiet {YourCalendarNameHere}, tostarp figūriekavas, ar kalendāra nosaukumu, ko vēlaties parādīt (piemēram, Kalendārs).

    Svarīgi

    Tālāk aprakstītajām darbībām tiek pieņemts, ka programmai ir pievienots tikai viens kalendāra ekrāns. Ja pievienojāt vairāk nekā vienu, vadīklu nosaukumi (piemēram, iconCalendar1) beigsies ar citu skaitli, un jums ir attiecīgi jāpielāgo formulas.

  3. Iestatiet rekvizītu Y vadīklai iconCalendar1 uz tālāk norādīto izteiksmi.

    RectQuickActionBar1.Height + 20

  4. Iestatiet rekvizītu Y vadīklai LblMonthSelected1 uz tālāk norādīto izteiksmi.

    iconCalendar1.Y + iconCalendar1.Height + 20

  5. Iestatiet rekvizītu Teksts vadīklai LblNoEvents1 uz tālāk norādīto vērtību:

    "No events scheduled"

  6. Iestatiet rekvizītu Redzams vienumam LblNoEvents1 uz tālāk norādīto formulu.

    CountRows(CalendarEventsGallery1.AllItems) = 0 && _calendarVisible

  7. Dzēsiet tālāk norādītās vadīklas.

    • dropdownCalendarSelection1
    • LblEmptyState1
    • iconEmptyState1
  8. Ja kalendāra ekrāns nav noklusējuma ekrāns, pievienojiet pogu, lai pārvietotos no noklusējuma ekrāna uz kalendāra ekrānu, lai varētu testēt programmu.

    Piemēram, pievienojiet pogu Screen1, kas pārvieto uz Screen2, ja pievienojāt kalendāra ekrānu programmai, ko izveidojāt no tukšas vietas.

  9. Saglabājiet programmu un pēc tam pārbaudiet to pārlūkprogrammā vai mobilajā ierīcē.

Dažādas detalizētas informācijas parādīšana par notikumu

Pēc noklusējuma galerijā zem kalendāra ar nosaukumu CalendarEventsGallery tiek parādīts katra notikuma sākuma laiks, ilgums, tēma un notikšanas vieta. Galeriju var konfigurēt, lai parādītu jebkuru lauku (piemēram, organizatoru), ko atbalsta Office 365 savienotājs.

  1. CalendarEventsGalleryiestatiet jaunas vai esošas etiķetes rekvizītu Teksts uz ThisItem, kam seko punkts.

    IntelliSense atlasa tos laukus, ko varat atlasīt.

  2. Atlasiet vēlamo lauku.

    Etiķetē ir redzams jūsu norādītās informācijas tips.

Nebloķējošu notikumu paslēpšana

Daudzos birojos darba grupas locekļi nosūta sapulču pieprasījumus, lai tie cits citam paziņotu, kad viņi neatradīsies birojā. Lai nebloķētu visu citu grafikus, persona, kura nosūta pieprasījumu, iestata savu pieejamību uz Brīvs. Šos notikumus varat paslēpt no kalendāra un galerijas, atjauninot dažus rekvizītus.

  1. Iestatiet Vienumi rekvizītu CalendarEventsGallery uz tālāk norādīto formulu.

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

    Šajā formulā funkcija Filtrēt paslēpj ne tikai tos notikumus, kas ir ieplānoti citā datumā, nekā atlasītais, bet arī notikumus, kuriem pieejamība ir iestatīta uz Brīvs.

  2. Kalendārā iestatiet rekvizītu Redzams vadīklai Aplis uz tālāk noradīto formulu.

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

    Šajā formulā ir tādi paši filtri kā iepriekšējā formulā. Tāpēc notikumu indikatora aplis tiek parādīts zem datuma tikai tad, ja atlasītajā datumā ir viens vai vairāki notikumi un ja pieejamība nav iestatīta uz Brīvs.

Ekrāna integrēšana programmā

Kalendāra ekrāns pats par sevi ir jaudīgs vadīklu kopums, bet parasti tas darbojas kā daļa no lielākas, daudzpusīgākas programmas. Šo ekrānu varat integrēt lielākā programmā vairākos veidos, tostarp pievienojot tālāk norādītās opcijas.

Notikuma detalizētas informācijas skatīšana

Ja lietotāji atlasa kādu notikumu CalendarEventsGallery, varat atvērt citu ekrānu, kurā tiek parādīta papildu informācija par šo notikumu.

Piezīme

Šajā procedūrā informācija par notikumu tiek parādīta galerijā ar dinamisku saturu, taču varat sasniegt līdzīgus rezultātus ar citām pieejām. Piemēram, varat iegūt vairāk noformēšanas vadīklu, tā vietā izmantojot uzlīmju sēriju.

  1. Pievienojiet tukšu ekrānu ar nosaukumu EventDetailsScreen, kas satur tukšu galeriju ar maināmu augstumu un pogu, ar kuru pāriet atpakaļ uz kalendāra ekrānu.

  2. Galerijā ar maināmu augstumu pievienojiet vadīklu Etiķete un vadīklu HTML teksts, kā arī iestatiet abu rekvizītu Autoheight uz patiess.

    Piezīme

    Power Apps izgūst katra notikuma ziņojuma pamattekstu kā HTML tekstu, tāpēc šis saturs ir jāparāda vadīklā HTML teksts.

  3. Iestatiet rekvizītu Y vadīklai HTML teksts uz tālāk norādīto izteiksmi.

    Label1.Y + Label1.Height + 20

  4. Pēc nepieciešamības pielāgojiet papildu rekvizītus, lai tie atbilstu jūsu stila vajadzībām.

    Piemēram, varat pievienot atdalītāja rindu zem vadīklas HTML teksts.

  5. Maināma augstuma galerijas rekvizītu Vienumi iestatiet uz tālāk norādīto formulu.

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

    Izmantojot šo formulu, tiek izveidota dinamisko datu galerija, kas ir iestatīta uz lauka vērtībām _selectedCalendarEvent, kas tiek iestatītas ikreiz, kad lietotājs atlasa kādu notikumu vadīklā CalendarEventsGallery. Šo galeriju varat paplašināt, lai iekļautu vairāk lauku, tai pievienojot papildu etiķetes, bet šī kopa nodrošina labu sākuma punktu.

  6. Kad galerijas vienumi ir izvietoti, iestatiet rekvizītu Teksts vadīklai Etiķete uz ThisItem.Title, un rekvizītu HtmlText vadīklai HTML teksts uz ThisItem.Value.

  7. CalendarEventsGallery iestatiet rekvizītu OnSelect vadīklai Virsraksts uz tālāk noradīto formulu.

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

    Piezīme

    Tā vietā, lai izmantotu mainīgo _selectedCalendarEvent, varat izmantot atlasīto CalendarEventsGallery.

Notikuma dalībnieku parādīšana

Operācija Office365.GetEventsCalendarViewV2 izgūst dažādus laukus katram notikumam, tostarp ar semikolu atdalītu obligāto un neobligāto dalībnieku kopu. Šajā procedūrā jūs parsējat katru dalībnieku kopu, nosakāt, kuri dalībnieki ir jūsu organizācijā, un izgūstat viņu visu Office 365 profilus.

  1. Ja programma neietver Office 365 lietotāju savienotāju, pievienojiet to.

  2. Lai izgūtu Office 365 sapulces dalībnieku profilus, iestatiet rekvizītu OnSelect vadīklā Virsraksts, kas atrodas CalendarEventsGallery, uz tālāk norādīto formulu.

    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 }
            )
        )
    )
    

Šajā sarakstā ir apspriests, ko veic katra ClearCollect operācija.

  • ClearCollect(AttendeeEmailsTemp)

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

    Izmantojot šo formulu, obligātie un neobligātie dalībnieki tiek apvienoti vienā virknē, un pēc tam šis virknes dalījums tiek sadalīts atsevišķās adresēs pie katra semikola. Pēc tam formula izfiltrē tukšās vērtības no šīs kopas un pievieno citas vērtības kolekcijai ar nosaukumu AttendeeEmailsTemp.

  • ClearCollect(AttendeeEmails)

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

    Šī formula aptuveni nosaka, vai dalībnieks ir jūsu organizācijā. Definīcija _UserDomain ir vienkārši domēna URL tās personas e-pasta adresē, kura palaiž šo programmu. Izmantojot šo rindu, tiek izveidota papildu patiess/nepatiess kolonna ar nosaukumu InOrg, kas atrodas kolekcijā AttendeeEmailsTemp. Šajā kolonnā ir patiess, ja userDomain ir līdzvērtīgs e-pasta adreses domēna URL konkrētajā AttendeeEmailsTemp rindā.

    Šī pieeja ne vienmēr ir precīza, taču tā ir diezgan tuva. Piemēram, noteiktiem dalībniekiem jūsu organizācijā var būt tāda e-pasta adrese kā Jane@OnContoso.com, savukārt _userDomain ir Contoso.com. Programmas lietotājs un Maija var strādāt vienā uzņēmumā, bet to e-pasta adresēs ir nelielas atšķirības. Šādos gadījumos, iespējams, vēlēsieties izmantot tālāk norādīto formulu.

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

    Tomēr šī formula atbilst e-pasta adresēm, piemēram_userDomain Jane@NotTheContosoCompany.com piemēram ·, Contoso.com, un šie cilvēki nestrādā vienā uzņēmumā.

  • ClearCollect(MyPeople)

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

    Lai izgūtu Office 365 profilus, ir jāizmanto operācija Office365Users.UserProfile vai Office365Users.UserProfileV2. Šīs operācijas vispirms apkopo visu organizācijas dalībnieku Office 365 lietotāju profilus. Pēc tam operācijās ir pievienoti daži lauki dalībniekiem ārpus organizācijas. Jūs atdalījāt šos divus vienumus atšķirīgās operācijās, jo cilpa ForAll negarantē kārtību. Tāpēc ForAll vispirms var ievākt dalībnieku ārpus organizācijas. Šajā gadījumā shēma MyPeople satur tikai DisplayName, Id, JobTitle un userPrincipalName. Tomēr UserProfile operācijas izgūst daudz bagātākus datus. Tātad jūs liekat kolekcijai MyPeople pievienot Office 365 profilus pirms citiem profiliem.

    Piezīme

    To pašu rezultātu varat iegūt tikai ar vienu ClearCollect funkciju.

    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: ""
                }
            )
        )
    )
    

Lai pabeigtu šo vingrinājumu veiciet šādas darbības.

  1. Pievienojiet ekrānu, kurš ietver galeriju, kurai rekvizīts Vienumi ir iestatīts uz MyPeople.

  2. Rekvizītā OnSelect vadīklā Virsraksts, kas atrodas CalendarEventsGallery, ekrānam ko izveidojāt iepriekšējā darbībā pievienojiet funkciju Pārvietoties.

Nākamās darbības

Piezīme

Kādas ir jūsu dokumentācijas valodas preferences? Aizpildiet īsu aptauju. (ņemiet vērā, ka aptauja ir angļu valodā)

Aptaujai būs nepieciešamas aptuveni septiņas minūtes. Nekādi personas dati netiks vākti (paziņojums par konfidencialitāti).