Ar funkciju

Attiecas uz: Audekla programmām Darbvirsmas plūsmas Modeļa vadītas programmas Power Platform CLI

Ar – aprēķina vērtības un veic darbības vienam ierakstam, tostarp ar nosauktu vērtību iekļautajiem ierakstiem.

Apraksts

Funkcija With novērtē formulu vienam ierakstam. Formula var aprēķināt vērtību un/vai veikt darbības, piemēram, pārveidot datus vai strādāt ar savienojumu. Izmantojiet ForAll funkciju, lai novērtētu formulu visiem ierakstiem ierakstu tabulā.

Formulā ir pieejami pašlaik apstrādātie ieraksta lauki. Izmantojiet operatoru ThisRecord vai vienkārši norādiet uz laukiem pēc nosaukuma, kā to darītu ar jebkuru citu vērtību. Operatoru As var izmantot arī, lai apstrādājamajam ierakstam piešķirtu nosaukumu, kas var palīdzēt padarīt formulu saprotamāku, bet ligzdotos ierakstus — pieejamus. Papildinformāciju skatiet tālāk sniegtajos piemēros un sadaļā Darbs ar ierakstu tvērumu.

Izmantojiet With, lai uzlabotu sarežģītu formulu lasāmību, sadalot to mazāk nosauktās apakšformulās. Šīs vērtības darbojas kā vienkārši lokālie mainīgie lielumi, kas attiecas tikai uz funkcijas With tvērumu. To pašu iekļauto ieraksta sintaksi, kas tiek izmantota ar UpdateContext funkciju, var izmantot kopā ar funkciju With. Funkcijas With izmantošana ir vēlama, iepretim konteksta vai vispārējiem mainīgajiem jo tā ir autonoma, viegli saprotama, un to var izmantot jebkurā deklaratīvā formulas kontekstā.,

Izmantojiet Ar , lai piekļūtu ieraksta laukiem, kurus atgriež tādas funkcijas kā Ielāps vai Atbilstība. Funkcijai With ir vērtība no šīm funkcijām pietiekami ilgi, lai to varētu izmantot turpmākos aprēķinos vai darbībās.

Ja Ieraksta arguments funkcijai With ir kļūda, funkcija atgriezīs šo kļūdu un Formula netiks novērtēta.

Sintakse

With( Ieraksts, Formula )

  • Ieraksts — Obligāti. Ieraksts, ar kuru jārīkojas. Nosaukumu vērtībām izmantojiet iekļauto sintaksi { name1: value1, name2: value2, ... }
  • Formula — Obligāti. Formulu kuru novērtēt Ierakstam. Formula var atsaukties uz jebkuru Ieraksta lauku tieši kā ieraksta tvērumu.

Piemēri

Vienkārši nosauktās vērtības

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

Šajā piemērā izmantots ieraksts nosauktajām vērtībām, lai aprēķinātu cilindra tilpumu. Funkciju With izmanto, lai tvertu visas ievades vērtības kopā, padarot vienkāršu to atdalīšanu no paša aprēķina.

Ligzdotas ar

Procentu kalkulators, izmantojot funkciju 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
      )
)

Šajā piemērā ligzdotas funkcijas With, lai izveidotu divu pakāpju aprēķinu ikmēneša hipotekārajiem maksājumiem. Kamēr nav konflikta, visas ārējās With nosauktās vērtības ir pieejamas iekšējā With.

Tā kā slīdņu vadīklas var pavirzīt vienīgi pa 1 solim, slīdņi tiek dalīti vai reizināti, lai efektīvi izveidotu pielāgoto pieaugumu. Procentu likmes gadījumā RateSlider rekvizīts Max ir iestatīts uz 48, dalīts ar 8, lai iegūtu 1/8 procentpunkta pieaugumu, un dalīts ar 100, lai konvertētu no procentiem uz decimāldaļu, ietverot diapazonu no 0,125% līdz 6%. Aizdevuma summas gadījumā AmountSlider rekvizīts Max ir iestatīts uz 60 un reizināts ar 10 000, ietverot diapazonu no 10 000 līdz 600 000.

Funkcija With tiek automātiski pārrēķināta, slīdņiem pārvietojoties, un tiek rādīts jauns aizdevuma maksājums. Netiek izmantoti mainīgie, un nav vajadzības izmantot slīdņu vadīklu rekvizītu OnChange.

Tālāk sniegtas detalizētas norādes šīs programmas izveidei:

  1. Izveidojiet jaunu programmu.
  2. Pievienojiet Slīdņa vadīklu un nosauciet to par RateSlider. Iestatiet tās rekvizītu Max uz 48.
  3. Pievienojiet Etiķetes vadīklu slīdņa vadīklas kreisajai pusei. Iestatiet tās Teksta rekvizītu kā "Procentu likme:".
  4. Pievienojiet Etiķetes vadīklu slīdņa vadīklas labajai pusei. Iestatiet tā rekvizītu Teksts uz formulu RateSlider/8 &; " %".
  5. Pievienojiet citu Slīdņa vadīklu un nosauciet to par AmountSlider. Iestatiet tās rekvizītu Max uz 60.
  6. Pievienojiet Etiķetes vadīklu šīs slīdņa vadīklas kreisajai pusei. Iestatiet tās Teksta rekvizītu kā "Aizdevuma summa:".
  7. Pievienojiet Etiķetes vadīklu šīs slīdņa vadīklas labajai pusei. Iestatiet tās Teksta rekvizītu uz formulu AmountSlider/8 * 10000.
  8. Pievienojiet citu Slīdņa vadīklu un nosauciet to par YearsSlider. Iestatiet tās rekvizītu Max uz 40.
  9. Pievienojiet Etiķetes vadīklu šīs slīdņa vadīklas kreisajai pusei. Iestatiet Teksta rekvizītu "Gadu skaits:".
  10. Pievienojiet Etiķetes vadīklu šīs slīdņa vadīklas labajai pusei. Iestatiet tās rekvizītu Teksts uz formulu YearsSlider.
  11. Pievienojiet vadīklu Etiķete un iestatiet tās rekvizītu Teksts uz augstāk minēto formulu.
  12. Pievienojiet Etiķetes vadīklu pēdējās etiķetes vadīklas kreisajā pusē. Iestatiet tās Teksta rekvizītu uz "Periodisks ikmēneša maksājums:".

Primārā atslēga, kas atgriezta no Plākstera

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

Šajā piemērā tiek pievienots ieraksts SQL Server tabulai Secība. Tas pēc tam izmanto secības primāro atslēgu, ko atgriezusi Patch funkcija laukā OrderID , lai izveidotu saistītus ierakstus tabulā OrderDetails.

Izvilktās vērtības ar regulāru izteiksmi

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)

Šajā piemērā izvilktas stundas, minūtes un sekundes no ISO 8601 ilguma vērtības un pēc tam šīs apakšatbilstības izmantotas, lai izveidotu datuma/laika vērtību.

Ņemiet vērā, ka, lai arī apakšatbilstības ietver skaitļus, tās joprojām atrodas teksta virknē. Izmantojiet funkciju Value, lai konvertētu uz skaitli, pirms veicat matemātiskas darbības.

Kartēt komponentē ierakstu

Skatīt sadaļu Ieraksta kartēšana.