Partekatu bidez


With funtzioa

Honako hauei aplikatzen zaie: Mihise-aplikazioak Copilot Studio Mahaigaineko fluxuak Ereduetan oinarritutako aplikazioak Power Platform CLI Dataverse funtzioak Power Pages

Balioak kalkulatzen ditu eta erregistro bakar baterako ekintzak egiten ditu, izendatutako balioen erlazionatutako erregistroak barne.

Deskribapenak

Funtzioak erregistro bakar baten formula ebaluatzen du. With Formulak balio bat kalkulatu eta / edo ekintzak burutu ditzake, hala nola, datuak aldatu edo konexio batekin lan egitea. Erabili ForAll Funtzioa erregistro taulan dauden erregistro guztientzako formula bat ebaluatzeko.

Une honetan prozesatzen ari den erregistroko eremuak erabilgarri daude formulan. Beste balio bat erabili nahi baduzu, erabili ThisRecord eragilea edo aipatu eremuak beren izenen arabera. As eragilea erabil daiteke prozesatuko den erregistroari izena jartzeko; horri esker, formula errazagoa izango da eta habiaratutako erregistroak erabilerrazagoak izango dira. Informazio gehiago lortzeko, ikusi beheko adibideak eta erregistro-esparruarekin lan egitea.

Erabili With formula konplexuen irakurgarritasuna hobetzeko, izeneko azpiformula txikiagoetan zatituz. Izendatutako balio horiek aldagai Withlokal sinpleak bezala jokatzen dute. UpdateContext funtzioarekin erabiltzen den barneko erregistroen sintaxia bera erabil Withdaiteke . Erabiltzea With testuinguru edo aldagai globalen gainetik hobetzen da, autonomoa baita, erraz ulertzen da eta edozein formula testuingurutan erabil daiteke.

Erabili erregistroko With eremuak atzitzeko, hala nola Adabakia edo Bat etorri funtzioek itzultzen dituztenak. With Funtzio horien balioa nahikoa denbora mantentzen du kalkulu edo ekintza gehiagotan erabiltzeko.

Record argumentua errorea With bada, errore hori funtzioak itzuliko du eta Formula ez da ebaluatuko.

Sintaxia

With( Erregistroa, formula )

  • Erregistroa – Beharrezkoa. Erabili beharreko erregistroa. Izenen balioetarako, erabili erlazionatutako sintaxi hau: { name1: value1, name2: value2, ... }
  • Formula – Beharrezkoa. Erregistro bakoitzerako ebaluatzeko formula. Formulak Erregistro-ko edozein eremuri egin diezaioke erreferentzia zuzenean erregistro-esparru gisa.

Adibideak

Izendatutako balio sinpleak

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

Adibide honek izendatutako balioen erregistro bat erabiltzen du zilindro baten bolumena kalkulatzeko. With sarrerako balio guztiak batera harrapatzeko erabiltzen da, kalkulutik bereiztea erraztuz.

Habiaratua With

Interes-kalkulagailua funtzioa erabiliz 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
      )
)

Adibide honek funtzioak habiatzen ditu Withhileko hipoteka-ordainketetarako bi mailako kalkulua sortzeko. Gatazkarik ez dagoen bitartean, kanpoko With izendatutako balio guztiak barneko Withbalio barruan daude erabilgarri.

Graduatzaile-kontrolak 1-eko gehikuntzatan bakarrik mugi daitezkeenez, graduatzaileak zatitu edo biderkatu egiten dira gehikuntza pertsonalizatua modu eraginkorrean sortzeko. Interes-tasaren kasuan, RateSlider propietateak Gehienezko propietatea 48 gisa du ezarrita, 8tan zatitzen da 1/8 puntuko gehikuntzarako eta 100 bider zatitzen da ehuneko batetik hamartar bihurtzeko, % 0,125 eta % 6 bitarteko tartea estaliz. Maileguaren zenbatekoaren kasuan, AmountSlider propietateak Gehienezko propietatea 60 gisa du ezarrita eta 10.000 biderkatuta, 10.000 eta 600.000 bitarteko tartea estaliz.

Graduatzaileak With mugitzen diren heinean automatikoki birkalkulatzen da. Ez da aldagairik erabiltzen eta ez da beharrezkoa graduatzaile-kontrolen OnChange propietatea erabiltzea.

Hona hemen aplikazioa sortzeko argibide zehatzak:

  1. Sortu aplikazio bat.
  2. Gehitu Graduatzaile kontrola eta izendatu honela: RateSlider. Ezarri Gehienezko propietatea 48 gisa.
  3. Gehitu Etiketaren kontrola graduatzaile-kontrolaren ezkerraldean. Ezarri bere Testuaren propietatea honetan: "Interes-tasa:".
  4. Gehitu Etiketaren kontrola graduatzaile-kontrolaren eskuinaldean. Ezarri bere Text propietatea formulan RateSlider/8 & " %".
  5. Gehitu beste graduatzaile kontrol bat eta izendatu honela: AmountSlider. Ezarri Gehienezko propietatea 60 gisa.
  6. Gehitu etiketaren kontrol bat graduatzaile-kontrolaren ezkerraldean. Ezarri bere Testuaren propietatea honetan: "Loan Amount:".
  7. Gehitu Etiketaren kontrola graduatzaile-kontrolaren eskuinaldean. Ezarri bere testuaren propietatea formula honetan: AmountSlider/8 * 10000.
  8. Gehitu beste graduatzaile kontrol bat eta izendatu honela: YearsSlider. Ezarri Gehienezko propietatea 40 gisa.
  9. Gehitu etiketaren kontrol bat graduatzaile-kontrolaren ezkerraldean. Ezarri bere Testuaren propietatea honetan: "Urte kopurua:".
  10. Gehitu Etiketaren kontrola graduatzaile-kontrolaren eskuinaldean. Ezarri bere Testuaren propietatea formula honetan: YearsSlider.
  11. Gehitu Label kontrola eta ezarri horren Testua propietatea goian erakutsitako formulan:
  12. Gehitu etiketaren kontrola azken etiketaren kontrolaren ezkerraldean. Ezarri bere Testua propietatea honetan: "Hileroko ordainketa errepikatua:".

Adabakitik itzulitako gako nagusia

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

Adibide honek erregistro bat gehitzen du Eskaeraren taulan, SQL Server-en. Eskaeraren itzultzeko gako nagusia erabiltzen du, Patch funtzioak itzulitakoa OrderID eremutik, erlazionatutako erregistroak sortzeko OrderDetails taulan.

Ateratako balioak ohiko adierazpenarekin

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)

Adibide honek orduak, minutuak eta segundoak ateratzen ditu ISO 8601 iraupenaren balio batetik eta ondoren azpi-emaitza hauek erabiltzen ditu Data/Ordua balioa sortzeko.

Kontuan izan azpimultzoak zenbakiak dituzten arren, testu-kate batean daudela. Erabili Value funtzioa zenbaki batera bihurtzeko eragiketa matematikoak egin aurretik.

Mapeatu erregistro bat osagai batean

Ikusi Esleitu erregistroa.