Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A következőkre vonatkozik: Vászonalapú alkalmazások
Copilot Studio
Desktop folyamatok
Modellalapú alkalmazások
Power Platform CLI
Dataverse függvények
Power Pages
Értékeket számít ki és műveleteket hajt végre egyetlen rekordnál, beleértve a nevesített értékek beágyazott rekordjait is.
Ismertetés
A With függvény egyetlen rekord képletét értékeli ki. A képlet kiszámít egy értéket és/vagy műveleteket hajt végre, például adatokat módosít vagy egy kapcsolatot használ. A ForAll függvénnyel értékelheti a bejegyzések táblázatában szereplő összes bejegyzéshez tartozó képletet.
Az aktuálisan feldolgozás alatt álló rekordmezők elérhetők a képletben. Használja a ThisRecord operátort, vagy egyszerűen hivatkozzon név szerint a mezőkre, ahogy más értéket is hivatkozna. Az As operátor a feldolgozás alatt álló rekord elnevezésére használatos, amellyel könnyebben érthető a képlet, és hozzáférhetőbbek a beágyazott rekordok. További információkért lásd az alábbi példákat és a rekord hatókörével való munkát.
Összetett With képletek olvashatóságának javítása kisebb elnevezett alképletekre való felosztásával. Ezek az elnevezett értékek úgy működnek, mint az egyszerű helyi változók, amely a Withhatókörre korlátozódik. Az UpdateContext függvényhez használt beágyazott rekordszintaxis a következővel Withhasználható: A használat With előnyben részesíti a környezeti vagy globális változókat, mivel önálló, könnyen érthető, és bármilyen deklaratív képletkörnyezetben használható.
A rekord olyan mezőinek eléréséhez használható With , amelyeket olyan függvények adnak vissza, mint a Patch vagy a Match. With a függvények értékét elég hosszú ideig tárolja ahhoz, hogy további számításokban vagy műveletekben használhassa.
Ha a rekord argumentuma With hiba, akkor a függvény visszaadja a hibát, és a képlet nem lesz kiértékelve.
Szintaxis
With( Rekord, képlet )
-
Rekord – Kötelező. A rekord, amelyen műveletet kell végrehajtani. A nevek értékeihez használja a szövegközi szintaxist:
{ name1: value1, name2: value2, ... } - Képlet – Kötelező. A képlet, amelyet ki kell értékelni a Rekord esetében. A képlet a Rekord bármelyik mezőjére hivatkozhat közvetlenül rekordhatókörként.
Példák
Egyszerű elnevezett értékek
With( { radius: 10,
height: 15 },
Pi() * (radius*radius) * height
)
// Result: 4712.38898038 (as shown in a label control)
Ez a példa a megnevezett értékek rekordját használja egy henger térfogatának a kiszámításához. With az összes bemeneti érték közös rögzítésére szolgál, így könnyen elkülönítheti őket a számítástól.
Beágyazott With
With( { AnnualRate: RateSlider/8/100, // slider moves in 1/8th increments and convert to decimal
Amount: AmountSlider*10000, // slider moves by 10,000 increment
Years: YearsSlider, // slider moves in single year increments, no adjustment required
AnnualPayments: 12 }, // number of payments per year
With( { r: AnnualRate/AnnualPayments, // interest rate
P: Amount, // loan amount
n: Years*AnnualPayments }, // number of payments
r*P / (1 - (1+r)^-n) // standard interest calculation
)
)
Ez a példa függvényeket With ágyaz be, hogy kétszintű számítást hozzon létre a havi törlesztőrészletekhez. Mindaddig, amíg nincs ütközés, az összes külső With névvel ellátott érték elérhető a belső With.
Mivel a csúszka vezérlői csak 1. lépésekben mozoghatnak, a csúszkák oszthatók, illetve megszorozhatók, hogy hatékonyan hozhassunk létre egyéni növekményt. A kamatláb esetében a RateSliderMax tulajdonságának beállítása 48, osztva nyolccal az 1/8 százalékpontos növekmény miatt, és százzal osztva, hogy a százalékértékből decimális érték legyen, lefedi a 0,125% és 6% közötti tartományt. A kölcsön összege esetén az AmountSliderMax tulajdonságának értéke 60, és ez van megszorozva 10 000-rel, a 10 000 és 600 000 közötti tartományt lefedve.
A With csúszkák áthelyezésével és az új hiteltörlesztés megjelenítésével a rendszer automatikusan újraszámítja a törlesztőrészletet. Nem használnak változókat, és a csúszka vezérlőinek OnChange tulajdonságát nem kell használni.
Az alkalmazás létrehozásának részletes ismertetése:
- Új alkalmazás létrehozása.
- Adjon hozzá egy Csúszka vezérlőelemet, és adja neki a RateSlider nevet. Állítsa a Max tulajdonságot 48-ra.
- Vegyen fel egy Címke vezérlőelemet a csúszka bal oldalán. Állítsa be a Szöveg tulajdonságot a "Kamatláb:" értékre.
- Vegyen fel egy Címke vezérlőelemet a csúszka jobb oldalán. Állítsa a Szöveg tulajdonságát a RateSlider/8 & " %" képletre.
- Adjon hozzá egy Csúszka vezérlőelemet, és adja neki az AmountSlider nevet. Állítsa a Max tulajdonságot 60-ra.
- Vegyen fel egy Címke vezérlőelemet ennek a csúszkának a bal oldalán. Állítsa be a Szöveg tulajdonságot a "Kölcsön összege:" értékre.
- Vegyen fel egy Címke vezérlőelemet a csúszka bal oldalán. Állítsa be a Szöveg tulajdonságot a AmountSlider/8 * 10000 képlethez.
- Adjon hozzá egy Csúszka vezérlőelemet, és adja neki a YearsSlider nevet. Állítsa a Max tulajdonságot 40-ra.
- Vegyen fel egy Címke vezérlőelemet ennek a csúszkának a bal oldalán. Állítsa be a Szöveg tulajdonságát az "Évek száma:" értékre.
- Vegyen fel egy Címke vezérlőelemet a csúszka bal oldalán. Állítsa be a Szöveg tulajdonságot a YearsSlider képlethez.
- Adjon hozzá egy Címke vezérlőelemet, és a Szöveg tulajdonságát állítsa a fenti képletre.
- Vegyen fel egy Címke vezérlőelemet az utolsó címkevezérlő bal oldalán. Állítsa be a Szöveg tulajdonságot az "Ismétlődő havi fizetés:" értékre.
A Patch által visszaküldött elsődleges kulcs
With( Patch( Orders, Defaults( Orders ), { OrderStatus: "New" } ),
ForAll( NewOrderDetails,
Patch( OrderDetails, Defaults( OrderDetails ),
{ Order: OrderID, // from With's first argument, primary key of Patch result
Quantity: Quantity, // from ForAll's NewOrderDetails table
ProductID: ProductID } // from ForAll's NewOrderDetails table
)
)
)
Ez a példa egy bejegyzést ad hozzá az SQL Server Megrendelés táblájához. Ezután a rendszer a visszaküldött elsődleges kulcsot használja a rendeléshez, amelyet a Patch függvény adott vissza a Rendeléskód mezőben, hogy ezzel kapcsolódó bejegyzéseket hozzon létre az OrderDetails táblában.
Kinyert értékek reguláris kifejezéssel
With(
Match( "PT2H1M39S", "PT(?:(?<hours>\d+)H)?(?:(?<minutes>\d+)M)?(?:(?<seconds>\d+)S)?" ),
Time( Value( hours ), Value( minutes ), Value( seconds ) )
)
// Result: 2:01 AM (as shown in a label control, use the Text function to see the seconds)
Ez a példa az ISO 8601 időtartamértékből kivonja az órákat, a perceket és a másodperceket, majd ezekkel az alegyezésekkel létrehoz egy dátum- és időértéket.
Ne feledje, hogy bár az alegyezések számokat tartalmaznak, még mindig szöveges sztringben vannak. A matematikai műveletek végrehajtása előtt a Value függvénnyel konvertálja számmá.
Összetevő rekordjának leképezése
Lásd: Rekord leképezése.