Bendrinti naudojant


Su funkcija

Taikoma: Drobės programos Darbalaukio srautai Modeliu pagrįstos programos Power Platform CLI

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

Aprašas

With funkcija į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 Su, kad pagerintumėte sudėtingų formulių skaitomumą skeldami jas į smulkesnes pavadintas antrines formules. Šios įvardytos vertės veikia kaip paprasti vietiniai kintamieji, kurie apsiriboja With apimtimi. Ta pati įdėtųjų įrašų sintaksė, naudojama su UpdateContext funkcijagali būti naudojama su With. Naudodami With teikiama pirmenybė vietoje konteksto ar visuotinių kintamųjų, kuri yra autonominė, lengvai suprantama ir gali būti naudojama bet kokiame aprašomosios formulės kontekste.

Naudokite funkciją Su , kad pasiektumėte įrašo laukus, kuriuos grąžina tokios funkcijos kaip Pataisa arba Atitiktis. Withturi vertę iš šių funkcijų pakankamai ilgai, kad ją būtų galima naudoti atliekant tolesnius skaičiavimus arba veiksmus.

Jei Record argumentas With yra klaida, funkcija grąžins šią klaidą ir Formula nebus įvertinta.

Sintaksė

With ( Record, Formula)

  • Record – Būtinas. Įrašas, kurį norite valdyti. Pavadinimų vertėms naudokite įdėtąją sintaksę { name1: value1, name2: value2, ... }
  • Formula – Būtinas. 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 naudojama kartu fiksuoti visas įvesties vertes, kad jas būtų lengva atskirti nuo paties skaičiavimo.

Įdėta su

Palūkanų skaičiuoklė naudojant funkciją „Su“.

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

Šis pavyzdys siejasi su Withfunkcijomis, kad sukurtų dviejų pakopų mėnesio hipotekos mokėjimų skaičiavimą. Kol nėra konflikto, visos išorinės With galimos įvardytos vertės pateikiamos vidujeWith.

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.

With yra automatiškai perskaičiuojama, kol slankikliai juda ir rodomas naujas paskolos mokėjimas. 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šą.