Funktsiooniga

Kehtib: Lõuendirakendused Töölauavood Mudelipõhised rakendused Power Platform CLI

Arvutab väärtusi ja sooritab toiminguid ühe kirje jaoks, sh nimega väärtuste tekstisiseseid kirjeid.

Kirjeldus

Funktsiooniga With hinnatakse ühe kirje valemit. Valem saab arvutada väärtuse ja/või teha toiminguid (nt andmete muutmine või ühendusega töötamine). Kasutage funktsiooni ForAll, et hinnata kõigi kirjete tabeli kirjete valemit.

Praegu töödeldavad kirje väljad on valemis saadaval. Kasutage tehtemärki ThisRecord või lihtsalt viidake väljadele nime järgi, nagu iga muu väärtuse korral. Tehtemärki As saab kasutada ka töödeldava kirje nimetamiseks, mis aitab teil valemit paremini mõista ja muuta pesastatud kirjed juurdepääsetavaks. Lisateabe saamiseks vaadake alltoodud näiteid ja jaotist kirje ulatusega töötamine.

Kasutage funktsiooni Koos keerukate valemite loetavuse parandamiseks, jagades selle väiksema nimega allvalemitega. Need nimega väärtused käituvad nagu lihtsad kohalikud muutujad, mis piirduvad ulatusega Koos. Sama tekstisisese kirje süntaksit, mida kasutatakse koos funktsiooniga UpdateContext, saab kasutada koos funktsiooniga With. Funktsiooni Koos eelistatakse kontekstile või globaalsetele muutujatele, kuna see on iseseotav, lihtne mõista ja seda saab kasutada mis tahes deklaratiivset valemi kontekstis.

Kasutage koos, et pääseda juurde kirje väljadele, mille tagastavad sellised funktsioonid nagu Paik või Vaste. Funktsioon With mahutab need funktsioonid, mis on piisavalt pikad, et neid saaks kasutada edasistes arvutustes või toimingutes.

Kui Kirjeargument funktsioonile With on viga, tagastab funktsioon veaväärtuse ja Valemit ei hinnata.

Süntaks

Koos( Kirje, Valem )

  • Kirje – Nõutav. Kirje, mille järgi tuleb tegutseda. Nimede väärtuste korral kasutage tekstisisest süntaksit { name1: value1, name2: value2, ... }
  • Valem – Nõutav. Kirje hindamiseks kasutatav valem. Valem võib viidata Kirje mis tahes väljadele otse kirje ulatuse.

Näited

Lihtsad nimega väärtused

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

Selles näites kasutatakse silindri mahu arvutamiseks nimega väärtuste kirjet. Koos kasutatakse kõigi sisendi väärtuste hõivamiseks, mistõttu on lihtne neid arvutustest eraldada.

Pesastatud koos

Viivise kalkulaator funktsiooni Koos abil.

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

See näide pesastab funktsiooniga With, et luua kahetasemeline arvutus järgmisele: igakuise hüpoteegi maksed. Kuni konflikti ei ole, on kõik selle välise funktsiooni Koos nimega väärtused saadaval sisemiselt funktsiooniga Koos.

Kuna liugureid saab liigutada ainult ühe sammuga, on liugurid jaotatud või korrutatud, et luua efektiivselt kohandatud juurdekasvu. Intressimäära puhul on RateSlider oma väärtuse Max atribuut, mille väärtuseks on 48 jagatud 8 1/8 protsendipunkti võrra ja jagatuna 100-ga teisendamiseks protsendist kümnendkohani, mis katab vahemikus 0,125% kuni 6%. Laenusumma puhul on AmountSlider oma väärtuse Max atribuut, mis on seatud väärtusele 60 ja korrutatakse 10 000, mis katab vahemiku 10 000–600 000.

Koos arvutatakse automaatselt ümber liugurite teisaldamise ja kuvatava uue laenumakse vahel. Muutujaid ei kasutata ja liuguri juhtelementide atribuuti OnChange pole vaja kasutada.

Siin on üksikasjalik juhend selle rakenduse loomiseks.

  1. Looge uus rakendus.
  2. Lisage juhtelement Liugur ja andke sellele nimi RateSlider. Seadke selle atribuudi Max väärtuseks 48.
  3. Lisage juhtelement Silt liuguri juhtelemendist vasakule. Seadke selle atribuudi Tekst väärtuseks Intressimäär:.
  4. Lisage juhtelement Silt liuguri juhtelemendist paremale. Määrake selle atribuudi Tekst väärtuseks valem RateSlider/8 & " %".
  5. Lisage veel üks juhtelement Liugur ja andke sellele nimi AmountSlider. Seadke selle atribuudi Max väärtuseks 60.
  6. Lisage juhtelement Silt selle liuguri juhtelemendist vasakule. Seadke selle atribuudi Tekst väärtuseks Laenu summa:.
  7. Lisage juhtelement Silt selle liuguri juhtelemendist paremale. Seadke selle atribuudi Tekst väärtuseks valem AmountSlider/8 * 10000.
  8. Lisage veel üks juhtelement Liugur ja andke sellele nimi YearsSlider. Seadke selle atribuudi Max väärtuseks 40.
  9. Lisage juhtelement Silt selle liuguri juhtelemendist vasakule. Seadke selle atribuudi Tekst väärtuseks „Aastate arv:”.
  10. Lisage juhtelement Silt selle liuguri juhtelemendist paremale. Seadke selle atribuudi Tekst väärtuseks valem YearsSlider.
  11. Lisage juhtelement Silt ja määrake selle atribuudi Tekst väärtus eespool toodud valemile.
  12. Lisage juhtelement Silt viimase sildi juhtelemendist vasakule. Seadke selle atribuudi Tekst väärtuseks „Korduv kuumakse:”.

Plaastri tagastatud primaarvõti

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

Selles näites lisatakse kirje SQL-serveri tabelisse Tellimus. Seejärel kasutab see tellimuse tagastatud primaarvõtit, mis tagastatakse funktsiooni Patch väljal OrderID, et luua seostuvad kirjed tabelis OrderDetails.

Ekstraktitud väärtused tavalise avaldisega

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)

See näide ekstraktib tunnid, minutid ja sekundid ISO 8601 kestuse väärtusest ja kasutab seejärel neid allvasteid kuupäeva/kellaaja väärtuse loomiseks.

Pange tähele, et kuigi allvasted sisaldavad numbreid, mis on ikka veel tekstistringi all. Kasutage funktsiooni Value, et teisendada number enne matemaatiliste toimingute tegemist.

Komponendi kirje vastendamine

Vaadake Vastendamise kirje.