Információ a PowerAppsben használható táblákról és rekordokrólUnderstand tables and records in PowerApps

Létrehozhat olyan alkalmazást, amely a Microsoft Excel, a SharePoint vagy az SQL Server rekordokban és táblákban tárolt adataihoz férhet hozzá.You can create an app that accesses information in Microsoft Excel, SharePoint, SQL Server, and several other sources that store data in records and tables. Annak érdekében, hogy az ilyen adatokkal a leghatékonyabban tudjon dolgozni, érdemes áttekinteni azokat a fogalmakat, amelyek fontosak az ilyen adatstruktúrákban.To work most effectively with this kind of data, review the concepts that underlie these structures.

  • 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.A record contains one or more categories of information about a person, a place, or a thing. Így egy rekord tartalmazhatja például egy meghatározott felhasználó nevét, e-mail-címét és telefonszámát.For example, a record might contain the name, the email address, and the phone number of a single customer. Előfordulhat, hogy más források és eszközök a rekordokat „sor” vagy „tétel” néven említik.Other tools refer to a record as a "row" or an "item."
  • Egy tábla egy vagy több olyan rekordot tartalmaz, amelyek mind ugyanolyan kategóriájú információt tárolnak.A table holds one or more records that contain the same categories of information. Így például egy táblában tárolható 50 ügyfél neve, e-mail-címe és telefonszáma.For example, a table might contain the names, the email addresses, and the phone numbers of 50 customers.

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.In your app, you'll use formulas to create, update, and manipulate records and tables. 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.You'll probably read and write data to an external data source, which is an extended table. Ezen kívül létrehozhat egy vagy több belső táblát is, amelyeket gyűjteménynek nevezünk.In addition, you might create one or more internal tables, which are called collections.

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.You can build a variety of formulas that take the name of a table as an argument, just as a formula in Excel takes one or more cell references as arguments. A PowerAppsben használhatók olyan képletek is, amelyek egy másik argumentumhoz használható táblát adnak vissza.Some formulas in PowerApps return a table that reflects the other arguments that you specify. Képletek hozhatók létre többek között az alábbi feladatokra:For example, you might create a formula:

  • 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 megto update a record in a table by specifying that table as one of multiple arguments for the Patch function
  • 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.to add, remove, and rename columns in a table by specifying that table as an argument for the AddColumns, DropColumns, or RenameColumns function. Ezek közül egyik függvény sem módosítja az eredeti táblát,None of those functions modifies the original table. hanem a megadott argumentumok alapján egy új táblát ad vissza.Instead, the function returns another table based on the other arguments that you specify.

A tábla elemeiElements of a table

RekordokRecords

Minden rekord legalább egy információtípust tartalmaz egy személyről, egy helyről vagy egy tárgyról.Each record contains at least one category of information for a person, a place, or a thing. 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).The example above shows a record for each product (Chocolate, Bread, and Water) and a column for each category of information (Price, Quantity on Hand, and Quantity on Order).

Képletekben egy rekordra hivatkozni önmagában, a tábla kontextusán kívül kapcsos zárójelek használatával lehet.In a formula, you can refer to a record by itself, outside of a table's context, by using curly braces. Ez a rekord például nem hivatkozik táblára: { Name: "Strawberries", Price: 7.99 }.For example, this record { Name: "Strawberries", Price: 7.99 } isn't associated with a table.

MezőkFields

A mező egy rekordon belüli önálló információegység.A field is an individual piece of information in a record. A mező úgy is elképzelhető, mint egy adott rekord oszlopának értéke.You can visualize this sort of field as a value in a column for a particular record.

A vezérlőkhöz hasonlatosan a mezőre is a .Just as with a control, you refer to a field of a record by using the . operátor rekordra vonatkozó használatával hivatkozhatunk.operator on the record. Például a First(Products).Name a Products tábla első (First = első) rekordjának Name mezőjét adja vissza.For example, First(Products).Name returns the Name field for the first record in the Products table.

Egy mező tartalmazhat egy újabb rekordot vagy táblát is, ahogy az a GroupBy függvénynél is látható.A field can contain another record or table, as the example for the GroupBy function shows. A rekordok és táblák egymásba ágyazása korlátlanul folytatható.You can nest as many levels of records and tables as you want.

OszlopokColumns

Az oszlop egy táblázat egy vagy több rekordjának ugyanazon mezőjére utal.A column refers to the same field for one or more records in a table. A fenti példában minden termékhez tartozik egy „price” (ár) mező, amely minden termék esetében ugyanabban az oszlopban található.In the above example, each product has a price field, and that price is in the same column for all products. A fenti példában szereplő táblának négy oszlopa van, amelyek vízszintesen a tábla tetején láthatóak:The above table has four columns, shown horizontally across the top:

  • Name (név)Name
  • Price (ár)Price
  • Quantity on Hand (Rendelkezésre álló mennyiség)Quantity on Hand
  • Quantity on Order (Megrendelt mennyiség)Quantity on Order

Az oszlop neve az oszlopban található mező neve is egyben.The column's name reflects the fields in that column.

Egy oszlopban minden érték ugyanabba az adattípusba tartozik.All values within a column are of the same data type. 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 karakterláncot, pl. „12 darab”.In the above example, the "Quantity on Hand" column always contains a number and can't contain a string, such as "12 units," for one record. Bármely mező rendelkezhet blank, azaz üres értékkel is.The value of any field may also be blank.

Az oszlopokat más eszközökben „field” vagy „mező” néven is ismerheti.You may have referred to columns as "fields" in other tools.

Megjegyzés

Azoknál a SharePoint- és Excel-adatforrásoknál, amelyekben szóközt tartalmazó oszlopnevek szerepelnek, a PowerApps minden szóközt az „_x0020_” értékre cserél.For SharePoint and Excel data sources that contain column names with spaces, PowerApps will replace the spaces with "_x0020_". A SharePointban vagy Excelben szereplő „Oszlop neve” érték például „Oszlop_x0020_neve” alakban fog megjelenni a PowerApps szolgáltatásban adatelrendezésben való megjelenítéskor vagy képletben való használatkor.For example, "Column Name" in SharePoint or Excel will appear as "Column_x0020_Name" in PowerApps when displayed in the data layout or used in a formula.

TableTable

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.A table comprises one or more records, each with multiple fields that have consistent names across the records.

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.Any table that's stored in a data source or a collection has a name, which you use to refer to the table and pass it to functions that take tables as arguments. Táblát függvények és képletek is adhatnak eredményül.Tables can also be the result of a function or a formula.

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:As in the following example, you can express a table in a formula by using the Table function with a set of records, which you express in curly braces:

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

Egyoszlopos táblát szögletes zárójelek között is lehet definiálni:You can also define a single-column table with square brackets. A fentivel megegyező eredményt adja az alábbi:An equivalent way to write the above:

[ "Strawberry", "Vanilla" ][ "Strawberry", "Vanilla" ]

TáblaképletekTable formulas

Az Excelben és a PowerAppsben hasonlóképpen használhatóak a képletek számok és karakterláncot tartalmazó szövegek kezelésére:In Excel and PowerApps, you use formulas to manipulate numbers and strings of text in similar ways:

  • 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.In Excel, type a value, such as 42, in cell A1, and then type a formula, such as A1+2, in another cell to show the value of 44.
  • A PowerAppsben 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 Csúszka1.Value + 2 értékre, így az a 44 értéket fogja megjeleníteni.In PowerApps, set the Default property of Slider1 to 42, and set the Text property of a label to Slider1.Value + 2 to show the value of 44.

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.In both cases, the calculated value changes automatically if you change the values of the arguments (for example, the number in cell A1 or the value of Slider1).

Képleteket ehhez hasonlóan arra is használhat, hogy táblák adatait vagy rekordjait érje el vagy módosítsa.Similarly, you can use formulas to access and manipulate data in tables and records. 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.You can use names of tables as arguments in some formulas, such as Min(Catalog, Price) to show the lowest value in the Price column of the Catalog table. 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.Other formulas provide whole tables as return values, such as RenameColumns(Catalog, "Price", "Cost"), which returns all the records from the Catalog table but changes the name of the Price column to Cost.

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.Just as with numbers, formulas that involve tables and records are automatically recalculated as the underlying table or record changes. 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.If the cost of a product in the Catalog table is lowered below the previous minimum, the return value of the Min formula will automatically change to match it.

Most vizsgáljunk meg néhány egyszerű példát.Let's walk through some simple examples.

  1. Vegyen fel egy Szöveges gyűjtemény vezérlőelemet, és állítsa be úgy az Items (Elemek) tulajdonságát, hogy az egy táblázat neve legyen.Add a Text gallery control, and set its Items property to the name of a table.

    A gyűjtemény alapértelmezés szerint a TextualGallerySample nevű táblára vonatkozó helyőrző szöveget jelenít meg.By default, the gallery shows placeholder text from a table named TextualGallerySample. A gyűjtemény Items (Elemek) tulajdonsága automatikusan erre a táblára van beállítva.The Items property of the gallery is automatically set to that table.

    Megjegyzés

    A jobb illusztráció kedvéért egyes vezérlőelemeket áthelyeztünk és felnagyítottunk.Some controls have been rearranged and enlarged for illustration purposes.

  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:Instead of setting the Items property to the name of a table, set it to a formula that includes the name of the table as an argument, as in this example:
    Sort(TextualGallerySample, Heading, Descending)Sort(TextualGallerySample, Heading, 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.This formula incorporates the Sort function, which takes the name of a table as its first argument and the name of a column in that table as its second argument. 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.The function also supports an optional third argument, which stipulates that you want to sort the data in descending order.

  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ó:Set the Items property to a formula that takes the formula from the previous step as an argument and returns a table, as in this example:
    FirstN(Sort(TextualGallerySample, Heading, Descending), 2)FirstN(Sort(TextualGallerySample, Heading, 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.In this formula, you use the FirstN function to show a particular number of records in a table. 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.You use the Sort function as the first argument to FirstN and a number (in this case, 2) as the second argument, which specifies how many records to show.

    A teljes képlet egy olyan táblát ad eredményül, amely a TextualGallerySample tábla első két rekordját tartalmazza a Heading oszlop alapján csökkenő sorrendben.The entire formula returns a table that contains the first two records of the TextualGallerySample table, sorted by the Heading column in descending order.

Táblafüggvények és vezérlőelem-tulajdonságokTable functions and control properties

A PowerApps számos olyan függvénnyel rendelkezik, amelyek argumentumként egy táblát vesznek fel, létrehoznak egy újabb táblát ugyanazokkal az adatokkal, az argumentumok értékei alapján műveleteket végeznek az újonnan létrehozott táblán, és az így kapott eredménnyel térnek vissza.Many functions in PowerApps take the name of a table as an argument, create a second table that contains the same data, manipulate the new table based the other arguments, and then return the result. Ezek a függvények nem módosítják az eredeti táblát, csupán adatforrásként használják azt.These functions don't modify the original table, even if it's a data source.

  • Sort, Filter - Rekordokat rendez sorba és szűr.Sort, Filter - Sorts and filters records.
  • FirstN, LastN - Egy tábla első (first) vagy utolsó (last) N számú rekordját adja vissza.FirstN, LastN - Returns the first N or last N records of the table.
  • 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.Abs, Sqrt, Round, RoundUp, RoundDown - Arithmetic operations on each record of a single-column table, resulting in a single-column table of results.
  • Left, Mid, Right, Replace, Substitute, Trim, Lower, Upper, Proper - Karakterlánc-műveleteket végeznek egy egyoszlopos tábla minden egyes rekordján, és egy karakterláncokat tartalmazó egyoszlopos táblát adnak vissza eredményül.Left, Mid, Right, Replace, Substitute, Trim, Lower, Upper, Proper - String manipulations on each record of a single-column table, resulting in a single-column table of strings.
  • Len - Karakterláncokat tartalmazó oszlopra alkalmazva egy egyoszlopos táblát ad vissza, amely az egyes karakterláncok hosszúságát tartalmazza.Len - For a column of strings, returns a single-column table that contains the length of each string.
  • Concatenate - Több oszlop karakterláncát fűzi össze, és karakterláncot tartalmazó egyoszlopos táblát ad vissza.Concatenate - Concatenates multiple columns of strings, resulting in a single-column table of strings.
  • AddColumns, DropColumns, RenameColumns, ShowColumns - Egy tábla oszlopain hajt végre műveleteket, és az új oszlopokat tartalmazó táblát ad vissza.AddColumns, DropColumns, RenameColumns, ShowColumns - Column manipulation of the table, resulting in a new table with different columns.
  • Distinct - Eltávolítja az ismétlődő rekordokat.Distinct - Removes duplicates records.
  • Shuffle - A rekordokat véletlenszerű sorrendbe állítja.Shuffle - Shuffles records into a random order.
  • HashTags - Hashtageket keres egy karakterláncban.HashTags - Searches for hashtags in a string.
  • Errors - Hibákkal kapcsolatos információt nyújt adatforrással való munkánál.Errors - Provides error information when you work with a data source.

Több oszlopot tartalmazó táblán is futtatható olyan függvény, amely egyetlen oszlopot kér argumentumként megadni.You can run a function on a table that contains multiple columns, even if the function requires a single column as an argument. Több oszlopot tartalmazó táblából úgy lehet egyetlen oszlopot kiválasztani, ha a használni kívánt függvény argumentumaként a ShowColumns függvényt adjuk meg. Például:To extract a single column from a multi-column table, use the ShowColumns function as an argument for the function that you want to use, as in this example:
Lower( ShowColumns( Products, "Name" ) )Lower( ShowColumns( Products, "Name" ) )

Ez a képlet létrehoz egy olyan egyoszlopos táblát, amely a Products tábla Name oszlopának minden adatát tartalmazza, de minden nagybetűt kisbetűvé alakít benne.This formula creates a single-column table that contains all the data from the Name column of the Products table but converts any uppercase letters to lowercase letters. Ha az AddColumns, RenameColumns vagy DropColumns függvények argumentumaként ad meg táblát, akkor az adott táblát bármilyen módon átalakíthatja.If you specify a table as an argument for the AddColumns, RenameColumns, or DropColumns function, you can completely reshape that table however you want.

Ha ezen függvények argumentumaként adatforrást ad meg, akkor a függvény az adatforrás adatait módosítja, és általában az adatforrás új értékeinek táblájával tér vissza.If you specify a data source as an argument for one of these functions, it will modify the records of that data source and, in general, return the data source's new value as a table.

Az alábbi vezérlőelemek olyan tulajdonságokkal rendelkeznek, amelyek táblának felelnek meg:The following controls have properties that are tables:

  • Items - Gyűjteményekre és listapanelekre vonatkozik.Items - Applies to galleries and list boxes. A gyűjteményben megjelenítendő tábla.Table to display in the gallery.
  • SelectedItems - Listapanelekre vonatkozik.SelectedItems - Applies to list boxes. A felhasználó által kiválasztott tételeket tartalmazó tábla.Table of items that the user has selected.

RekordképletekRecord formulas

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.You can also build a formula that calculates data for an individual record, takes an individual record as an argument, and provides an individual record as a return value. 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.Returning to our gallery example above, let's use the Gallery1.Selected property to display information from whatever record the user selects in that gallery.

  1. Adjon hozzá egy gombot, és az OnSelect tulajdonság értékeként adja meg ezt a képletet:Add a button, and set its OnSelect property to this formula:
    Collect( SelectedRecord, Gallery1.Selected )Collect( SelectedRecord, Gallery1.Selected )

  2. Ha a gomb nincs kiválasztva, kattintson rá a kiválasztáshoz, majd kattintson rá még egyszer a képlet futtatásához.If the button isn't selected, click it to select it, and then click it again to run the formula.

  3. A Fájl menüben válassza a Gyűjtemények elemet.In the File menu, select Collections.

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.This formula returns a record that includes not only the data from the record that's currently selected in the gallery but also each control in that gallery. A rekord tartalmaz például egy Body nevű oszlopot, amely az eredeti tábla Body oszlopának felel meg, és egy Body1 oszlopot is, amely annak a címkének felel meg, amely ennek az oszlopnak az adatait jeleníti meg.For example, the record contains both a Body column, which matches the Body column in the original table, and a Body1 column, which represents the label that shows the data from that column. Válassza ki a Body1 oszlop tábla ikonját, hogy elérhesse az adatait.Select the table icon in the Body1 column to drill into that data.

Miután kiválasztotta a rekordot, az egyes mezők adatait a .Now that you have the selected record, you can extract individual fields from it with the . operátor használatával érheti el.operator.

  1. Nyomja meg az ESC gombot, hogy visszatérhessen az alapértelmezett munkaterületre, és adjon hozzá egy címkét a gyűjtemény alatt.Press Esc to return to the default workspace, and then add a label below the gallery.

  2. A címke Text tulajdonságának adja meg ezt a képletet:Set the Text property of the label to this formula:
    Gallery.Selected.HeadingGallery.Selected.Heading

Ezzel a Selected tulajdonságból, amely egy rekord, kiválasztotta a Heading tulajdonságot.You've taken the Selected property, which is a record, and extracted the Heading property from it.

Rekordot egymással kapcsolatban álló értékek általános célú tárolójaként is használhat.You can also use a record as a general-purpose container for related named values.

  • 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.If you build a formula around the UpdateContext and Navigate functions, use a record to gather the context variables that you want to update.
  • 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.Use the Updates property on an Edit form control to gather the changes that have been made by the user in a form.
  • A Patch függvény használatával frissítheti az adatforrást, vagy egyesítheti a rekordokat.Use the Patch function to update a data source but also to merge records.

Mindezekben az esetekben a rekord soha nem volt tábla része.In these cases, the record was never a part of a table.

Rekordfüggvények és vezérlőelem-tulajdonságokRecord functions and control properties

Rekorddal visszatérő függvények:Functions that return records:

  • FirstN, LastN - Egy tábla első vagy utolsó rekordjával tér vissza.FirstN, LastN - Returns the first or last record or records of the table.
  • Lookup - Egy tábla egy vagy több feltételnek megfelelő első rekordjával tér vissza.Lookup - Returns the first record from a table that matches one or more criteria.
  • Patch - Frissíti az adatforrást vagy egyesíti a rekordokat.Patch - Updates a data source or merges records.
  • Defaults - Egy adatforrás alapértelmezett értékével tér vissza.Defaults - Returns the default values for a data source.

Rekordokkal visszatérő tulajdonságok:Properties that return records:

  • Selected - Gyűjteményekre és listapanelekre vonatkozik.Selected - Applies to galleries and list boxes. Az aktuálisan kiválasztott rekorddal tér vissza.Returns the currently selected record.
  • Updates - Gyűjteményekre vonatkozik.Updates - Applies to galleries. Együttesen kéri le a felhasználó által az adatbeviteli űrlapon végzett összes módosítást.Pulls together all the changes that a user makes in a data-entry form.
  • Update - Beviteli vezérlőelemekre, például szövegbeviteli és csúszka vezérlőkre vonatkozik.Update - Applies to input controls such as text-input controls and sliders. Az gyűjteményre vonatkozó egyes tulajdonságokat állítja be.Sets up individual properties for the gallery to pull together.

RekordhatókörRecord scope

Bizonyos függvények a képletet egy adott tábla minden egyes rekordjára vonatkozólag kiértékelik.Some functions operate by evaluating a formula across all the records of a table individually. A képlet eredménye különféle módon használható:The formula's result is used in various ways:

  • Filter, Lookup - A képlet határozza meg, hogy a rekord része legyen-e a kimenetnek.Filter, Lookup - Formula determines if the record should be included in the output.
  • Sort - A képlet tartalmazza a rekordok sorba rendezéséhez használt értéket.Sort - Formula provides the value to sort the records on.
  • Concat - A képlet határozza meg, mely karakterláncokat kell összefűzni.Concat - Formula determines the strings to concatenate together.
  • ForAll - A képlet bármilyen értékkel vissza tud térni, esetleg valamilyen mellékhatással.ForAll - Formula can return any value, potentially with a side effect.
  • Distinct - A képlet egy olyan értékkel tér vissza, amellyel duplikátumrekordok azonosíthatók.Distinct - Formula returns a value, used to identify duplicate records.
  • AddColumns - A képlet tartalmazza a hozzáadott mező értékét.AddColumns - Formula provides the value of the added field.
  • Average, Max, Min, Sum, StdevP, VarP - A képlet tartalmazza az összesítendő értékeket.Average, Max, Min, Sum, StdevP, VarP - Formula provides the value to aggregate.

Ezekben a képletekben hivatkozhat a feldolgozandó rekord mezőire.Inside these formulas, you can reference the fields of the record being processed. 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.Each of these functions creates a "record scope" in which the formula is evaluated, where the fields of the record are available as top-level identifiers. A teljes alkalmazásban is lehetőség van vezérlőtulajdonságokra és más értékekre hivatkozni.You can also reference control properties and other values from throughout your app.

Vegyük például az alábbi Products (Termékek) nevű táblát:For example, take a table of Products:

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:To determine if any of any of these products had more requested than is available:

Filter( Products, 'Quantity Requested' > 'Quantity Available' )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.The first argument to Filter is the table of records to operate on, and the second argument is a formula. 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.Filter creates a record scope for evaluating this formula in which the fields of each record are available, in this case Product, Quantity Requested, and Quantity Available. 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:The result of the comparison determines if each record should be included in the result of the function:

Ugyanezt a példát kibővíthetjük úgy, hogy azt is megmutassa, mennyit kell rendelni az egyes termékekből:Adding to this example, we can calculate how much of each product to order:

AddColumns( Filter( Products, 'Quantity Requested' > 'Quantity Available' ), "Quantity To Order", 'Quantity Requested' - 'Quantity Available' )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.Here we are adding a calculated column to the result. 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.AddColumns has its own record scope that it uses to calculate the difference between what has been requested and what is available.

Végül szűkíthetjük az eredménytáblát úgy, hogy csak a szükséges oszlopokat tartalmazza:Finally, we can reduce the result table to just the columns that we desire:

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

Figyelje meg, hogy a fenti példákban néhol idézőjeleket ("), máshol pedig félidézőjelet (') használtunk.Note that in the above, we used double quotes (") in some places and single quotes (') in other places. 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.Single quotes are required when referencing the value of an object, such as a field or table, in which the name of the object contains a space. 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.Double quotes are used when we are not referencing the value of an object but instead talking about it, especially in situations in which the object does not yet exist, as in the case of AddColumns.

EgyértelműsítésDisambiguation

A rekordra vonatkozó hatókörrel felvett mezőnevek felülbírálják az alkalmazásban máshol előforduló azonos neveket.Field names added with the record scope override the same names from elsewhere in the app. 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:When this happens, you can still access values from outside the record scope with the @ disambiguation operator:

  • 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*].To access values from nested record scopes, use the @ operator with the name of the table being operated upon using the pattern Table[@FieldName].
  • 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).To access global values, such as data sources, collections, and context variables, use the pattern [@ObjectName] (without a table designation).

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ó.If the table being operated upon is an expression, such as Filter( table, ... ), then the disambiguation operator cannot be used. 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.Only the innermost record scope can access fields from this table expression, by not using the disambiguation operator.

Tegyük fel például, hogy van egy X gyűjteményünk:For example, imagine having a collection X:

A gyűjteményt így lehet létrehozni: ClearCollect( X, [1, 2] ).You can create this collection with ClearCollect( X, [1, 2] ).

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

Ehhez használja ezt a képletet: ClearCollect( Y, ["A", "B"] ).You can create this collection with ClearCollect( Y, ["A", "B"] ).

Definiáljon még meg egy Value nevű változót ezzel a képlettel: UpdateContext( {Value: "!"} )In addition, define a context variable named Value with this formula: UpdateContext( {Value: "!"} )

Nézzük most meg összességében.Let's put it all together. Ebben a kontextusban ez a képlet:In this context, the following formula:

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

ezt a táblát eredményezi:produces this table:

Vajon mi történt?What is going on here? 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.The outermost ForAll function defines a record scope for X, allowing access to the Value field of each record as it is processed. A hozzáférés egyszerűen a Value szó vagy az X[@Value] használatával történik.It can be accessed by simply using the word Value or by using X[@Value].

A legbelső ForAll függvény az Y rekordhatókörét határozza 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.The innermost ForAll function defines another record scope for Y. Since this table also has a Value field defined, using Value here refers to the field in Y's record and no longer the one from X. Here, to access X's Value field, we must use the longer version with the disambiguation operator.

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:Since Y is the innermost record scope, accessing fields of this table do not require disambiguation, allowing us to use this formula with the same result:

  • Ungroup( ForAll( X, ForAll( Y, Value & Text( X[@Value] ) & [@Value] ) ), "Value" )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.All the ForAll record scopes override the global scope. A definiált Value környezeti változó az egyértelműsítő operátor használata nélkül nem érhető el.The Value context variable we defined is not available by name without the disambiguation operator. Ennek az értéknek az eléréséhez a [@Value] formát kell használnunk.To access this value we must use [@Value].

Az Ungroup lapossá teszi az eredményt, mivel a beágyazott ForAll függvények beágyazott eredménytáblát eredményeznek.Ungroup flattens the result, since nested ForAll functions will result in a nested result table.

Belső szintaxisInline syntax

RekordokRecords

A rekordokat kapcsos zárójelek közé kell tenni, amelyben a mezők nevei és értékei szerepelnek.You express records by using curly braces that contain named field values. A témakör elején szereplő tábla első rekordját az alábbi képlettel lehet kifejezni:For example, you can express the first record in the table at the start of this topic by using this formula:

{ Name: "Chocolate", Price: 3.95, 'Quantity on Hand': 12, 'Quantity on Order': 10 }{ 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ó:You can also embed formulas within other formulas, as this example shows:

{ Name: First(Products).Name, Price: First(Products).Price * 1.095 }{ 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ó:You can nest records by nesting curly braces, as this example shows:

{ 'Quantity': { 'OnHand': ThisItem.QuantOnHand, 'OnOrder': ThisItem.QuantOnOrder } }{ '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.Enclose each column name that contains a special character, such as a space or a colon, in single quotes. Ha az oszlopnévben egyszeres idézőjelet (aposztrófot) szeretne használni, akkor duplán kell írni az egyszeres idézőjelet.To use a single quote within a column name, double it.

Figyelje meg, hogy a Price (Ár) oszlopban található értékek nem tartalmaznak pénznem (például dollár) jelet.Note that the value in the Price column doesn't include a currency symbol, such as a dollar sign. Ezt a formázást az érték megjelenítésénél lehet elvégezni.That formatting will be applied when the value is displayed.

TáblákTables

Táblát a Table függvénnyel és rekordok megadásával hozhat létre.You can create a table by using the Table function and a set of records. A témakör elején szereplő tábla az alábbi képlettel fejezhető ki:You can express the table at the start of this topic by using this formula:

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 } )
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:You can also nest tables:

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

Értékek és táblákValue tables

Egyetlen oszlopot tartalmazó táblát úgy hozhat létre, hogy szögletes zárójelek között adja meg az értékeket.You can create single-column tables by specifying values in square brackets. Az eredményül kapott táblának egyetlen, Value nevű oszlopa van.The resulting table has a single column, named Value.

Például az [ 1, 2, 3, 4 ] egyenértékű a Table( { Value: 1 }, { Value: 2 }, { Value: 3 }, { Value: 4 } ) formával, és az alábbi táblát hozza létre:For example, [ 1, 2, 3, 4 ] is equivalent to Table( { Value: 1 }, { Value: 2 }, { Value: 3 }, { Value: 4 } ) and returns this table: