Om postreferencer og polymorfe opslag i lærredapps

Når du har skrevet en afleveringsopgave i skolen, har du sikkert angivet en liste over referencer til sidst. Du har ikke medtaget en kopi af det faktiske baggrundsmateriale, du brugte, men i stedet for et link til internettet, en bogtitel og en forfatter eller andre oplysninger, så andre kunne spore den oprindelige kilde. Du kan blande forskellige typer kilder på en enkelt liste, f.eks. avisartikler ved siden af lydoptagelser, som hver især har særlige oplysninger om et korrekt citat. Wikipedia-artikler indeholder f.eks. ofte en lang liste over referencer.

I lærredapps arbejder du ofte med kopier af poster, der er hentet fra datakilder. Du kan bruge funktionerne LookUp og Filter og egenskaben for kontrolelementet Galleri Selected til at identificere den specifikke ønskede post. Alle poster fra Filter eller Valgt er af samme tabeltype, så du kan bruge felter med en enkel .Felt-notation. Disse kopier indeholder ofte referenceoplysninger, så du kan bruge funktionen Patch til at opdatere den oprindelige kilde.

Lærredapps understøtter også postreferencer. På samme måde som med en reference for en afleveringsopgave refererer en postreference til en post, uden at der skal fremstilles en fuldstændig kopi af den. En sådan reference kan referere til en post i en hvilken som helst tabel. På samme måde som referencer til research-papir kan du mikse poster fra forskellige tabeller i en enkelt kolonne.

Mange handlinger for postreferencer svarer til at arbejde med poster. Du kan sammenligne postreferencer med hinanden og med komplette poster. Du kan angive en værdi for en postreference med funktionen Patch på samme måde, som du ville foretage opslag med en komplet post.

Der er én vigtig brugsforskel: Du kan ikke få direkte adgang til felterne i en postreference uden først at finde ud af, hvilken tabel den refererer til. Det skyldes, at lærredapps kræver, at alle typer er kendte, når du skriver formler. Da du ikke kender typen for postreferencen, indtil appen kører, kan du ikke bruge den simple notation .Field direkte. Du skal først dynamisk bestemme tabeltypen med funktionen IsType og derefter bruge .Felt-notation på resultatet af funktionen AsType.

Tabeltype henviser til skemaet for hver post i en tabel. Hver tabel indeholder et entydigt sæt felter med forskellige navne og datatyper. Hver post i tabellen arver den pågældende struktur. To poster har samme tabeltype, hvis de kommer fra den samme tabel.

Bemærk

Du kan vælge mellem mange forskellige connectorer for at oprette forbindelse til forskellige typer datakilder for lærredapps. Når du arbejder med lærredapps i Power Apps Studio, bliver kolonner i Microsoft Dataverse omtalt som felter i stil med andre datakilder. Kolonne bruges kun, når der henvises til en kolonne i Dataverse. Flere oplysninger: Opdateringer af terminologi Dataverse

Polymorfe opslag

Microsoft Dataverse understøtter relationer mellem poster. Hver post i tabellen Konti har en Primær kontakt-opslagskolonne til en post i tabellen Kontakter. Opslaget kan kun referere til en post i Kontakter og kan ikke referere til en post i f.eks. tabellen Teams. Den sidste detalje er vigtig, da du altid ved, hvilke kolonner der er tilgængelige for opslaget.

Dataverse understøtter også polymorfe opslag, der kan referere til en post fra en hvilken som helst tabel i et sæt. Kolonnen Ejer kan f.eks. referere til en post i tabellen Brugere eller i tabellen Teams. Den samme opslagskolonne i forskellige poster kunne referere til poster i forskellige tabeller. I dette tilfælde ved du ikke altid, hvilke kolonner der er tilgængelige.

Referencer til lærredposter er udviklet til at arbejde med polymorfe opslag i Dataverse. Du kan også bruge postreferencer uden for denne sammenhæng, hvilket gør det muligt at adskille de to begreber.

I næste afsnit vil du begynde at undersøge disse begreber ved at arbejde med opslaget Ejer.

Vise kolonnerne for en postejer

Alle tabeller i Dataverse indeholder kolonnen Ejer. Denne kolonne kan ikke fjernes, du kan ikke tilføje en anden, og den kræver altid en værdi.

Sådan vises denne kolonne i tabellen Konto:

  1. Log på Power Apps.

  2. Vælg Data > Tabeller i venstre rude.

  3. Vælg Konto på listen over tabeller.

  4. I øverste højre hjørne skal du åbne filterlisten (som standard er indstillet til Standard) og derefter vælge Alle.

  5. Rul ned, indtil kolonnen Ejer vises.

    Kolonnen Ejer i tabellen Konto.

Denne opslagskolonne kan referere til en post i tabellen Brugere eller i tabellen Teams. Ikke alle poster i disse tabeller har tilladelse til at være Ejer. Kontrollér de understøttede roller, hvis der opstår et problem.

I denne grafik vises et simpelt galleri med Konti, hvor tabellen Konti er føjet til appen som en datakilde:

Konti, der vises i et kontrolelement af typen Galleri.

Vigtigt

I denne emne viser grafikelementerne nogle navne og andre værdier, der ikke er en del af de eksempeldata, der leveres sammen med Dataverse. Fremgangsmåden viser nøjagtigt, hvordan du kan konfigurere kontrolelementer for et bestemt resultat, men din oplevelse varierer, afhængigt af dataene i organisationen.

Hvis du vil have vist ejeren af de enkelte konti i galleriet, kan du blive fristet til at bruge formlen ThisItem.Owner.Name. Dog er navnefeltet i tabellen Team lig med Teamnavn, og navnefeltet i tabellen Bruger er Fulde navn. Appen kan ikke vide, hvilken type opslag du arbejder med, før du har kørt appen, og den kan variere mellem posterne i tabellen Konti.

Du skal bruge en formel, der kan tilpasses denne afvigelse. Du skal også tilføje datakilderne for de tabeltyper, som Ejer kunne være (i dette tilfælde Brugere og Teams). Føj disse tre datakilder til din app:

Tabellerne Konti, Teams og Brugere i ruden Data.

Med disse datakilder på plads kan du bruge denne formel til at få vist navnet på en bruger eller et team:

If( IsType( ThisItem.Owner, Teams ),
    "Team: " & AsType( ThisItem.Owner, Teams ).'Team Name',
    "User: " & AsType( ThisItem.Owner, Users ).'Full Name' )

Konti, der vises i et kontrolelement af typen Galleri, hvor feltet Ejer er vist.

I denne formel tester funktionen IsType feltet Ejer i forhold til tabellen Teams. Hvis den er af den pågældende tabeltype, overfører funktionen AsType den til en Team-post. Du kan nu få adgang til alle felterne i tabellen Teams, herunder Teamnavn, ved hjælp af .Felt-notation. Hvis IsType bestemmer, at Ejer ikke er en post i tabellen Teams, skal det pågældende felt være en post i tabellen Brugere, da feltet Ejer er obligatorisk (kan ikke være tomt).

Hvis du vil bruge felter i en postreference, skal du først bruge funktionen AsType til at overføre den til en bestemt tabeltype. Du kan ikke få adgang til felter direkte fra feltet Ejer, da systemet ikke ved, hvilken tabeltype du vil bruge.

Funktionen AsType returnerer en fejl, hvis feltet Ejer ikke stemmer overens med den tabeltype, der anmodes om, så du kan bruge funktionen IfError til at forenkle denne formel. Først skal du aktivere den eksperimentelle funktion Fejladministration af formelniveau:

Eksperimentel omskifter til at aktivere fejlhåndtering på formelniveau.

Derefter kan du erstatte den forrige formel med denne:

IfError(
    "Team: " & AsType( ThisItem.Owner, Teams ).'Team Name',
    "User: " & AsType( ThisItem.Owner, Users ).'Full Name' )

Filtrere baseret på en ejer

Tillykke! Du er færdig med den sværeste del af arbejdet med en postreference. Andre brugstilfælde er mere ligetil, da de ikke har adgang til felter i posten. I forbindelse med punktet skal du foretage filtrering, som du kan undersøge i dette afsnit.

Tilføj et kontrolelement af typen Kombinationsfelt over galleriet, og angiv disse egenskaber for det nye kontrolelement:

  • Items: Users
  • SelectMultiple: false

Tilføjet kontrolelement af typen Kombinationsfelt over galleri med egenskaben Items indstillet til Brugere.

Hvis du vil filtrere galleriet efter en bestemt bruger, der er valgt i dette kombinationsfelt, skal du angive egenskaben Items for galleriet til denne formel:

Filter( Accounts, Owner = ComboBox1.Selected )

Filtreret galleri baseret på den værdi, der er angivet i kontrolelement af typen Kombinationsfelt.

Vigtigt

Instruktionerne i denne emne er nøjagtige, hvis du følger trinnene præcist. Alle formler, der refererer til et kontrolelement med navnet, lykkes dog ikke, hvis kontrolelementet har et andet navn. Hvis du sletter og tilføjer et kontrolelement af samme type, ændres tallet i slutningen af kontrolelementets navn. I forbindelse med en formel, der viser en fejlmeddelelse, skal du kontrollere, at den indeholder de korrekte navne for alle kontrolelementer.

Du behøver ikke at bruge IsType eller AsType, da du sammenligner postreferencer med andre postreferencer eller fulde poster. Appen kender tabeltypen ComboBox1.Selected, fordi den er afledt af Brugere-tabellen. Konti, hvor ejeren er et team, stemmer ikke overens med filterkriterierne.

Du kan være mere avanceret ved at understøtte filtrering enten med en bruger eller et team.

  1. Frigør plads i toppen af skærmbilledet ved at ændre størrelsen på galleriet og flytte kombinationsfeltet, indsætte et kontrolelement af typen Alternativknap over galleriet og derefter angive disse egenskaber for det nye kontrolelement:

    • Items: [ "All", "Users", "Teams" ]
    • Layout: Layout.Horizontal
  2. I forbindelse med kontrolelementet Kombinationsfelt skal du angive denne egenskab (hvis kombinationsfeltet forsvinder, skal du vælge Brugere i kontrolelementet Alternativknap):

    • Visible: Radio1.Selected.Value = "Users"
  3. Kopiér og indsæt kontrolelementet Kombinationsfelt, flyt kopien direkte over den oprindelige, og angiv derefter egenskaberne for kopien:

    • Items: Teams
    • Visible: Radio1.Selected.Value = "Teams"

    I appen vises der kun ét kombinationsfelt ad gangen afhængigt af tilstanden for kontrolelementet Alternativknap. Da de befinder sig lige over hinanden, ser de ud til at være det samme kontrolelement, hvor indholdet ændres.

  4. Angiv egenskaben Items for kontrolelementet Galleri til denne formel:

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

    Filtreret galleri, der viser alle poster eller en bestemt bruger eller et bestemt team.

Med disse ændringer kan du vise alle poster eller filtrere dem baseret på enten en bruger eller et team:

Animation, der viser forskellige filtrerede resultater baseret på kontrolelementet Alternativknap og kombinationsfelter.

Formlen kan delegeres helt. Den del, der sammenligner værdierne for alternativknapper, er en konstant på tværs af alle poster og evalueres, før resten af filteret sendes til Dataverse.

Hvis du vil filtrere efter typen af ejer, kan du bruge funktionen IsType, men den kan ikke delegeres endnu.

Filtrer efter ejertype ved hjælp af IsType.

Opdatere ejeren ved hjælp af Patch

Du kan opdatere feltet Ejer på samme måde som andre opslagsfelter. Sådan angives den aktuelt valgte kontos ejer til det første team:

Patch( Accounts, Gallery1.Selected, { Owner: First( Teams ) } )

Denne fremgangsmåde adskiller sig ikke fra et normalt opslag, da appen kender typen for First( Teams ). Hvis du ønsker den første bruger i stedet, skal du erstatte den pågældende del med First( Teams ). Funktionen Patch ved, at feltet Ejer kan angives til en af disse to tabeltyper.

Sådan føjes denne egenskab til appen:

  1. I ruden Trævisning skal du vælge kontrolelementet Alternativknap og de to kontrolelementer af typen Kombinationsfelt samtidigt.

  2. Vælg Kopier disse elementer i ellipsemenuen.

    Kopiér flere kontrolelementer ved hjælp af trævisningen.

  3. I den samme menu skal du vælge Indsæt.

    Indsæt flere kontrolelementer ved hjælp af trævisningen.

  4. Flyt de kopierede kontrolelementer til højre for galleriet.

    Flyttede kopierede kontrolelementer til højre for galleriet.

  5. Vælg det kopierede kontrolelement Alternativknap, og rediger derefter disse egenskaber:

    • Items: [ "Users", "Teams" ]
    • Standard: If( IsType( Gallery1.Selected.Owner, Users ), "Users", "Teams" )

    Fjernede valgmuligheden Alle fra kontrolelementet Alternativknap.

  6. Vælg Brugere i kontrolelementet Alternativknap, så kontrolelementet Kombinationsfelt for brugerne bliver synligt.

  7. Markér det synlige kontrolelement Kombinationsfelt, og angiv derefter egenskaben DefaultSelectedItems til denne formel:

    If( IsType( Gallery1.Selected.Owner, Users ),
        AsType( Gallery1.Selected.Owner, Users ),
        Blank()
    )
    

    Standardegenskabssæt for kombinationsfeltet Brugere.

  8. Vælg Brugere i kontrolelementet Teams, så kontrolelementet Kombinationsfelt for teams bliver synligt.

  9. Markér kontrolelementet Alternativknap, hvis du vil fjerne markeringen fra det nu usynlige kontrolelement Kombinationsfelt for brugere.

  10. Markér det synlige kontrolelement Kombinationsfelt for teams, og angiv derefter det egenskab DefaultSelectedItems til denne formel:

    If( IsType( Gallery1.Selected.Owner, Teams ),
        AsType( Gallery1.Selected.Owner, Teams ),
        Blank()
    )
    

    Standardegenskabssæt for kombinationsfeltet Teams.

  11. Indsæt et kontrolelement af typen Knap, flyt det under kontrolelementet Kombinationsfelt, og angiv derefter knappens egenskab Text til "Patch Owner".

  12. Angiv egenskaben OnSelect for knappen til denne formel:

    Patch( Accounts, Gallery1.Selected,
        { Owner: If( Radio1_1.Selected.Value = "Users",
                     ComboBox1_2.Selected,
                     ComboBox1_3.Selected ) } )
    

    Formel angivet for kontrolelementet Knap.

De kopierede kontrolelementer Alternativknap og Kombinationsfelt viser ejeren af den aktuelt valgte konto i galleriet. Med de samme kontrolelementer kan du angive ejeren af kontoen til ethvert team eller enhver bruger ved at vælge knappen:

Animation, der viser Patch for Ejer enten med en Bruger eller et Team.

Vise ejeren ved hjælp af en formular

Du kan få vist et felt af typen Ejer i en formular ved at tilføje et brugerdefineret kort. På grund af denne skrivning kan du ikke ændre værdien i feltet ved hjælp af et formularkontrolelement.

  1. Indsæt et kontrolelement af typen Rediger formular, og flyt det til det nederste højre hjørne.

  2. På fanen Egenskaber ved højre side af skærmbilledet skal du åbne listen Datakilde og derefter vælge Konti.

    Kontrolelement viser flere felter med tomme værdier.

  3. Angive formularens egenskab Item til Gallery1.Selected.

    Formularkontrolelement, der viser yderligere felter, der er udfyldt fra det valgte element i galleriet.

  4. Vælg Rediger felter under fanen Egenskaber i højre side af skærmbilledet.

  5. Vælg ellipsen i ruden Felter, og vælg derefter Tilføj et brugerdefineret kort.

    Kommando til tilføjelse af et brugerdefineret kort.

    Det nye kort vises nederst i formularkontrolelementet.

  6. Tilpas størrelsen på kortet efter behov for at vise hele teksten.

    Indsat brugerdefineret kort, der er tomt.

  7. Indsæt et kontrolelement af typen Etiket i det brugerdefinerede kort, og angiv derefter etikettens egenskab Text til den formel, du har brugt i galleriet:

    If( IsType( ThisItem.Owner, Teams ),
        "Team: " & AsType( ThisItem.Owner, Teams ).'Team Name',
        "User: " & AsType( ThisItem.Owner, Users ).'Full Name' )
    

    Brugerdefineret kort, der viser feltet Ejer i et etiketkontrolelement.

For hver markering i galleriet vises flere felter for kontoen, herunder postens ejer, i formularen. Hvis du ændrer ejeren ved hjælp af knappen Patch, vises denne ændring også i formularkontrolelementet.

Animation, der viser formularkontrolelementet og reagerer på ændringer i galleriet.

Vise kolonnerne for en kunde

I Dataverse er opslagskolonnen Kunde et andet polymorft opslag, der minder om Ejer.

Ejer er begrænset til én pr. tabel, men tabeller kan indeholde nul, en eller flere Kunde-opslagskolonner. Systemtabellen Kontakter indeholder kolonnen Kontonavn, som er en opslagskolonne for Kunde.

Tabellen Kontakt, der viser kolonnen Firmanavn som datatypen Kunde, som ikke er påkrævet.

Du kan føje flere Kunde-opslagskolonner til en tabel ved at vælge datatypen Kunde for en ny kolonne.

Kundedatatype på listen over datatyper under oprettelse af en kolonne.

Et Kunde-opslagsfelt kan referere til en post i tabellen Konti eller i tabellen Kontakter. Du skal bruge funktionerne IsType og AsType sammen med disse tabeller, så det er et godt tidspunkt at tilføje dem som datakilder (du kan lade Teams og Brugere blive på plads).

Tabellerne Konti, Teams, Brugere og Kontakter i ruden Data.

Behandlingen af felterne Kunde og Ejer svarer meget til, så du kan i bogstaveligste forstand kopiere appen (Filer > Gem som), derefter angive et andet navn og foretage disse enkle erstatninger:

Location Eksempel på Ejer Eksempel på Kunde
Gennem Ejer 'Kundenavn'
Gennem Brugere Konti
Gennem Team Kontakter
Galleris egenskab Items Konti Kontakter
Formulars egenskab Items Konti Kontakter
Det første argument i Patch
i knappens egenskab OnSelect
Konti Kontakter
Egenskaben Items for alternativknap i Filter [ "Alle", "Brugere", "Teams" ] [ "Alle", "Konti", "Kontaktpersoner" ]
Egenskaben Items for alternativknap i Patch [ "Brugere", "Teams" ] [ "Konti", "Kontaktpersoner" ]
Egenskaben Visible for kombinationsfelt "Brugere" og "Teams" "Konti" og "Kontaktpersoner"

Det nye galleri skal f.eks. have denne egenskab for Items:

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

Kundeapp, der er afledt af appen Ejer, med simple ændringer.

To vigtige forskelle mellem Kunde og Ejer kræver, at der opdateres til formlerne i galleriet og formularen:

  1. En til mange-relationer mellem Konti og Kontakter har forrang, når du refererer til disse tabeltyper efter navn. I stedet for Konti kan du bruge [@Konti], og i stedet for Kontaktpersoner kan du bruge [@Kontaktpersoner]. Ved hjælp af den globale operator til fjernelse af flertydige udtryk sikrer du, at du refererer til tabeltypen i IsType og AsType. Dette problem findes kun i forbindelse med poster i galleri-og formularkontrolelementer.

  2. Feltet Ejer skal have en værdi, men felterne for Kunde kan være tomme. Hvis du vil vise det korrekte resultat uden et typenavn, skal du teste denne sag med funktionen IsBlank og vise en tom tekststreng i stedet.

Begge disse ændringer findes i den samme formel, som vises på det brugerdefinerede kort i formularen samt i egenskaben Text i galleriets etiketkontrolelement:

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

Opdatere til egenskaben Tekst for undertitlens etiketkontrolelement i galleriet.

Med disse ændringer kan du se og ændre feltet Kontonavn i tabellen Kontakter.

Animation, der viser, hvordan valget af en kontakt ændrer de andre kontrolelementer og formularen.

Om Angående-opslagskolonner

Opslagskolonnen Angående adskiller sig lidt fra dem, du allerede har arbejdet med i dette emne. Du skal begynde med at anvende de mønstre, som er beskrevet tidligere i dette emne, hvorefter du lærer andre teknikker.

Du kan starte med tabellen Faxer. Denne tabel indeholder en polymorf opslagskolonne Angående, som kan referere til Konti, Kontakter og andre tabeller. Du kan tage appen for Kunder og ændre den for Faxer.

Location Eksempel på Kunde Eksempel på Faxer
Gennem 'Kundenavn' Angående
Galleris egenskab Items Kontakter Faxer
Formulars egenskab Items Kontakter Faxer
Det første argument i Patch
i knappens egenskab OnSelect
Kontakter Faxer

Du skal igen tilføje en datakilde, denne gang for Faxer. Vælg Datakilder på fanen Vis:

Tabellerne Konti, Teams, Brugere, Kontakter og Faxer i ruden Data.

En vigtig forskel for Angående er, at det ikke er begrænset til Konti og Kontaktpersoner. Listen over tabeller kan faktisk udvides med brugerdefinerede tabeller. I de fleste tilfælde har appen plads til dette punkt uden ændringer, men du skal opdatere formlen for etiketten i galleriet og formularen:

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',
    ""
)

Egenskaben Opdateret tekst for kontrolelementet Undertitel for opslag af typen Angående.

Når du har foretaget disse ændringer, kan du arbejde med opslaget Angående på samme måde, som du gjorde med opslag for Ejer og Kunde.

Animation, der viser, hvordan valget af et element i galleriet ændrer de andre kontrolelementer og formularen.

Om relationer for Angående

Angående afviger fra Ejer og Kunde, fordi den tidligere involverer en mange-til-én-relation. Ved at bruge en omvendt en-til-mange-relation kan du skrive First( Accounts ).Faxes.

Sikkerhedskopiér og kig på tabeldefinitionerne. I Dataverse er tabeller som Faxer, Opgaver, Mails, Noter, Telefonopkald, Breve og Chat angivet som aktiviteter. Du kan også oprette dine egne brugerdefinerede aktivitetstabeller. Når du ser eller opretter en aktivitetstabel, vises indstillingerne under Flere indstillinger.

Indstilling for aktivitetstabel ved oprettelse af en tabel.

Andre tabeller kan relateres til en aktivitetstabel, hvis de er aktiveret som en aktivitetsopgave i tabellens indstillinger. Konti, Kontakter og mange andre standardtabeller er angivet på denne måde (igen under Flere indstillinger).

Indstilling af aktivitetstabel under oprettelse af en tabel.

Alle aktivitetstabeller og aktivitetsopgavetabeller har en underforstået relation. Hvis du ændrer filteret til Alle øverst på skærmen, skal du vælge tabellen Faxer og derefter vælge fanen Relationer. Alle tabeller, der kan være destination for et Angående-opslag, vises.

Relationer i tabellen Faxer, der viser mange til en-relationer af typen Angående.

Hvis du viser relationer for tabellen Konti, vises alle de tabeller, der kan være en kilde til opslagsfeltet Angående.

Relationer i tabellen Konti, der viser en til mange-relationer af typen Angående.

Hvad betyder det hele?

  • Når du skriver formler, skal du tænke på, at listen over aktivitetstabeller ikke er fast, og du kan oprette dine egne. Formlen skal håndtere en aktivitetstabel, du ikke forventede.
  • Aktivitetsopgaver og -aktiviteter har en en-til-mange-relation. Du kan nemt bede om alle de faxer, der er relateret til en konto.

Sådan udforsker du dette begreb i appen:

  1. Tilføj et andet skærmbillede.

    Indsæt en tom skærm.

  2. Indsæt et gallerikontrolelement, tilpas størrelsen på det, og flyt det derefter til venstre side af skærmbilledet.

  3. Angiv galleriets Items til Konti på fanen Egenskaber i højre side af skærmbilledet.

    Angiv Items til Konti i ruden Egenskaber.

  4. Angiv layoutet for galleriet til Titel, og angiv derefter titelfeltet til Kontonavn.

    Angiv Layout til Titel for gallerikontrolelementet i ruden Egenskaber.

  5. Tilføj endnu et galleri, tilpas størrelsen på det, og flyt det derefter til højre side af skærmbilledet.

  6. Angiv det nye galleris egenskab Items til Gallery2.Selected.Faxes.

    I dette trin returneres den filtrerede liste over faxer for en bestemt konto.

    Angiv egenskaben Items for galleriet, som viser faxer.

  7. Angiv layoutet for galleriet til Titel og undertitel, og angiv derefter titelfeltet til at vise feltet Emne (hvilket kan være emne med små bogstaver).

    Angiv Titel til feltet Emne.

Når du vælger et element på listen over konti, viser listen over faxer kun faxer for den pågældende konto.

Animation, der viser, hvordan valget i kontogalleriet påvirker listen over faxer.

Aktivitetstabel

Som det beskrives i det forrige afsnit, kan du få vist alle faxer for en konto. Men du kan også få vist samtlige aktiviteter for en konto, herunder faxer, mails, telefonopkald og andre interaktioner.

I dette scenario bruges Aktivitet-tabellen. Du kan få vist denne tabel ved at slå Alle til i øverste højre hjørne for at fjerne filteret fra listen over tabeller.

Liste over tabeller, der viser aktivitetstabellen.

Aktivitetstabellen er speciel. Når du føjer en post til tabellen Faxer, oprettes der også en post i tabellen Aktivitet med de kolonner, der er fælles på tværs af alle aktivitetstabeller. Af disse kolonner er Emne en af de mest interessante.

Du kan få vist samtlige aktiviteter ved kun at ændre én linje i det forrige eksempel. Erstat Gallery2.Selected.Faxes med Gallery2.Selected.Activities.

Ændring af egenskaben Items i det andet galleri fra faxer til aktiviteter.

Der kommer poster fra tabellen Aktivitet, men du kan anvende funktionen IsType til at identificere, hvilken type aktivitet de er. Inden du bruger IsType sammen med en tabeltype, skal du igen tilføje datakilden.

Datarude, der viser alle de tabeller, der kræves til funktionen IsType.

Ved hjælp af denne formel kan du få vist posttypen i et etiketkontrolelement i galleriet:

If( IsType( ThisItem, Faxes] ), "Fax",
    IsType( ThisItem, 'Phone Calls' ), "Phone Call",
    IsType( ThisItem, 'Email Messages' ), "Email Message",
    IsType( ThisItem, Chats ), "Chat",
    "Unknown"
)

Angiv tekstegenskaben til en formel for at vise oplysninger om faxer, telefonopkald og andre aktiviteter.

Du kan også bruge AsType til at få adgang til felterne af den specifikke type. Denne formel bestemmer f.eks. typen af hver enkelt aktivitet og viser telefonnummeret og opkaldsretningen i tabellen Telefonnumre for telefonopkald:

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

Egenskaben for udvidet tekst med flere oplysninger om et telefonopkald.

Som resultat heraf vises der en komplet liste over aktiviteter i appen. Feltet Emne vises for alle typer aktiviteter, uanset om de pågældende formler tager højde for dem. I forbindelse med de typer aktiviteter, du kender til, kan du viset deres typenavne og typespecifikke oplysninger om hver enkelt aktivitet.

Fuldført skærm, der viser oplysninger for forskellige typer aktiviteter.

Tabel over noter

Indtil videre er alle eksemplerne på Angående baseret på aktiviteter, men tabellen Noter repræsenterer en anden sag.

Når du opretter en tabel, kan du aktivere vedhæftede filer.

Aktivering af vedhæftede filer og noter under oprettelse af en tabel.

Hvis du markerer afkrydsningsfeltet for aktivering af vedhæftede filer, opretter du en Angående-relation med tabellen Noter, som dette grafikelement viser for tabellen Konti:

Kontotabel, der viser relationer til Noter via en til mange-relation.

Bortset fra denne forskel, skal du brug opslagstypen Angående på samme måde, som du bruger aktiviteter. Tabeller, der er aktiveret for vedhæftede filer, har en en til mange-relation til Noter som i dette eksempel:

First( Accounts ).Notes

Bemærk

Fra nu af er opslaget Angående ikke tilgængeligt for tabellen Noter. Du kan ikke læse eller filtrere på baggrund af kolonnen Angående, og du kan ikke angive kolonnen ved hjælp af Patch.

Men den omvende en-til-mange-relation for Noter er tilgængelig, så du kan filtrere en liste med noter for en post, der er aktiveret til vedhæftede filer. Du kan også bruge funktionen Relate til at føje en note til en posts tabel for Noter, men noten skal først oprettes, som i dette eksempel:

Relate( ThisItem.Notes, Patch( Notes, Defaults( Notes ), { Title: "A new note" } ) )

Aktivitetsparter

Som for denne skrivning understøtter lærredapps ikke aktivitetsparterne.

Bemærk

Kan du fortælle os om dine sprogpræferencer for dokumentation? Tag en kort undersøgelse. (bemærk, at denne undersøgelse er på engelsk)

Undersøgelsen tager ca. syv minutter. Der indsamles ingen personlige data (erklæring om beskyttelse af personlige oplysninger).