Referenčni podatki o predlogi zaslona za srečanje za aplikacije delovnega območja
Preberite, kako v aplikacijah delovnega območja v rešitvi Power Apps vsak pomemben kontrolnik v predlogi zaslona za srečanje prispeva k splošni privzeti funkcionalnosti zaslona. Ta predstavitev vseh podrobnosti vključuje formule vedenja in vrednosti drugih lastnosti, ki določajo, kako se kontrolnik odziva na vnos uporabnika. Za celovito razpravo o privzeti funkcionalnosti tega zaslona glejte pregled zaslona za srečanje.
Ta tema poudarja nekaj pomembnih kontrolnikov in razlaga izraze oz. formule, na podlagi katerih se nastavijo različne lastnosti (npr. Items in OnSelect) teh kontrolnikov:
- Zavihek »Povabi« (LblInviteTab)
- Zavihek »Urnik« (LblScheduleTab)
- Besedilno iskalno polje
- Ikona za dodajanje (AddIcon)
- Galerija za brskanje po osebah (+ podrejeni kontrolniki)
- Galerija za osebe v srečanju (+ podrejeni kontrolniki)
- Izbirnik datuma srečanja (MeetingDateSelect)
- Spustni meni za trajanje srečanja (MeetingDurationSelect)
- Galerija za iskanje časov srečanja (+ podrejeni kontrolniki)
- Galerija za brskanje po sobah (+ podrejeni kontrolniki)
- Škarnice za vrnitev nazaj (RoomsBackNav) (morda niso vidne, če najemnik nima seznamov sob)
- Ikona za pošiljanje
Predpogoj
Poznavanje postopkov dodajanja in konfiguriranja zaslonov ter drugih kontrolnikov, ko ustvarjate aplikacijo v storitvi Power Apps.
Zavihek »Povabi«

Lastnost: Color
Vrednost:If( _showDetails, LblRecipientCount.Color, RectQuickActionBar.Fill )_showDetails je spremenljivka, ki se uporablja za ugotavljanje, ali je izbran kontrolnik LblInviteTab ali LblScheduleTab. Če ima spremenljivka _showDetails vrednost true, je izbran kontrolnik LblScheduleTab; če ima vrednost false, je izbran kontrolnik LblInviteTab. Če ima torej _showDetails vrednost true (ta zavihek ni izbran), se barva zavihka ujema z vrednostjo za LblRecipientCount. V nasprotnem primeru se ujema z vrednostjo polnjenja za RectQuickActionBar.
Lastnost: OnSelect
Vrednost:Set( _showDetails, false )Nastavi spremenljivko _showDetails na false, kar pomeni, da je vsebina zavihka »Povabi« vidna, vsebina zavihka Urnik pa skrita.
Zavihek razporeda

Lastnost: Color
Vrednost:If( !_showDetails, LblRecipientCount.Color, RectQuickActionBar.Fill )_showDetails je spremenljivka, ki se uporablja za ugotavljanje, ali je izbran kontrolnik LblInviteTab ali LblScheduleTab. Če ima vrednost »true«, je izbran kontrolnik LblScheduleTab; če ima vrednost »false«, je izbran kontrolnik LblInviteTab. Če ima torej _showDetails vrednost »true« (ta zavihek je izbran), se barva zavihka ujema z vrednostjo polnila za RectQuickActionBar. V nasprotnem primeru se ujema z vrednostjo barve za LblRecipientCount.
Lastnost: OnSelect
Vrednost:Set( _showDetails, true )Nastavi spremenljivko _showDetails na true, kar pomeni, da je vsebina zavihka »Urnik« vidna, vsebina zavihka »Povabi« pa skrita.
Besedilno iskalno polje

Od tega kontrolnika je odvisnih več drugih kontrolnikov na zaslonu:
- Če uporabnik začne vnašati poljubno besedilo, kontrolnik PeopleBrowseGallery postane viden.
- Če uporabnik vnese veljaven e-poštni naslov, kontrolnik AddIcon postane viden.
- Ko uporabnik izbere osebo v kontrolniku PeopleBrowseGallery, se vsebina iskanja ponastavi.
Ikona za dodajanje
![]()
Ta kontrolnik omogoča uporabnikom, da dodajo osebe, ki ne obstajajo v njihovi organizaciji, na seznam udeležencev za srečanje, ki se ustvarja.
Lastnost: Visible
Vrednost: tri logična preverjanja, ki morajo biti ovrednotena kot true, da je kontrolnik viden:!IsBlank( TextSearchBox.Text ) && IsMatch( TextSearchBox.Text, Match.Email ) && Not( Trim( TextSearchBox.Text ) in MyPeople.UserPrincipalName )Po vrsticah ta blok kode pravi, da je kontrolnik AddIcon viden samo, če:
- TextSearchBox vsebuje besedilo.
- Besedilo v možnosti TextSearchBox je veljaven e-poštni naslov.
- Besedilo v TextSearchBox še ne obstaja v zbirki MyPeople.
Lastnost: OnSelect
Vrednost: izjava Collect za dodajanje uporabnika na seznam udeležencev, druga za osvežitev razpoložljivih časov srečanja in več preklopnih gumbov za spremenljivke:Collect( MyPeople, { DisplayName: TextSearchBox.Text, UserPrincipalName: TextSearchBox.Text, Mail: TextSearchBox.Text } ); Concurrent( Reset( TextSearchBox ), Set( _showMeetingTimes, false ), UpdateContext( { _loadMeetingTimes: true } ), Set( _selectedMeetingTime, Blank() ), Set( _selectedRoom, Blank() ), Set( _roomListSelected, false ), ClearCollect( MeetingTimes, AddColumns( 'Office365'.FindMeetingTimes( { RequiredAttendees: Concat(MyPeople, UserPrincipalName & ";") MeetingDuration: MeetingDurationSelect.Selected.Minutes, Start: Text( DateAdd( MeetingDateSelect.SelectedDate, 8, Hours ), UTC ), End: Text( DateAdd( MeetingDateSelect.SelectedDate, 17, Hours ), UTC ), MaxCandidates: 15, MinimumAttendeePercentage:1, IsOrganizerOptional: false, ActivityDomain: "Work" } ).MeetingTimeSuggestions, "StartTime", MeetingTimeSlot.Start.DateTime, "EndTime", MeetingTimeSlot.End.DateTime ) ) ); UpdateContext( { _loadingMeetingTimes: false } ); Set( _showMeetingTimes, true )Če izberete ta kontrolnik, je veljaven e-poštni naslov (viden samo, če je v kontrolnik TextSearchBox vnesen veljaven e-poštni naslov) dodan v zbirko MyPeople (ta zbirka je seznam udeležencev), razpoložljivi časi za srečanje pa se nato osvežijo z novim vnosom uporabnika.
Na nižji ravni ta blok kode naredi naslednje:
- Zbere e-poštni naslov v zbirko MyPeople, pri čemer zbere e-poštni naslov v polja DisplayName, UserPrincipalName in Mail.
- Ponastavi vsebino kontrolnika TextSearchBox.
- Nastavi spremenljivko _showMeetingTimes na false. Ta spremenljivka upravlja vidnost kontrolnika FindMeetingTimesGallery, ki prikazuje odprte ure za srečanje izbranih udeležencev.
- Nastavi spremenljivko konteksta _loadMeetingTimes na true. Ta spremenljivka nastavi stanje nalaganja, ki preklopi vidnost kontrolnikov za stanje nalaganja, kot je _LblTimesEmptyState, da uporabniku sporoči, da se njegovi podatki nalagajo.
- Nastavi _selectedMeetingTime na Blank(). _selectedMeetingTime je izbrani zapis iz kontrolnika FindMeetingTimesGallery. Tukaj je izbrisana, ker bi dodajanje drugega udeleženca lahko pomenilo, da prejšnja definicija kontrolnika _selectedMeetingTime ni na voljo za tega udeleženca.
- Nastavi _selectedRoom na Blank(). _selectedRoom je zapis izbrane sobe iz kontrolnika RoomBrowseGallery. Razpoložljivosti sob so določene iz vrednosti kontrolnika _selectedMeetingTime. Ker je ta vrednost prazna, vrednost za _selectedRoom ni več veljavna, zato jo je treba izbrisati.
- Nastavi _roomListSelected na false. Ta vrstica morda ne velja za vse. V storitvi Office lahko svoje sobe razvrstite po različnih »seznamih sob«. Če imate sezname sob, ta zaslon to upošteva, kar vam omogoča, da najprej izberete seznam sob, nato pa še sobo na tem seznamu. Vrednost kontrolnika _roomListSelected določa, ali bodo uporabniku (v najemniku samo s seznami sob) sobe prikazane na seznamu sob ali v naboru seznamov sob. Vrednost je nastavljena na false, da prisili uporabnik, da znova izberejo nov seznam sob.
- Uporablja operacijo Office365.FindMeetingTimes, da določi in zbere razpoložljive čase srečanj za udeležence. Ta operacija posreduje:
- UserPrincipalName vsakega izbranega uporabnika v parameter RequiredAttendees.
- MeetingDurationSelect.Selected.Minutes v parameter MeetingDuration.
- MeetingDateSelect.SelectedDate + 8 ur v parameter Start. Osem ur se doda, ker je polni datum/čas za kontrolnik koledarja privzeto nastavljen na 00:00 na izbrani datum. Vi pa verjetno želite pridobiti razpoložljivosti v običajnem delovnem času. Običajni začetek delovnega časa je ob 8:00.
- MeetingDateSelect.SelectedDate + 17 ur v parameter End. 17 ur se doda, ker je 00:00 + 17 = 17:00. Običajni konec delovnega časa je ob 17:00.
- 15 v parameter MaxCandidates. To pomeni, da operacija vrne samo prvih 15 razpoložljivih časov za izbrani datum. To je smiselno, ker je v 8-urnem delovniku samo šestnajst 30-minutnih delov, 30-minutni sestanek pa je najmanjša vrednost, ki jo uporabnik lahko nastavi na tem zaslonu.
- 1 v parameter MinimumAttendeePercentage. Čas srečanja je pridobljen, razen če ni na voljo noben udeleženec.
- false v parameter IsOrganizerOptional. Uporabnik aplikacije ni izbirni udeleženec tega srečanja.
- »Work« v parameter ActivityDomain. To pomeni, da so pridobljeni samo časi znotraj običajnega delovnega časa.
- Funkcija ClearCollect tudi doda dva stolpca: »StartTime« in »EndTime«. To poenostavi vrnjene podatke. Polje, ki vsebuje razpoložljivi začetni in končni čas, je polje MeetingTimeSlot. To polje je zapis, ki vsebuje zapisa začetka in konca, ki vsebujeta vrednosti DateTime in TimeZone svojih predlogov. Namesto da bi poskusili pridobiti to gnezdenje zapisov, z dodajanjem stolpcev »StartTime« in »EndTime« v zbirko MeetingTime prenesete vrednosti Start > DateTime in End > DateTime na površino zbirke.
- Ko se vse te funkcije dokončajo, je spremenljivka _loadingMeetingTimes na false, stanja nalaganja je odstranjeno in spremenljivka _showMeetingTimes je nastavljena na true ter prikazuje FindMeetingTimesGallery.
Galerija za brskanje po osebah

- Lastnost: Elementi
Vrednost:If( !IsBlank( Trim( TextSearchBox.Text ) ), 'Office365Users'.SearchUser( { searchTerm: Trim(TextSearchBox.Text), top: 15 } ) )
Elementi te galerije so zapolnjeni z rezultati iskanja iz postopka Office365.SearchUser. Operacija za iskalni izraz vzame besedilo v funkciji Trim(**TextSearchBox**) in vrne prvih 15 rezultatov na podlagi tega iskanja.
TextSearchBox je del funkcije Trim, ker uporabnikovo iskanje presledkov ni veljavno. Operacija Office365Users.SearchUser je del funkcije If(!IsBlank(Trim(TextSearchBox.Text)) ... ), ker je pridobivanje rezultatov iskanja, preden uporabnik začne iskanje, izguba učinkovitosti delovanja.
Naslov galerije za brskanje po osebah

Lastnost: Besedilo
Vrednost:ThisItem.DisplayNamePrikaže prikazno ime osebe iz njenega profila Office 365.
Lastnost: OnSelect
Vrednost: izjava Collect za dodajanje uporabnika na seznam udeležencev, druga za osvežitev razpoložljivih časov srečanja in več preklopnih gumbov za spremenljivke:Concurrent( Reset( TextSearchBox ), Set( _selectedUser, ThisItem ), If( Not( ThisItem.UserPrincipalName in MyPeople.UserPrincipalName ), Collect( MyPeople, ThisItem ); Concurrent( Set( _showMeetingTimes, false ), UpdateContext( { _loadMeetingTimes: true } ), Set( _selectedMeetingTime, Blank() ), Set( _selectedRoom, Blank() ), Set( _roomListSelected, false ), ClearCollect( MeetingTimes, AddColumns( 'Office365'.FindMeetingTimes( { RequiredAttendees: Concat( MyPeople, UserPrincipalName & ";" ), MeetingDuration: MeetingDurationSelect.Selected.Minutes, Start: Text( DateAdd( MeetingDateSelect.SelectedDate, 8, Hours ), UTC ), End: Text( DateAdd( MeetingDateSelect.SelectedDate, 17, Hours ), UTC ), MaxCandidates: 15, MinimumAttendeePercentage: 1, IsOrganizerOptional: false, ActivityDomain: "Work" } ).MeetingTimeSuggestions, "StartTime", MeetingTimeSlot.Start.DateTime, "EndTime", MeetingTimeSlot.End.DateTime ) ) ); UpdateContext( { _loadingMeetingTimes: false } ); Set( _showMeetingTimes, true ) ) )Če izberete ta kontrolnik na visoki ravni, dodate osebo v zbirko MyPeople (shramba za seznam udeležencev v aplikaciji) in osvežite razpoložljive čase srečanja na podlagi dodajanja novega uporabnika.
Izbira tega kontrolnika je zelo podobna izbiri kontrolnika AddIcon; edina razlika je v izjavi
Set(_selectedUser, ThisItem)in vrstnem redu izvajanja operacij. Zato ta razprava ne bo tako poglobljena. Za obširnejšo obrazložitev preberite razdelek Kontrolnik »AddIcon«.Če izberete ta kontrolnik, ponastavite TextSearchBox. Če izbrana možnost ni na voljo v zbirki MyPeople, kontrolnik naredi naslednje:
- Stanje _loadMeetingTimes nastavi na true in stanje _showMeetingTimes na false, izbriše spremenljivki _selectedMeetingTime in _selectedRoom ter osveži zbirko MeetingTimes z novo dodanimi vrednostmi v zbirki MyPeople.
- Stanje _loadMeetingTimes nastavi na false, _showMeetingTimes pa na true. Če je izbrana možnost že v zbirki MyPeople, ponastavi samo vsebino kontrolnika TextSearchBox.
Galerija za osebe v srečanju

Lastnost: Elementi
Vrednost:MyPeopleZbirka MyPeople je zbirka oseb, inicializiranih ali dodanih z izbiro kontrolnika PeopleBrowseGallery Title.
Lastnost: Height
Vrednost: logika, ki omogoča, da se galerija poveča do največje višine 350:Min( 76 * RoundUp( CountRows( MeetingPeopleGallery.AllItems ) / 2, 0 ), 350 )Višina te galerije se prilagodi številu predmetov v galeriji do največje višine 350. Formula uporabi vrednost 76 kot višino ene vrstice za MeetingPeopleGallery in jo nato pomnoži s številom vrstic. Lastnost WrapCount je nastavljena na 2, torej je število pravih vrstic
RoundUp(CountRows(MeetingPeopleGallery.AllItems) / 2, 0).Lastnost: ShowScrollbar
Vrednost:MeetingPeopleGallery.Height >= 350Ko je dosežena največja višina galerije (350), je drsni trak viden.
Naslov galerije za osebe v srečanju

Lastnost: OnSelect
Vrednost:
Set(_selectedUser, ThisItem)Nastavi spremenljivko _selectedUser na izbrani element v kontrolniku MeetingPeopleGallery.
Ikona za odstranjevanje v galeriji za osebe v srečanju

Lastnost: OnSelect
Vrednost: izjava Remove za odstranjevanje uporabnika s seznama udeležencev, izjava Collect za osvežitev razpoložljivih časov srečanja in več preklopnih gumbov za spremenljivke:Remove( MyPeople, LookUp( MyPeople, UserPrincipalName = ThisItem.UserPrincipalName ) ); Concurrent( Reset( TextSearchBox ), Set( _showMeetingTimes, false ), UpdateContext( { _loadMeetingTimes: true } ), Set( _selectedMeetingTime, Blank() ), Set( _selectedRoom, Blank() ), Set( _roomListSelected, false ), ClearCollect( MeetingTimes, AddColumns( 'Office365'.FindMeetingTimes( { RequiredAttendees: Concat( MyPeople, UserPrincipalName & ";" ), MeetingDuration: MeetingDurationSelect.Selected.Minutes, Start: Text( DateAdd( MeetingDateSelect.SelectedDate, 8, Hours ), UTC ), End: Text( DateAdd( MeetingDateSelect.SelectedDate, 17, Hours ), UTC ), MaxCandidates: 15, MinimumAttendeePercentage: 1, IsOrganizerOptional: false, ActivityDomain: "Work" } ).MeetingTimeSuggestions, "StartTime", MeetingTimeSlot.Start.DateTime, "EndTime", MeetingTimeSlot.End.DateTime ) ) ); UpdateContext( { _loadingMeetingTimes: false } ); Set( _showMeetingTimes, true )Če izberete ta kontrolnik na visoki ravni, odstranite osebo s seznama udeležencev in osvežite razpoložljive čase srečanja na podlagi odstranitve te osebe.
Po prvi vrstici prejšnje kode je izbira tega kontrolnika skoraj identična izbiri kontrolnika AddIcon. Zato ta razprava ne bo tako poglobljena. Za obširnejšo obrazložitev preberite razdelek o kontrolniku »AddIcon«.
V prvi vrstici kode je izbrani element odstranjen iz zbirke MyPeople. Koda nato naredi naslednje:
- Ponastavi TextSearchBox in nato odstrani izbiro iz zbirke MyPeople.
- Stanje _loadMeetingTimes nastavi na true in stanje _showMeetingTimes na false, izbriše spremenljivki _selectedMeetingTime in _selectedRoom ter osveži zbirko MeetingTimes z novo dodanimi vrednostmi v zbirki MyPeople.
- Stanje _loadMeetingTimes nastavi na false, _showMeetingTimes pa na true.
Izbirnik datuma srečanja

Lastnost: DisplayMode
Vrednost:If( IsEmpty(MyPeople), DisplayMode.Disabled, DisplayMode.Edit )Datuma za srečanje ni mogoče izbrati, dokler ni v zbirko MyPeople dodan vsaj en udeleženec.
Lastnost: OnChange
Vrednost:Select( MeetingDateSelect )Če spremenite izbrani datum, sprožite kodo v lastnosti OnSelect tega kontrolnika za izvajanje.
Lastnost: OnSelect
Vrednost: izjava Collect za osvežitev razpoložljivih časov srečanja in več preklopnih gumbov za spremenljivke:Concurrent( Reset( TextSearchBox ), Set( _showMeetingTimes, false ), UpdateContext( { _loadingMeetingTimes: true } ), Set( _selectedMeetingTime, Blank() ), Set( _selectedRoom, Blank() ), Set( _roomListSelected, false ), ClearCollect( MeetingTimes, AddColumns( 'Office365'.FindMeetingTimes( { RequiredAttendees: Concat( MyPeople, UserPrincipalName & ";" ), MeetingDuration: MeetingDurationSelect.Selected.Minutes, Start: Text( DateAdd( MeetingDateSelect.SelectedDate, 8, Hours ), UTC ), End: Text( DateAdd( MeetingDateSelect.SelectedDate, 17, Hours ), UTC ), MaxCandidates: 15, MinimumAttendeePercentage: 1, IsOrganizerOptional: false, ActivityDomain: "Work" } ).MeetingTimeSuggestions, "StartTime", MeetingTimeSlot.Start.DateTime, "EndTime", MeetingTimeSlot.End.DateTime ) ) ); UpdateContext( { _loadingMeetingTimes: false } ); Set( _showMeetingTimes, true )Če izberete ta kontrolnik na visoki ravni, osvežite razpoložljive čase srečanja. Če uporabnik spremeni datum, je treba posodobiti razpoložljive čase srečanja, da odražajo razpoložljivosti udeležencev za ta dan, zato je ta kontrolnik zelo uporaben.
Z izjemo začetne izjave Collect je to identično funkciji OnSelect v kontrolniku AddIcon. Zato ta razprava ne bo tako poglobljena. Za obširnejšo obrazložitev preberite razdelek Kontrolnik »AddIcon«.
Če izberete ta kontrolnik, ponastavite TextSearchBox. Nato naredi naslednje:
- Stanje _loadMeetingTimes nastavi na true in stanje _showMeetingTimes na false, izbriše spremenljivki _selectedMeetingTime in _selectedRoom ter osveži zbirko MeetingTimes z novo izbiro datuma.
- Stanje _loadMeetingTimes nastavi na false, _showMeetingTimes pa na true.
Spustni meni za trajanje srečanja

Lastnost: DisplayMode
Vrednost:If( IsEmpty(MyPeople), DisplayMode.Disabled, DisplayMode.Edit )Trajanja za srečanje ni mogoče izbrati, dokler ni v zbirko MyPeople dodan vsaj en udeleženec.
Lastnost: OnChange
Vrednost:Select(MeetingDateSelect1)Če spremenite izbrano trajanje, sprožite kodo v lastnosti OnSelect kontrolnika MeetingDateSelect za izvajanje.
Galerija za iskanje časov srečanja

Lastnost: Elementi
Vrednost:MeetingTimesZbirka možnih časov srečanja, pridobljena iz operacije Office365.FindMeetingTimes.
Lastnost: Visible
Vrednost:_showMeetingTimes && _showDetails && !IsEmpty( MyPeople )Galerija je vidna le, če je kontrolnik _showMeetingTimes nastavljen na true, če je uporabnik izbral kontrolnik LblScheduleTab in če je v srečanje dodan vsaj en udeleženec.
Naslov galerije za iskanje časov srečanja

Lastnost: Besedilo
Vrednost: pretvorba začetnega časa za prikaz v lokalnem času uporabnika:Text( DateAdd( DateTimeValue( ThisItem.StartTime ), - TimeZoneOffset(), Minutes ), DateTimeFormat.ShortTime )Pridobljena vrednost za StatTime je v obliki zapisa UTC. Za pretvorbo iz UTC v lokalni časse uporabi funkcija DateAdd. Funkcija »Text« uporabi datum/čas kot svoj prvi argument in ga oblikuje na podlagi svojega drugega argumenta. Posredujete ji lokalno pretvorbo časa v kontrolniku ThisItem.StartTime in jo prikažete kot DateTimeFormat.ShortTime.
Lastnost: OnSelect
Vrednost: več izjav Collect za zbiranje sob za srečanje in njihovih predlaganih razpoložljivosti, pa tudi več preklopnih gumbov za spremenljivke:Set( _selectedMeetingTime, ThisItem ); UpdateContext( { _loadingRooms: true } ); If( IsEmpty( RoomsLists ), ClearCollect( RoomsLists, 'Office365'.GetRoomLists().value) ); If( CountRows( RoomsLists ) <= 1, Set( _noRoomLists, true ); ClearCollect( AllRooms, 'Office365'.GetRooms().value ); Set( _allRoomsConcat, Concat( FirstN( AllRooms, 20 ), Address & ";" ) ); ClearCollect( RoomTimeSuggestions, 'Office365'.FindMeetingTimes( { RequiredAttendees: _allRoomsConcat, MeetingDuration: MeetingDurationSelect.Selected.Minutes, Start: _selectedMeetingTime.StartTime & "Z", End: _selectedMeetingTime.EndTime & "Z", MinimumAttendeePercentage: "1", IsOrganizerOptional: "false", ActivityDomain: "Unrestricted" } ).MeetingTimeSuggestions ); ClearCollect( AvailableRooms, AddColumns( AddColumns( Filter( First( RoomTimeSuggestions ).AttendeeAvailability, Availability="Free" ), "Address", Attendee.EmailAddress.Address ), "Name", LookUp( AllRooms, Address = Attendee.EmailAddress.Address ).Name ) ); ClearCollect( AvailableRoomsOptimal, DropColumns( DropColumns( AvailableRooms, "Availability" ), "Attendee" ) ), Set( _roomListSelected, false) ); UpdateContext( {_loadingRooms: false} )Ta blok kode na visoki ravni zbira razpoložljive sobe za uporabnike, ki nimajo seznamov sob, na podlagi izbranega datuma/časa za srečanje. V nasprotnem primeru enostavno pridobi sezname sob.
Na nižji ravni ta blok kode naredi naslednje:
- Nastavi _selectedMeetingTime na izbrani element. Uporablja se za iskanje sob, ki so na voljo v tem času.
- Nastavi spremenljivko stanja nalaganja _loadingRooms na true in vklopi stanje nalaganja.
- Če je zbirka RoomsLists prazna, pridobi sezname sob v najemniku uporabnika in jih shrani v zbirko RoomsLists.
- Če uporabnik nima seznamov sob ali en seznam sob:
- Spremenljivka noRoomLists je nastavljena na true in ta spremenljivka se uporablja za določanje elementov, prikazanih v kontrolniku RoomBrowseGallery.
- Operacija
Office365.GetRooms()se uporablja za pridobivanje prvih 100 sob v najemniku. Te so shranjene v zbirki AllRooms. - Spremenljivka _allRoomsConcat je nastavljena na niz prvih 20 e-poštnih naslovov sob v zbirki AllRooms, ločenih s podpičji. Operacija Office365.FindMeetingTimes je namreč omejena na iskanje razpoložljivih časov 20 osebnih predmetov v eni operaciji.
- Zbirka RoomTimeSuggestions uporablja Office365.FindMeetingTimes za pridobivanje razpoložljivosti prvih 20 sob v zbirki AllRooms na podlagi časovnih vrednosti iz spremenljivke _selectedMeetingTime. Upoštevajte, da se
& "Z"uporablja za pravilno oblikovanje vrednosti DateTime. - Ustvari se zbirka AvailableRooms. To je zgolj zbirka RoomTimeSuggestions razpoložljivosti udeležencev z dvema dodatnima stolpcema: »Naslov« in »Ime«. »Naslov« je e-poštni naslov sobe, »Ime« pa ime sobe.
- Nato se ustvari zbirka AvailableRoomsOptimal. To je zgolj zbirka AvailableRooms z odstranjenima stolpcema »Razpoložljivost« in »Udeleženec«. To ustreza shemama AvailableRoomsOptimal in AllRooms. Omogoča vam, da uporabite obe zbirki v lastnosti Items kontrolnika RoomBrowseGallery.
- Vrednost za _roomListSelected je nastavljena na false.
- Stanje nalaganja, _loadingRooms, je nastavljeno na false, ko je vse dokončano.
Galerija za brskanje po sobah

Lastnost: Elementi
Vrednost: logično nastavljena na dve notranji zbirki z identično shemo, odvisno od tega, ali je uporabnik izbral seznam sob ali ima sezname sob v svojem najemniku:Search( If( _roomListSelected || _noRoomLists, AvailableRoomsOptimal, RoomsLists ), Trim(TextMeetingLocation1.Text), "Name", "Address" )Ta galerija prikazuje zbirko AvailableRoomsOptimal, če ima _roomListSelected ali _noRoomLists vrednost true. V nasprotnem primeru prikaže zbirko RoomsLists. To je mogoče, ker je shema teh zbirk identična.
Lastnost: Visible
Vrednost:_showDetails && !IsBlank( _selectedMeetingTime ) && !_loadingRoomsGalerija je vidna le, če imajo tri predhodne izjave vrednost true.
Naslov za »RoomBrowseGallery«

Lastnost: OnSelect
Vrednost: nabor logično povezanih izjav Collect in Set, ki se lahko sprožijo ali ne, odvisno od tega, ali so uporabniku prikazani seznami sob ali sobe:UpdateContext( { _loadingRooms: true } ); If( !_roomListSelected && !noRoomLists, Set( _roomListSelected, true ); Set( _selectedRoomList, ThisItem.Name ); ClearCollect( AllRooms, 'Office365'.GetRoomsInRoomList( ThisItem.Address ).value ); Set( _allRoomsConcat, Concat( FirstN( AllRooms, 20 ), Address & ";" ) ); ClearCollect( RoomTimeSuggestions, 'Office365'.FindMeetingTimes( { RequiredAttendees: _allRoomsConcat, MeetingDuration: MeetingDurationSelect.Selected.Minutes, Start: _selectedMeetingTime.StartTime & "Z", End: _selectedMeetingTime.EndTime & "Z", MinimumAttendeePercentage: "1", IsOrganizerOptional: "false", ActivityDomain: "Unrestricted" } ).MeetingTimeSuggestions ); ClearCollect( AvailableRooms, AddColumns( AddColumns( Filter( First( RoomTimeSuggestions ).AttendeeAvailability, Availability = "Free" ), "Address", Attendee.EmailAddress.Address ), "Name", LookUp( AllRooms, Address = Attendee.EmailAddress.Address ).Name ) ); ClearCollect( AvailableRoomsOptimal, DropColumns( DropColumns( AvailableRooms, "Availability" ) ), "Attendee" ) ), Set( _selectedRoom, ThisItem ) ); UpdateContext( {_loadingRooms: false} )Dejanja, ki se izvedejo, ko je izbran ta kontrolnik, so odvisne od tega, ali je uporabniku trenutno prikazan nabor seznamov sob ali nabor sob. Pri prvem z izbiro tega kontrolnika pridobite sobe, ki so na voljo ob izbranem času na izbranem seznamu sob. Pri slednjem izbira tega kontrolnika nastavi spremenljivko _selectedRoom na izbrani element. Prejšnja izjava je zelo podobna izjavi Select za FindMeetingTimesGallery Title.
Na nižji ravni prejšnji blok kode naredi naslednje:
- Nastavi _loadingRooms na true in vklopi stanje nalaganja za sobe.
- Preveri, ali je bil seznam sob izbran in ali so v najemniku seznami sob. V tem primeru:
- Nastavi _roomListSelected na true in _selectedRoomList na izbrani element.
- Spremenljivka _allRoomsConcat je nastavljena na niz prvih 20 e-poštnih naslovov sob v zbirki AllRooms, ločenih s podpičji. Operacija Office365.FindMeetingTimes je namreč omejena na iskanje razpoložljivih časov 20 osebnih predmetov v eni operaciji.
- Zbirka RoomTimeSuggestions uporablja operacijo Office365.FindMeetingTimes za pridobivanje razpoložljivosti prvih 20 sob v zbirki AllRooms na podlagi časovnih vrednosti iz spremenljivke _selectedMeetingTime. Upoštevajte, da se
& "Z"uporablja za pravilno oblikovanje vrednosti DateTime. - Ustvari se zbirka AvailableRooms. To je zgolj zbirka RoomTimeSuggestions razpoložljivosti udeležencev z dvema dodatnima stolpcema: »Naslov« in »Ime«. »Naslov« je e-poštni naslov sobe, »Ime« pa ime sobe.
- Nato se ustvari zbirka AvailableRoomsOptimal. To je zgolj zbirka AvailableRooms z odstranjenima stolpcema »Razpoložljivost« in »Udeleženec«. To ustreza shemama AvailableRoomsOptimal in AllRooms. Omogoča vam, da uporabite obe zbirki v lastnosti Items kontrolnika RoomBrowseGallery.
- Vrednost za _roomListSelected je nastavljena na false.
- Stanje nalaganja, _loadingRooms, je nastavljeno na false, ko je vse dokončano.
Škarnice za vrnitev nazaj

Lastnost: Vidno
Vrednost:_roomListSelected && _showDetailsTa kontrolnik je viden samo, če sta bila izbrana seznam sob in zavihek Urnik.
Lastnost: OnSelect
Vrednost:Set( _roomListSelected, false )Ko je kontrolnik _roomListSelected nastavljen na false, spremeni kontrolnik RoomBrowseGallery za prikaz elementov iz zbirke RoomsLists.
Ikona za pošiljanje
![]()
Lastnost: DisplayMode
Vrednost: logika, ki prisili uporabnika, da vnese določene podrobnosti o srečanju, preden je ikono mogoče urejati.If( Len( Trim( TextMeetingSubject1.Text ) ) > 0 && !IsEmpty( MyPeople ) && !IsBlank( _selectedMeetingTime ), DisplayMode.Edit, DisplayMode.Disabled )Ikono je mogoče izbrati le, če je izpolnjena zadeva srečanja, če je za srečanje na voljo vsaj en udeleženec in če je izbran čas srečanja. V nasprotnem primeru je onemogočena.
Lastnost: OnSelect
Vrednost: koda za pošiljanje povabila na srečanje izbranim udeležencem in brisanje vseh vnosnih polj:
Set( _myCalendarName, LookUp( 'Office365'.CalendarGetTables().value, DisplayName = "Calendar" ).Name ); Set( _myScheduledMeeting, 'Office365'.V2CalendarPostItem( _myCalendarName, TextMeetingSubject1.Text, Text(DateAdd(DateTimeValue( _selectedMeetingTime.StartTime), -TimeZoneOffset(), Minutes) ), Text(DateAdd(DateTimeValue( _selectedMeetingTime.EndTime), -TimeZoneOffset(), Minutes) ), { RequiredAttendees: Concat( MyPeople, UserPrincipalName & ";" ) & _selectedRoom.Address, Body: TextMeetingMessage1.Text, Location: _selectedRoom.Name, Importance: "Normal", ShowAs: "Busy", ResponseRequested: true } ) ); Concurrent( Reset( TextMeetingLocation1 ), Reset( TextMeetingSubject1 ), Reset( TextMeetingMessage1 ), Clear( MyPeople ), Set( _selectedMeetingTime, Blank() ), Set( _selectedRoomList, Blank() ), Set( _selectedRoom, Blank() ), Set( _roomListSelected, false ) )Na nižji ravni ta blok kode naredi naslednje:
- Nastavi _myCalendarName na koledar v operaciji Office365.CalendarGetTables(), pri čemer je kontrolnik DisplayName poimenovan »Koledar«.
- Razporedi srečanje z vsemi vhodnimi vrednostmi iz različnih izborov, ki jih je uporabnik naredil po celotnem zaslonu z uporabo operacije Office365.V2CalendarPostItem.
- Ponastavi vsa vnosna polja in spremenljivke, uporabljene pri ustvarjanju srečanja.
Opomba
Želeni koledar morda nima prikaznega imena »Koledar«, odvisno od vaše regije. V Outlooku preverite, kakšen je naslov vašega koledarja, in ga v aplikaciji ustrezno spremenite.
Naslednji koraki
- Več o tem zaslonu
- Preberite več o povezovalniku Office 365 Outlook v storitvi Power Apps
- Preberite več o povezovalniku za uporabnike storitve Office 365 v storitvi Power Apps
Opomba
Ali nam lahko poveste, kateri je vaš prednostni jezik za dokumentacijo? Izpolnite kratko anketo. (upoštevajte, da je v angleščini)
Z anketo boste porabili približno sedem minut. Ne zbiramo nobenih osebnih podatkov (izjava o zasebnosti).
Povratne informacije
Pošlji in prikaži povratne informacije za