Stvaranje ili ažuriranje masovnih zapisa na platformi Power Apps
Masovno ažuriranje ili stvaranje zapisa omogućuje vam djelovanje na mnogim zapisima odjednom. Evo nekoliko scenarija u kojima biste željeli masovno ažurirati zapise:
- Imate mnogo fotografija i želite ih sve prenijeti odjednom.
- Želite odjednom podnijeti vremenski list s tjednim podacima.
Mogli biste i htjeti masovno stvoriti nove zapise. Na primjer, kada vaša aplikacija mora odabrati mnogo slika, možda ćete ih htjeti prenijeti odjednom.
U ovom članku je objašnjeno kako masovno ažurirati ili stvoriti zapise ovisno o vašem slučaju.
Formule za masovno ažuriranje zapisa
Formule u ovom odjeljku mogu se koristiti za masovno ažuriranje zapisa u aplikacijama od gotovih gradivnih elemenata.
Funkcija Patch()—Koristite ovu funkciju kada zbirka odgovara izvoru podataka.
Patch( DataSource, Collection )Funkcija ForAll() + ugniježđena zakrpa + operator dvoznačnosti—Koristite ovu funkciju kada izvori podataka imaju različite stupce koje trebate spojiti.
ForAll( Collection, Patch( DataSource, LookUp( DataSource, Id = Collection[@Id] ), { Column: Value } ) )Funkcija AddColumns()—Ova se funkcija može koristiti za pružanje reference pretraživanja u Zbirci koja sadrži ažuriranja za DataSource ako nema polja koja lako upućuju na tablicu.
Za potpuni popis formula za masovno ažuriranje zapisa, preuzmite povezane datoteke.
Primjer popisa za provjeru
Ovaj primjer koristi popis za provjeru zadataka. Kad završite s nekoliko zadataka, možete ih označiti kao dovršene. Ovaj biste scenarij mogli proširiti na popis za provjeru za lansiranje proizvoda, popis za provjeru stanja nekretnina ili na druge popise.
Sljedeća snimka zaslona prikazuje stavke popisa za provjeru u datoteci programa Microsoft Excel. U ovom primjeru možete označiti zadatke koji se odnose na vaše pisanje i objavu blogova ili objavu na društvenim mrežama. Tablica u programu Excel se zove ChecklistItems. Evo primjera u programu Excel.
Primjer koristi zbirke za demonstraciju ovog ponašanja. Pristup funkcionira za bilo koju tabličnu pozadinu po vašem izboru.

Podaci programa Excel uvoze se kao statički podaci u aplikaciju. Na svojstvu App.OnStart, Collect() podaci ChecklistItems programa Excel u zbirci ChecklistItemsSource. Zbirka ChecklistItemsSource će se koristiti kao izvor podataka u cijeloj aplikaciji.
Ovaj primjer koristi aplikaciju s dva zaslona:
- Zaslon 1—Koristi se za pregled stavki popisa za provjeru i označavanje stavki kao dovršenih.
- Zaslon 2—Koristi se za stvaranje nove stavke popisa za provjeru. Nova stavka bit će dodana u zbirku
ChecklistItemsSource.

Svaki put kad se stavka popisa za provjeru označi, dodaje se u zbirku pod nazivom CheckedItems. Koristi formulu u nastavku na svojstvu događaja OnCheck kontrole potvrdnog okvira. Ako je stavka već označena i dio je zbirke, uklonit će se. Ako nije, dodaje se označena stavka.
Možete prebacivati status između Gotovo i Na čekanju ili možete koristiti događaje Oncheck i OnUncheck:
If( !IsBlank(
LookUp( CheckedItems, Id = ThisItem.Id )
),
Remove( CheckedItems, ThisItem ),
Collect( CheckedItems, ThisItem )
)
Stvaranje više zapisa odjednom
Postoje različiti načini masovnog ažuriranja zapisa, ovisno o slučaju. U ovom odjeljku je objašnjeno kako stvoriti više zapisa odjednom u aplikacijama od gotovih gradivnih elemenata.
Kad korisnik odabere Gotovo u prethodnom primjeru, morate ažurirati ChecklistItemsSource s promjenama iz zbirke CheckedItems.
Za stupce s istim nazivom
Ako vaš izvor i odredište imaju iste nazive stupaca, možete koristiti izraz zakrpe. Na primjer, zbirke ChecklistItemsSource i CheckedItems imaju iste nazive stupaca. Možete koristiti formulu u nastavku za istovremeno ažuriranje izvora sa svim promjenama.
Patch( ChecklistItemsSource, CheckedItems )
Za stupce s različitim nazivima
Ako se stupci u izvorišnoj i odredišnoj tablici razlikuju, umjesto toga koristite ForAll sa zakrpom.
Uz ForAll() morate proći svaki zapis koristeći uvjet. Uvjet je usporedba sličnih stupaca (npr. stupac Id) različitih tablica. Ova usporedba postaje komplicirana kada izvorišna i odredišna tablica imaju iste nazive stupaca (npr. ako bi se stupac ProjectId nalazio i u tablici Project i u tablici PurchaseOrder).
Slijede alternative:
Upotreba s operatorom dvoznačnosti
Za ažuriranje Status za CheckedItems na "Gotovo", kada su nazivi stupaca izvorišne i odredišne tablice jednaki, upotrijebite ovu formulu:
ForAll( CheckedItems,
Patch( ChecklistItemsSource,
LookUp( ChecklistItemsSource, Id = CheckedItems[@Id] ),
{ Status: "Done" }
)
)
Za svaku stavku u zbirci CheckedItems, Id (predstavljen operatorom dvoznačnosti CheckedItems[@Id]) uspoređuje se sa stupcem Id u zbirci ChecklistItemsSource. Zatim se svaki podudarni zapis ažurira statusom "Gotovo". Operator dvoznačnosti koristi se kada dva stupca koja pripadaju različitim tablicama imaju isti naziv. Ako ne upotrijebite ovaj operater dvoznačnosti, vidjet ćete da se ažurira samo prvi zapis.
Upotreba dodatne oznake u galeriji
Ako ne želite koristiti dodatnu zbirku za pohranu označenih stavki, možete isprobati sljedeće korake:
Stvorite dodatnu oznaku u predlošku galerije.
- Povežite je sa stupcem Id.
- Preimenujte oznaku u IdText.
Uklonite kod na svojstvu OnCheck prethodno spomenute kontrole potvrdnog okvira.
Napišite sljedeću formulu za događaj OnSelect gumba Gotovo:
ForAll( Filter( ChecklistGallery.AllItems, StatusCheckbox.Value = true ), Patch( ChecklistItemsSource, LookUp( ChecklistItemsSource, Id = IdText.Text ), { Status: "Done" } ) )
Ovdje izravno primjenjujete filtar na stavke Galerije kako biste pronašli označene stavke. Za svaki zapis u filtriranim stavkama nalazi se podudaranje u tablici ChecklistItemsSource uspoređujući Id s vrijednošću pohranjenom u oznaci IdText.
Status se ažurira na "Gotovo".
Operator dvoznačnosti ne može se koristiti na stavkama Galerije. Umjesto toga, možete pohraniti oznaku u galeriju i uputiti je za usporedbu.
Upotreba alternative za stvaranje novog stupca s drugom oznakom
Ova metoda je alternativa korištenju operatora dvoznačnosti ili oznake unutar galerije.
Dok stvarate lokalnu kopiju izvora podataka, možete koristiti formulu AddColumns() za stvaranje novog stupca s drugom oznakom (NewId) za stupac Id u vašoj izvornoj zbirci. Kada koristite ForAll sa zakrpom, uspoređujete stupac NewId sa stupcem Id u izvornim podacima.
Masovno stvaranje zapisa
Možda ćete htjeti masovno stvoriti nove zapise, na primjer, ako želite prenijeti mnogo slika odjednom.
Evo primjera korištenja Primjera popisa za provjeru.
Na zaslonu Stvaranje stavki popisa za provjeru svaki put kada odaberete Dodaj, podaci se pohranjuju u zbirku NewChecklistItems. Kad odaberete Predaj, ForAll() sa Patch() koristi se za ažuriranje izvorne zbirke.
ForAll( NewChecklistItems,
Patch( ChecklistItemsSource,
Defaults( ChecklistItemsSource ),{
Id: Id,
Category: Category,
Description: Description,
Status:Status
}
)
)
Za svaku stavku u NewChecklistItems stvara se novi zapis (označen s Defaults(ChecklistItemsSource)) u zbirci ChecklistItemsSource. Id se postavlja na Id iz zbirke NewChecklistItems. Slično tome se postavljaju vrijednosti Category, Description i Status.