Lõuendirakenduse kirjete ja tabelite mõistmine

Rakenduses Power Apps saate luua lõuendirakenduse, mis võtab teavet, Microsoft Excelist, SharePointist, SQL-i serverist ja mitmest teisest allikast, mis talletavad andmeid kirjete ja tabelitena. Seda tüüpi andmetega kõige tõhusamalt töötamiseks vaadake üle nende struktuuride aluseks olevad kontseptsioonid.

  • Kirje sisaldab ühte või mitut liiki teavet isiku, koha või asja kohta. Näiteks võib kirje sisaldada ühe kliendi nime, meiliaadressi ja telefoninumbrit. Muud tööriistad viitavad kirjele, kui "reale" või "üksusele".
  • Tabelis on üks või mitu sama liiki teavet sisaldavat kirjet. Näiteks võib tabeö sisaldada 50 kliendi nimesid, meiliaadresse ja telefoninumbreid.

Rakenduses saate kasutada valemeid kirjete ja tabelite loomiseks, värskendamiseks ja nendega manipuleerimiseks. Arvatavasti loete ja kirjutate andmeid välisele andmeallikale, mis on laiendatud tabel. Lisaks võite luua ühe või mitu sisemist tabelit, mida nimetatakse kogumikeks.

Saate luua mitmesuguseid valemeid, mis kasutavad argumendina tabeli nime, samamoodi kui Excel kasutab argumentidena ühte või enamat lahtri viidet. Mõni valem tagastab Power Appssis tabeli, mis kajastab teisi teie määratud argumente. Näiteks võite luua valemi järgmistel eesmärkidel.

  • Kirje värskendamiseks tabelis, määrates selle tabeli üheks mitmest argumendist funktsioonile Paik
  • tabeli veergude lisamiseks, eemaldamiseks ja ümbernimetamiseks, määrates selle tabeli argumendiks funktsioonidele AddColumns, DropColumns või RenameColumns. Ükski nendest funktsioonidest ei muuda algset tabelit. Selle asemel tagastab funktsioon uue tabeli, mis põhineb teistel teie määratud argumentidel.

Tabeli elemendid

Tabelielemendid.

Kirjed

Iga kirje sisaldab vähemalt ühte liiki teavet isiku, koha või asja kohta. Ülaltoodud näites on kuvatud iga toote (šokolaad, leib ja vesi) kirje ja veerg iga teabekategooria kohta (hind, kogus laos ja tellimuse kogus).

Valemis saate viidata kirjele, mis on väljaspool tabeli konteksti, kasutades looksulgusid. Näiteks see kirje { Nimi: "Maasikad", hind: 7,99 } pole tabeliga seostatud. Pange tähele, et väljanimed nagu Nimi ja Hind, ei ole selles näites jutumärkides.

Väljad

Väli on kirjes üksik teave. Seda sorti välja saab kindla kirje veerus väärtusena visualiseerida.

Nii nagu juhtelemendi puhul, viitate kirje väljale, kasutades kirjel funktsiooni . tehtemärki. Näiteks First(Products).Name tagastab esimesele kirjele tabelis Tooted välja Nimi.

Väli võib sisaldada mõnda muud kirjet või tabelit, nagu näidatakse funktsiooni GroupBy näites. Soovi korral saate pesastada sellise arvu kirjete ja tabelite tasemeid kui soovite.

Veerud

Veerg viitab tabeli ühe või mitme kirje samale väljale. Eeltoodud näites on igal tootel hinna väli ja see hind on kõigi toodete jaoks samas veerus. Ülaltoodud tabelis on neli veergu, mis kuvatakse ülaosas horisontaalselt.

  • Nimi
  • Hind
  • Kogus laos
  • Kogus tellimuses

Veeru nimi kajastab selle veeru välju.

Kõik veerus olevad väärtused on samast andmetüübist. Eeltoodud näites on veerus "Kogus laos" alati arv, ja see ei tohi sisaldada stringi (nt "12 ühikut") ühe kirje jaoks. Mis tahes välja väärtus võib olla ka tühi.

Võimalik, et olete teistes tööriistades viidanud veergudele kui "väljad".

Märkus

Selliste andmeallikate nagu SharePoint, Excel või Power BI paanid, mis sisaldavad veerunimesid tühikutega, asendab Power Apps tühikud väärtusega "_x0020_". Näiteks "Veeru nimi" rakenduses SharePoint, Excel või Power BI paan kuvatakse andmepaigutuses kuvamisel "Column_x0020_Name" rakenduses Power Apps valemis.

Table

Tabel koosneb ühest või mitmest kirjest, millest igaühel on mitu välja, millel on üle kirjete ühtsed nimed.

Igal tabelil, mis on talletatud andmeallikas või kogumis, on nimi, mille abil saate viidata tabelile ja edastada See funktsioonidele, mis võtavad tabeleid argumentidena. Tabelis võivad olla ka funktsiooni või valemi tulemid.

Nagu järgmises näites, saate valemis tabelit väljendada, kasutades funktsiooni Tabel koos määratud kirjetega, mida väljendate looksulgudes.

Table( { Value: "Strawberry" }, { Value: "Vanilla" } )

Saate nurksulgudega määratleda ka ühe veeruga tabeli. Samaväärne võimalus kirjutada eespool toodut on järgmine.

[ "Strawberry", "Vanilla" ]

Tabeli valemid

Excelis ja Power Appsis kasutate arvude ja tekstistringide manipuleerimiseks valemeid või teksti sarnastel viisidel.

  • Tippige Excelis väärtus, nagu 42, lahtrisse A1 ja seejärel tippige valem, nagu A1+2, teise lahtrisse, et kuvada väärtust 44.
  • Power Appsis määrake Liugur1 atribuut vaikeväärtus väärtusele 42 ja määrake sildi atribuudi Tekst valemiks Slider1.Value + 2, et kuvada väärtust 44.

Mõlemal juhul muutub arvutatud väärtus automaatselt, kui muudate argumentide väärtusi (nt numbrit lahtris A1 või Liugur1 väärtust).

Samuti saate kasutada valemeid, et pääseda juurde ja manipuleerida tabelites ja kirjetes olevaid andmeid. Saate tabelite nimesid kasutada argumentidena mõnes valemis, näiteks nagu Min(Catalog, Price), et kuvada madalaimat väärtust tabeli Kataloog veerus Hind. Muud valemid annavad terve tabeli tagastatavate väärtustena nt RenameColumns(Catalog, "Price", "Cost"), mis tagastab kõik kirjed tabelist Kataloog, kuid muudab selle veeru Hind nimeks Maksumus.

Nagu numbritega, nii ka tabeleid ja kirjeid sisaldavad valemid arvutatakse automaatselt aluseks olevate tabeli või kirje muudatuste põhjal ümber. Kui toote kulu tabelis Kataloog langeb alla eelmise miinimumi, muudetakse valemi Min tagastatav väärtus automaatselt sellele vastavaks.

Vaatame läbi mõned lihtsad näited.

  1. Looge telefoni jaoks tühi rakendus ning lisage vertikaalne juhtelement Galerii, mis sisaldab teisi juhtelemente.

    Vaikimisi kuvab ekraan kohatäite teksti tabelist nimega CustomGallerySample. Ekraani juhtelemendi Galerii atribuut Üksused määratakse automaatselt sellesse tabelisse.

    Galerii.

    Märkus

    Teatud juhtelemendid on illustratsiooni jaoks ümber järjestatud ja suurendatud.

  2. Selle asemel, et määrata atribuut Üksused tabeli nimele, seadistage see valemile, mis sisaldab tabeli nime argumendina, nii nagu järgmises näites.

    Sort(CustomGallerySample, SampleHeading, SortOrder.Descending)

    See valem sisaldab funktsiooni Sortimine, mis võtab tabeli nime oma esimese argumendina ja selle tabeli veeru nime oma teise argumendina. Funktsioon toetab ka valikulist kolmandat argumenti, milles on sätestatud, et soovite andmeid sortida kahanevas järjestuses.

    Galerii järgi sortimine.

  3. Seadke atribuut Üksused vlaemisse, mis võtab valemi eelmistest etappidest argumendina ja tagastab tabeli, nii nagu järgmises näites.

    FirstN(Sort(CustomGallerySample, SampleHeading, SortOrder.Descending), 2)

    Selles valemis saate kasutada funktsiooni FirstN, et kuvada teatud arv kirjeid tabelis. Kasutate funktsiooni Sortimine esimese FirstN argumendina ja numbrit (antud juhul 2) teise argumendina, mis määrab, mitu kirjet kuvatakse.

    Kogu valem tagastab tabeli, mis sisaldab kahte esimest CustomGallerySample kirjet, mis on sorditud veeru SampleHeading järgi kahanevas järjekorras.

    FirstN galerii jaoks.

Tabeli funktsioonid ja juhtelemendi atribuudid

Arvestage Madalama funktsiooniga. Kui muutuja Tervitus sisaldab tekstistringi "Tere, maailm", siis valem Madalam (tervitus) tagastab "Tere, Maailm". See funktsioon ei muuda mingil viisil selle muutuja väärtust. Alumine on puhas funktsioon, kuna töötleb ainult sisendeid ja toodab väljundit. See on kõik; sellel pole kõrvaltoimeid. Kõik funktsioonid Excelis ja enamikud funktsioonid Power Appsis on puhtad funktsioonid, mis võimaldavad töövihikut või rakendust automaatselt ümber arvutada.

Power Apps pakub funktsioone, mis töötavad tabelites samal viisil. Need funktsioonid võtavad tabeleid sisendina ja filtreerivad, sorteerivad, teisendavad, vähendavad ja summeerivad terveid andmetabeleid. Tegelikult võib Madalam ja paljud teised funktsioonid, mis võtavad tavaliselt üksiku väärtuse, võtta sisendina ka ühe veeruga tabeli.

Paljud nendest funktsioonidest võtavad sisendina ühe veeruga tabeli. Kui kogu tabelis on ainult üks veerg, saate selle määrata nime järgi. Kui tabelis on mitu veergu, saate määrata ühe nendest veergudest, kasutades süntaksit Table.Column. Näiteks Products.Name tagastab ühe veeruga tabeli ainult Nime väärtustega tabelist Tooted.

Soovi korral saate tabelit täielikult ümber kujundada, kasutades funktsioone AddColumns, RenameColumns, ShowColumns või DropColumns. Jällegi, need funktsioonid muudavad ainult oma väljundit, mitte allikat.

Juhtelementide atribuudid võivad olla ka tabelid.

  • Üksused – rakendub galeriidele, loendiboksidele ja liitboksidele. See atribuut määratleb tabeli, mida galerii või loend kuvab.
  • SelectedItems – rakendub loendiboksidele ja liitboksidele. See atribuut määratleb nende üksuste tabeli, mille kasutaja on valinud juhul, kui SelectMultiple on lubatud.

Käitumise valemid

Muud funktsioonid on välja töötatud spetsiaalselt andmete muutmiseks ja kõrvaltoimete loomiseks. Kuna need funktsioonid ei ole puhtad, peate need hoolikalt üles ehitama ning nad ei saa osaleda rakenduses automaatselt väärtuste ümberarvutamisel. Neid funktsioone saate kasutada ainult käitumisvalemites.

  • Kogumine, Kustutamine, ClearCollect – loob kollektsioonid, kustutab need ja lisab neile andmeid.
  • Paik - muudab kirje ühte või mitut välja.
  • Värskenda, UpdateIf - värskendab kirjed, mis vastavad ühele või mitmele teie määratud kriteeriumile.
  • Eemalda, removeIf -kustutab kirjed, mis vastavad ühele või mitmele teie määratud kriteeriumile.

Kirje valemid

Samuti saate luua valemi, mis arvutab üksiku kirje andmeid, võtab üksikut kirjet argumendina ja annab tagastatava väärtusena üksiku kirje. Tulles tagasi meie galerii näitesse, kasutame atribuuti Gallery1.Selected, et kuvada teavet mis tahes kirjest, mida kasutaja selles galeriis valib.

  1. Lisab Nupu, ja seadistab selle atribuudi OnSelect järgmisele valemile.
    Collect( SelectedRecord, Gallery1.Selected )

  2. Muutklahvi (ALT) all hoides valige nupp.

  3. Valige menüüs Fail suvand Kogumikud.

    Valitud kirjekogumik.

See valem tagastab kirje, mis ei sisalda ainult praegu galeriis valitud kirje andmeid, vaid ka iga juhtelementi selles galeriis. Näiteks sisaldab kirje nii veergu SampleText, mis vastab algse tabeli veerule SampleText ja veergu Alapealkiri1, mis tähistab silti, mis kuvab selle veeru andmeid. Valige tabeli olppm veerust Alapealkiri1, et minna süvitsi nendesse andmetesse.

Märkus

Veeru Alapealkiri1 võib nimetada veeruks Alapealkiri2 või sarnane, kui olete lisanud muid elemente peale nende, mida see teema määrab.

Nüüd, kui teil on valitud kirje, saate sellelt üksikuid välju eemaldada kasutades . tehtemärki.

  1. Lisage juhtelement Silt ja teisaldage see siis galerii ja nupu alla.

  2. Määrake sildi atribuut Tekst järgmisele avaldisele.
    "Valitud: " & Gallery1.Selected.SampleHeading

    Värskendatud sildiga teksti atribuut.

Olete võtnud atribuudi Valitud, mis on kirje, ja eraldanud sellest atribuudi SampleHeading.

Samuti saate kasutada kirjet üldotstarbelise konteinerina seostuvate nimega väärtuste jaoks.

Sellisel juhul ei olnud kirje kunagi osa tabelist.

Kirje funktsioonid ja juhtelemendi atribuudid

Funktsioonid, mis tagastavad kirjeid.

  • FirstN, LastN – tagastab tabeli esimese või viimase kirje või kirjed
  • Otsing – tagastab esimese kirje tabelist, mis vastab ühele või mitmele kriteeriumile.
  • Paik – uuendab andmeallika või ühendab kirjeid.
  • Vaikeväärtused – tagastab andmeallika vaikeväärtused.

Atribuudid, mis tagastavad kirjeid.

  • Valitud – rakendub galeriidele ja loendi väljadele. Tagastab praegu valitud kirje.
  • Värskendused – rakendub galeriidele. Tõmbab kokku kõik muudatused, mida kasutaja andmete sisestamise vormil teeb.
  • Värskendus – rakendub sisendi juhtelementidele (nt tekstisisestuse juhtelemendile ja liuguritele). Seadistab galerii jaoks eraldi atribuudid, et neid ühiselt kaasata.

Kirje ulatus

Teatud funktsioonid töötavad, hinnates valemit kõigis tabeli kirjetes eraldi. Valemi tulemit kasutatakse erinevatel viisidel.

  • AddColumns – valem annab lisatud välja väärtuse.
  • Keskmine, Max, Min, SUM, StdevP, VARP – valem annab väärtuse koondamiseks.
  • Filter, Otsing – valem määratleb, kas kirje tuleks väljundisse kaasata.
  • Concat – valem määratleb stringid kokku ühendamiseks.
  • Eristus – valem tagastab väärtuse, mida kasutatakse topeltkirjete tuvastamiseks.
  • ForAll – valem võib tagastada mis tahes väärtuse, mis võib põhjustada kõrvaltoimeid.
  • Sortimine – valem annab kirjete sortimiseks väärtuse.
  • Koos – valem võib tagastada mis tahes väärtuse, mis võib põhjustada kõrvaltoimeid.

Nende valemite sees saate viidata töödeldava kirje väljadele. Kõik need funktsioonid loovad "kirje ulatuse", milles valemit hinnatakse, kus kirje väljad on saadaval kõrgeima taseme identifikaatoritena. Samuti saate kõikjal rakenduses viidata juhtelementide atribuutidele ja muudele väärtustele.

Näiteks on vaja võtta Toodete tabel.

Näidistooted.

Kui soovite selle tabeli luua oma rakenduses, lisage nupp, määrake selle atribuut OnSelect sellele väärtusele ja seejärel valige nupp (klõpsake nuppu, hoides rakenduses Power Apps Studio all Alt-klahvi).

Set( Products,
    Table(
        { Product: "Widget",    'Quantity Requested': 6,  'Quantity Available': 3 },
        { Product: "Gadget",    'Quantity Requested': 10, 'Quantity Available': 20 },
        { Product: "Gizmo",     'Quantity Requested': 4,  'Quantity Available': 11 },
        { Product: "Apparatus", 'Quantity Requested': 7,  'Quantity Available': 6 }
    )
)

Et teha kindlaks, kas mõni nendest toodetest oli rohkem nõutud kui saadaval toimige järgmiselt.

Filter( Products, 'Quantity Requested' > 'Quantity Available' )

Esimene argument Filtreerimiseks on kirjete tabel, mida soovite kasutada, ja teine argument on valem. Filter loob kirjete ulatuse selle valemi hindamiseks, kus iga kirje väljad on saadaval, antud juhul Toode, Nõutud kogus ja Saadaolev kogus. Võrdluse tulemus määratleb, kas iga kirje tuleks kaasata funktsiooni tulemisse.

Filtreeritud tabel.

Sellele näitele lisamisel saame arvutada, kui palju iga toodet tellitakse.

AddColumns( 
    Filter( Products, 'Quantity Requested' > 'Quantity Available' ), 
    "Quantity To Order", 'Quantity Requested' - 'Quantity Available'
)

Siin lisame tulemusele arvutatud veeru. AddColumns omab oma kirjete ulatust, mida ta kasutab nõudluse ja saadaolevuse erinevuste arvutamiseks.

Lisatud veerg.

Lõpuks saame vähendada tulemuste tabelit ainult soovitud veergudeni.

ShowColumns(
    AddColumns(
        Filter( Products, 'Quantity Requested' > 'Quantity Available' ),
        "Quantity To Order", 'Quantity Requested' - 'Quantity Available'
    ),
    "Product",
    "Quantity To Order"
)

Värskendatud tabel.

Pange tähele, et ülaltoodud osas kasutasime mõnes kohas jutumärke ja mõnes teises kohas semikoolonit ('). Semikoolonid on vajalikud objekti väärtusele viitamisel, näiteks väljale või tabelile, misjuhul objekti nimi sisaldab tühikut. Jutumärke kasutatakse juhul, kui me ei viita objekti väärtusele, vaid räägime sellest, eriti olukordades, kus objekti pole veel olemas, nagu AddColumns korral.

Ühtestamine

Kirje ulatusega lisatud väljade nimed tühistavad samad nimed mujal rakenduses. Kui nii juhtub, saate siiski pääseda väärtuste juurde väljaspoolt kirje ulatus, kasutades tehtemärki @ ühtestamine.

  • Pesastatud kirje ulatustest väärtustele juurdepääsuks kasutage tehtemärki @ koos tabeli nimega, mida kasutatakse selle musti kasutamisel.
    Table[@FieldName]
  • Globaalsetele väärtustele (nt andmeallikad, kogumid ja konteksti muutujad) juurdepääsuks kasutage mustrit [@ObjectName] (ilma tabeli määramiseta).

Kui arvutatav tabel on avaldis, näiteks nagu Filter( Tabel, ... ), siis ei saa ühtestamise tehtemärki kasutada. Ainult sisima kirje ulatus pääseb sellele tabeli avaldise väljadele juurde ühtestamise tehtemärki mitte kasutades.

Näiteks kujutage ette, et teil on kogumik X:

Kogum X.

Saate selle kogumi luua atribuudiga ClearCollect (X, [1, 2] ).

Ja teine kogum Y.

Kogum Y.

Saate selle kogumi luua atribuudiga ClearCollect( Y, ["A", "B"] ).

Lisaks määratlege konteksti muutuja nimega Väärtus selle valemi abil: UpdateContext( {Väärtus: "!"} )

Paneme selle kõik kokku. Selles kontekstis järgmine valem

Ungroup(
    ForAll( X,
        ForAll( Y,
            Y[@Value] & Text( X[@Value] ) & [@Value]
        )
    ),
    "Value"
)

toodab selle taebli.

XY tabel.

Mis siin toimub? Funktsiooni äärepoolseim funktsioon ForAll määratleb X kirje ulatuse, võimaldades juurdepääsu iga kirje väljale Väärtus, kui seda töödeldakse. Sellele pääseb juurde, kasutades lihtsalt sõna väärtus või kasutades X[ @Value].

Rakenduse kõige sisemisem funktsioon ForAll määratleb teise kirje ulatus Y jaoks. Kuna sellel tabelil on ka Väärtuse väli määratletud, kasutades siin Väärtust viidatakse Y-i kirjele ja mitte enam ühele kirjest X . Selleks, et pääseda Xi väärtuse väljale, peame kasutama pikemat versiooni koos ühitamise tehtemärgiga.

Kuna Y on kõige sisemise kirje ulatus, ei nõua juurdepääs selle tabeli väljadele ühitamist ja võimaldab meil kasutada seda valemit sama tulemusega.

Ungroup(
    ForAll( X,
        ForAll( Y,
            Value & Text( X[@Value] ) & [@Value]
        )
    ),
    "Value"
)

Kõik ForAll kirjete ulatused alistavad globaalse ulatuse. Konteksti muutuja Väärtus, mille määratlesime, ei ole saadaval ning on nime järgi ilma allkasutajata. Sellele väärtusele juurdepääsemiseks kasutage [@Value].

Tühista rühmitamine tasandab tulemi, kuna pesastatud funktsioonid ForAll põhjustavad peastunud tulemustetabeli.

Ühe veeruga tabelid

Ühe veeru kasutamiseks tahvelarvutiga kasutage funktsiooni ShowColumns, nii nagu käesolevas näites.

ShowColumns( Products, "Product" )

See valem toodab seda ühe veeruga tabeli..

Ühe veeruga tabel.

Lühema alternatiivi korral määrake Tabel.Column, mis ekstraktib ühe veeruga tabeli lihtsalt Tabeli Veerust. See valem toodab näiteks täpselt sama tulemit, mis ShowColumnsi kasutamine.

Products.Product

Tekstisisesed kirjed

Väljendate kirjeid kasutades looksulgi, mis sisaldavad nimega välja väärtusi. Näiteks saate esimest kirjet väljendada tabelis selle teema alguses, kasutades järgmist valemit.

{ Name: "Chocolate", Price: 3.95, 'Quantity on Hand': 12, 'Quantity on Order': 10 }

Valemeid saate manustada ka muudele valemitele, nagu selles näites on kuvatud.

{ Name: First(Products).Name, Price: First(Products).Price * 1.095 }

Kirjete pesastamiseks on vaja pesastada looksulgi, nii nagu selles näites.

{ 'Quantity': { 'OnHand': ThisItem.QuantOnHand, 'OnOrder': ThisItem.QuantOnOrder } }

Ümbritsege iga veeru nimi, mis sisaldab erimärki (nt tühikut või koolonit), ülakomadega. Ühe hinnapakkumise kasutamiseks veeru nime piires topeltklõpsake seda.

Pange tähele, et väärtus veerus Hind ei sisalda valuutatähist, nagu näiteks dollarimärki. See vorming rakendatakse väärtuse kuvamisel.

Tekstisisesed tabelid

Tabeli saate luua funktsiooni Tabel ja seadistatud kirjete abil. Saate väljendada tabelit selle teema alguses, kasutades järgmist valemit.

Table( 
    { Name: "Chocolate", Price: 3.95, 'Quantity on Hand': 12, 'Quantity on Order': 10 },
    { Name: "Bread", Price: 4.95, 'Quantity on Hand': 34, 'Quantity on Order': 0 },
    { Name: "Water", Price: 4.95, 'Quantity on Hand': 10, 'Quantity on Order': 0 } 
)

Samuti saate tabeleid pesastada.

Table( 
    { Name: "Chocolate", 
      'Quantity History': Table( { Quarter: "Q1", OnHand: 10, OnOrder: 10 },
                                 { Quarter: "Q2", OnHand: 18, OnOrder: 0 } ) 
    }
)

Tekstisisesed väärtustabelid

Saate luua ühe veeruga tabeleid, määratledes nurksulgades olevad väärtused. Tulemuseks olevas tabelis on üks veerg nimega Väärtus.

Näiteks [ 1, 2, 3, 4 ] võrdub väärtusega Table( { Value: 1 }, { Value: 2 }, { Value: 3 }, { Value: 4 } ) ja tagastab selle tabeli.

Tekstisisene tabel.

Märkus

Kas saaksite meile dokumentatsiooniga seotud keele-eelistustest teada anda? Osalege lühikeses uuringus. (Uuring on ingliskeelne.)

Uuringus osalemine võtab umbes seitse minutit. Isikuandmeid ei koguta (privaatsusavaldus).