הערה
הגישה לדף זה מחייבת הרשאה. באפשרותך לנסות להיכנס או לשנות מדריכי כתובות.
הגישה לדף זה מחייבת הרשאה. באפשרותך לנסות לשנות מדריכי כתובות.
חל על: אפליקציות Canvas
Copilot Studio Desktop
זורמות
אפליקציות מונחות
דגמים פונקציות Power Platform CLI
Dataverse
Power Pages
חישוב ערכים וביצוע פעולות עבור רשומה בודדת, כולל רשומות מוטבעות של ערכים בעלי שם.
תיאור
הפונקציה With מעריכה נוסחה עבור רשומה בודדת. הנוסחה יכולה לחשב ערך ו/או לבצע פעולות, כגון שינוי נתונים או עבודה עם חיבור. השתמש בפונקציה ForAll כדי להעריך נוסחה עבור כל הרשומות בטבלת רשומות.
שדות הרשומה המעובדים כעת זמינים בתוך הנוסחה. השתמש באופרטור ThisRecord או פשוט צור הפניה לשדות בשמם, כפי שאתה עושה לגבי כל ערך אחר. ניתן גם להשתמש באופרטור As כדי לבחור שם עבור הרשומה שמעובדת. באופן זה, הנוסחה קלה יותר להבנה, וניתן להפוך רשומות מקוננות לנגישות. לקבלת מידע נוסף, עיין בדוגמאות להלן ובעבודה עם טווח רשומה.
השתמש With כדי לשפר את הקריאות של נוסחאות מורכבות על-ידי חלוקתן לנוסחאות משנה קטנות יותר בעלות שם. ערכים בעלי שם אלה משתנים מקומיים פשוטים המוגבליים לטווח של With. ניתן להשתמש באותו תחביר רשומה מוטבעת המשמש עם הפונקציה UpdateContext עם With. השימוש With מועדף על-פני הקשר או משתנים כלליים מכיוון שהוא מכיל את עצמו, קל להבנה ובאפשרותך להשתמש בו בכל הקשר נוסחה הצהרתי.
השתמש With כדי לגשת לשדות הרשומה המוחזרים על-ידי פונקציות כגון 'תיקון' או 'התאמה '. With החזקת הערך מפונקציות אלה ארוך מספיק לשימוש בחישובים או פעולות נוספים.
אם הארגומנט Record to With הוא שגיאה, השגיאה תוחזר על-ידי הפונקציה והנוסחה לא תוערך.
תחביר
With( רשומה, נוסחה )
-
רשומה - חובה. הרשומה שיש לפעול לגביה. עבור ערכי שמות, השתמש בתחביר המוטבע
{ name1: value1, name2: value2, ... } - נוסחה - חובה. הנוסחה שיש להעריך אותה עבור Record. הנוסחה יכולה להפנות לכל אחד מהשדות של Record כטווח רשומה.
דוגמאות
ערכים פשוטים בעלי שם
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, המחוונים מחולקים או מוכפלים כדי ליצור ביעילות מרווח מותאם אישית. במקרה של שיעור הריבית, המאפיין Max של RateSlider מוגדר כ- 48, מחולק ב- 8 למרווח נקודות באחוזים של 1/8 ומחולק ב- 100 כדי לבצע המרה מאחוזים למספר עשרוני, לכיסוי הטווח 0.125% עד 6%. במקרה של סכום ההלוואה, המאפיין Max של AmountSlider מוגדר כ- 60 ומוכפל ב- 10,000, לכיסוי הטווח 10,000 עד 600,000.
ה With - מחושב מחדש באופן אוטומטי עם הזזת המחוונים ותשלום ההלוואה החדש מוצג. שום משתנה אינו נמצא בשימוש ואין צורך להשתמש במאפיין OnChange של פקדי המחוון.
להלן ההוראות המפורטות ליצירת יישום זה:
- צור יישום חדש.
- הוסף פקד Slider ותן לו את השם RateSlider. הגדר את המאפיין Max כ- 48.
- הוסף פקד Label מימין לפקד המחוון. הגדר את המאפיין Text כ"שיעור ריבית:".
- הוסף פקד Label משמאל לפקד המחוון. הגדר את המאפיין Text לנוסחה RateSlider/8 & " %".
- הוסף פקד Slider נוסף ותן לו את השם AmountSlider. הגדר את המאפיין Max כ- 60.
- הוסף פקד Label מימין לפקד מחוון זה. הגדר את המאפיין Text כ"סכום הלוואה:".
- הוסף פקד Label משמאל לפקד מחוון זה. הגדר את המאפיין Text לנוסחה AmountSlider/8 * 10000.
- הוסף פקד Slider נוסף ותן לו את השם YearsSlider. הגדר את המאפיין Max כ- 40.
- הוסף פקד Label מימין לפקד מחוון זה. הגדר את המאפיין Text כ"מספר שנים:".
- הוסף פקד Label משמאל לפקד מחוון זה. הגדר את המאפיין Text לנוסחה YearsSlider.
- הוסף פקד Label והגדר את המאפיין Text שלו לנוסחה המוצגת לעיל.
- הוסף פקד Label מימין לפקד התווית האחרון. הגדר את המאפיין Text שלו ל"תשלום חודשי חוזר:".
מפתח ראשי שמוחזר מ- 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
)
)
)
דוגמה זו מוסיפה רשומה לטבלה Order ב- SQL Server. לאחר מכן היא משתמשת במפתח הראשי המוחזר עבור ההזמנה, שהוחזרה על-ידי הפונקציה Patch בשדה OrderID, כדי ליצור רשומות קשורות בטבלה 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 כדי להמיר למספר לפני ביצוע פעולות מתמטיות.
מיפוי רשומה ברכיב
ראה מיפוי רשומה.