Бележка
Достъпът до тази страница изисква удостоверяване. Можете да опитате да влезете или да промените директориите.
Достъпът до тази страница изисква удостоверяване. Можете да опитате да промените директориите.
Отнася се за: Приложения
за платно Copilot Studio
Работен плот потоци
Модел-управлявани приложения
Power Platform CLI
Dataverse функции
Power Pages
Изчислява стойности и изпълнява действия за един запис, включително вградени записи на посочени стойности.
Описание
Функцията With изчислява формула за един запис. Формулата може да изчисли стойност и / или да извърши действия, като например промяна на данни или работа с връзка. Използвайте ForAll function да се оцени формула за всички записи в таблица с записи.
Полетата от записа, които се обработват в момента, са достъпни във формулата. Използвайте оператора ThisRecord или просто посочете полета по име, както при всяка друга стойност. Операторът As може също така да бъде използван за задаване на име на записа, който се обработва, което може да помогне вашата формула да стане по-лесна за разбиране и вложените записи да са достъпни. За повече информация вижте примерите по-долу и работа с обхвата на запис.
Използвайте With , за да подобрите четливостта на сложните формули, като я разделите на по-малки наименувани под формули. Тези наименувани стойности действат като прости локални променливи, ограничени до обхвата на With. Синтаксисът на същия вграден запис, който се използва с функцията UpdateContext, може да се използва с With. Използването With е предпочитано пред контекста или глобалните променливи, тъй като се съдържа самостоятелно, лесно за разбиране и може да се използва във всеки декларативен контекст на формула.
Използвайте With за достъп до полетата на записа, които се връщат от функции като Patch или Match. With съдържа стойността от тези функции достатъчно дълго, за да се използва в по-нататъшни изчисления или действия.
Ако аргументът Запис на With е грешка, тази грешка ще бъде върната от функцията и формулата няма да бъде изчислена.
Синтаксис
With( Запис, Формула )
-
Запис – Задължително. Записът, върху който ще се действа. За имената стойности използвайте вградения синтаксис
{ name1: value1, name2: value2, ... } - Формула – Задължително. Формулата за оценка за всеки запис. Формулата може да се позовава на всяко от полетата на Запис директно като обхват на записа.
Примери
Прости именувани стойности
With( { radius: 10,
height: 15 },
Pi() * (radius*radius) * height
)
// Result: 4712.38898038 (as shown in a label control)
Този пример използва запис на посочените стойности за изчисляване на обема на цилиндъра. 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, разделено на 8 за нарастване на 1/8 процентни пункта и разделен на 100, за да се преобразува от процент в десетичен, обхващащ диапазона от 0,125% до 6%. В случай на размера на заема, AmountSlider има своето Max свойство, зададено на 60 и умножено по 10 000, обхващайки обхвата от 10 000 до 600 000.
Автоматично With се преизчислява, докато плъзгачите се местят и се показва новото плащане по заема. Не се използват променливи и не е необходимо да се използва OnChange свойство на плъзгачите за управление.
Ето подробни инструкции за създаване на това приложение:
- Създайте ново приложение.
- Добавете контрола Плъзгач и я назовете RateSlider. Задайте свойството Max на 48.
- Добавете контролата етикет вляво от контролата на плъзгач. Задайте свойството Текст на "Interest Rate:".
- Добавете контролата етикет вдясно от контролата на плъзгач. Задайте свойството Text на формулата RateSlider/8 & " %".
- Добавете друга контрола Плъзгач и я назовете AmountSlider. Задайте свойството Max на 60.
- Добавете контролата етикет вляво от тази контрола на плъзгач. Задайте свойството Текст на "Loan Amount:".
- Добавете контролата етикет вдясно от тази контрола на плъзгач. Задайте свойството Текст към формулата AmountSlider/8 * 10000.
- Добавете друга контрола Плъзгач и я назовете YearsSlider. Задайте свойството Max на 40.
- Добавете контролата етикет вляво от тази контрола на плъзгач. Задайте свойството Текст на "Number of Years:".
- Добавете контролата етикет вдясно от тази контрола на плъзгач. Задайте свойството Текст към формулата YearsSlider.
- Добавете контрола Етикет с име Текст и задайте на формулата, показана по-горе.
- Добавете контролата етикет вляво от контролата на последен етикет. Задайте свойството си Текст на "Recurring Monthly Payment:".
Първичният ключ се връща от 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 Server. След това използва върнатия първичен ключ за поръчката, върнат от Patch функция в OrderID поле, за да създадете свързани записи в Подробности за поръчката таблица.
Извлечени стойности с редовен израз
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 функция за преобразуване в число преди извършване на математически операции.
Карта на запис в компонент
Вижте Картографиране на запис.