Power Fx-variabler

Obs!

Microsoft Power Fx er det nye navnet på formelspråket for lerretsapper. Disse artiklene pågår når Microsoft trekker ut språket fra lerretsapper, integrerer det med andre Microsoft Power Platform produkter og gjør det tilgjengelig som åpen kilde. Begynn med Microsoft Power Fx-oversikten for å få en innføring i språket.

Lær hvordan Power Fx-variabler skiller seg fra variabler i verktøy som Visual Basic eller JavaScript, og når formler er et bedre valg. Denne artikkelen forklarer hvordan du velger globale variabler, kontekstvariabler eller samlinger for å administrere appverdier og -tilstand.

I andre verktøy kan du eksplisitt utføre en beregning og lagre resultatet i en variabel. Power Fx og Excel omberegner imidlertid automatisk formler etter som inndataene endres, slik at du vanligvis ikke trenger å opprette og oppdatere variabler. Ved å følge denne fremgangsmåten når det er mulig, kan du enklere opprette, forstå og vedlikeholde appen.

I noen tilfeller må du bruke variabler i Power Fx. Power Fx utvider Excel modell ved å legge til formler for virkemåte. Disse formlene kjøres for eksempel når en bruker velger en knapp. I en formel for virkemåte er det ofte nyttig å angi en variabel som skal brukes i andre formler.

Generelt bør du unngå å bruke variabler. Men noen ganger er det bare en variabel som kan aktivere opplevelsen som du vil ha. Du oppretter implisitt og skriver inn variabler når de vises i funksjoner som angir verdiene.

Å oversette Excel til Power Fx

Excel

La oss gå gjennom hvordan Excel fungerer. En celle kan inneholde en verdi, for eksempel et tall eller en streng, eller en formel som er basert på verdiene i andre celler. Etter at brukeren angir en annen verdi i en celle, vil Excel automatisk beregne formler som er avhengige av den nye verdien på nytt. Du trenger å gjøre noe programmering for å aktivere denne virkemåten.

I følgende eksempel er cellen A3 satt til formelen A1+A2. Hvis A1 eller A2 endres, beregnes A3 automatisk på nytt for å gjenspeile endringen. Denne virkemåten krever ingen koding utenfor selve formelen.

Skjermbilde av en Excel formel som beregner summen på nytt etter at en inndataverdi endres.

Excel har ikke variabler. Verdien til en celle som inneholder en formel endres basert på inndataene, men det finnes ingen måte å huske resultatet av en formel på og lagre dem i en celle, eller noen andre steder. Hvis du endrer en celleverdi, kan hele regnearket endres, og eventuelle tidligere beregnede verdier går tapt. En Excel-bruker kan kopiere og lime inn celler, men det er noe brukeren kontrollerer manuelt og er ikke mulig med formler.

Power Fx

Logikk du oppretter i Power Fx, fungerer omtrent på samme måte som Excel. I stedet for å oppdatere celler, kan du legge til kontroller hvor som helst på en skjerm og navngi dem for bruk i formler.

I Power Apps kan du for eksempel gjenskape virkemåten til Excel i en app ved å legge til en Label-kontroll, kalt Label1, og to Text input-kontroller, kalt TextInput1 og TextInput2. Hvis du deretter angir Tekst-egenskapen for Label1 til TextInput1.Text + TextInput2.Text, viser den alltid summen av tallene i TextInput1 og TextInput2 automatisk.

Skjermbilde av to tekstinndata og en etikett som beregner en sum med en Power Fx-formel.

Legg merke til at Label1-kontrollen som er valgt, viser Text-formelen i formellinjen øverst på skjermen. Her finner du formelen TextInput1.Text + TextInput2.Text. Denne formelen oppretter en avhengighet mellom disse kontrollene, på samme måte som avhengigheter opprettes mellom cellene i en Excel-arbeidsbok. La oss endre verdien av TextInput1:

Skjermbilde av en Power Fx-formel som automatisk beregner en sum på nytt når en inndata endres.

Formelen for Etikett1 beregnes automatisk på nytt, og viser den nye verdien.

I Power Fx kan du bruke formler til å bestemme, ikke bare den primære verdien av en kontroll, men også egenskaper som formatering. I det neste eksemplet viser en formel for Color-egenskapen for etiketten automatisk negative verdier i rødt. If-funksjonen bør du kunne kjenne igjen fra Excel:

If( Value(Label1.Text) < 0, Color.Red, Color.Black )

Skjermbilde av en Power Fx-formel som endrer en etikettfarge når den beregnede verdien er negativ.

Du kan bruke formler for et bredt utvalg av scenarioer:

  • En kartkontroll kan vise den gjeldende posisjonen din med en formel som bruker Location.Latitude og Location.Longitude ved hjelp av enhetens GPS. Når du flytter på deg, sporer kartet automatisk plasseringen din.
  • Andre brukere kan oppdatere datakilder. Andre i gruppen kan kanskje for eksempel oppdatere elementer i en SharePoint-liste. Når du oppdaterer en datakilde, beregnes eventuelle avhengige formler automatisk på nytt for å gjenspeile de oppdaterte dataene. Videre kan du angi egenskapen Items for et galleri til formelfilteret( SharePointList ), som automatisk viser det nylig filtrerte settet med poster.

Fordeler med Power Fx-formler

Bruk av formler til å bygge apper gir mange fordeler:

  • Hvis du kjenner Excel, kjenner du også Power Fx. Modellen og formelspråket er det samme.
  • Hvis du bruker andre programmeringsverktøy, bør du vurdere hvor mye kode du trenger for å utføre disse eksemplene. I Visual Basic måtte du ha skrevet en hendelsesbehandling for endringshendelsen på hver kontroll for tekstinndata. Koden for å utføre beregningen i hver av disse hendelsesbehandlingene er overflødig og kan komme ut av synkronisering, eller du må skrive en felles underforståelse. I Power Fx utfører du alt dette arbeidet med én enkelt formel med én linje.
  • Hvis du vil forstå hvor teksten i Label1 kommer fra, vet du nøyaktig hvor du skal lete: formelen i tekstegenskapen . Det finnes ingen annen måte å påvirke teksten i kontrollen. I et tradisjonelt programmeringsverktøy kan eventuelle hendelsesbehandlinger eller delrutiner endre verdien for etiketten, fra hvor som helst i programmet. Denne fremgangsmåten kan gjøre det vanskelig å spore opp når og hvor en variabel ble endret.
  • Hvis brukeren endrer en Glidebryter-kontroll og deretter ombestemmer seg, kan de endre glidebryteren tilbake til den opprinnelige verdien. Det er som om ingenting noensinne er endret: appen viser de samme kontrollverdiene som før. Det er ingen konsekvenser for å eksperimentere og spørre «hva om», på samme måte som i Excel.

Generelt sett, hvis du kan oppnå en effekt ved hjelp av en formel, er det bedre. La formelmotoren i Power Fx arbeide for deg.

Slik vet du når du skal bruke variabler

La oss endre den enkle kalkulatoren til å fungere som en gammeldags kalkulator, med en løpende sum. Hvis du velger en Legg til-knapp , legger du til et tall i den løpende summen. Hvis du velger en Fjern-knapp , tilbakestiller du den løpende summen til null.

Vis Beskrivelse
Skjermbilde av en maskinapp som legges til med en nullsum og 77 angitt i tekstinndataene. Når appen starter, er den løpende summen 0.

Den røde prikken representerer brukerens finger i tekstinndataboksen, der brukeren skriver inn 77.
Skjermbilde av tilleggsmaskinen med 77 i tekstinndata når brukeren velger Legg til. Brukeren velger Legg til-knappen.
Skjermbilde av tilleggsmaskinen som viser totalt 77 før ytterligere 77 legges til. 77 legges til den løpende totalsummen.

Brukeren velger Legg til-knappen på nytt.
Skjermbilde av tilleggsmaskinen som viser en løpende sum på 154 før brukeren velger Fjern. 77 legges til på nytt i den løpende totalsummen, noe som resulterer i 154.

Brukeren velger Tøm-knappen.
Skjermbilde av tilleggsmaskinen etter at den løpende summen er tilbakestilt til null. Den løpende totalsummen er tilbakestilt til 0.

Kalkulatoren bruker noe som ikke finnes i Excel: en knapp. I denne appen kan du ikke bruke bare formler til å beregne den løpende summen, fordi verdien avhenger av en serie med handlinger som brukeren gjør. I stedet må du registrere og oppdatere den løpende totalsummen manuelt. De fleste programmeringsverktøy lagrer denne informasjonen i en variabel.

Noen ganger trenger du en variabel for at appen skal oppføre seg slik du ønsker. Men tilnærmingen leveres med advarsler:

  • Du må oppdatere den løpende summen manuelt. Automatisk omberegning gjør ikke dette for deg.
  • Du kan ikke beregne den løpende summen basert på verdiene for andre kontroller. Det avhenger av hvor mange ganger brukeren valgte Legg til-knappen, og hvilken verdi som var i kontrollen for tekstinndata hver gang. Angav brukeren 77, og valgte Legg til to ganger, eller angav de 24 og 130 for hvert av tilleggene? Du kan ikke se forskjellen etter at totalen når 154.
  • Endringer i totalen kan komme fra forskjellige baner. I dette eksemplet kan både Legg til- og Fjern-knappene oppdatere summen. Hvilken knapp forårsaker problemet, hvis appen ikke fungerer slik du forventer?

Bruke en global variabel

Hvis du vil opprette en tilleggsmaskin, trenger du en variabel for å holde den løpende summen. De enkleste variablene å arbeide med i Power Fx er globale variabler.

Slik fungerer globale variabler:

  • Bruk Set-funksjonen til å angi verdien for den globale variabelen. Set( MyVar, 1 ) setter den globale variabelen MyVar til verdien 1.
  • Bruk den globale variabelen ved å referere til navnet du brukte med Sett-funksjonen . I dette tilfellet returnerer MyVar1.
  • Globale variabler kan inneholde en hvilken som helst verdi, inkludert strenger, tall, poster, og tabeller.

La oss gjenoppbygge kalkulatoren vår ved hjelp av en global variabel:

  1. Legg til en teksinndatakontroll kalt TextInput1, og to knapper, kalt Knapp1 og Knapp2.

  2. Angi Text-egenskapen for Button1 til "Legg til", og angi Text-egenskapen for Button2 til "Tøm".

  3. For å oppdatere den løpende summen hver gang en bruker velger Legg til-knappen, kan du angi OnSelect-egenskapen til denne formelen:

    Set( RunningTotal, RunningTotal + TextInput1.Text )

    Det at denne formelen eksisterer , etablerer RunningTotal som en global variabel som inneholder et tall på grunn av en +-operator. Du kan referere til RunningTotal hvor som helst i appen. Når brukeren åpner denne appen, har RunningTotal en startverdi som er tom.

    Første gang en bruker velger Legg til-knappen og Set kjører, blir RunningTotal angitt til verdien RunningTotal + TextInput1.

    Skjermbilde av Egenskapen Legg til-knappen OnSelect ved hjelp av Set for å oppdatere en global Variabel for Power Fx.

  4. For å angi den løpende totalsummen til 0 hver gang en bruker velger Tøm-knappen, kan du angi OnSelect-egenskapen til denne formelen:

    Set( RunningTotal, 0 )

    Skjermbilde av Clear-knappen OnSelect-egenskapen ved hjelp av Set for å tilbakestille en global Power Fx-variabel.

  5. Legg til en Label-kontroll, og angi Text-egenskapen til RunningTotal.

    Denne formelen beregner automatisk på nytt og viser brukeren verdien av RunningTotal etter hvert som den endres basert på knappene som brukeren velger.

    Skjermbilde av en etiketttekstegenskap som viser verdien til den globale variabelen RunningTotal.

  6. Forhåndsvis appen, og du har tilleggsmaskinen som beskrevet tidligere. Skriv inn et tall i tekstboksen og trykk på Legg til-knappen flere ganger. Når du er klar, går du tilbake til redigeringsopplevelsen ved hjelp av ESC-tasten.

    Skjermbilde av forhåndsvisningen av maskinen med en inndataverdi og den beregnede løpende summen.

  7. Velg Fil-menyen, og velg Variabler i den venstre ruten, for å se verdien til den globale variabelen.

    Skjermbilde av alternativet globale variabler som er valgt fra Fil-menyen i appredigeringsprogrammet.

  8. Hvis du vil se alle steder der variabelen blir definert og brukt, velger du den.

    Skjermbilde av plasseringene der en global variabel er definert og brukt i appen.

Ulike typer variabler

Power Fx har to typer variabler:

Variabel type Område Beskrivelse Funksjoner som oppretter
Globale variabler App Enklest å bruke. Inneholder et tall, en tekststreng, boolsk, post, tabell med mer. Du kan referere til den fra hvor som helst i appen. Set
Samlinger App Inneholder en tabell som du kan referere til fra hvor som helst i appen. Du kan endre innholdet i tabellen i stedet for å angi det som helhet. Du kan lagre den på den lokale enheten for senere bruk. Collect
ClearCollect

Når du bruker Power Apps, ser du en tredje type variabel:

Variabel type Område Beskrivelse Funksjoner som oppretter
Kontekstvariabler Skjerm Bra for å sende verdier til en skjerm, omtrent som parametere er til en prosedyre i andre språk. Du kan referere til det fra bare ett skjermbilde. UpdateContext
Navigate

Opprette og fjerne variabler

Du oppretter alle variabler implisitt når de vises i en Set-, UpdateContext-, Navigate-, Collect- eller ClearCollect-funksjon . Hvis du vil deklarere en variabel og dens type, kan du bare inkludere den i noen av disse funksjonene hvor som helst i appen. Ingen av disse funksjonene oppretter variabler, de fyller bare ut variabler med verdier. Du deklarerer aldri variabler eksplisitt som du kanskje må i andre programmeringsverktøy, og all innskriving er implisitt fra bruk.

Det kan for eksempel hende at du har en knappekontroll med en OnSelect-formel som er lik Set( X, 1 ). Denne formelen etablerer X som en variabel med en type tall. Du kan bruke X i formler som et tall, og denne variabelen har en tom verdi etter at du har åpnet appen, men før du velger knappen. Når du velger knappen, gir du X verdien 1.

Hvis du legger til en annen knapp og angir OnSelect-egenskapen til Set( X, "Hello" ), oppstår det en feil fordi typen (tekststrengen) ikke samsvarer med typen i forrige sett (tall). Alle implisitte definisjoner av variabelen må være enige om typen. Igjen, alt dette skjedde fordi du nevnte X i formler, ikke fordi noen av disse formlene faktisk kjørte.

Du fjerner en variabel ved å fjerne alle funksjonene Set, UpdateContext, Navigate, Collect eller ClearCollect som implisitt etablerer variabelen. Uten disse funksjonene eksisterer ikke variabelen. Du må også fjerne eventuelle referanser til variabelen fordi de forårsaker en feil.

Levetid og opprinnelig verdi for variabel

Appen inneholder alle variabler i minnet mens den kjøres. Verdiene som holdes i variabler, går tapt etter at appen lukkes.

Du kan lagre innholdet i en variabel i en datakilde ved hjelp av funksjonen Patch eller Collect. Du kan også lagre verdier i samlinger på den lokale enheten ved hjelp av SaveData-funksjonen.

Når brukeren åpner appen, har alle variabler en startverdi som tom.

Lese variabler

Bruk variabelens navn til å lese verdien. Du kan for eksempel definere en variabel med denne formelen:

Set( Radius, 12 )

Deretter kan du bare bruke Radius hvor som helst som du kan bruke et tall, og det erstatter med 12:

Pi() * Power( Radius, 2 )

Hvis du angir en kontekstvariabel som det samme navnet som en global variabel eller en samling, har kontekstvariabelen forrang. Du kan imidlertid fremdeles referere til den globale variabelen eller samlingen hvis du bruker tvetydighetsoperatoren[@Radius].

Bruk en kontekstvariabel (bare Power Apps)

Slik oppretter du tilleggsmaskinen ved hjelp av en kontekstvariabel i stedet for en global variabel.

Slik fungerer kontekstvariablene:

  • Du etablerer og angir kontekstvariabler implisitt ved å bruke funksjonen eller UpdateContext eller Navigate. Når appen starter, er startverdien for alle kontekstvariabler tom.
  • Du oppdaterer kontekstvariablene med poster. I andre programmeringsverktøy bruker du vanligvis "=" for tildeling, som i "x = 1". For kontekstvariablene bruker du i stedet { x: 1 }. Når du bruker en kontekstvariabel, bruker du navnet direkte uten oppføringssyntaksen.
  • Du kan også angi en kontekstvariabel når du bruker Navigate-funksjonen til å vise en skjerm. Hvis du tenker på en skjerm som en slags prosedyre eller delrutine, ligner denne tilnærmingen på parameteroverføring i andre programmeringsverktøy.
  • Kontekstvariablene er begrenset til konteksten for en enkelt skjerm, som er hvor de får navnet sitt fra, med unntak av Navigate. Du kan ikke bruke eller angi dem utenfor denne konteksten.
  • Kontekstvariabler kan inneholde en hvilken som helst verdi, inkludert strenger, tall, poster, og tabeller.

La oss gjenoppbygge kalkulatoren vår ved hjelp av en kontekstvariabel:

  1. Legg til en teksinndatakontroll kalt TextInput1, og to knapper, kalt Knapp1 og Knapp2.

  2. Angi Text-egenskapen for Button1 til "Legg til", og angi Text-egenskapen for Button2 til "Tøm".

  3. For å oppdatere den løpende summen hver gang en bruker velger Legg til-knappen, kan du angi OnSelect-egenskapen til denne formelen:

    UpdateContext( { RunningTotal: RunningTotal + TextInput1.Text } )

    Det at denne formelen eksisterer , etablerer RunningTotal som en kontekstvariabel som inneholder et tall på grunn av en +-operator. Du kan referere til RunningTotal hvor som helst i dette skjermbildet. Når brukeren åpner denne appen, har RunningTotal en startverdi som er tom.

    Første gang en bruker velger Legg til-knappen og UpdateContext kjører, blir RunningTotal angitt til verdien RunningTotal + TextInput1.

    Skjermbilde av OnSelect-egenskapen Legg til-knappen som oppdaterer kontekstvariabelen RunningTotal.

  4. For å angi den løpende totalsummen til 0 hver gang en bruker velger Tøm-knappen, kan du angi OnSelect-egenskapen til denne formelen:

    UpdateContext( { RunningTotal: 0 } )

    På nytt ser vi at UpdateContext brukes med formelen UpdateContext( { RunningTotal: 0 } ).

    Skjermbilde av Clear-knappen OnSelect-egenskapen som tilbakestiller kontekstvariabelen RunningTotal.

  5. Legg til en Label-kontroll, og angi Text-egenskapen til RunningTotal.

    Denne formelen beregner automatisk på nytt og viser brukeren verdien av RunningTotal etter hvert som den endres basert på knappene som brukeren velger.

    Skjermbilde av en etiketttekstegenskap som viser verdien for kontekstvariabelen RunningTotal.

  6. Forhåndsvis appen, og du har tilleggsmaskinen som beskrevet tidligere. Skriv inn et tall i tekstboksen og trykk på Legg til-knappen flere ganger. Når du er klar, går du tilbake til redigeringsopplevelsen ved hjelp av ESC-tasten.

    Skjermbilde av forhåndsvisningen av appen med en tekstinndataverdi og en kontekstvariabel som kjører totalsum.

  7. Du kan angi verdien til en kontekstvariabel mens du navigerer til en skjerm. Denne teknikken er nyttig for å sende «kontekst» eller «parametere» fra én skjerm til en annen. Hvis du vil demonstrere denne teknikken, setter du inn et skjermbilde, setter inn en knapp og angir OnSelect-egenskapen til denne formelen:

    Navigate( Screen1, None, { RunningTotal: -1000 } )

    Skjermbilde av en onselect-egenskap ved hjelp av Navigate for å sende en kontekstvariabel til Screen1.

    Hold nede ALT mens du velger denne knappen for å vise Screen1 og angi kontekstvariabelen RunningTotal til -1000.

    Skjermbilde av Screen1 etter navigering angir kontekstvariabelen RunningTotal til negativ 1000.

  8. Velg Fil-menyen, og velg Variabler i den venstre ruten, for å se verdien til kontekstvariabelen.

    Skjermbilde av alternativet kontekstvariabler valgt fra Fil-menyen i appredigeringsprogrammet.

  9. Velg kontekstvariabelen for å se hvor den er definert og brukt.

    Skjermbilde av plasseringene der en kontekstvariabel er definert og brukt i appen.

Bruke en samling

Til slutt skal vi se på å opprette vår egen kalkulator med en samling. Siden en samling inneholder en tabell som du enkelt kan endre, beholder denne maskinen et «papirbånd» av hver verdi etter hvert som du skriver dem inn.

Slik fungerer samlinger:

  • Bruk ClearCollect-funksjonen til å opprette og angi samlinger. Du kan bruke Collect-funksjonen i stedet, men den krever effektivt en annen variabel i stedet for å erstatte den gamle.
  • En samling er en type datakilde, og derfor en tabell. Hvis du vil ha tilgang til en enkelt verdi i en samling, kan du bruke First-funksjonen, og trekke ut et felt fra den resulterende posten. Hvis du bruker én enkelt verdi med ClearCollect, er denne verdien verdifeltet , som i dette eksemplet:
    First(VariableName).Value

La oss opprette kalkulatoren vår ved å bruke en samling:

  1. Legg til en Text input-kontroll kalt TextInput1, og to knapper, kalt Button1 og Button2.

  2. Angi Text-egenskapen for Button1 til "Legg til", og angi Text-egenskapen for Button2 til "Tøm".

  3. For å oppdatere den løpende summen hver gang en bruker velger Legg til-knappen, kan du angi OnSelect-egenskapen til denne formelen:

    Collect( PaperTape, TextInput1.Text )

    Det at denne formelen eksisterer, etablerer PaperTape som en samling som inneholder en tabell med én kolonne med tekststrenger. Du kan referere til PaperTape hvor som helst i denne appen. Når en bruker åpner denne appen, er PaperTape en tom tabell.

    Når denne formelen kjører, legger den til den nye verdien på slutten av samlingen. Fordi du legger til én enkelt verdi, plasserer Collect den automatisk i en tabell med én kolonne, og kolonnens navn er Verdi, som du bruker senere.

    Skjermbilde av Egenskapen Legg til-knappen OnSelect som samler inn en inndataverdi i PaperTape.

  4. Angi OnSelect-egenskapen til denne formelen for å tømme listepapiret, når brukeren velger Tøm-knappen:

    Clear( PaperTape )

    Skjermbilde av Clear-knappen OnSelect-egenskapen som fjerner alle verdier fra PaperTape.

  5. Legg til en etikett og angi Text-egenskapen til denne formelen for å vise den løpende summen:

    Sum( PaperTape, Value )

    Skjermbilde av en etiketttekstegenskap ved hjelp av Sum for å beregne totalsummen for PaperTape.

  6. Trykk på F5 for å åpne forhåndsvisning, skriv inn tall i Tekstinndata-kontrollen, og velg knapper, hvis du vil kjøre kalkulatoren.

    Skjermbilde av den samlingsbaserte tilleggsmaskinen med en inndataverdi og løpende totalsum.

  7. Hvis du vil gå tilbake til standardarbeidsområdet, trykker du esc-tasten .

  8. Hvis du vil vise listepapir, kan du sette inn en Datatabell-kontroll, og angi Items-egenskapen til denne formelen:

    PaperTape

    I ruten til høyre velger du Rediger felt, og velg deretter Legg til felt, velg Verdi-kolonnen og velg deretter Legg til for å vise den.

    Skjermbilde av en datatabell som viser verdiene som er lagt til i PaperTape-samlingen.

  9. Hvis du vil se verdiene i samlingen, kan du velge SamlingerFil-menyen.

    Skjermbilde av Samlinger-visningen som viser de lagrede verdiene i PaperTape-samlingen.

  10. Legg til to ekstra knappekontroller og angi Text-egenskapene til Last inn og Lagre for å lagre og hente samlingen. Angi OnSelect-egenskapen for Load-knappen til denne formelen:

    Clear( PaperTape ); LoadData( PaperTape, "StoredPaperTape", true )

    Du må tømme samlingen først, siden LoadData vil tilføye de lagrede verdiene på slutten av samlingen.

    Skjermbilde av Egenskapen Load button OnSelect (Last inn) fjerner og laster inn PaperTape-samlingen.

  11. Angi OnSelect-egenskapen for Save-knappen som denne formelen:

    SaveData( PaperTape, "StoredPaperTape" )

    Skjermbilde av Lagre-knappen OnSelect-egenskapen som lagrer PaperTape-samlingen lokalt.

  12. Forhåndsvis på nytt ved å trykke F5-tasten , skrive inn tall i tekstinndatakontrollen og velge knapper. Velg Lagre-knappen. Lukk og last inn appen, og velg Last inn-knappen for å laste inn samlingen på nytt.