A táblázatok és rekordok megismerése a vászonalapú alkalmazásokban

A Power Appsben létrehozhat olyan vászonalapú alkalmazást, amely a Microsoft Excel, a SharePoint vagy az SQL Server rekordokban és táblákban tárolt adataihoz férhet hozzá. Annak érdekében, hogy az ilyen adatokkal a leghatékonyabban tudjon dolgozni, érdemes áttekinteni azokat a fogalmakat, amelyek fontosak az ilyen adatstruktúrákban.

  • Egy rekord egy vagy több kategóriába tartozó információt tárol például személyekről, helyekről vagy tárgyakról. Így egy rekord tartalmazhatja például egy meghatározott felhasználó nevét, e-mail-címét és telefonszámát. Előfordulhat, hogy más források és eszközök a rekordokat „sor” vagy „tétel” néven említik.
  • Egy tábla egy vagy több olyan rekordot tartalmaz, amelyek mind ugyanolyan kategóriájú információt tárolnak. Így például egy táblában tárolható 50 ügyfél neve, e-mail-címe és telefonszáma.

Az alkalmazásban képletek használatával lehet a tábla rekordjait létrehozni, frissíteni és különféle műveleteket végezni rajtuk. Az adatok olvasásának forrása és írásának célja nagy valószínűséggel egy külső adatforrás lesz, amely egy kiterjesztett táblának felel meg. Ezen kívül létrehozhat egy vagy több belső táblát is, amelyeket gyűjteménynek nevezünk.

Sokféle képletet hozhat létre, amelyek argumentumként egy tábla nevét kérik ahhoz hasonlóan, ahogy az Excelben hozhat létre olyan képleteket, amelyek argumentuma egy vagy több cellára való hivatkozás lehet. A Power Appsben használhatók olyan képletek is, amelyek egy másik argumentumhoz használható táblát adnak vissza. Képletek hozhatók létre többek között az alábbi feladatokra:

  • egy táblázat rekordjának frissítése úgy, hogy az adott táblát a Patch függvény egyik argumentumaként adja meg
  • egy tábla oszlopainak hozzáadása, eltávolítása vagy átnevezése úgy, hogy a táblát az AddColumns (oszlopok hozzáadása), a DropColumns (oszlopok törlése) vagy a RenameColumns (oszlopok átnevezése) függvény argumentumaként adja meg. Ezek közül egyik függvény sem módosítja az eredeti táblát, hanem a megadott argumentumok alapján egy új táblát ad vissza.

A tábla elemei

Táblázatelemek.

Rekordok

Minden rekord legalább egy információtípust tartalmaz egy személyről, egy helyről vagy egy tárgyról. A fenti példában egy olyan rekord látható, amelyben van egy-egy rekord minden termékhez (Chocolate – csokoládé, Bread – kenyér, valamint Water – víz), és egy-egy oszlop tartozik minden információkategóriához (Price – ár, Quantity on Hand – rendelkezésre álló mennyiség, valamint Quantity on Order – megrendelt mennyiség).

Képletekben egy rekordra hivatkozni önmagában, a tábla kontextusán kívül kapcsos zárójelek használatával lehet. Ez a rekord például nem hivatkozik táblára: { Name: "Strawberries", Price: 7.99 }. Vegye figyelembe, hogy a mezőnevek, mint a példában szereplő Name (Név) és Price (Ár), nem kerülnek idézőjelek közé.

Mezők

A mező egy rekordon belüli önálló információegység. A mező úgy is elképzelhető, mint egy adott rekord oszlopának értéke.

A vezérlőkhöz hasonlatosan a mezőre is a . operátor rekordra vonatkozó használatával hivatkozhatunk. Például a First(Products).Name a Products tábla első (First = első) rekordjának Name mezőjét adja vissza.

Egy mező tartalmazhat egy újabb rekordot vagy táblát is, ahogy az a GroupBy függvénynél is látható. A rekordok és táblák egymásba ágyazása korlátlanul folytatható.

Oszlopok

Az oszlop egy táblázat egy vagy több rekordjának ugyanazon mezőjére utal. A fenti példában minden termékhez tartozik egy „price” (ár) mező, amely minden termék esetében ugyanabban az oszlopban található. A fenti példában szereplő táblának négy oszlopa van, amelyek vízszintesen a tábla tetején láthatóak:

  • Név
  • Ár
  • Meglévő mennyiség
  • Megrendelt mennyiség

Az oszlop neve az oszlopban található mező neve is egyben.

Egy oszlopban minden érték ugyanabba az adattípusba tartozik. A fenti példában a „Quantity on Hand” (Elérhető mennyiség) oszlop minden esetben számot tartalmaz, és egyetlen rekordnál sem tartalmazhat sztringet, pl. „12 darab”. Bármely mező rendelkezhet blank, azaz üres értékkel is.

Az oszlopokat más eszközökben „field” vagy „mező” néven is ismerheti.

Megjegyzés

Azoknál a SharePoint- és Excel vagy Power BI-adatforrásoknál, amelyekben szóközt tartalmazó oszlopnevek szerepelnek, a Power Apps minden szóközt az "_x0020_" értékre cserél. A SharePointban szereplő "Oszlop neve" érték például "Oszlop_x0020_neve" alakban fog megjelenni a SharePoint, Excel vagy Power BI alkalmazásban a Power Apps szolgáltatásban adatelrendezésben való megjelenítéskor vagy képletben való használatkor.

Table

Egy tábla egy vagy több rekordot tartalmaz, amelyekben több mező található, és a mezőnevek minden rekord esetében változatlanok.

Az adatforrásokban vagy gyűjteményekben tárolt táblák mindig rendelkeznek névvel is, amelyet függvények argumentumaként megadva az adott táblára hivatkozhat. Táblát függvények és képletek is adhatnak eredményül.

Ahogy az alábbi példában látható, képletben a Table függvény használatával is megadható táblázat, amelynek értékeit kapcsos zárójelek közé kell tenni:

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

Egyoszlopos táblát szögletes zárójelek között is lehet definiálni: A fentivel megegyező eredményt adja az alábbi:

[ "Strawberry", "Vanilla" ]

Táblaképletek

Az Excelben és a Power Appsben hasonlóképpen használhatóak a képletek számok és sztringet tartalmazó szövegek kezelésére:

  • Az Excelben beírhatja például a 42 értéket az A1 cellába, majd egy másik cellába beírhatja például az A1+2 képletet, ami a 44 értéket jeleníti meg.
  • A Power Appsben ugyanez így végezhető el: állítsa a Csúszka1 vezérlő Default (alapértelmezett) tulajdonságát 42 értékre, majd egy címke Text tulajdonságát állítsa Slider1.Value + 2 értékre, így az a 44 értéket fogja megjeleníteni.

A kiszámított érték mindkét esetben automatikusan megváltozik, ha az argumentumok értéke (például az A1 cellában lévő szám, vagy a Csúszka1 értéke) megváltozik.

Képleteket ehhez hasonlóan arra is használhat, hogy táblák adatait vagy rekordjait érje el vagy módosítsa. Egyes képletekben a táblanevek argumentumként is használhatóak, így például a Min(Catalog, Price) a Catalog tábla Price (ár) oszlopának legalacsonyabb értékét mutatja meg. Olyan képletek is vannak, amelyek teljes táblát adnak visszatérési értékként. Ilyen többek között a RenameColumns(Catalog, "Price", "Cost"), amely a Catalog tábla minden rekordját visszaadja, de a Price (ár) oszlop nevét Cost (költség) névre változtatja.

Ahogy azt a számoknál is láttuk, a táblákat és a rekordokat érintő képletek automatikusan frissülnek, ha az érintett tábla rekordjai megváltoznak. Ha a Catalog táblában szereplő egyik termék ára alacsonyabbá válik, mint a korábban visszaadott minimum érték, akkor a Min képlet automatikusan tükrözi majd ezt a változást.

Most vizsgáljunk meg néhány egyszerű példát.

  1. Hozzon létre egy üres telefonos alkalmazást, majd adjon hozzá egy vertikális Katalógus vezérlőt, amely tartalmazza a többi vezérlőelemet.

    A képernyő alapértelmezés szerint a CustomGallerySample nevű táblára vonatkozó helyőrző szöveget jelenít meg. A képernyő Katalógus vezérlőjének Items (Elemek) tulajdonsága automatikusan erre a táblára van beállítva.

    Galéria.

    Megjegyzés

    A jobb illusztráció kedvéért egyes vezérlőelemeket áthelyeztünk és felnagyítottunk.

  2. Ahelyett, hogy az Items tulajdonság értékének egy tábla nevét adná meg, adjon meg egy olyan képletet, amelyben a tábla neve argumentumként szerepel, az alább látható módon:

    Sort(CustomGallerySample, SampleHeading, SortOrder.Descending)

    Ebben a képletben a Sort (Rendezés) függvény szerepel, amely első argumentumként a tábla nevét veszi fel, második argumentumként pedig a tábla egyik oszlopának nevét. A függvény egy nem kötelező harmadik argumentummal is használható, amely azt határozza meg, hogy az adatokat csökkenő sorrendben kell megjeleníteni.

    Rendezés a galériához.

  3. Az Items tulajdonság értékeként adjon meg egy olyan képletet, amely az előző lépésben szereplő képletet használja argumentumként, és eredményül táblát ad vissza, ahogy ebben a példában látható:

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

    Ebben a képletben a FirstN (Az első N) függvényt használtuk, amely egy tábla meghatározott számú rekordjait jeleníti meg. A Sort függvényt a FirstN első argumentumaként használjuk, második argumentumként pedig egy olyan számot (ebben a példában ez 2), amely a megjelenítendő rekordok számát határozza meg.

    A teljes képlet egy olyan táblát ad eredményül, amely a CustomGallerySample tábla első két rekordját tartalmazza a SampleHeading oszlop alapján csökkenő sorrendben.

    FirstN a galériához.

Táblafüggvények és vezérlőelem-tulajdonságok

Fontolja meg a Lower függvény használatát. Ha az üdvözöljük változó a "Helló, világ" szöveges karakterláncot tartalmazza, akkor a Lower (üdvözöljük) függvény "helló, világ" értéket ad vissza. Ez a funkció semmilyen módon nem változtatja meg az adott változó értékét. A Lower egy olyan tiszta függvény, amely csak bemenetet dolgoz fel, és kimenetet állít elő. Ez minden; nincs mellékhatása. Az Excel alkalmazás összes függvénye, és a Power Apps legtöbb függvénye tiszta függvény, amelyek lehetővé teszik a munkafüzet vagy az alkalmazás automatikus újraszámítását.

A Power Apps a táblákat azonos módon kezelő függvények halmazát nyújtja. Ezek a függvények bemenetként táblázatokat használnak, és adatok teljes táblázatait szűrik, rendezik, alakítják át, csökkentik és összegzik. Valójában a Lower és sok más függvény, amely általában egyetlen értéket használ fel, egyoszlopos táblázatot is felhasználhatnak bemenetként.

  • Sort, Filter - Rekordokat rendez sorba és szűr.
  • FirstN, LastN - Egy tábla első (first) vagy utolsó (last) N számú rekordját adja vissza.
  • Abs, Sqrt, Round, RoundUp, RoundDown - Aritmetikai műveleteket végeznek egy egyoszlopos tábla minden egyes rekordján, és egy egyoszlopos táblát adnak vissza eredményül.
  • Left, Mid, Right, Replace, Substitute, Trim, Lower, Upper, Proper - Sztringműveleteket végeznek egy egyoszlopos tábla minden egyes rekordján, és egy sztringeket tartalmazó egyoszlopos táblát adnak vissza eredményül.
  • Len - Sztringeket tartalmazó oszlopra alkalmazva egy egyoszlopos táblát ad vissza, amely az egyes sztringek hosszúságát tartalmazza.
  • Concatenate - Több oszlop sztringjét fűzi össze, és sztringet tartalmazó egyoszlopos táblát ad vissza.
  • AddColumns, DropColumns, RenameColumns, ShowColumns - Egy tábla oszlopain hajt végre műveleteket, és az új oszlopokat tartalmazó táblát ad vissza.
  • Distinct - Eltávolítja az ismétlődő rekordokat.
  • Shuffle - A rekordokat véletlenszerű sorrendbe állítja.
  • HashTags - Hashtageket keres egy sztringben.
  • Errors - Hibákkal kapcsolatos információt nyújt adatforrással való munkánál.

Sok ilyen funkció bemenetként egy egyoszlopos táblázatot vesz igénybe. Ha egy teljes táblának csak egy oszlopa van, akkor név szerint megadhatja azt. Ha egy táblának több oszlopa van, akkor adja meg az oszlopok egyikét a Table.Column szintaxis használatával. A Products.Namepéldául a Termékek táblázatból csak az Név értékek egyoszlopos táblázatát adja eredményül.

Az AddColumns, RenameColumns, ShowColumns vagy DropColumns függvény használatával teljes mértékben átalakíthatja a táblázatot. Ismét, ezek a függvények csak a kimenetüket változtatják meg, nem a forrásukat.

A vezérlőelemek tulajdonságai a következő táblázatok is lehetnek:

  • Items - Katalógusokra, listamezőkre és kombinált mezőkre vonatkozik. Ez a tulajdonság adja meg azt a táblázatot, amelyet a katalógus vagy a lista megjelenít.
  • SelectedItems - Listamezőkre és kombinált mezőkre vonatkozik. Ez a tulajdonság határozza meg a felhasználó által kijelölt cikkek táblázatát, ha a SelectMultiple engedélyezve van.

Viselkedési képletek

Az egyéb függvények kifejezetten az adatok módosítására szolgálnak, és mellékhatásokkal rendelkeznek. Mivel ezek a függvények nem tiszták, körültekintően kell felépíteni őket, és nem vehetnek részt az alkalmazásban szereplő értékek automatikus újraszámításában. Ezek a függvények csak viselkedésszabályozó képletekben használhatók.

  • Collect, Clear, ClearCollect - Gyűjteményeket hoz létre, töröl, és adatokat ad hozzájuk.
  • Patch – A bejegyzés egy vagy több mezőjét módosítja.
  • Update, UpdateIf - Egy vagy több megadott feltételnek megfelelően rekordokat frissít.
  • Remove, RemoveIf - Egy vagy több megadott feltételnek megfelelően rekordokat töröl.

Rekordképletek

Olyan képlet is létrehozható, amely egy adott rekord adatát számítja ki, vagy egy adott rekordot kér argumentumként, és egy rekordot ad visszatérési értékként. Térjünk vissza a fenti gyűjtemény példához, és használjuk a Gallery1.Selected tulajdonságot ahhoz, hogy megjelenítsük a felhasználó által kiválasztott rekordban található információt.

  1. Adjon hozzá egy Gomb vezérlőt, és az OnSelect tulajdonsága értékeként adja meg ezt a képletet:
    Collect( SelectedRecord, Gallery1.Selected )

  2. Az Alt billentyűt lenyomva tartva válassza ki a gombot.

  3. A Fájl menüben válassza a Gyűjtemények elemet.

    SelectedRecord gyűjtemény.

Ez a képlet egy olyan rekorddal tér vissza, amely nem csak a gyűjteményben aktuálisan kiválasztott rekord adatait tartalmazza, de a gyűjtemény összes vezérlőjét is. A rekord tartalmaz például egy SampleText nevű oszlopot, amely az eredeti tábla SampleText oszlopának felel meg, és egy Subtitle1 oszlopot is, amely annak a címkének felel meg, amely ennek az oszlopnak az adatait jeleníti meg. Válassza ki a Subtitle1 oszlop tábla ikonját, hogy elérhesse az adatait.

Megjegyzés

A Subtitle1 oszlop neve Subtitle2 vagy hasonló is lehet, ha az ebben a témakörben megadottakon kívül más elemeket is hozzáadott.

Miután kiválasztotta a rekordot, az egyes mezők adatait a . operátorral hajtja végre a funkció.

  1. Adjon hozzá egy Címke vezérlőt, majd mozgassa a katalógus és a gomb alá.

  2. Állítsa a címke Text tulajdonságát a következő kifejezésre:
    "Selected: " & Gallery1.Selected.SampleHeading

    Szövegtulajdonság frissített címkével.

Ezzel a Selected tulajdonságból, amely egy rekord, kiválasztotta a SampleHeading tulajdonságot.

Rekordot egymással kapcsolatban álló értékek általános célú tárolójaként is használhat.

  • Ha az UpdateContext és a Navigate függvények használatával hoz létre képletet, a frissíteni kívánt környezeti változók tárolására használhat egy rekordot.
  • Egy Szerkesztési űrlap vezérlőelem Updates tulajdonságával összegyűjtheti a felhasználó által az űrlapon végzett módosításokat.
  • A Patch függvény használatával frissítheti az adatforrást, vagy egyesítheti a rekordokat.

Mindezekben az esetekben a rekord soha nem volt tábla része.

Rekordfüggvények és vezérlőelem-tulajdonságok

Rekorddal visszatérő függvények:

  • FirstN, LastN - Egy tábla első vagy utolsó rekordjával tér vissza.
  • Lookup - Egy tábla egy vagy több feltételnek megfelelő első rekordjával tér vissza.
  • Patch - Frissíti az adatforrást vagy egyesíti a rekordokat.
  • Defaults – Egy adatforrás alapértelmezett értékeit adja vissza.

Rekordokkal visszatérő tulajdonságok:

  • Selected - Gyűjteményekre és listapanelekre vonatkozik. Az aktuálisan kiválasztott rekorddal tér vissza.
  • Updates - Gyűjteményekre vonatkozik. Együttesen kéri le a felhasználó által az adatbeviteli űrlapon végzett összes módosítást.
  • Update - Beviteli vezérlőelemekre, például szövegbeviteli és csúszka vezérlőkre vonatkozik. Az gyűjteményre vonatkozó egyes tulajdonságokat állítja be.

Rekordhatókör

Bizonyos függvények a képletet egy adott tábla minden egyes rekordjára vonatkozólag kiértékelik. A képlet eredménye különféle módon használható:

  • AddColumns - A képlet tartalmazza a hozzáadott mező értékét.
  • Average, Max, Min, Sum, StdevP, VarP - A képlet tartalmazza az összesítendő értékeket.
  • Filter, Lookup - A képlet határozza meg, hogy a rekord része legyen-e a kimenetnek.
  • Concat - A képlet határozza meg, mely sztringeket kell összefűzni.
  • Distinct - A képlet egy olyan értékkel tér vissza, amellyel duplikátumrekordok azonosíthatók.
  • ForAll - A képlet bármilyen értékkel vissza tud térni, esetleg valamilyen mellékhatással.
  • Sort - A képlet tartalmazza a rekordok sorba rendezéséhez használt értéket.
  • With - A képlet bármilyen értékkel vissza tud térni, esetleg valamilyen mellékhatással.

Ezekben a képletekben hivatkozhat a feldolgozandó rekord mezőire. Ezek közül minden függvény létrehoz egy „rekordhatókört”, amelyben a képlet kiértékelése történik, ahol a rekord mezői felső szintű azonosítókként érhetőek el. Az alkalmazás egészéből hivatkozhatók vezérlőtulajdonságok és további értékek is.

Vegyük például az alábbi Products (Termékek) nevű táblát:

Termékek példa.

Ha a példában szereplő táblát szeretné létrehozni az alkalmazásban, szúrjon be egy gombot, állítsa be az OnSelect tulajdonságát erre a képletre, majd jelölje ki a gombot (kattintson a gombra, miközben lenyomva tartja az Alt billentyűt a Power Apps Studio alkalmazásban):

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

Az alábbi módon lehet megállapítani, hogy van-e olyan termék, amelyből több a rendelés, mint amennyi rendelkezésre áll belőle:

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

A Filter (Szűrés) első argumentuma az a tábla, amely a megfelelő rekordokat tartalmazza, a második argumentum pedig egy képlet. A Filter létrehoz egy olyan rekordhatókört, amelyben minden rekord mezője elérhető, ebben az esetben a Product, a Quantity Requested és a Quantity Available mezők. Az összehasonlítás eredménye minden egyes rekord esetén meghatározza, hogy az adott rekord bekerüljön-e a függvény eredményébe:

Szűrt táblázat.

Ugyanezt a példát kibővíthetjük úgy, hogy azt is megmutassa, mennyit kell rendelni az egyes termékekből:

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

Itt egy számított oszlopot adunk hozzá az eredményhez. Az AddColumns saját rekordhatókörrel rendelkezik, amelyet felhasznál ahhoz, hogy kiszámítsa a rendelkezésre álló készlet és a rendelések közötti különbséget.

Hozzáadott oszlopok.

Végül szűkíthetjük az eredménytáblát úgy, hogy csak a szükséges oszlopokat tartalmazza:

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

Frissített táblázat.

Figyelje meg, hogy a fenti példákban néhol idézőjeleket ("), máshol pedig félidézőjelet (') használtunk. A félidézőjel akkor szükséges, amikor egy objektum olyan értékére, például mezőre vagy táblára hivatkozunk, amelyben az objektum neve szóközt tartalmaz. A dupla idézőjellel nem hivatkozunk objektum értékére, hanem említjük azt, különösen is ha az objektum maga még nem is létezik, mint például az AddColumns esetén.

Egyértelműsítés

A rekordra vonatkozó hatókörrel felvett mezőnevek felülbírálják az alkalmazásban máshol előforduló azonos neveket. Ilyenkor a @ egyértelműsítő operátorral továbbra is elérhetők a rekord hatókörén kívüli értékek:

  • A rekordra vonatkozó beágyazott hatókörök értékeit a @ operátor és a műveleti tábla nevének együttes használatával érheti el. Használandó minta:
    Tábla[@MezőNév]
  • A globális értékek (például adatforrások, gyűjtemények és környezeti változók) elérésére használja a következő mintát: [@ObjektumNév] (tábla megadása nélkül).

Ha a művelettel megcélzott tábla kifejezés, például Filter( Tábla, ... ), akkor az egyértelműsítő operátor nem használható. Ebben a táblában csak a legbelső rekordhatókör tud hozzáférni a mezőkhöz az egyértelműsítő operátor használata nélkül.

Tegyük fel például, hogy van egy X gyűjteményünk:

X gyűjtemény.

A gyűjteményt így lehet létrehozni: ClearCollect( X, [1, 2] ).

Vegyen fel egy újabb gyűjteményt Y néven:

Y kollekció.

Ehhez használja ezt a képletet: ClearCollect( Y, ["A", "B"] ).

Definiáljon még meg egy Value nevű változót ezzel a képlettel: UpdateContext( {Value: "!"} )

Nézzük most meg összességében. Ebben a kontextusban ez a képlet:

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

ezt a táblát eredményezi:

XY táblázat.

Vajon mi történt? A legkülső ForAll függvény meghatározza az X rekordhatókörét, így hozzáférhetővé válik minden egyes rekord Value nevű mezője a feldolgozás során. Egyszerűen az Érték szó használatával vagy az X[@Value] használatával érhető el.

A legbelső ForAll függvény egy másik, Y rekordhatókört határoz meg . Mivel ez a tábla szintén tartalmaz egy definiált Value mezőt, az itt használt Value az Y rekordján belüli mezőre hivatkozik, és nem az X-ére. Ha itt szeretnénk hozzáférni az X-hez tartozó Value mezőhöz, akkor az egyértelműsítő operátort tartalmazó hosszabb változatot kell használnunk.

Mivel az Y a legbelső rekordhatókör, ennek a táblának a mezői egyértelműsítés nélkül is elérhetőek, így használhatjuk ezt a képletet ugyanazzal az eredménnyel:

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

A ForAll rekordhatókörei mindig felülírják a globális hatókört. A definiált Value környezeti változó az egyértelműsítő operátor használata nélkül nem érhető el. Az érték eléréséhez használja a következőt: [@Value].

Az Ungroup lapossá teszi az eredményt, mivel a beágyazott ForAll függvények beágyazott eredménytáblát eredményeznek.

Egyoszlopos táblák

Ha egy tábla egyetlen oszlopán szeretne dolgozni, használja a ShowColumns függvényt az ebben a példában megadott módon:

ShowColumns( Products, "Product" )

Ez a képlet ezt az egyoszlopos táblázatot állítja elő:

Egyoszlopos táblázat.

Rövidebb alternatíva érdekében adja meg a Table.Column elemet, amely kinyeri a csak Oszlop egyoszlopos táblázatot a Táblázat elemből. Ez a képlet például pontosan ugyanazt az eredményt adja, mint a ShowColumns használata.

Products.Product

Belső rekordok

A rekordokat kapcsos zárójelek közé kell tenni, amelyben a mezők nevei és értékei szerepelnek. A témakör elején szereplő tábla első rekordját az alábbi képlettel lehet kifejezni:

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

Képleteket más képletekbe is be lehet ágyazni, ahogy az alábbi példában látható:

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

A rekordokat beágyazni a kapcsos zárójelek beágyazásával lehet, ahogy az alábbi példában látható:

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

Minden olyan oszlopnevet, amely speciális karaktereket (például szóközt vagy kettőspontot) tartalmaz, egyszeres idézőjelek közé kell tenni. Ha az oszlopnévben egyszeres idézőjelet (aposztrófot) szeretne használni, akkor duplán kell írni az egyszeres idézőjelet.

Figyelje meg, hogy a Price (Ár) oszlopban található értékek nem tartalmaznak pénznem (például dollár) jelet. Ezt a formázást az érték megjelenítésénél lehet elvégezni.

Belső táblázatok

Táblát a Table függvénnyel és rekordok megadásával hozhat létre. A témakör elején szereplő tábla az alábbi képlettel fejezhető ki:

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

Táblákat be is lehet ágyazni:

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

Belső értéktáblázatok

Egyetlen oszlopot tartalmazó táblát úgy hozhat létre, hogy szögletes zárójelek között adja meg az értékeket. Az eredményül kapott táblának egyetlen, Value nevű oszlopa van.

Például az [ 1, 2, 3, 4 ] megegyezik a Table( { Value: 1 }, { Value: 2 }, { Value: 3 }, { Value: 4 } ) elemmel, és a következő táblázatot adja vissza:

Beágyazott táblázat.

Megjegyzés

Megosztja velünk a dokumentációja nyelvi preferenciáit? Rövid felmérés elvégzése. (ne feledje, hogy ez a felmérés angol nyelvű)

A felmérés elvégzése körülbelül hét percet vesz igénybe. Semmilyen személyes adatot nem gyűjtünk (adatvédelmi nyilatkozat).