opomba,
Dostop do te strani zahteva pooblastilo. Poskusite se vpisati alispremeniti imenike.
Dostop do te strani zahteva pooblastilo. Poskusite lahko spremeniti imenike.
Velja za: Canvas apps
Copilot Studio
Desktop flows
Model-driven apps
Power Platform CLI
Dataverse functions
Power Pages
Izračuna vrednosti in izvede dejanja za vse zapise v tabeli.
Opis
Funkcija ForAll ovrednoti formulo za vse zapise v tabeli. Formula lahko izračuna vrednost in/ali izvede dejanja, kot so spreminjanje podatkov ali delo s povezavo. Uporabi funkcijo With za oceno formule za en zapis.
Funkcijo Sequence uporabite s funkcijo za ForAll iteriranje na podlagi štetja.
Polja zapisa, ki je trenutno v obdelavi, so na voljo v okviru formule. Uporabite operator ThisRecord ali pa polja preprosto navedite poimensko, kot bi storili za katero koli drugo vrednost. Operator As lahko uporabite tudi za poimenovanje zapisa, ki se obdeluje, s čimer bo formulo lažje razumeti in bodo dostopni ugnezdeni zapisi. Več informacij je v spodnjih primerih in razdelku delo z obsegom zapisov.
Vrnjena vrednost
Rezultat vsakega ocenjevanja formule je vrnjen v tabeli v istem zaporedju kot vnosna tabela.
Če je rezultat formule ena vrednost, je nastala tabela tabela z enim stolpcem. Če je rezultat formule zapis, bo dobljena tabela vsebovala zapise z enakimi stolpci kot zapis rezultatov.
Če je rezultat formule prazna vrednost , v tabeli z rezultati ni zapisa za ta vhodni zapis. V tem primeru je v tabeli z rezultati manj zapisov kot v izvorni tabeli.
Ukrepanje
Formula lahko vključuje funkcije za ukrepanje, kot je spreminjanje zapisov vira podatkov s funkcijama Patch in Collect. Formula lahko tudi prikliče načine za povezave. Za zapis je mogoče izvesti več dejanja z uporabo operatorja ;. Tabele, ki je predmet funkcije, ni mogoče ForAll spremeniti.
Ko pišete formulo, upoštevajte, da je mogoče zapise obdelati v poljubnem vrstnem redu in, če je mogoče, vzporedno. Prvi zapis tabele se lahko obdela po zadnjem zapisu.
Pazite, da se izognete razvrščanju odvisnosti. Zaradi tega ne morete uporabiti funkcij UpdateContext, Clear in ClearCollectForAll v funkciji, ker jih je mogoče preprosto uporabiti za zadržanje spremenljivk, ki bi bile dovzetne za ta učinek. Lahko uporabite Collect, toda zaporedje, v katerem se zapisi dodajo, je nedoločeno.
Več funkcij, ki spreminjajo vire podatkov, vključno Collect, Remove in Update, vrne spremenjeni vir podatkov kot vrnjeno vrednost. Te vrnjene vrednosti so lahko velike in porabijo pomembne vire, če jih funkcija vrne za vsak zapis ForAll v tabeli. Morda boste tudi našli, ForAll da te vrnjene vrednosti niso takšne, kot ste pričakovali, ker lahko delujejo vzporedno in lahko stranske učinke teh funkcij ločijo od njihovega rezultata. Če vrnjena vrednost ni ForAll uporabljena, kar se pogosto zgodi s funkcijami za spreminjanje podatkov, vrnjena vrednost ne bo ustvarjena in ne bo pomislekov o virih ali naročilih. Če pa uporabljate ForAll rezultat in eno od funkcij, ki vrne vir podatkov, dobro premislite o tem, kako strukturižete rezultat in ga najprej preskusite pri majhnih naborih podatkov.
Alternative
Številne funkcije v aplikaciji Power Apps lahko obdelajo več kot eno vrednost hkrati z uporabo tabele z enim stolpcem. Funkcija Len lahko na primer obdela tabelo besedilnih vrednosti in ForAll na enak način vrne tabelo dolžin. To lahko odpravi potrebo po uporabi v ForAll številnih primerih, je lahko učinkovitejša in jo je lažje brati.
Še ena možnost je, ForAll da ni mogoče delegirati, medtem ko so morda druge funkcije, na primer Filter.
Pooblastitev
Ko je uporabljena z virom podatkov, te funkcije ni mogoče pooblastiti. Pridobljen bo samo prvi del vira podatkov, nato bo uporabljena funkcija. Rezultat morda ne pokaže celotne slike. V času ustvarjanja se lahko prikaže opozorilo, ki vas opomni na to omejitev in predlaga, da uporabite možnosti, ki jih je mogoče pooblastiti, če so na voljo. Če želite več informacij, glejte razdelek Pregled pooblastitev.
Sintaksa
ForAll(Tabela, formula)
- Tabela - obvezno. Tabela, na podlagi katere se ukrepa.
- Formula - obvezno. Formula za ovrednotenje za vse zapise možnosti Tabela.
Primeri
Izračuni
Naslednji primeri uporabljajo vir podatkov Squares:
Če želite ustvariti ta vir podatkov kot zbirko, nastavite lastnost OnSelect kontrolnika Button za upravljanje te formule, odprite način predogleda in nato izberite »Button«:
ClearCollect( Squares, [ "1", "4", "9" ] )
| Formula | Opis | Rezultat |
|---|---|---|
|
ForAll( Kvadrati, Sqrt( Vrednost ) Sqrt (kvadrati) |
Za vse zapise vnosne tabele izračuna kvadratni koren stolpca Vrednost. Funkcijo Sqrt lahko uporabite tudi s tabelo z enim stolpcem, zaradi tega pa lahko ta primer izvedete brez uporabe ForAll. |
|
| ForAll( Kvadrati, Power( Vrednost, 3 ) | Za vse zapise vnosne tabele dvigne stolpec Vrednost na tretjo potenco. Funkcija Power ne podpira tabel z enim stolpcem. Zato je ForAll treba v tem primeru uporabiti. |
|
Uporaba povezave
Naslednji primeri uporabljajo vir podatkov Expressions:
Če želite ustvariti ta vir podatkov kot zbirko, nastavite lastnost OnSelect kontrolnika Button za upravljanje te formule, odprite način predogleda in nato izberite »Button«:
ClearCollect( Expressions, [ "Hello", "Good morning", "Thank you", "Goodbye" ] )
Ta primer uporablja tudi povezavo Microsoft Translator. Če želite to povezavo dodati v svojo aplikacijo, glejte članek Upravljanje povezav.
| Formula | Opis | Rezultat |
|---|---|---|
| ForAll(Izrazi, MicrosoftTranslator.Translate(vrednost, »es«)) | Za vse zapise v tabeli »Expressions« prevedi vsebino stolpca Value v španščino (okrajšano kot »es«). |
|
| ForAll(Izrazi, MicrosoftTranslator.Translate(vrednost, »fr«)) | Za vse zapise v tabeli »Expressions« prevedi vsebino stolpca Value v francoščino (okrajšano kot »fr«). |
|
Kopiranje tabele
Včasih morate filtrirati, oblikovati, razvrstiti in manipulirati podatke. Storitev Power Apps ponuja številne funkcije za to, na primer Filter, AddColumns in Sort. Power Apps obravnava vsako tabelo kot vrednost, kar ji omogoča, da preteka skozi formule in jo preprosto porabi.
Včasih želite narediti kopijo tega rezultata za kasnejšo uporabo ali želite informacije premakniti iz enega vira podatkov v drugega. Power Apps zagotavlja funkcijo Collect za kopiranje podatkov.
Toda preden ustvarite ta izvod, dobro premislite, če je to potrebno. Veliko situacij je mogoče obravnavati s filtriranjem in oblikovanjem temeljnega vira podatkov na zahtevo s formulo. Nekatere slabosti izdelave kopije vključujejo:
- Če obstajata dve kopiji istih podatkov, lahko kopiji nista usklajeni.
- Ustvarjanje kopije lahko porabi veliko računalniškega pomnilnika, omrežne pasovne širine in/ali časa.
- Pri večini virov podatkov kopiranja ni mogoče dodeliti, kar omejuje količino podatkov, ki jo je mogoče premakniti.
Naslednji primeri uporabljajo vir podatkov Products:
Če želite ustvariti ta vir podatkov kot zbirko, nastavite lastnost OnSelect kontrolnika Button za upravljanje te formule, odprite način predogleda in nato izberite »Button«:
ClearCollect( 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 }
)
)
Naš cilj je delati z izpeljano tabelo, ki vključuje samo elemente, kjer je bilo več zahtevano, kot je na voljo, in za katere je treba umestiti naročilo:
To opravilo je mogoče izvesti na nekaj različnih načinov, ki imajo vsi isti rezultat, z različnimi prednostmi in slabostmi.
Oblikovanje tabele na zahtevo
Ne ustvarite te kopije! Naslednjo formulo lahko uporabimo povsod, kjer je potrebno:
// Table shaping on demand, no need for a copy of the result
ShowColumns(
AddColumns(
Filter( Products, 'Quantity Requested' > 'Quantity Available' ),
"Quantity To Order", 'Quantity Requested' - 'Quantity Available'
),
"Product",
"Quantity To Order"
)
Obseg zapisov ustvarita funkciji Filter in AddColumns, da se izvedeta postopka primerjave in odštetja s polji 'Quantity Requested' in 'Quantity Available' vsakega zapisa.
V tem primeru je mogoče funkcijo Filter dodeliti. To je pomembno, saj lahko najde vse izdelke, ki izpolnjujejo merila, tudi če gre samo za nekaj zapisov v tabeli milijonov. Trenutno ni mogoče dodeliti storitev ShowColumns in AddColumns , zato je dejansko število izdelkov, ki jih je treba naročiti, omejeno. Če veste, da je velikost tega rezultata vedno razmeroma majhna, je ta pristop v redu.
Ker nismo kopirali, ni dodatne kopije podatkov, ki bi jih lahko upravljali ali zastareli.
ForAll na zahtevo
Funkcijo lahko uporabite tudi za ForAll zamenjavo funkcij za oblikovanje tabel:
ForAll( Products,
If( 'Quantity Requested' > 'Quantity Available',
{
Product: Product,
'Quantity To Order': 'Quantity Requested' - 'Quantity Available'
}
)
)
Ta formula je lahko za nekatere ljudi enostavnejša za brane in zapisovanje.
Nobenega dela ni ForAll mogoče razmejiti. Ovrednoten je le prvi del tabele » Izdelki«, kar je lahko težava, če je ta tabela velika. Ker bi bilo mogoče funkcijo Filter v prejšnjem primeru dodeliti, bi lahko bolje delovala z velikimi nabori podatkov.
Zbiranje rezultata
V nekaterih primerih je morda potrebna kopija podatkov. Morda boste želeli premakniti informacije iz enega vira podatkov v drugega. V tem primeru se naročila umestijo prek tabele NewOrder v dobaviteljevem sistemu. Pri hitrih interakcijah uporabnikov boste morda želeli predpomnjeti lokalno kopijo tabele, tako da ne bo zakasnitve strežnika.
Uporabljamo isto oblikovanje tabele kot v prejšnjih dveh primerih, toda rezultat bomo zajeli v zbirko:
ClearCollect( NewOrder,
ShowColumns(
AddColumns(
Filter( Products, 'Quantity Requested' > 'Quantity Available' ),
"Quantity To Order", 'Quantity Requested' - 'Quantity Available'
),
"Product",
"Quantity To Order"
)
)
ClearCollect( NewOrder,
ForAll( Products,
If( 'Quantity Requested' > 'Quantity Available',
{
Product: Product,
'Quantity To Order': 'Quantity Requested' - 'Quantity Available'
}
)
)
)
ClearCollect in Collect ni mogoče dodeliti. Zato je količina podatkov, ki jo je mogoče premakniti na ta način, omejena.
Zberi v ForAll
Na koncu lahko izvedemo Zbiranje neposredno v ForAll:
Clear( NewOrder );
ForAll( Products,
If( 'Quantity Requested' > 'Quantity Available',
Collect( NewOrder,
{
Product: Product,
'Quantity To Order': 'Quantity Requested' - 'Quantity Available'
}
)
)
)
Funkcije trenutno ForAll ni mogoče pooblastiti. Če je tabela » Izdelki« velika, ForAll si oglejte le prvi nabor zapisov in morda bomo zamudili nekatere izdelke, ki jih je treba naročiti. Toda za tabele, za katere vemo, da so še vedno majhne, je ta pristop v redu.
Upoštevajte, da ne zajemamo rezultata ForAll. Funkcija »Zberi « pokliče znotraj te funkcije vrne vir podatkov NewOrder za vse zapise, kar lahko sešteje številne podatke, če jih zajemamo.
Preslikava tabele v komponento
Glejte Preslikava tabel.