Recordverwijzingen en polymorfe zoekopdrachten in canvas-apps
Bij het schrijven van een onderzoekswerkstuk op school voegde u waarschijnlijk aan het eind een lijst met uw verwijzingen toe. U voegde geen kopie toe van het daadwerkelijke achtergrondmateriaal dat u hebt gebruikt, maar eerder een webkoppeling, boektitel en auteur of andere informatie zodat iemand de oorspronkelijke bron kon achterhalen. U gebruikte verschillende typen bronnen in een enkele lijst, krantenartikelen naast audio-opnamen, elk met hun eigen specifieke details voor een correcte bronvermelding. Zo bevatten bijvoorbeeld Wikipedia-artikelen vaak een lange lijst met verwijzingen.
In canvas-apps wordt vaak gewerkt met kopieën van records die zijn gedownload vanuit gegevensbronnen. U gebruikt de functies LookUp en Filter, en van het besturingselement Galerij gebruikt u de eigenschap Selected om een gewenst specifiek record te identificeren. Alle records van Filter of Geselecteerd zijn van hetzelfde tabeltype, dus u kunt velden met een eenvoudige .Veld-notatie gebruiken. Deze kopieën bevatten vaak verwijzingsinformatie zodat u de functie Patch kunt gebruiken om de oorspronkelijke bron bij te werken.
Canvas-apps ondersteunen ook recordverwijzingen. Net als een verwijzing in een onderzoekswerkstuk verwijst een recordverwijzing naar een record zonder een volledige kopie ervan op te nemen. Zo'n verwijzing kan verwijzen naar een record in elke tabel. Net als verwijzingen naar onderzoeksverslagen kunt u records uit verschillende tabellen in één kolom combineren.
Veel bewerkingen op recordverwijzingen zijn identiek aan het werken met records. U kunt recordverwijzingen met elkaar en met volledige records vergelijken. U kunt de waarde van een recordverwijzing instellen met de functie Patch, net zoals u een zoekopdracht zou uitvoeren met een volledige record.
Er is één belangrijk gebruiksverschil: u kunt de velden van een recordverwijzing niet rechtstreeks openen zonder eerst vast te stellen naar welke tabel deze verwijzen. Dit komt omdat canvas-apps vereisen dat alle typen bekend zijn wanneer u formules schrijft. Omdat u het type recordverwijzing pas weet wanneer de app actief is, kunt u de eenvoudige .Veld-notatie niet direct gebruiken. U moet eerst dynamisch het tabeltype bepalen met de functie IsType en vervolgens de .Veld-notatie gebruiken voor het resultaat van de functie AsType.
Tabeltype: verwijst naar het schema van elke record in een tabel. Elke tabel heeft een unieke set velden met verschillende namen en gegevenstypen. Elke record van de tabel neemt die structuur over. Twee records hebben hetzelfde tabeltype als ze uit dezelfde tabel komen.
Notitie
U kunt uit veel verschillende connectors kiezen om verbinding te maken met verschillende typen gegevensbronnen voor canvas-apps. Wanneer u echter met canvas-apps binnen Power Apps Studio werkt, wordt naar kolommen in Microsoft Dataverse verwezen als velden vergelijkbaar met alle andere gegevensbronnen. Kolom wordt alleen gebruikt bij verwijzing naar een kolom binnen Dataverse. Meer informatie: Gewijzigde terminologie in Dataverse
Polymorfe zoekopdrachten
Microsoft Dataverse ondersteunt relaties tussen records. Elke record in de tabel Accounts heeft een opzoekkolom met de naam Primaire contactpersoon. Dit is een zoekopdracht naar de tabel Contactpersonen. De zoekopdracht kan alleen verwijzen naar een record in Contactpersonen en kan niet verwijzen naar een record in bijvoorbeeld de tabel Teams. Dat laatste detail is belangrijk omdat u altijd weet welke kolommen beschikbaar zijn voor de zoekopdracht.
Dataverse ondersteunt ook polymorfe zoekopdrachten die kunnen verwijzen naar een record uit elke tabel in een set. Bijvoorbeeld de kolom Eigenaar kan verwijzen naar een record in de tabel Gebruikers of de tabel Teams. Dezelfde opzoekkolom in verschillende records kan verwijzen naar records in verschillende tabellen. In dit geval weet u niet altijd welke kolommen beschikbaar zullen zijn.
Canvas-recordverwijzingen zijn ontworpen voor het werken met polymorfe zoekopdrachten in Dataverse. U kunt ook buiten deze context recordverwijzingen gebruiken, hetgeen het verschil tussen de twee concepten aangeeft.
In de volgende sectie gaat u deze concepten verkennen door te werken met de zoekopdracht Eigenaar.
De kolommen van een recordeigenaar weergeven
Elke tabel in Dataverse omvat een Eigenaar-kolom. Deze kolom kan niet worden verwijderd, u kunt geen andere kolom toevoegen en er is altijd een waarde vereist.
Ga als volgt te werk om die kolom in de tabel Account weer te geven:
Meld u aan bij Power Apps.
Selecteer op de balk van het linkerdeelvenster Gegevens > Tabellen.
Selecteer Account in de lijst met tabellen.
Open in de rechterbovenhoek de filterlijst (die standaard is ingesteld op Standaard) en selecteer vervolgens Alles.
Schuif naar beneden tot de kolom Eigenaar verschijnt.
Deze opzoekkolom kan verwijzen naar een record in de tabel Teams of de tabel Gebruikers. Niet elke record in deze tabellen heeft toestemming om een Eigenaar te zijn. Controleer de ondersteunde rollen als u een probleem tegenkomt.
Deze afbeelding toont een eenvoudige galerie van Accounts, waarin de tabel Accounts als gegevensbron is toegevoegd aan de app:
Belangrijk
In dit onderwerp bevatten de afbeeldingen enkele namen en andere waarden die geen deel uitmaken van de voorbeeldgegevens die worden meegeleverd met Dataverse. De stappen laten op nauwkeurige wijze zien hoe u bedieningselementen voor een bepaald resultaat configureert, maar uw ervaring zal variëren op basis van de gegevens voor uw organisatie.
Als ude eigenaar van elk account in de galerie wilt laten zien, komt u misschien in de verleiding om de formule ThisItem.Owner.Name te gebruiken. Het naamveld in de tabel Team is Teamnaam en het naamveld in de tabel Gebruiker is Volledige naam. De app kan pas weten met welk type zoekopdracht u werkt als u de app uitvoert, en dit kan variëren tussen records in de tabel Accounts.
U hebt een formule nodig die zich aan deze variantie kan aanpassen. U moet ook de gegevensbronnen toevoegen voor de tabeltypen die Eigenaar kunnen zijn (in dit geval Gebruikers en Teams). Voeg deze drie gegevensbronnen toe aan uw app:
Als deze gegevensbronnen aanwezig zijn, gebruikt u deze formule om de naam van een gebruiker of een team weer te geven:
If( IsType( ThisItem.Owner, Teams ),
"Team: " & AsType( ThisItem.Owner, Teams ).'Team Name',
"User: " & AsType( ThisItem.Owner, Users ).'Full Name' )
In deze formule wordt met de functie IsType het veld Eigenaar getest ten opzichte van de tabel Teams. Als het veld van dat tabeltype is, wordt het met de functie AsType geconverteerd naar Team-record. Op dit punt hebt u toegang tot alle velden van de tabel Teams, zoals Teamnaam, met de .Veld-notatie. Als IsType bepaalt dat de Eigenaar geen record in de tabel Teams is, moet dat veld een record zijn in de tabel Gebruikers omdat het veld Eigenaar vereist is (kan niet leeg zijn).
Als u velden van een recordverwijzing wilt gebruiken, moet u eerst de functie AsType gebruiken om de velden naar een specifiek tabeltype te converteren. U kunt velden niet rechtstreeks openen vanuit het veld Eigenaar omdat het systeem niet weet welk tabeltype u wilt gebruiken.
Met de functie AsType wordt een fout geretourneerd als het veld Eigenaar niet overeenkomt met het tabeltype dat wordt aangevraagd. U kunt dus de functie IfError gebruiken om deze formule te vereenvoudigen. Schakel eerst de experimentele functie Foutbeheer op formuleniveau in:
Vervang vervolgens de vorige formule door deze:
IfError(
"Team: " & AsType( ThisItem.Owner, Teams ).'Team Name',
"User: " & AsType( ThisItem.Owner, Users ).'Full Name' )
Filter op basis van een eigenaar
Gefeliciteerd, u hebt het moeilijkste aspect van het werken met een recordverwijzing voltooid. Andere gebruiksscenario's zijn eenvoudiger omdat ze geen toegang hebben tot velden van de record. Neem als voorbeeld filtering, dat u in deze sectie gaat onderzoeken.
Voeg een besturingselement Keuzelijst met invoervak toe boven de galerie en stel deze eigenschappen van het nieuwe besturingselement in:
- Items:
Users
- SelectMultiple:
false
Als u de galerie wilt filteren op een specifieke gebruiker die wordt geselecteerd via deze keuzelijst met invoervak, stelt u eigenschap Items van de galerie in op deze formule:
Filter( Accounts, Owner = ComboBox1.Selected )
Belangrijk
De instructies in dit onderwerp zijn nauwkeurig als u de stappen precies volgt. Elke formule die naar een besturingselement verwijst met de naam mislukt echter als het besturingselement een andere naam heeft. Als u een besturingselement van hetzelfde type verwijdert en toevoegt, verandert het nummer aan het einde van de naam van het besturingselement. Controleer voor elke formule die een fout vertoont of deze de juiste namen van alle besturingselementen bevat.
U hoeft IsType of AsType niet te gebruiken omdat u recordverwijzingen vergelijkt met andere recordverwijzingen of met volledige records. De app kent het tabeltype van ComboBox1.Selected omdat het is afgeleid van de tabel Gebruikers. Accounts waarvan de eigenaar een team is, komen niet overeen met het filtercriterium.
U kunt het wat ingewikkelder maken door filtering door een gebruiker of een team te ondersteunen.
Maak ruimte aan de bovenkant van het scherm door het formaat van de galerie te wijzigen en de keuzelijst met invoervak te verplaatsen, een besturingselement Keuzerondjes in te voegen boven de galerie en deze eigenschappen in te stellen voor het nieuwe besturingselement:
- Items:
[ "All", "Users", "Teams" ]
- Layout:
Layout.Horizontal
- Items:
Stel voor het besturingselement Keuzelijst met invoervak deze eigenschap in (als de keuzelijst met invoervak verdwijnt, selecteert u Users in het besturingselement Keuzerondjes):
- Visible:
Radio1.Selected.Value = "Users"
- Visible:
Kopieer en plak het besturingselement Keuzelijst met invoervak, plaats de kopie direct over het origineel en stel vervolgens deze eigenschappen in voor de kopie:
- Items:
Teams
- Visible:
Radio1.Selected.Value = "Teams"
In de app wordt slechts één keuzelijst tegelijk weergegeven, afhankelijk van de status van het besturingselement Keuzerondjes. Omdat ze direct over elkaar heen zijn geplaatst, lijken ze hetzelfde besturingselement te zijn dat van inhoud verandert.
- Items:
Stel tot slot de eigenschap Items van het besturingselement Galerie in op deze formule:
Filter( Accounts, Radio1.Selected.Value = "All" Or (Radio1.Selected.Value = "Users" And Owner = ComboBox1.Selected) Or (Radio1.Selected.Value = "Teams" And Owner = ComboBox1_1.Selected) )
Met deze wijzigingen kunt u alle records weergeven of filteren op basis van een gebruiker of een team:
De formule is volledig delegeerbaar. Het gedeelte dat de waarden van de keuzerondjes vergelijkt, is een constante in alle records en wordt geëvalueerd voordat de rest van het filter naar Dataverse wordt verzonden.
Als u wilt filteren op het type eigenaar, kunt u de functie IsType gebruiken, maar het is nog niet delegeerbaar.
De eigenaar bijwerken met Patch
U kunt het veld Eigenaar op dezelfde manier bijwerken als elke andere zoekopdracht. U kunt als volgt de eigenaar van het momenteel geselecteerde account instellen op het eerste team:
Patch( Accounts, Gallery1.Selected, { Owner: First( Teams ) } )
Deze aanpak verschilt niet van een normale zoekopdracht omdat de app het type van First( Teams ) weet. Als u in plaats daarvan de eerste gebruiker wilt, vervangt u dat gedeelte door First( Users ). De functie Patch weet dat het veld Eigenaar kan worden ingesteld op een van deze twee tabeltypen.
U kunt deze mogelijkheid als volgt toevoegen aan de app:
Selecteer in het deelvenster Structuurweergave tegelijkertijd het besturingselement Keuzerondjes en de twee besturingselementen Keuzelijst met invoervak.
Selecteer in het beletseltekenmenu de optie Deze items kopiëren.
Selecteer in hetzelfde menu de optie Plakken.
Verplaats de gekopieerde besturingselementen naar de rechterkant van de galerie.
Selecteer het gekopieerde besturingselement Keuzerondjes en wijzig vervolgens de eigenschappen:
- Items:
[ "Users", "Teams" ]
- Standaardwaarde:
If( IsType( Gallery1.Selected.Owner, Users ), "Users", "Teams" )
- Items:
Selecteer in het besturingselement Keuzerondjes de optie Users zodat het besturingselement Keuzelijst met invoervak dat gebruikers bevat zichtbaar is.
Selecteer het zichtbare besturingselement Keuzelijst met invoervak en stel vervolgens de eigenschap DefaultSelectedItems in op deze formule:
If( IsType( Gallery1.Selected.Owner, Users ), AsType( Gallery1.Selected.Owner, Users ), Blank() )
Selecteer in het besturingselement Keuzerondjes de optie Teams zodat het besturingselement Keuzelijst met invoervak dat teams bevat zichtbaar is.
Selecteer het besturingselement Keuzerondjes om de selectie weg te halen van het nu onzichtbare besturingselement Keuzelijst met invoervak voor gebruikers.
Selecteer het zichtbare besturingselement Keuzelijst met invoervak voor teams en stel vervolgens de eigenschap DefaultSelectedItems hiervan in op deze formule:
If( IsType( Gallery1.Selected.Owner, Teams ), AsType( Gallery1.Selected.Owner, Teams ), Blank() )
Voeg een besturingselement Knop in, plaats dit onder het besturingselement Keuzelijst met invoervak en stel vervolgens de eigenschap Text van de knop in op
"Patch Owner"
.Stel de eigenschap OnSelect van de knop in op deze formule:
Patch( Accounts, Gallery1.Selected, { Owner: If( Radio1_1.Selected.Value = "Users", ComboBox1_2.Selected, ComboBox1_3.Selected ) } )
De gekopieerde besturingselementen Keuzerondjes en Keuzelijst met invoervak geven de eigenaar van het momenteel geselecteerde account aan in de galerie. Met dezelfde besturingselementen kunt u de eigenaar van het account instellen op elk team of elke gebruiker door de knop te selecteren:
De eigenaar weeergeven door middel van een formulier
U kunt een veld Eigenaar binnen een formulier weergeven door een aangepaste kaart toe te voegen. Op het moment van schrijven kunt u de waarde van het veld niet wijzigen met een besturingselement Formulier.
Voeg een besturingselement Formulier bewerken in en verplaats het naar de rechterbenedenhoek.
Open op het tabblad Eigenschappen aan de rechterkant van het scherm de lijst Gegevensbron en selecteer vervolgens Accounts.
Stel de eigenschap Item van het formulier in op
Gallery1.Selected
.Selecteer op het tabblad Eigenschappen aan de rechterkant van het scherm de optie Velden bewerken.
Selecteer in het deelvenster Velden het beletselteken en selecteer vervolgens Een aangepaste kaart toevoegen.
De nieuwe kaart verschijnt onder aan het besturingselement Formulier.
Wijzig zo nodig het formaat van de kaart zodat alle tekst wordt weergegeven.
Voeg een besturingselement Label in de aangepaste kaart in en stel vervolgens de eigenschap Text van de label in op de formule die u in de galerie hebt gebruikt:
If( IsType( ThisItem.Owner, Teams ), "Team: " & AsType( ThisItem.Owner, Teams ).'Team Name', "User: " & AsType( ThisItem.Owner, Users ).'Full Name' )
Voor elke selectie in de galerie worden er meer velden van het account, inclusief de eigenaar van de record, weergegeven in het formulier. Als u de eigenaar wijzigt met behulp van de knop Patch, toont het besturingselement Formulier die wijziging eveneens.
De kolommen van een klant weergeven
In Dataverse is de opzoekkolom Klant een andere polymorfe zoekopdracht die erg lijkt op Eigenaar.
Eigenaar is beperkt tot één per tabel, maar tabellen kunnen nul, één of meer opzoekkolommen voor Klant bevatten. De systeemtabel Contactpersonen de kolom Bedrijfsnaam en dat is een opzoekkolom voor Klant.
U kunt meer Klant-opzoekkolommen toevoegen aan een tabel door het gegevenstype Klant voor een nieuwe kolom te selecteren.
Een Klant-opzoekveld kan verwijzen naar een record van de tabel Accounts of de tabel Contactpersonen. U gebruikt de functies IsType en AsType functies met deze tabellen. Het is dus nu een goed moment om deze toe te voegen als gegevensbronnen (u kunt Teams en Gebruikers laten staan).
De behandeling van de velden Klant en Eigenaar is zo vergelijkbaar dat u de app letterlijk kunt kopiëren (Bestand > Opslaan als en vervolgens een andere naam opgeven) en deze eenvoudige vervangingen kunt uitvoeren:
Location | Voorbeeld van Eigenaar | Voorbeeld van Klant |
---|---|---|
Overal | Eigenaar | 'Klantnaam' |
Overal | Gebruikers | Accounts |
Overal | Teams | Contactpersonen |
Eigenschap Items van galerie | Accounts | Contactpersonen |
Eigenschap Items van formulier | Accounts | Contactpersonen |
Het eerste argument van Patch in de eigenschap OnSelect van de knop |
Accounts | Contactpersonen |
Eigenschap Items van keuzerondjes Filter | [ "Alle", "Gebruikers", "Teams" ] | [ "Alle", "Accounts", "Contactpersonen" ] |
Eigenschap Items van keuzerondjes Patch | [ "Gebruikers", "Teams" ] | [ "Accounts", "Contactpersonen" ] |
Eigenschap Visible van keuzelijst met invoervak | "Gebruikers" en "Teams" | "Accounts" en "Contactpersonen" |
Zo zou de nieuwe galerie bijvoorbeeld de volgende eigenschap Items moeten hebben:
Filter( Contacts,
Radio1.Selected.Value = "All"
Or (Radio1.Selected.Value = "Accounts" And 'Company Name' = ComboBox1.Selected)
Or (Radio1.Selected.Value = "Contacts" And 'Company Name' = ComboBox1_1.Selected)
)
Twee belangrijke verschillen tussen Klant en Eigenaar vereisen een update van de formules in de galerie en het formulier:
Een-op-veel-relaties tussen Accounts en Contactpersonen hebben voorrang wanneer u op naam naar deze tabeltypen verwijst. In plaats van Accounts gebruikt u [@Accounts]; in plaats van Contactpersonen gebruikt u [@Contactpersonen]. Door gebruik te maken van de algemene ondubbelzinnigheidsoperator zorgt u ervoor dat u verwijst naar het tabeltype in IsType en AsType. Dit probleem bestaat alleen in de recordcontext van de besturingselementen Galerie en Formulier.
Het veld Eigenaar moet een waarde hebben, maar velden Klant kunnen leeg zijn. Als u het juiste resultaat zonder een typenaam wilt weergeven, test u voor dit geval met de functie IsBlank en laat u in plaats daarvan een lege tekenreeks zien.
Beide wijzigingen worden aangebracht in dezelfde formule, die zowel op de aangepaste kaart in het formulier als in de eigenschap Text van het besturingselement Label van de galerie verschijnt:
If( IsBlank( ThisItem.'Company Name' ), "",
IsType( ThisItem.'Company Name', Accounts ),
"Account: " & AsType( ThisItem.'Company Name', Accounts ).'Account Name',
"Contact: " & AsType( ThisItem.'Company Name', Contacts ).'Full Name'
)
Met deze wijzigingen kunt u het veld Bedrijfsnaam in de tabel Contactpersonen weergeven en wijzigen.
Inzicht krijgen in de Betreffende-opzoekkolommen
De opzoekkolom Betreffende verschilt een beetje van de opzoekkolommen waarmee u al hebt gewerkt in dit onderwerp. U begint met het toepassen van de patronen die eerder in dit onderwerp werden beschreven, en daarna leert u andere trucs.
U kunt eenvoudig beginnen met de tabel Faxen. Deze tabel heeft een polymorfe Betreffende-opzoekkolom die kan verwijzen naar de tabellen Accounts, Contactpersonen en andere tabellen. U kunt de app voor Klanten nemen en deze wijzigen voor Faxen.
Location | Voorbeeld van Klant | Voorbeeld van Faxen |
---|---|---|
Overal | 'Klantnaam' | Betreft |
Eigenschap Items van galerie | Contactpersonen | Faxen |
Eigenschap Items van formulier | Contactpersonen | Faxen |
Het eerste argument van Patch in de eigenschap OnSelect van de knop |
Contactpersonen | Faxen |
Nogmaals, je moet een gegevensbron toevoegen: deze keer voor Faxen. Selecteer op het tabblad Weergeven de optie Gegevensbronnen:
Een belangrijk verschil voor Betreft is dat het niet beperkt is tot Accounts en Contactpersonen. In feite is de lijst met tabellen uitbreidbaar met aangepaste tabellen. Het grootste deel van de app kan ongewijzigd blijven, maar u moet de formule voor het label bijwerken in de galerie en het formulier:
If( IsBlank( ThisItem.Regarding ), "",
IsType( ThisItem.Regarding, Accounts ),
"Account: " & AsType( ThisItem.Regarding, Accounts ).'Account Name',
IsType( ThisItem.Regarding, Contacts ),
"Contacts: " & AsType( ThisItem.Regarding, Contacts ).'Full Name',
""
)
Nadat u deze wijzigingen hebt doorgevoerd, werkt u met de zoekopdracht Betreft op dezelfde wijze als met de zoekopdrachten Eigenaar en Klant.
Relaties van het type Betreft
Het verschil tussen Betreft en Eigenaar en Klant is dat bij de eerste sprake is van een veel-op-één-relatie. Per definitie kunt u met een omgekeerde, een-op-veel-relatie First( Accounts ).Faxes schrijven .
Laten we de tabeldefinities bekijken. In Dataverse worden tabellen zoals Faxen, Taken, E-mails, Notities, Telefoongesprekken, Brieven en Chats worden aangeduid als activiteiten. U ook uw eigen aangepaste activiteitentabellen maken. Wanneer u een activiteitentabel bekijkt of maakt, verschijnen de instellingen onder Meer instellingen.
Andere tabellen kunnen worden gerelateerd aan een activiteitentabel als ze zijn ingeschakeld als een activiteitentaak in de instellingen van de tabel. Accounts, Contactpersonen en vele andere standaardtabellen zijn zo aangeduid (nogmaals: onder Meer instellingen).
Alle activiteitentabellen en activiteitentaaktabellen hebben een impliciete relatie. Als u het filter wijzigt in Alle boven aan het scherm, selecteert u de tabel Faxen en selecteert u vervolgens het tabblad Relaties. Alle tabellen die een doel kunnen zijn van een Betreffende-zoekopdracht worden weergegeven.
Als u de relaties weergeeft voor de tabel Accounts, worden alle tabellen die een bron kunnen zijn van een Betreffende-opzoekveld weergegeven.
Wat houdt dit allemaal in?
- Wanneer u formules schrijft, moet u er rekening mee houden dat de lijst met activiteitentabellen niet vaststaat en dat u uw eigen formules kunt maken. De formule moet op de juiste manier omgaan met een activiteitentabel die u niet had verwacht.
- Activiteitstaken en -activiteiten hebben een een-op-veel-relatie. U kunt eenvoudig alle faxen opvragen die betrekking hebben op een account.
U kunt dit concept als volgt verkennen in de app:
Voeg nog een scherm toe.
Voeg een besturingselement Galerie in, wijzig het formaat en verplaats het vervolgens naar de linkerkant van het scherm.
Ga naar het tabblad Eigenschappen aan de rechterkant van het scherm en stel de eigenschap Items van de galerie in op Accounts.
Stel de lay-out van de galerie in op Titel en stel het titelveld in op Accountnaam.
Voeg een tweede galerie toe, wijzig het formaat en verplaats het vervolgens naar de rechterkant van het scherm.
Stel de eigenschap Items van de nieuwe galerie in op
Gallery2.Selected.Faxes
.Deze stap retourneert de gefilterde lijst met faxen voor een bepaald account.
Stel de lay-out van de galerie in op Titel en ondertitel en stel vervolgens het titelveld in om het veld Onderwerp weer te geven (dat is mogelijk onderwerp met kleine letters).
Als u een item in de lijst met accounts selecteert, worden in de lijst met faxen alleen faxen voor dat account weergegeven.
Activiteitentabel
Zoals de vorige sectie is beschreven, kunt u alle faxen voor een account tonen. U kunt echter ook alle activiteiten voor een account weergeven, inclusief faxen, e-mailberichten, telefoontjes en andere interacties.
Voor het laatste scenario gebruikt u de tabel Activiteit. U kunt deze tabel weergeven door Alle in te schakelen in de rechterbovenhoek om het filter uit de lijst met tabellen te verwijderen.
De tabel Activiteit is bijzonder. Telkens wanneer u een record toevoegt aan de tabel Faxen, wordt ook een record gemaakt in de tabel Activiteit met de kolommen die in alle activiteitentabellen voorkomen. Van deze kolommen is Onderwerp is een van de meest interessante.
U kunt alle activiteiten weergeven door in het vorige voorbeeld slechts één regel te wijzigen. Vervang Gallery2.Selected.Faxes
door Gallery2.Selected.Activities
.
Records zijn afkomstig van de tabel Activiteit, maar u kunt toch de functie IsType gebruiken om te bepalen tot wat voor soort activiteit de records behoren. Nogmaals, voordat u IsType met een tabeltype gebruikt, moet u de gegevensbron toevoegen.
Door deze formule te gebruiken, kunt u het recordtype weergeven in een labelbesturingselement in de galerie:
If( IsType( ThisItem, Faxes] ), "Fax",
IsType( ThisItem, 'Phone Calls' ), "Phone Call",
IsType( ThisItem, 'Email Messages' ), "Email Message",
IsType( ThisItem, Chats ), "Chat",
"Unknown"
)
U kunt ook AsType gebruiken om toegang te krijgen tot de velden van het specifieke type. Deze formule bepaalt bijvoorbeeld het type van elke activiteit en toont voor telefoongesprekken het telefoonnummer en de gespreksrichting van de tabel Telefoonnummers:
If( IsType( ThisItem, Faxes ), "Fax",
IsType( ThisItem, 'Phone Calls' ),
"Phone Call: " &
AsType( ThisItem, 'Phone Calls' ).'Phone Number' &
" (" & AsType( ThisItem, 'Phone Calls' ).Direction & ")",
IsType( ThisItem, 'Email Messages' ), "Email Message",
IsType( ThisItem, Chats ), "Chat",
"Unknown"
)
Het resultaat is dat de app een complete lijst met activiteiten toont. Het veld Onderwerp verschijnt voor alle typen activiteiten, of de formule er nu rekening mee houdt of niet. Voor typen activiteiten waarvan u op de hoogte bent, kunt u de typenaam en typespecifieke informatie voor elke activiteit weergeven.
Tabel Notities
Tot nu toe zijn alle Betreffende-voorbeelden gebaseerd op activiteiten, maar de tabel Notities vertegenwoordigt een ander geval.
Wanneer u een tabel maakt, kunt u bijlagen inschakelen.
Als u het selectievakje voor het inschakelen van bijlagen inschakelt, maakt u een Betreffende-relatie met de tabel Notities, zoals deze afbeelding laat zien voor de tabel Accounts:
Afgezien van dit verschil, gebruikt u de zoekopdracht Betreft op dezelfde manier als waarop u activiteiten gebruikt. Tabellen die zijn ingeschakeld voor bijlagen, hebben een één-op-veel-relatie met Notities, zoals in dit voorbeeld:
First( Accounts ).Notes
Notitie
Op dit moment is de Betreffende-zoekopdracht niet beschikbaar voor de tabel Notities. U kunt de Betreffende-kolom niet lezen of erop filteren en u kunt de kolom niet instellen met Patch.
Maar de omgekeerde één-op-veel-relatie voor Notities is wel beschikbaar, dus u kunt een lijst met notities filteren voor een record die is ingeschakeld voor bijlagen. U kunt ook de functie Relate gebruiken om een notitie toe te voegen aan de tabel Notities van een record, maar de notitie moet eerst worden gemaakt, zoals in dit voorbeeld:
Relate( ThisItem.Notes, Patch( Notes, Defaults( Notes ), { Title: "A new note" } ) )
Betrokkenen bij activiteit
Op het moment van schrijven bieden canvas-apps geen ondersteuning voor betrokkenen bij activiteiten.
Notitie
Laat ons uw taalvoorkeuren voor documentatie weten! Beantwoord een korte enquête. (houd er rekening mee dat deze in het Engels is)
De enquête duurt ongeveer zeven minuten. Er worden geen persoonlijke gegevens verzameld (privacyverklaring).