Forstå skjemaer i lerretsapper

Legg til tre typer kontroller i en lerretsapp, slik at brukeren kan bla gjennom etter en post, vise detaljer om denne posten og redigere eller opprette en post:

Aktivitet Kontroller Beskrivelse
Bla gjennom etter en post Galleri-kontroll Filtrer, sorter, søk og bla gjennom postene i en datakilde, og velg en bestemt post. Vis bare noen få felt fra hver post for å vise flere poster om gangen, selv på en liten skjerm.
Vise detaljene for en post Visningsskjema-kontroll For en enkelt post, kan du vise mange av, eller alle felt i posten.
Redigere eller opprette en oppføring Redigeringsskjema-kontroll Oppdater ett eller flere felt i en enkelt post (eller opprett en post som starter med standardverdier), og lagre disse endringene tilbake til den underliggende datakilden.

Sett hver kontroll på ulike skjermer for å gjøre dem enklere å skille fra hverandre:

Bla gjennom, vise og redigere poster på tvers av tre skjermer.

Som dette emnet beskriver, kan du kombinere disse kontrollene med formler for å lage den generelle brukeropplevelsen.

Forutsetninger

Utforske en generert app

Power Apps kan automatisk generere en app, basert på en datakilde angir. Hver app inneholder tre skjermer med kontrollene som er beskrevet tidligere, og formler som knytter dem sammen. Kjør disse ferdiglagde appene, tilpass dem til dine bestemte mål eller undersøk hvordan de fungerer, slik at du kan lære om nyttige konsepter som gjelder for dine egne apper. Undersøk skjermene, kontrollene og formlene som kjører en generert app i avsnittene nedenfor.

Bla gjennom-skjermbilde

Bla gjennom-skjermbilde.

Denne skjermen har følgende viktige formler:

Ctrl Støttet virkemåte Formel
BrowseGallery1 Vis poster fra Assets-datakilden. Items-egenskapen i galleriet er angitt til en formel som er basert på Assets-datakilden.
ImageNewItem1 Vis Rediger og opprett-skjermen med hvert felt angitt til en standardverdi, slik at brukeren enkelt kan opprette en post. Angi OnSelect-egenskapen til bildet til denne formelen:
NewForm( EditForm1 );
Navigate( EditScreen1, None )
NextArrow1 (i galleriet) Vis Detaljer-skjermen for å vise mange av, eller alle feltene i den valgte posten. Angi OnSelect-egenskapen for pilen til denne formelen:
Navigate( DetailScreen1, None )

Hovedkontrollen i denne skjermen, BrowseGallery1, dekker det meste av skjermområdet. Brukeren kan bla gjennom galleriet for å finne en bestemt post for å vise flere felt eller oppdatere dem.

Angi Items-egenskapen for et galleri til å vise poster fra en datakilde i den. Angi for eksempel egenskapen til Assets til å vise poster fra en datakilde med dette navnet.

Obs!

I en generert app er Items angitt til en betydelig mer komplisert formel som standard, slik at brukeren kan sortere og søke etter poster. Senere i dette emnet finner du ut hvordan du utvikler formelen; det er for øyeblikket nok med en enklere versjon.

Brukeren kan opprette en post ved å velge +-tegnet over galleriet, i stedet for å finne enn post som skal vises eller redigeres. Opprett denne effekten ved å legge til en Bilde-kontroll som viser et +-symbol i den, og angi OnSelect-egenskapen til denne formelen:
NewForm( EditForm1 ); Navigate( EditScreen1, None )

Denne formelen åpner Rediger og opprett-skjermen, som har en Redigeringsskjema-kontroll, med tittelen EditForm1. Formelen bytter også skjemaet til Ny-modus, der skjemaet viser standardverdiene fra datakilden, slik at brukeren enkelt kan opprette en post fra grunnen av.

For å undersøke en kontroll som vises i BrowseGallery1, velger du kontrollen i den første delen av galleriet, som fungerer som en mal for alle andre deler. Velg for eksempel den midtre Etikett-kontrollen på venstre side:

Skjermkontroller for Bla gjennom.

I dette eksemplet er kontrollens Text-egenskap angitt til ThisItem.AssignedTo, som er et felt i Assets-datakilden. Text-egenskapen for de andre tre Etikett-kontrollene i galleriet er angitt til lignende formler, og hver kontroll viser ulike felt i datakilden.

Velg Form-kontrollen (pilen), og bekreft at OnSelect-egenskapen er angitt til denne formelen:
Navigate( DetailScreen1, None )

Hvis brukeren finner en post i BrowseGallery1, kan han velge pilen for denne posten for å vise mer informasjon om den i DetailScreen1. Ved å velge en pil, endrer brukeren verdien for Selected-egenskapen for BrowseGallery1. I denne appen bestemmer denne egenskapen hvilken post som vises, ikke bare i DetailScreen1, men også i Rediger og opprett-skjermen hvis brukeren bestemmer seg for å oppdatere posten.

Detaljskjerm

Detaljskjermkontroller.

Denne skjermen har følgende viktige formler:

Ctrl Støttet virkemåte Formel
DetailForm1 Visning av en post i Assets-datakilden Angi DataSource-egenskapen til Assets.
DetailForm1 Bestemmer hvilke poster som skal vises. I en generert app vises posten som brukeren har valgt i galleriet. Angi Item-egenskapen til kontrollen til denne verdien:
BrowseGallery1.Selected
Kort-kontroller I en Visningsskjema-kontroll, vises ett enkelt felt i en post. Angi DataField-egenskapen til navnet på et felt, omsluttet av doble anførselstegn (for eksempel "Name").
ImageBackArrow1 BrowseScreen1 åpnes, når brukeren velger denne kontrollen. Angi OnSelect-egenskapen til denne formelen:
Back()
ImageDelete1 Når brukeren velger denne kontrollen, slettes en post. Angi OnSelect-egenskapen til denne formelen:
Remove( Assets, BrowseGallery1.Selected )
ImageEdit1 Når brukeren velger denne kontrollen, åpnes Rediger og opprett-skjermen i gjeldende post. Angi OnSelect-egenskapen til denne formelen:
Navigate( EditScreen1, None )

Øverst på skjermen er tre bilder plassert utenfor DetailForm1 og fungerer som knapper. De bytter mellom de tre skjermene i appen.

DetailForm1 dominerer denne skjermen og viser posten som brukeren har valgt i galleriet (fordi skjemaets Item-egenskap er angitt til BrowseGallery1.Selected). DataSource-egenskapen for skjemaet gir også metadata om datakilden, for eksempel et brukervennlig visningsnavn for hvert felt.

DetailForm1 inneholder en rekke Kort-kontroller. Du kan velge enten selve Kort-kontrollen, eller kontrollen den inneholder for å få mer informasjon.

Detaljkort- og kortkontroller som er valgt i redigeringsopplevelsen.

DataField-egenskapen for en Kort-kontroll bestemmer hvilke felt kortet viser. I dette tilfellet er den egenskapen angitt til AssetID. Kortet inneholder en Etikett-kontroll, der Text-egenskapen er angitt til Parent.Default. Denne kontrollen viser Standard-verdien for kortet, som er angitt via DataField-egenskapen.

Kort-kontrollene låses som standard i en generert app. Når et kort er låst, er det enkelte egenskaper du ikke kan endre på, for eksempel DataField, og formellinjen er ikke tilgjengelig for disse egenskapene. Denne begrensningen bidrar til å sikre at tilpasningene ikke bryter med den grunnleggende funksjonaliteten i den genererte appen. Du kan imidlertid endre noen egenskaper for et kort og de tilhørende kontrollene i ruten til høyre:

Detaljskjermen med alternativruten åpen.

Du kan velge hvilke felt som skal vises, i den høyre ruten, og i hvilken type kontroll hvert felt vises.

Rediger/Opprett-skjerm

Kontroller for Rediger-skjerm.

Denne skjermen har følgende viktige formler:

Ctrl Støttet virkemåte Formel
EditForm1 Visning av en post i Assets-datakilden. Angi DataSource-egenskapen til Assets.
EditForm1 Bestemmer hvilke poster som skal vises. I en generert app vises posten som brukeren har valgt i BrowseScreen1. Angi Item-egenskapen til denne verdien:
BrowseGallery1.Selected
Kort-kontroller I en Redigeringsskjema-kontroll blir kontroller gitt slik at brukeren kan redigere ett eller flere felt i en post. Angi DataField-egenskapen til navnet på et felt, omsluttet av doble anførselstegn (for eksempel "Name").
ImageCancel1 Når brukeren velger denne kontrollen, forkastes endringene som pågår, og Detaljer-skjermen åpnes. Angi OnSelect-egenskapen til denne formelen:
ResetForm( EditForm1 ); Back()
ImageAccept1 Endringene sendes til datakilden, når brukeren velger denne kontrollen. Angi OnSelect-egenskapen til denne formelen:
SubmitForm( EditForm1 )
EditForm1 Hvis endringene blir godtatt, går det tilbake til forrige skjerm. Angi OnSuccess-egenskapen til denne formelen:
Back()
EditForm1 Forbli på den gjeldende skjermen slik at brukeren kan løse eventuelle problemer og prøve å sende på nytt, hvis endringene ikke blir godtatt. La OnFailure-egenskapen stå tom.
LblFormError1 En feilmelding vises, hvis endringene ikke er godtatt. Angi Text-egenskapen til denne verdien:
EditForm1.Error

Som i Detaljer-skjermen, dominerer en skjemakontroll med tittelen EditForm1Rediger og opprett-skjermen. I tillegg er**Item**-egenskapen for EditForm1 angitt til BrowseGallery1.Selected, slik at skjemaet viser posten som brukeren valgte i BrowseScreen1. Selv om Detalj-skjermen viser hvert felt i skrivebeskyttet visning, kan brukeren oppdatere verdien i ett eller flere felt ved hjelp av kontrollene i EditForm1. Den bruker også DataSource-egenskapen for å få tilgang til metadata om denne datakilden, for eksempel det brukervennlige visningsnavnet for hvert felt, og plasseringen der endringene skal lagres.

Hvis brukeren velger X-ikonet for å avbryte en oppdatering, forkaster ResetForm-funksjonen alle ulagrede endringer, og Back-funksjonen åpner Detaljer-skjermen. Både Detaljer-skjermen og Rediger og opprett-skjermen viser den samme posten helt til brukeren velger et annet navn på BrowseScreen1. Feltene i posten forblir angitt til verdiene som sist ble lagret, ikke eventuelle endringer som brukeren har gjort, og deretter avbrutt.

Hvis brukeren endrer én eller flere verdier i skjemaet, og deretter velger avmerkingsikonet, sender SubmitForm-funksjonen brukerens endringer til datakilden.

  • Skjemaets OnSuccess-formel kjøres hvis endringene er lagret, og Back()-funksjonen åpner detaljerskjermen for å vise den oppdaterte posten.
  • Skjemaets OnFailure-formel kjører hvis endringene ikke er lagret, men det endrer ikke noe fordi den er tom. Rediger og opprett-skjermen forblir åpen slik at brukeren kan avbryte endringene eller rette opp i feilen. LblFormError1 viser en brukervennlig feilmelding, som skjemaets Error-egenskap er angitt til.

Som med en Visningsskjema-kontroll inneholder en Redigeringsskjema-kontroll Kort-kontroller som inneholder andre kontroller som viser ulike felt i en post:

Redigeringskort- og kortkontroller som er valgt i redigeringsopplevelsen.

I forrige bilde viser det valgte kortet AssetID-feltet som inneholder en Tekstinndata-kontroll, slik at brukeren kan redigere verdien i feltet. (I motsetning viser detaljskjermen det samme feltet i en Etikett-kontroll, som er skrivebeskyttet.) Tekstinndata-kontrollen har en Default-egenskap, som er angitt til Parent.Default. Hvis brukeren har opprettet en post i stedet for å redigere en, viser kontrollen en startverdi som brukeren kan endre for den nye posten.

Du kan vise eller skjule hvert kort, omorganisere eller konfigurere dem til å vise felt i forskjellige kontrolltyper, i den høyre ruten.

Rediger-skjermen med alternativruten åpen.

Bygge en app fra bunnen av

Ved å forstå hvordan Power Apps genererer en app, kan du utvikle en selv, som bruker samme byggeblokker og formler som beskrevet tidligere i dette emnet.

Identifisere testdata

For å få mest mulig ut av dette emnet, kan du starte med en datakilde som du kan eksperimentere med. Den bør inneholde testdata som du kan lese og oppdatere uten problemer.

Obs!

Hvis du bruker en liste som opprettes ved hjelp av Microsoft Lister, et SharePoint-bibliotek eller en Excel-tabell som inneholder kolonnenavn med mellomrom som datakilde, vil Power Apps erstatte mellomrommene med "_x0020_". "Kolonnenavn" i SharePoint eller Excel vil for eksempel vises som "Column_x0020_Name" i Power Apps når de vises i dataoppsettet eller brukes i en formel.

For å følge resten av dette emnet nøyaktig, kan du lage en liste med navnet «Ice Cream» som inneholder disse dataene:

Listen "Ice Cream".

  • Opprett en app fra grunnen av, for telefoner, og koble den til datakilden.

    Obs!

    Apper for nettbrett er svært like, men du vil kanskje ha et annet skjermoppsett for å få fullt utbytte av den ekstra skjermplassen.

    Eksemplene i resten av emnet er basert på en datakilde med navnet Ice Cream.

Bla gjennom poster

Få en informasjon raskt fra en post ved å finne den i et galleri på en Bla gjennom-skjerm.

  1. Legg til et Loddrett galleri, og endre oppsettet til kun Tittel.

    Legg til et loddrett galleri.

  2. Angi galleriets Items-egenskap til Ice Cream.

  3. Angi Text-egenskapen for den første etiketten i galleriet til ThisItem.Title, hvis den er angitt til noe annet.

    Nå viser etiketten verdien i Tittel-feltet for hver post.

    Oppdatert etikett.

  4. Endre størrelse på galleriet for å fylle skjermen, og angi egenskapen for TemplateSize til 60.

    Skjermen ligner dette eksemplet, som viser alle postene i datakilden:

    Galleriet som er koblet til datakilden for Ice Cream.

Se detaljer

Hvis galleriet ikke viser informasjonen du vil bruke, velger du pilen for en post for å åpne detaljerskjermen. En Visningsskjema-kontroll på denne skjermen viser flere felt, kanskje alle, for posten som du har valgt.

Visningsskjema-kontrollen bruker to egenskaper til å vise posten:

  • DataSource-egenskapen. Navnet på datakilden som inneholder posten. Denne egenskapen fyller det høyre panelet med felt, og bestemmer visningsnavnet og datatypen (streng, tall, dato og så videre) for hvert felt.
  • Item-egenskapen. Posten som du vil vise. Denne egenskapen er ofte tilknyttet den valgte egenskapen for Galleri-kontrollen, slik at brukeren kan velge en oppføring i Galleri-kontrollen og deretter drille ned i denne posten.

Når DataSource-egenskapen er angitt, kan du legge til og fjerne felt via ruten til høyre og endre hvordan de vises.

På denne skjermen kan ikke brukere endre verdier i posten, verken med eller uten hensikt. Visningsskjema-kontrollen er en skrivebeskyttet kontroll, slik at den ikke kan endre en post.

Slik legger du til en Visningsskjema-kontroll:

  1. Legg til en skjerm, og legg deretter til en Visningsskjema-kontroll
  2. Angi DataSource-egenskapen for skjema-kontrollen til Ice Cream.

Du kan velge feltene som skal vises på skjermen, og hvilken type kort som skal vises for hvert felt i ruten til høyre. Når du gjør endringer i ruten til høyre, er DataField-egenskapen på hver Kort-kontroll angitt til feltet som brukeren vil samhandle med. Skjermen bør ligne på dette eksemplet:

Ny skjerm for Ice Cream.

Til slutt må vi koble Visningsskjema-kontrollen til Galleri-kontrollen, slik at vi kan se på detaljene for en bestemt post. Så snart vi har angitt Item-egenskapen, vises den første posten fra galleriet i skjemaet vårt.

  • Angi Item-egenskapen for Visningsskjema-kontrollen til Gallery1.Selected.

    Detaljene for det valgte elementet vises i skjemaet.

    Visningsskjema for Ice Cream-datakilden som er koblet til galleriet.

Flott! Vi skal nå konsentrere oss om navigasjon: hvordan en bruker åpner detaljskjermen fra galleriskjermen og galleriskjermen fra detaljskjermen.

  • Legg til en Knapp-kontroll på skjermen, angi Text-egenskapen til Back, og angi OnSelect-egenskapen til Back().

    Denne formelen gjør at brukeren vender tilbake til galleriet når han er ferdig med å vise detaljene.

    Visningsskjema for Ice Cream-datakilden med tilbake-knappen.

Nå skal vi gå tilbake til Galleri-kontrollen og legge til navigasjon i detaljskjermen vår.

  1. Bytt til den første skjermen, som er vert for Galleri-kontrollen vår, og velg pilen i det første elementet i galleriet.

  2. Angi OnSelect-egenskapen til figuren til denne formelen:
    Navigate( Screen2, None )

    Visningsskjema for Ice Cream-datakilden med tilbakeknappen med Navigate-oppdatering.

  3. Trykk på F5, og velg deretter en pil i galleriet for å vise detaljene for et element.

  4. Velg Tilbake-knappen for å gå tilbake til galleriet med produkter, og trykk deretter på Esc.

Redigering av detaljer

Til slutt er den siste kjerneaktiviteten vår å endre innholdet i en post, som brukerne utfører i en Redigeringsskjema-kontroll.

Redigeringsskjema-kontrollen bruker to egenskaper til å vise og redigere posten:

  • DataSource-egenskapen. Navnet på datakilden som inneholder posten. Denne egenskapen fyller det høyre panelet med felt, og bestemmer visningsnavnet og datatypen (streng, tall, dato og så videre) for hvert felt, akkurat som med Visningsskjema-kontrollen. Denne egenskapen bestemmer også om hver feltverdi er gyldig, før de sendes til den underliggende datakilden.
  • Item-egenskapen. Posten som skal redigeres, som ofte er knyttet til Selected-egenskapen for Galleri-kontrollen. På den måten kan du velge en post i Galleri-kontrollen, vise den i detaljskjermen og redigere den i Redigere og opprett-skjermen.

Hvis du vil legge til en Redigeringsskjema-kontroll, gjør du følgende:

  1. Legg til en skjerm, legg til en Redigeringsskjema-kontroll, og angi deretter skjemaets DataSource-egenskap til 'Ice Cream'.
  2. Angi Item-egenskapen til Gallery1.Selected.

Nå kan du velge feltene som skal vises på skjermen. Du kan også velge hvilken type kort som skal vises for hvert felt. Når du gjør endringer i ruten til høyre, angis DataField-egenskapen for hver Kort-kontroll til feltet brukeren skal samhandle med. Skjermen bør ligne på dette eksemplet:

Vise skjema for Ice Cream-datakilden.

Disse to egenskapene er de samme som egenskapene på Visningsskjema-kontrollen. Og med disse alene kan vi vise detaljene for en post.

Redigeringsskjema-kontrollen går videre ved å tilby SubmitForm-funksjonen til å tilbakeskrive endringer til datakilden. Du bruker dette med en knapp eller bildekontroll, for å lagre en brukers endringer.

  • Legg til en Knapp-kontroll, angi kontrollens Text-egenskap til å vise Save, og angi OnSelect-egenskapen til denne formelen:
    SubmitForm( Form1 )

Redigere skjema for Ice Cream-datakilden.

Slik legger du til navigering til og fra denne skjermen:

  1. Legg til en ekstra Knapp-kontroll, angi egenskapen Text til å vise Cancel, og angi egenskapen OnSelect til denne formelen:
    ResetForm( Form1 ); Back()

    Denne formelen forkaster eventuelle ulagrede endringer, og åpner den forrige skjermen.

    Oppdatert skjerm.

  2. Angi OnSuccess-egenskapen for skjemaet til Back().

    Når oppdateringene er lagret, åpnes forrige skjerm (i dette tilfellet detaljerskjermen) automatisk.

    Redigeringsskjema med en OnSuccess-regel lagt til

  3. Legg til en knapp på Visning-skjermen, angi Text-egenskapen til å vise Edit, og angi OnSelect-egenskapen til denne formelen:
    Navigate( Screen3, None )

    Text-egenskapen oppdatert.

Du har laget en grunnleggende app med tre skjermer for å vise og skrive inn data. Hvis du vil prøve den ut, viser du galleriskjermen og trykker deretter på F5 (eller velger fremoverpilen for Forhåndsvisning-knappen nær øvre venstre hjørne på skjermen). Den rosa prikken viser hvor brukeren klikker på skjermbildet for hvert trinn.

Prøve ut Ice Cream-appen.

Opprette en oppføring

Brukeren samhandler med det samme Redigering-skjemaet for både oppdatering og oppretting av poster. Når brukeren ønsker å opprette en post, bytter NewForm-funksjonen skjemaet til Ny-modus.

Når skjemaet er i Ny-modus, er verdien for hvert felt angitt til standardverdiene for datakilden. Posten som er angitt i skjemaets Item-egenskap, ignoreres.

Når brukeren er klar til å lagre den nye posten, kjøres SubmitForm. Når skjemaet er sendt, settes skjemaet tilbake i Redigeringsmodus.

Legg til en Ny-knapp på den første skjermen:

  1. Legg til en Knapp-kontroll på skjermen med galleriet.

  2. Angi knappens Text-egenskap til New og OnSelect-egenskapen til denne formelen:
    NewForm( Form1 ); Navigate( Screen3, None )

    Denne formelen bytter Redigeringsskjema-kontrollen på Screen3 til Ny modus og åpner skjermen slik at brukeren kan fylle ut skjemaet.

Rediger skjema oppdatert.

Når Rediger og opprett-skjermen åpnes, er skjemaet tomt og klart for at brukeren skal legge til et element. SubmitForm-funksjonen sikrer at en post opprettes i stedet for å oppdateres, når brukeren velger Lagre-knappen. Hvis brukeren velger Avbryt-knappen, bytter ResetForm-funksjonen skjemaet tilbake til Rediger-modus, og Back-funksjonen åpner skjermen for å bla gjennom galleriet.

Slette en oppføring

  1. Legg til en knapp på Visning-skjermen, og angi Text-egenskapen til å vise Slett.

  2. Sett knappens OnSelect-egenskap til denne formelen:
    Remove( 'Ice Cream', Gallery1.Selected ); Back()

    Fjerne en oppføring.

Håndtere feil

I denne appen oppstår det en feil når verdien i et felt ikke er gyldig, et obligatorisk felt er tomt, du er koblet fra nettverket, eller en rekke andre problemer dukker opp.

Hvis SubmitForm av en eller annen grunn mislykkes, inneholder Error-egenskapen for Redigeringsskjema-kontrollen en feilmelding som vises til brukeren. Brukeren bør være i stand til å løse problemet og sende inn endringen på nytt med denne informasjonen, eller han kan avbryte oppdateringen.

  1. Legg til en Etikett-kontroll på Rediger og opprett-skjermen, og flytt den til rett under Lagre-knappen. Det er lett å se eventuelle feil når brukeren velger denne kontrollen til å lagre endringer.

  2. Angi Text-egenskapen for Etikett-kontrollen til å vise Form1.Error.

    Visningsskjema med en Rediger-knapp lagt til

I en app som Power Apps genererer fra data, er AutoHeight-egenskapen på denne kontrollen angitt til sann, slik at ingen mellomrom brukes, hvis det ikke oppstår feil. Height- og Y-egenskapene for Redigeringsskjema-kontrollen justeres også dynamisk for å ta hensyn til at denne kontrollen vokser når det oppstår en feil. Hvis du vil ha mer informasjon, kan du generere en app fra eksisterende data, og undersøke disse egenskapene. Tekstbokskontrollen for feil er svært kort når det er ikke har oppstått noen feil, og du må kanskje åpne Avansert visning (tilgjengelig på Visning-fanen) for å velge denne kontrollen.

App fra redigeringsskjema for data med tekstkontroll for feil valgt.

App fra redigeringsskjema for data med skjemakontroll valgt.

Oppdater data

Datakilden oppdateres hver gang brukeren åpner appen, men brukeren vil kanskje oppdatere postene i galleriet uten å lukke appen. Legg til en Oppdater-knapp, slik at brukeren kan velge den for å oppdatere dataene manuelt:

  1. På skjermen med Galleri-kontrollen legger du til en Knapp-kontroll og angir at Tekst-egenskapen skal vise Oppdater.

  2. Angi OnSelect-egenskapen for denne kontrollen til denne formelen:
    Refresh( 'Ice Cream' )

    Oppdatere datakilden.

I appen som Power Apps har generert fra data, er det to kontroller øverst på Bla gjennom-skjermen som vi ikke har gått gjennom. Ved hjelp av disse kontrollene, kan brukeren søke etter én eller flere poster, sortere listen over poster i stigende eller synkende rekkefølge, eller begge deler.

Kontroller for sortering og søking på skjermbildet Bla gjennom.

Når brukeren velger Sorter-knappen, reverseres sorteringsrekkefølgen i galleriet. En kontekstvariabel brukes til å spore retningen som galleriet er sortert i, hvis du vil opprette denne virkemåten. Når brukeren velger denne knappen, oppdateres variabelen, og retningen reverseres. OnSelect-egenskapen for sorteringsknappen er angitt til denne formelen: UpdateContext( {SortDescending1: !SortDescending1} )

UpdateContext-funksjonen oppretter kontekstvariabelen for SortDescending1 hvis den ikke allerede finnes. Funksjonen vil lese verdien for variabelen og angi den til det logiske motsatte ved å bruke ! operatoren. Hvis verdien er sann, blir den usann. Hvis verdien er usann, blir den sann.

Formelen for Items-egenskapen for Galleri-kontrollen bruker denne kontekstvariabelen, sammen med teksten i TextSearchBox1-kontrollen:

Sort( 
    If( IsBlank(TextSearchBox1.Text),
        Assets,
        Filter( Assets, TextSearchBox1.Text in Text(ApproverEmail) ) 
    ),
    ApproverEmail,
    If(SortDescending1, Descending, Ascending) 
)

La oss gjøre det enklere å forstå:

  • På utsiden har vi Sort-funksjonen, som tar tre argumenter: en tabell, et felt å sortere i og retningen du vil sortere i.

    • Sorteringsretningen er hentet fra kontekstvariabelen som veksler når brukeren velger ImageSortUpDown1-kontrollen. Den sanne/usanne verdien blir oversatt til konstantene Synkende og Stigende.
    • Feltet som skal sorteres i, er fastsatt til ApproverEmail. Hvis du endrer feltene som vises i galleriet, må du endre dette argumentet også.
  • På innsiden har vi Filter-funksjonen, som tar en tabell som et argument og et uttrykk som evalueres for hver post.

    • Tabellen er den rå Assets-datakilden, som er utgangspunkt før filtrering eller sortering.
    • Uttrykket søker etter en forekomst av strengen i TextSearchBox1 i ApproverEmail-feltet. Igjen, hvis du endrer feltene som vises i galleriet, må du også oppdatere dette argumentet.
    • Hvis TextSearchBox1 er tom, brukeren ønsker å vise alle poster, og Filter-funksjonen blir forbigått.

Dette er bare ett eksempel. Du kan lage din egen formel for Items-egenskapen, avhengig av behovene til appen din, ved å skrive Filter, Sort og andre funksjoner og operatorer sammen.

Skjermutforming

Vi har så langt ikke diskutert andre måter å fordele kontroller på tvers av skjermer på. Dette er fordi du har mange alternativer, og det beste valget avhenger av behovene til den bestemte appen.

Fordi eiendomstjenester på telefonskjermer er såpass begrenset, vil du trolig ønske å bla gjennom, vise, og redigere/opprette på forskjellige skjermer. I dette emnet åpner Navigate- og Back-funksjonene hver skjerm.

På et nettbrett kan du bla gjennom, vise og redigere/opprette på to, eller bare én skjerm. For sistnevnte vil verken Navigate- eller Back-funksjonen være nødvendig.

Hvis brukeren arbeider på den samme skjermen, må du passe på at brukeren ikke kan endre valget i Galleri og risikere å miste endringer i Redigeringsskjema-kontrollen. Hvis du vil forhindre at brukeren skal velge en annen post når du ikke har lagret endringer til en annen post ennå, kan du angi Disabled-egenskapen for galleriet til denne formelen:
EditForm.Unsaved

Obs!

Kan du fortelle oss om språkinnstillingene for dokumentasjonen? Ta en kort undersøkelse. (vær oppmerksom på at denne undersøkelsen er på engelsk)

Undersøkelsen tar rundt sju minutter. Det blir ikke samlet inn noen personopplysninger (personvernerklæring).