Bendrinti naudojant


With funkcija

Taikoma: "Canvas apps Copilot Studio Desktop " srautus modeliu pagrįstos programos "Power Platform" CLI "Dataverse" funkcijos "Power Pages"

Apskaičiuoja reikšmes ir atlieka vieno įrašo veiksmus, įskaitant įdėtuosius pavadintų verčių įrašus.

Aprašas

Funkcija With įvertina vieno įrašo formulę. Formulė gali apskaičiuoti reikšmę ir (arba) atlikti veiksmus, pvz., modifikuoti duomenis arba dirbti su ryšiu. Naudokite ForAll funkciją, kad įvertintumėte formulę visiems lentelės įrašams.

Formulėje pasiekiami šiuo metu apdorojamo įrašo laukai. Naudokite operatorių ThisRecord arba tiesiog laukus, kaip ir bet kurią kitą reikšmę, nurodykite pagal pavadinimus. Operatorių As taip pat galima naudoti norint pavadinti apdorojamą įrašą. Tai gali padėti lengviau suprasti formulę ir įdėtuosius įrašus pritaikyti neįgaliesiems. Norėdami gauti daugiau informacijos, žr. tolesnius pavyzdžius ir įrašą apie darbą su įrašų aprėptimi.

Naudokite With norėdami pagerinti sudėtingų formulių skaitomumą padalydami jas į mažesnes pavadintas antrines formules. Šios įvardytosios reikšmės veikia kaip paprasti vietiniai kintamieji, Withapsiribojantys . Tą pačią įdėtojo įrašo sintaksę, naudojamą su funkcija UpdateContext, galima naudoti su With. Pageidaujama naudoti With kontekstą arba visuotinius kintamuosius, nes jie yra savarankiški, lengvai suprantami ir gali būti naudojami bet kokiame aprašomųjų formulių kontekste.

Naudokite With norėdami pasiekti įrašo laukus, kuriuos pateikia tokios funkcijos kaip Pataisa arba Atitiktis. With šių funkcijų reikšmė yra pakankamai ilga, kad ją būtų galima naudoti tolesniuose skaičiavimuose ar veiksmuose.

Jei įrašo argumentas With yra klaida, šią klaidą pateiks funkcija ir formulė nebus įvertinta.

Sintaksė

With( Įrašas, Formulė )

  • Įrašas – būtinas. Įrašas, kurį norite valdyti. Pavadinimų vertėms naudokite įdėtąją sintaksę { name1: value1, name2: value2, ... }
  • Formulė – būtina. Formulė, kurią norite įvertinti Record. Formulė gali tiesiogiai nurodyti bet kurį Record lauką kaip įrašo aprėptį.

Pavyzdžiai

Paprastai pavadintos vertės

With( { radius: 10,
        height: 15 },
    Pi() * (radius*radius) * height
)
// Result: 4712.38898038 (as shown in a label control)

Šis pavyzdys naudoja pavadintų verčių įrašą, kad apskaičiuotų cilindro apimtį. With naudojamas norint kartu užfiksuoti visas įvesties reikšmes, kad būtų lengva jas atskirti nuo paties skaičiavimo.

Įdėtųjų With

Pomėgių skaičiuotuvas, naudojantis With funkciją.

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

Šiame pavyzdyje įdėjimo funkcijos sukuria dviejų pakopų With skaičiavimą mėnesiniams būsto paskolos mokėjimams. Kol konflikto nėra, visos išorinės With įvardytosios reikšmės pasiekiamos vidiniame With.

Kadangi slankiklio valdikliai gali judėti 1 intervalais, slankikliai yra padalijami arba padauginami, kad būtų veiksmingai sukurtas pasirinktinis intervalas. Palūkanų normos atveju, RateSlider turi savo Max ypatybę, nustatytą į 48, padalintą iš 8 1/8 procentinio punkto prieaugio ir padalinto iš 100, kad konvertuotumėte iš procentinio dydžio į dešimtainį, apimantį intervalą 0,125% iki 6%. Paskolos sumos atveju AmountSlider turi savo Max ypatybę, nustatytą 60 ir padauginta iš 10 000, apimanti diapazoną nuo 10 000 iki 600 000.

The With is automatically recalculated as the sliders move and the new loan payment displayed. Nenaudojami jokie kintamieji ir nereikia naudoti OnChange slankiklio valdiklių ypatybės.

Čia pateikiamos išsamios šios programos kūrimo instrukcijos:

  1. Kurti naują programą.
  2. Įtraukite Slider valdiklį ir pavadinkite RateSlider. Nustatykite jos Max ypatybę 48.
  3. Įtraukite Labelvaldiklį į kairę nuo slankiklio valdiklio. Nustatykite jos Textypatybę "Interest Rate:".
  4. Įtraukite Label valdiklį į dešinę nuo slankiklio valdiklio. Nustatykite jo ypatybę Tekstas į formulę RateSlider/8 &; " %".
  5. Įtraukite kitą Slider valdiklį ir pavadinkite AmountSlider. Nustatykite jos Max ypatybę 60.
  6. Įtraukite Label valdiklį į kairę nuo jo slankiklio valdiklio. Nustatykite jos Textypatybę "Loan Amount:".
  7. Įtraukite Label valdiklį į dešinę nuo jo slankiklio valdiklio. Nustatykite jos Text ypatybę pagal formulę AmountSlider/8 * 10000.
  8. Įtraukite kitą Slider valdiklį ir pavadinkite YearsSlider. Nustatykite jos Max ypatybę 40.
  9. Įtraukite Label valdiklį į kairę nuo jo slankiklio valdiklio. Nustatykite jos Textypatybę "Number of Years:".
  10. Įtraukite Label valdiklį į dešinę nuo jo slankiklio valdiklio. Nustatykite jos Text ypatybę pagal formulę YearsSlider.
  11. Įtraukite Label valdiklį ir nustatykite Text ypatybę pagal anksčiau pateiktą formulę:
  12. Įtraukite Label valdiklį į kairę nuo paskutinio žymos valdiklio. Nustatykite jo Textypatybę "Recurring Monthly Payment:".

Pirminis raktas, grąžintas iš Pataisos

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

Šis pavyzdys įtraukia įrašą į Order lentelę „SQL Server”. Tada naudojama užsakymui grąžinta pagrindinė rakto reikšmė, kurią Patch funkcija grąžino OrderID lauke, kad būtų sukurti susiję įrašai OrderDetails lentelėje.

Išskleistos vertės su įprasta išraiška

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)

Šis pavyzdys išskleidžia valandas, minutes ir sekundes iš ISO 8601 trukmės vertės, tada naudoja šiuos papildomus atitikmenis, kad sukurtų datos/laiko vertę.

Atkreipkite dėmesį, kad nors antriniuose atitikmenyse yra skaičiai, jie taip pat dar yra teksto eilutėje. Naudokite Value funkciją, kad konvertuotumėte skaičių prieš atlikdami matematines operacijas.

Įrašo susiekite su komponentu

Žiūrėkite Susiejimo įrašą.