Deli z drugimi prek


Razumevanje tabel in zapisov v aplikacijah s platnom

V storitvi Power Apps lahko ustvarite aplikacijo delovnega območja, ki dostopa do informacij za Microsoft Excel, SharePoint, SQL Server in več drugih virov, ki shranjujejo podatke v zapise in tabele. Za čim bolj učinkovito delo s takšnimi podatki si oglejte koncepte, na katerih temeljijo te strukture.

  • Zapis vsebuje eno ali več kategorij informacij o osebi, kraju ali stvari. Zapis lahko na primer vsebuje ime, e-poštni naslov in telefonsko številko posamezne stranke. Druga orodja se nanašajo na zapis kot na »vrstico« ali »element«.
  • Tabela vsebuje enega ali več zapisov, ki vsebujejo enake kategorije informacij. Tabela lahko na primer vsebuje imena, e-poštne naslove in telefonske številke 50 strank.

V aplikaciji boste uporabljali formule za ustvarjanje, posodabljanje in upravljanje zapisov in tabel. Verjetno boste podatke brali in zapisovali v zunanji vir podatkov, ki je razširjena tabela. ... Poleg tega lahko ustvarite eno ali več notranjih tabel, ki se imenujejo zbirke .

Zgradite lahko različne formule, ki ime tabele štejejo kot argument, tako kot formula v programu Excel kot argumente šteje eno ali več sklicev na celice. Nekatere formule v storitvi Power Apps vrnejo tabelo, ki odraža druge argumente, ki jih navedete. Na primer, ustvarite lahko formulo za:

  • Posodobiti zapis v tabeli tako, da to tabelo navedete kot enega od več argumentov za funkcijo Patch ...
  • Če želite dodati, odstraniti in preimenovati stolpce v tabeli, navedite to tabelo kot argument za funkcijo AddColumns, DropColumns ali RenameColumns . Nobena od teh funkcij ne spreminja izvirne tabele. Namesto tega funkcija vrne drugo tabelo na podlagi drugih argumentov, ki jih podate.

Elementi tabele

Elementi tabele.

Zapisi

Vsak zapis vsebuje vsaj eno kategorij informacij za osebo, kraj ali stvar. Zgornji primer prikazuje zapis za vsak izdelek (Čokolada, Kruh in Voda) in stolpec za vsako kategorijo informacij (Cena, Količina na zalogi in Količina na naročilu).

V formuli se lahko sklicujete na sam zapis zunaj konteksta tabele tako, da uporabite zavite oklepaje. Na primer, ta zapis { Ime: "Jagode", cena: 7,99 } ni povezan s tabelo. Upoštevajte, da imena polj, kot sta Ime in Cena, v tem primeru niso zaprta z dvojnimi narekovaji.

Polja

Polje je posamezen podatek v zapisu. Takšno polje si lahko predstavljate kot vrednost v stolpcu za določen zapis.

Tako kot pri kontrolniku se na polje zapisa sklicujete z uporabo operatorja .v zapisu. Na primer, First(Products).Name vrne polje Ime za prvi zapis v tabeli Izdelki.

Polje lahko vsebuje drug zapis ali tabelo, kot kaže primer za funkcijo GroupBy . Ugnezdite lahko poljubno število ravni zapisov in tabel.

Št. stolpcev

Stolpec se nanaša na enako polje za enega ali več zapisov v tabeli. V zgornjem primeru ima vsak izdelek polje za ceno, ki je za vse izdelke v enakem stolpcu. Zgornja tabela ima štiri stolpce, ki so prikazani vodoravno na vrhu:

  • Ime
  • Cena
  • Količina na zalogi
  • Količina po naročilu

Ime stolpca odraža polja v tem stolpcu.

Vse vrednosti v stolpcu so enake vrste podatkov. V zgornjem primeru stolpec "Količina na zalogi" vedno vsebuje številko in ne more vsebovati niza, kot je »12 enot«, za en zapis. Vrednost katerega koli polja je lahko tudi prazno.

V drugih orodij ste stolpce morda imenovali »polja«.

opomba,

Za vire podatkov, kot so SharePoint, Excel ali Power BI ploščice, ki vsebujejo imena stolpcev s presledki, Power Apps bo presledke nadomestil z "_x0020_". Na primer, »Ime stolpca« v SharePoint, Excelu ali Power BI ploščici se bo prikazala kot »Ime_stolpca_x0020« v Power Apps ko je prikazana v postavitvi podatkov ali uporabljena v formuli.

Table

Tabela obsega enega ali več zapisov, pri čemer ima vsak več polj, ki imajo v vseh zapisih dosledna imena.

Vsaka tabela, ki je shranjena v vir podatkov ali zbirki, ima ime, ki ga uporabljate za sklicevanje na tabelo in posredovanje funkcijam, ki tabele sprejmejo kot argumente. Tabele so lahko tudi rezultat funkcije ali formule.

Kot v naslednjem primeru lahko tabelo izrazite s formulo z uporabo funkcije Table z naborom zapisov, ki jih izrazite v zavitih oklepajih:

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

Z oglatimi oklepaji lahko ustvarite tudi tabelo z enim stolpcem. Enakovreden način zapisa za zgornjo formulo:

[ "Strawberry", "Vanilla" ]

Formule tabel

V programu Excelu in storitvi Power Apps formule uporabljate za upravljanje številk in nizov besedila na podobne načine:

  • V programu Excelu vnesite vrednost, kot je 42, v celico A1 in nato vnesite formulo, kot je A1 + 2, v drugo celico za prikaz vrednosti 44.
  • V Power Apps nastavite lastnost Privzeto Drsnika1 na 42 in lastnost Text nalepke na Slider1.Value + 2 za prikaz vrednosti 44 .

V obeh primerih se izračunana vrednost samodejno spremeni, če spremenite vrednosti argumentov (na primer število v celici A1 ali vrednost Slider1).

Podobno lahko uporabite formule za dostop do podatkov in upravljanje z njimi v tabelah in zapisih. Imena tabel lahko uporabite kot argumente v nekaterih formulah, kot je Min(Catalog, Price), za prikaz najnižje vrednosti v stolpcu Cena v tabeli Katalog. Druge formule zagotavljanje celotne tabele kot vrnjene vrednosti, kot so RenameColumns(Catalog, "Price", "Cost"), ki vrne vse zapise iz tabele Katalog, spremeni pa ime stolpca Cena v Stroški.

Tako kot številke se tudi formule, ki vključujejo tabele in zapise, samodejno preračunajo kot osnovne tabele ali spremembe zapisa. Če se cena izdelka v tabeli Katalog zniže pod prejšnjo minimalno vrednost, se bo vrnjena vrednost formule Min samodejno spremenila, da se bo ujemala z njo.

Oglejmo si nekaj preprostih primerov.

  1. Ustvarite prazno aplikacijo za telefon in dodajte navpični kontrolnik Galerija , ki vsebuje druge kontrolnike.

    Privzeto se na zaslonu prikaže besedilo označbe mesta iz tabele z imenom CustomGallerySample. Lastnost Elementi kontrolnika Galerija na zaslonu je samodejno nastavljena na to tabelo.

    Galerija.

    opomba,

    Nekateri kontrolniki so bili zaradi ponazoritve preurejeni in razširjeni.

  2. Namesto da lastnost Items nastavite na ime tabele, jo nastavite na formulo, ki vključuje ime tabele kot argument, kot v tem primeru:

    Sort(CustomGallerySample, SampleHeading, SortOrder.Descending)

    Ta formula vključuje funkcijo *Sort*, ki kot prvi argument sprejme ime tabele, kot drugi argument pa ime stolpca v tej tabeli. ... Funkcija podpira tudi izbirni tretji argument, ki določa, da želite podatke razvrstiti v padajočem vrstnem redu.

    Razvrščanje za galerijo.

  3. Lastnost Items nastavite na formulo, ki kot argument vzame formulo iz prejšnjega koraka in vrne tabelo, kot v tem primeru:

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

    V tej formuli uporabite funkcijo FirstN za prikaz določenega števila zapisov v tabeli. ... Funkcijo Sort uporabite kot prvi argument funkcije FirstN in število (v tem primeru 2) kot drugi argument, ki določa, koliko zapisov naj bo prikazanih.

    Celotna formula vrne tabelo, ki vsebuje prva dva zapisa tabele CustomGallerySample , razvrščena po stolpcu SampleHeading v padajočem vrstnem redu.

    FirstN za galerijo.

Funkcije tabele in lastnostni kontrolnikov

Oglejmo si funkcijo Lower. Če spremenljivka welcome vsebuje besedilni niz "Hello, World", formula Lower( welcome) vrne "hello, world". Ta funkcija nikakor ne spremeni vrednosti v tej spremenljivki. Lower je čista funkcija, saj obdeluje samo vhodne podatke in ustvarja izhodne podatke. To je vse, nima nobenih stranskih učinkov. Vse funkcije v programu Excel in večina funkcij v storitvi Power Apps so čiste funkcije, ki omogočajo samodejni izračun delovnega zvezka ali aplikacije.

Power Apps ponuja nabor funkcij, ki na tabele delujejo na enak način. Te funkcije tabele vzamejo kot vnos in filtrirajo, razvrščajo, preoblikujejo, zmanjšujejo in povzemajo celotne tabele podatkov. Funkcija Lower in številne druge funkcije, ki običajno vzamejo eno vrednost, lahko kot vnos vzamejo tudi tabelo z enim stolpcem.

Veliko teh funkcij kot svoj vnos vzame tabelo z enim stolpcem. Če ima celotna tabela samo en stolpec, jo lahko določite po imenu. Če ima tabela več stolpcev, lahko enega od teh stolpcev določite tako, da uporabite sintakso Table.Column. Products.Name na primer vrne tabelo z enim stolpcem samo za vrednosti Ime iz tabele Izdelki.

Tabelo lahko popolnoma preoblikujete po svojih željah z uporabo funkcij AddColumns, RenameColumns, ShowColumns ali DropColumns . Te funkcije spreminjajo samo izhodni element, ne pa tudi vira.

Lastnosti kontrolnikov so lahko tudi tabele:

  • Elementi – Velja za galerije, seznamna polja in kombinirana polja. Ta lastnost določa tabelo, ki jo prikazuje galerija ali seznam.
  • IzbraneItems – Velja za seznamna polja in kombinirana polja. Ta lastnost določa tabelo elementov, ki jih je uporabnik izbral, če je omogočena možnost SelectMultiple .

Formule vedenja

Druge funkcije so posebej zasnovane za spreminjanje podatkov in imajo stranske učinke. Ker te funkcije niso čiste, jih morate skrbno ustvariti in ne morejo sodelovati pri samodejnem preračunavanju vrednosti v aplikaciji. Te funkcije lahko uporabljate samo znotraj vedenjskih formul .

  • Zberi, Počisti, PočistiZberi – Ustvari zbirke, jih počisti in jim doda podatke.
  • Patch - Spremeni eno ali več polj v zapisu.
  • Update, UpdateIf – Posodobi zapise, ki ustrezajo enemu ali več kriterijem, ki jih določite.
  • Odstrani, OdstraniIf – Izbriše zapise, ki ustrezajo enemu ali več kriterijem, ki jih določite.

Formule zapisov

Ustvarite lahko tudi formulo, ki izračuna podatke za posamezen zapis, vzame posamezen zapis kot argument in zagotovi posamezen zapis kot vrnjeno vrednost. Če se vrnemo k zgornjemu primeru galerije, uporabimo lastnost Gallery1.Selected za prikaz informacij iz katerega koli zapisa, ki ga uporabnik izbere v tej galeriji.

  1. Dodajte gumb Button in nastavite njegovo lastnost OnSelect v to formulo:
    Zberi(IzbraniZapis, Galerija1.Izbrano)

  2. Medtem ko držite tipko Alt, izberite gumb.

  3. V meniju Datoteka izberite Zbirke.

    Zbirka SelectedRecord.

Ta formula vrne zapis, ki vključuje podatke iz zapisa, ki je trenutno izbran v galeriji, in vse kontrolnike v tej galeriji. Na primer, zapis vsebuje tako stolpec *SampleText*, ki se ujema s stolpcem *SampleText* v izvirni tabeli, kot tudi stolpec *Subtitle1*, ki predstavlja oznako, ki prikazuje podatke iz tega stolpca. Izberite ikono tabele v stolpcu Podnaslov1 za podrobnejši ogled teh podatkov.

opomba,

Stolpec Podnaslov1 se lahko imenuje Podnaslov2 ali podobno, če ste dodali elemente, ki niso navedeni v tej temi.

Zdaj, ko imate izbran zapis, lahko iz njega izvlečete posamezna polja z operatorjem . .

  1. Dodajte kontrolnik Oznaka in ga nato premaknite pod galerijo in gumb.

  2. Lastnost Text nalepke nastavite na ta izraz:
    "Izbrano: " & Gallery1.Selected.SampleHeading

    Lastnost besedila s posodobljeno oznako.

Vzeli ste lastnost Selected , ki je zapis, in iz nje izvlekli lastnost SampleHeading .

Zapis lahko uporabite tudi kot splošni vsebnik za povezane imenovane vrednosti.

V teh primerih zapis ni bil nikoli del tabele.

Funkcije zapisov in lastnostni kontrolnikov

Funkcije, ki vrnejo zapise:

  • FirstN, LastN - Vrne prvi ali zadnji zapis ali zapise v tabeli.
  • Iskanje - Vrne prvi zapis iz tabele, ki ustreza enemu ali več kriterijem.
  • Popravek – Posodobi vir podatkov ali združi zapise.
  • Privzete vrednosti – Vrne privzete vrednosti za vir podatkov.

Lastnosti, ki vrnejo zapise:

  • Izbrano – Velja za galerije in seznamna polja. Vrne trenutni izbrani zapis.
  • Posodobitve – Velja za galerije. Združi vse spremembe, ki jih uporabnik opravi v obrazcu za vnos podatkov.
  • Posodobitev – Velja za kontrolnike vnosa, kot so kontrolniki za vnos besedila in drsniki. Nastavi posamezne lastnosti, da se galerija združi.

Obseg zapisa

Nekatere funkcije delujejo tako, da se ovrednotijo posamezno formulo v vseh zapisih tabele. Rezultat formule se uporablja na različne načine:

  • AddColumns – Formula poda vrednost dodanega polja.
  • Povprečje, Maks., Min., Vsota, Std. odk., VarP – Formula zagotovi vrednost za združevanje.
  • Filter, Iskanje - Formula določa, ali naj bo zapis vključen v izhod.
  • Concat - Formula določi nize, ki jih je treba združiti.
  • Distinct - Formula vrne vrednost, ki se uporablja za prepoznavanje podvojenih zapisov.
  • Za vse - Formula lahko vrne katero koli vrednost, kar lahko povzroči stranske učinke.
  • Razvrsti - Formula poda vrednost za razvrščanje zapisov.
  • Z - Formula lahko vrne katero koli vrednost, kar lahko povzroči stranske učinke.

V formulah lahko navajate polja zapisa, ki se obdeluje. Vsaka funkcija ustvari »obseg zapisa«, v katerem se formula ovrednoti, pri čemer so polja zapisa na voljo kot identifikatorji najvišje ravni. Kjer koli v aplikaciji se lahko sklicujete tudi na lastnosti kontrolnika in druge vrednosti.

Na primer, vzemimo tabelo izdelkov:

Primer izdelkov.

Če želite v svojo aplikacijo ustvariti to vzorčno tabelo, vstavite gumb, nastavite njegovo lastnost OnSelect na to formulo in nato izberite gumb (kliknite ga, medtem ko držite tipko Alt v Power Apps Studio):

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

Če želite ugotoviti, ali je kateri od teh izdelkov zahteval več, kot je na voljo:

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

Prvi argument za Filter je tabela zapisov, ki jo je treba upravljati, in drugi argument je formula. Filter ustvari obseg zapisa za vrednotenje te formule, v katerem so na voljo polja vsakega zapisa, v tem primeru Izdelek, Zahtevana količina in Razpoložljiva količina. Rezultat primerjave določa, ali naj bo vsak rezultat vključen v rezultat funkcije:

Filtrirana tabela.

Če nadaljujemo s tem primerom, lahko izračunamo, koliko posameznega izdelka lahko naročimo:

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

Tukaj v rezultat dodamo izračunan stolpec. AddColumns ima svoj obseg zapisa, ki ga uporablja za izračun razlike med zahtevanim in na voljo.

Dodani stolpci.

Na koncu lahko zmanjšamo tabelo rezultatov na samo stolpce, ki jih želimo:

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

Posodobljena tabela.

Upoštevajte, da smo v zgornjem primeru na nekaterih mestih uporabljali dvojne narekovaje ("), na nekaterih pa enojne narekovaje('). Enojne narekovaje je treba uporabiti pri sklicevanju na vrednost predmeta, na primer na polje ali tabelo, v katerih ime predmeta vsebuje presledek. Dvojni narekovaji se uporabljajo, kadar ne navedemo vrednosti predmeta, temveč o njem govorimo, zlasti v situacijah, kjer predmet še ne obstaja, npr. pri AddColumns.

Razločevanje

Imena polj, dodana z obsegom zapisov, preglasijo enaka imena od drugod v aplikaciji. Ko se to zgodi, lahko do vrednosti zunaj obsega zapisa še vedno dostopate z operatorjem @ razločitev :

  • Za dostop do vrednosti iz ugnezdenih obsegov zapisov uporabite operator @ z imenom tabele, ki se upravlja s tem vzorcem:
    Tabela[@ImePolja]
  • Za dostop do globalnih vrednosti, kot so viri podatkov, zbirke in spremenljivke konteksta, uporabite vzorec [@ObjectName] (brez oznake tabele).

Če je tabela, s katero se upravlja, izraz, kot je Filter (Table, ... ), operatorja za razveljavitev ni mogoče uporabiti. Samo najgloblji obseg zapisa lahko dostopa do polj iz tega izraza tabele, pri čemer ne uporablja operatorja za razločitev.

Predstavljajte si na primer zbirko X:

Zbirka X.

To zbirko lahko ustvarite tako, da uporabite ClearCollect( X, [1, 2] ).

Oglejmo si še zbirko Y:

Zbirka Y.

To zbirko lahko ustvarite tako, da uporabite ClearCollect( Y, ["A", "B"] ).

Poleg tega določite spremenljivko konteksta z imenom Vrednost s to formulo: UpdateContext( {Value: "!"} )

Oglejmo si vse skupaj. V tem kontekstu se s to formulo:

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

ustvari ta tabela:

Tabela XY.

Kaj se dogaja? Zunanja funkcija ForAll določa obseg zapisa za X, ki omogoča dostop do polja Vrednost vsakega zapisa pri obdelavi. Do njega lahko preprosto dostopate tako, uporabite besedo VrednostX[@ocena].

Najgloblja funkcija ForAll določil drug obseg zapisa za Y. Ker je za to tabelo določeno tudi polje Vrednost, se Vrednosti tukaj nanaša na polje v zapisu za Y in ne več na polje v zapisu za X. Tukaj je treba za dostop do polja Vrednost za X uporabiti daljšo različico z operatorjem za razločitev.

Ker je Y najgloblji obseg zapisa, za dostop do polj te tabele razločitev ni potrebna, kar nam omogoča uporabo te formule z enakim rezultatom:

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

Vsi obsegi razpisa ForAll preglasijo globalni obseg. Spremenljivka konteksta Vrednost, ki smo jo opredelili, ni na voljo po imenu brez operatorja za razločitev. Za dostop do te vrednosti uporabite [@Value].

Funkcija Ungroup splošči rezultat, ker ugnezdene funkcije ForAll povečajo tabelo rezultatov.

Tabele z enim stolpcem

Za delovanje na en stolpec iz tabele uporabite funkcijo ShowColumns kot v tem primeru:

ShowColumns( Products, "Product" )

Ta formula ustvari to tabelo z enim stolpcem:

Tabela z enim stolpcem.

Za krajšo možnost navedite Table.Column, ki ekstrahira tabelo z enim stolpcem s samo Stolpec iz Tabela. Ta formula na primer ustvari popolnoma enak rezultat kot uporaba funkcije ShowColumns.

Products.Product

Zapisi v vrstici

Zapise lahko izrazite z uporabo zavitih oklepajev, ki vsebujejo poimenovane vrednosti polja. Prvi zapis v tabeli lahko na primer izrazite na začetku te teme s to formulo:

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

Formule lahko vdelate tudi v druge formule, kot prikazuje ta primer:

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

Zapise lahko ugnezdite tako, da ugnezdite zavite oklepaje, kot prikazuje ta primer:

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

Vsak stolpec, ki vsebuje poseben znak, na primer presledek ali dvopičje, vključite v enojne narekovaje. Če želite uporabiti enojni narekovaj v imenu stolpca, ga podvojite.

Upoštevajte, da vrednost v stolpcu Cena ne vključuje simbola valute, kot je znak dolarja. To oblikovanje bo uporabljeno, ko bo prikazana vrednost.

Tabele v vrstici

Tabelo lahko ustvarite z uporabo funkcije Table in nabora zapisov. Tabelo lahko izrazite na začetku te teme s to formulo:

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

Tabele lahko tudi ugnezdite:

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

Tabele vrednosti v vrstici

Tabele z enim stolpcem lahko ustvarite tako, da vrednosti navedete v oglatih oklepajih. Nastala tabela ima en stolpec z imenom Vrednost.

[ 1, 2, 3, 4 ] je na primer enako Table( { Value: 1 }, { Value: 2 }, { Value: 3 }, { Value: 4 } ) in vrne to tabelo:

Vstavljena tabela.