Kopīgot, izmantojot


Lielapjoma ierakstu izveide vai atjaunināšana programmā Power Apps

Ierakstu lielapjoma atjaunināšana vai izveide ļauj vienlaikus rīkoties atbilstoši vairākiem ierakstiem. Tālāk ir norādīti daži scenāriji, kuros vēlaties veikt lielapjoma atjaunināšanu ierakstos.

  • Jums ir daudz fotoattēlu un vēlaties tos visus augšupielādēt uzreiz.
  • Jūs vēlaties vienlaikus iesniegt laiku grafiku ar nedēļas datiem.

Iespējams, vēlēsities arī izveidot jaunus ierakstus lielapjomā. Piemēram, ja jūsu programmā ir jāatlasa daudz attēlu, iespējams, vēlēsities tos visus augšupielādēt uzreiz.

Šajā rakstā izskaidrots, kā atjaunināt vai izveidot lielapjoma ierakstus atkarībā no scenārija.

Ierakstu lielapjoma atjaunināšanas formulas

Šīs sadaļas formulas var izmantot ierakstu lielapjoma atjaunināšanai pamatnes programmās.

  • Funkcija Patch() — izmantojiet šo funkciju, ja kolekcija atbilst datu avotam.

    Patch( DataSource, Collection )
    
  • Funkciju + ForAll() ligzdots ielāpa + neskaidrības operators — izmantojiet šo funkciju, ja datu avotiem ir dažādas kolonnas, kurām jāpievieno.

    ForAll( Collection,
        Patch( DataSource, 
            LookUp( DataSource, Id = Collection[@Id] ),
            { Column: Value }
        )
    )
    
  • Funkcija AddColumns() — šo funkciju var izmantot, lai kolekcijā nodrošinātu uzmeklēšanas atsauci, kurā ir datu avota atjauninājumi, ja tajā nav lauku, kas viegli atsaucas uz tabulu.

Pārbaudes saraksta piemērs

Šajā piemērā tiek izmantots uzdevumu pārbaudes saraksts. Pēc dažu uzdevumu pabeigšanas tos var atzīmēt kā pabeigtus. Šo scenāriju var paplašināt līdz produkta palaišanas pārbaudes sarakstam, sākuma pārbaudes sarakstam vai citiem sarakstiem.

Tālāk sniegtajā ekrānuzņēmumu ir redzami failā redzamie kontrolsaraksta Microsoft Excel elementi. Varat atzīmēt uzdevumus, kas saistīti ar jūsu emuāriem, vai publicēt saturu sociālajos tīklos šajā piemērā. Tiek saukta ChecklistItems tabula programmā Excel.

Piemērs izmanto kolekcijas, lai demonstrētu šo uzvedību. Šī pieeja darbojas jebkurai tabulas aizmugurei pēc jūsu izvēles.

Alternatīvais teksts.

Excel dati programmā tiek importēti kā statiski dati. Rekvizītā App.OnStartCollect() Excel kontrolsarakstsVienumi datus apkopojumā ChecklistItemsSource . Kolekcija ChecklistItemsSource tiks izmantota kā avota dati visā lietotnē.

Šajā piemērā tiek izmantota divu ekrāna programma:

  • 1. ekrāns — tiek izmantots, lai pārskatītu kontrolsaraksta elementus un atzīmētu tos kā pabeigtus.
  • 2. ekrāns — tiek izmantots, lai izveidotu jaunu kontrolsaraksta elementu. Jaunais priekšmets tiks pievienots kolekcijai ChecklistItemsSource .

1. ekrāns. 2. ekrāns

Katru reizi, kad kontrolsaraksta vienums tiek atzīmēts, tas tiek pievienots kolekcijai, kas CheckedItems tiek izsaukta. Tā izmanto tālāk norādīto formulu izvēles rūtiņas vadīklas notikuma OnCheck rekvizītā. Ja elements jau ir atzīmēts un ir daļa no kolekcijas, tas tiek noņemts. Ja ne, tiek pievienots atzīmētais elements.

Varat pārslēgt statusu starp Gatavs un Gaida, vai arī varat izmantot un Oncheck notikumus OnUncheck :

If( !IsBlank( 
        LookUp( CheckedItems, Id = ThisItem.Id )
    ),
    Remove( CheckedItems, ThisItem ),
    Collect( CheckedItems, ThisItem )
)

Vairāku ierakstu izveide vienlaikus

Ir dažādi ierakstu lielapjoma atjaunināšanas veidi atkarībā no scenārija. Šajā sadaļā izskaidrots, kā pamatnes programmās vienlaikus izveidot vairākus ierakstus.

Kad lietotājs iepriekš minētajā piemērā atlasa Gatavs , jums ir jāatjaunina ChecklistItemsSource ar izmaiņām kolekcijā CheckedItems.

Kolonnām ar vienādu nosaukumu

Ja avota un mērķa kolonnai ir vienādi kolonnu nosaukumi, varat izmantot priekšrakstu "Ielāps". Piemēram, ChecklistItemsSource un kolekcijām CheckedItems ir vienādi kolonnu nosaukumi. Lai vienlaikus atjauninātu avotu ar visām izmaiņām, varat izmantot tālāk esošo formulas vērtību.

Patch( ChecklistItemsSource, CheckedItems )

Kolonnām ar atšķirīgiem nosaukumiem

Ja avota un mērķa tabulu kolonnas atšķiras, tā vietā izmantojiet ForAll ar ielāpu.

Ar, ForAll() jums ir jāpārbauda katrs ieraksts, izmantojot nosacījumu. Nosacījums ir dažādu tabulu līdzīgu kolonnu (piemēram, kolonna) Id salīdzinājums. Šis salīdzinājums kļūst sarežģīts, ja avota tabulai un mērķa tabulai ir vienādi kolonnu nosaukumi (piemēram, ja ProjectId kolonna ir atrasta abās Project un PurchaseOrder tabulās).

Lūk, alternatīvas:

Izmantojiet ar viennozīmīgu operatoru

Lai atjauninātu Status no CheckedItems uz "Gatavs", ja avota un mērķa tabulas kolonnu nosaukumi ir vienādi, izmantojiet šo formulu:

ForAll( CheckedItems,
    Patch( ChecklistItemsSource, 
        LookUp( ChecklistItemsSource, Id = CheckedItems[@Id] ),
        { Status: "Done" }
    )
)

Katram krājuma CheckedItems vienumam Id (ko attēlo neskaidrības operators CheckedItems[@Id]) tiek salīdzināts ar kolekcijas ChecklistItemsSource kolonnu ID. Pēc tam katrs atbilstošais ieraksts tiek atjaunināts ar statusu "Pabeigts". Viennozīmīguma operators tiek izmantots, ja divām kolonnām, kas pieder dažādām tabulām, ir vienāds nosaukums. Ja neizmantojat šo viennozīmīguma operatoru, tiks parādīts, ka tiek atjaunināts tikai pirmais ieraksts.

Ja nevēlaties izmantot papildu kolekciju, lai glabātu atzīmētos elementus, varat veikt šādas darbības:

  1. Papildu etiķetes izmantošana galerijas veidnes ietvaros.

    1. Piesaistiet to ID kolonnai.
    2. Pārdēvējiet etiķeti par IdText.
  2. Noņemiet kodu iepriekš minētās izvēles rūtiņas vadīklas OnCheck .

  3. Notikumam Pabeigts ierakstiet šādu formulas vērtību notikumam OnSelect:

    ForAll(
        Filter( ChecklistGallery.AllItems,
          StatusCheckbox.Value = true
        ),
        Patch( ChecklistItemsSource,
          LookUp( ChecklistItemsSource, Id = IdText.Text ),
          { Status: "Done" }
        )
    )
    

Šeit filtrs tiek tieši lietots galerijas elementiem, lai atrastu atzīmētos elementus. Katram filtrēto vienumu ierakstam tabulā ChecklistItemsSource tiek atrasta atbilstība, salīdzinot ID ar vērtību, kas saglabāta IdText etiķetē.

Statuss tiek atjaunināts uz Pabeigts.

Viennozīmīguma operatoru nevar izmantot galerijas elementos. Tā vietā etiķeti var saglabāt galerijas ietvaros un izmantot salīdzināšanai.

Alternatīvas iespējas izveide, lai izveidotu jaunu kolonnu ar atšķirīgu etiķeti

Šī metode ir alternatīva viennozīmīguma operatora vai etiķetes izmantošanai galerijā.

Veidojot datu avota lokālo kopiju, varat izmantot formulu AddColumns() , lai izveidotu jaunu kolonnu ar citu etiķeti (NewId) kolonnai Id avota kolekcijā. Lietojot ForAll ar ielāpu, jūs salīdzināt NewId kolonnu ar ID kolonnu jūsu avota datos.

Izveidojiet lielapjoma ierakstus

Ja, piemēram, vēlaties augšupielādēt visus attēlus vienlaikus, iespējams, vēlēsities izveidot jaunus ierakstus vairumā.

Tālāk ir sniegts piemērs, izmantojot kontrolsaraksta piemēru.

Ekrānā Kontrolsaraksta vienumu izveide katru reizi, kad atlasāt Pievienot, informācija tiek glabāta kolekcijā NewChecklistItems . Izvēloties Iesniegt,ar ForAll()Patch() tiek izmantoti, lai atjauninātu avota kolekciju.

ForAll( NewChecklistItems,
    Patch( ChecklistItemsSource,
        Defaults( ChecklistItemsSource ),{
            Id: Id,
            Category: Category,
            Description: Description,
            Status:Status
        }
    )
)

Katram vienumam NewChecklistItems kolekcijā tiek izveidots jauns ieraksts (norādīts Defaults(ChecklistItemsSource)). ChecklistItemsSource Tas Id ir iestatīts uz Id no kolekcijas NewChecklistItems . Līdzīgi, Category, Description, un Status vērtības ir iestatītas.

Skatiet arī