Бөлісу құралы:


Функциямен

Қолданылады: Canvas қолданбалары Жұмыс үстелі ағындары Үлгіге негізделген қолданбалар Power Platform CLI

Бір жазба, соның ішінде аталған мәндердің кірістірілген мәндері үшін мәндерді есептейді және әрекеттерді орындайды.

Сипаттама

With функциясын бір жазба үшін формуланы есептейді. Формула мәнді есептей алады және/немесе деректерді өзгерту немесе байланыспен жұмыс істеу сияқты әрекеттерді орындай алады. ForAll функциясын жазбалар кестесіндегі барлық жазбалар үшін формуланы есептеу үшін пайдаланыңыз.

Қазіргі уақытта өңделетін жазбаның өрістері формула бойынша қолжетімді. ThisRecord операторын пайдаланыңыз немесе жай ғана өрістерді аты әрі басқа кез келген мәні бойынша көрсетіңіз. Сонымен қатар формуланы оңайырақ түсінуге және кірістірілген жазбаларды қолжетімді етуге көмектесу үшін өңделетін жазбаға ат беру үшін As операторын пайдалануға болады. Қосымша ақпарат алу үшін төмендегі мысалдарды қараңыз және жазба ауқымымен жұмыс істеңіз.

With функциясын күрделі формулаларды атаулары кішірек ішкі формулаларға бөлу арқылы оқу ыңғайлылығын жақсарту үшін пайдаланыңыз. Бұл аталған мәндер With ауқымымен шектелген қарапайым жергілікті айнымалылар сияқты әрекет етеді. UpdateContext функциясында пайдаланған кірістірілген жазба синтаксисін With функциясында пайдалануға болады. Мәтінмәндік немесе глобалдық айнымалылардан гөрі With функциясын пайдаланған жөн, өйткені ол өзінде қамтылған, түсіну оңай және оны кез келген жарияланатын формула мәтінмәнінде пайдалануға болады.

Жазбаның Patch немесе сияқты функциялармен қайтарылатын өрістеріне қол жеткізу үшін W пәрменін пайдаланыңыз. Сәйкестік. With функциясы осы функциялардың мәнін кейінге есепетулерде немесе әрекеттерде пайдалану үшін жеткілікті ұзақ сақтайды.

With функциясының Record аргументі қате болса, бұл қатені функция қайтарады және Формула есептелмейді.

Синтаксис

With( Record, Formula )

  • Record – Міндетті. Әрекет орындайтын жазба. Атаулардың мәндері үшін кірістірілген синтаксисті пайдаланыңыз: { name1: value1, name2: value2, ... }
  • Formula – Міндетті. Жазба үшін есептейтін формула. Формула Жазбаның кез келген өрісіне жазба ауқымы ретінде тікелей сілтеме жасай алады.

Мысалдар

Қарапайым аталған мәндер

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

Бұл мысалда цилиндр көлемін есептеу үшін аталған мәндердің жазбасы пайдаланылады. With функциясы барлық кіріс мәндерді бірге жазу үшін пайдаланылуда, бұл оларды есептеудің өзінен ажыратуды оңай етеді.

Кірістірілген With

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

Бұл мысалда ай сайынғы ипотека төлемдерін екі деңгейлі есептеуді жасау үшін With функциялары кірістіріледі. Қайшылық жоқ болса, сыртқы With аталған мәндерінің барлығы ішкі With ішінде қолжетімді болады.

Жүгірткі басқару элементтері тек 1 қадамымен қозғалуы мүмкін болғандықтан, теңшелтін қадамды тиімді жасау үшін жүгірткілер бөлінеді немесе көбейтіледі. Пайыздық мөлшерлеме жағдайында RateSlider жүгірткісінің Max сипаты 48 мәніне орнатылған, 1/8 пайыздық пункт артуы үшін 8-ге бөлінеді және пайыздан 0,125% - 6% ауқымын қамтитын ондық бөлшекке түрлендіру үшін 100-ге бөлінеді. Несие сомасы жағдайда AmountSlider жүгірткісінің Max сипаты 60 мәніне орнатылады және 10 000-ға көбейтіліп, 10 000-600 000 ауқымын қамтиды.

Жүгірткілер қозғалғанда және жаңа несие төлемі көрсетілгенде, With автоматты түрде қайта есептеледі. Ешқандай айнымалылар пайдаланылмайды және жүгірткі басқару элементтерінің OnChange сипатын пайдаланудың қажеті жоқ.

Мұнда осы бағдарламаны жасау туралы егжей-тегжейлі нұсқаулар берілген:

  1. Жаңа бағдарлама жасаңыз.
  2. Жүгірткі басқару элементін қосыңыз және RateSlider деп атаңыз. Оның Max сипатын 48-ге орнатыңыз.
  3. Белгі басқару элементін жүгірткі басқару элементінің сол жағына қосыңыз. Оның Text сипатын "Пайыздық мөлшерлеме:" деп орнатыңыз.
  4. Белгі басқару элементін жүгірткі басқару элементінің оң жағына қосыңыз. Оның Мәтін қасиетін RateSlider/8 & " %".
  5. Тағы бір Жүгірткі басқару элементін қосыңыз және AmountSlider деп атаңыз. Оның Max сипатын 60-ге орнатыңыз.
  6. Белгі басқару элементін осы жүгірткі басқару элементінің сол жағына қосыңыз. Оның Мәтін сипатын "Несие сомасы:" деп орнатыңыз.
  7. Белгі басқару элементін осы жүгірткі басқару элементінің оң жағына қосыңыз. Оның Мәтін сипатын AmountSlider/8 * 10000 формуласына орнатыңыз.
  8. Тағы бір Жүгірткі басқару элементін қосыңыз және YearsSlider деп атаңыз. Оның Max сипатын 40-қа орнатыңыз.
  9. Белгі басқару элементін осы жүгірткі басқару элементінің сол жағына қосыңыз. Оның Мәтін сипатын "Жылдар саны:" деп орнатыңыз.
  10. Белгі басқару элементін осы жүгірткі басқару элементінің оң жағына қосыңыз. Оның Мәтін сипатын YearsSlider формуласына орнатыңыз.
  11. Белгі басқару элементін қосыңыз және оның Мәтін сипатын жоғарыда көрсетілген формулаға орнатыңыз.
  12. Белгі басқару элементін соңғы белгі басқару элементінің сол жағына қосыңыз. Оның Мәтін сипатын "Қайталанатын ай сайынғы төлем:" деп орнатыңыз.

Patch функциясынан қайтарылатын негізгі кілт

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

Бұл мысал SQL серверіндегі Тапсырыс кестесіне жазба қосады. Содан кейін ол OrderID өрісіндегі Patch функциясы қайтарған, тапсырысның қайтарылған негізгі кілтін OrderDetails кестесіндегі қатысты жазбаларды жасау үшін пайдаланады.

Жүйелі өрнек бар шығарып алынған мәндер

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)

Бұл мысал ISO 8601 ұзақтық мәнінен сағаттарды, минуттарды және секундтарды шығарып алады, содан кейін күн/уақыт мәнін жасау үшін осы ішкі сәйкестіктерді пайдаланады.

Ішкі сәйкестіктер сандарды қамтығанымен, әлі де мәтіндік жол түрінде екенін ескеріңіз. Value функциясын математикалық амалдарды орындау алдында санға түрлендіру үшін пайдаланыңыз.

Құрамдастағы жазбаны салыстыру

Жазбаны салыстыру бөлімін қараңыз.