הפונקציה With
חל על: יישומי בד ציור זרימות שולחן עבודה יישומים מונחי-דגמים Power Pages Power Platform CLI
חישוב ערכים וביצוע פעולות עבור רשומה בודדת, כולל רשומות מוטבעות של ערכים בעלי שם.
תיאור
הפונקציה With מעריכה נוסחה עבור רשומה בודדת. הנוסחה יכולה לחשב ערך ו/או לבצע פעולות, כגון שינוי נתונים או עבודה עם חיבור. השתמש בפונקציה ForAll כדי להעריך נוסחה עבור כל הרשומות בטבלת רשומות.
שדות הרשומה המעובדים כעת זמינים בתוך הנוסחה. השתמש באופרטור ThisRecord או פשוט צור הפניה לשדות בשמם, כפי שאתה עושה לגבי כל ערך אחר. ניתן גם להשתמש באופרטור As כדי לבחור שם עבור הרשומה שמעובדת. באופן זה, הנוסחה קלה יותר להבנה, וניתן להפוך רשומות מקוננות לנגישות. לקבלת מידע נוסף, עיין בדוגמאות להלן ובעבודה עם טווח רשומה.
השתמש ב- With כדי לשפר את הקריאות של נוסחאות מורכבות על-ידי חלוקתן לנוסחאות משנה קטנות יותר בעלות שם. ערכים בעלי שם אלה פועלים כמשתנים מקומיים פשוטים המוגבלים לטווח של With. אותו תחביר רשומות מוטבע שנמצא בשימוש עם הפונקציה UpdateContext יכול להיות בשימוש גם בפונקציה With. השימוש בפונקציה With עדיף על משתני הקשר או משתנים גלובליים מאחר שהיא עומדת ברשות עצמה וקלה להבנה, וניתן להשתמש בה בכל הקשר נוסחה הצהרתית.
השתמש באפשרות With כדי לגשת לשדות הרשומה המוחזרים על-ידי פונקציות כגון Patch או Match. הפונקציה With מחזיקה את הערך מפונקציות אלה מספיק זמן כדי להשתמש בו בחישובים או פעולות נוספים.
אם הארגומנט Record של With הוא שגיאה, שגיאה זו תוחזר על-ידי הפונקציה, והנוסחה לא תוערך.
תחביר
With( Record, Formula )
-
Record – נדרש. הרשומה שיש לפעול לגביה. עבור ערכי שמות, השתמש בתחביר המוטבע
{ name1: value1, name2: value2, ... }
- Formula – נדרש. הנוסחה שיש להעריך אותה עבור 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 כדי להמיר למספר לפני ביצוע פעולות מתמטיות.
מיפוי רשומה ברכיב
ראה מיפוי רשומה.
משוב
https://aka.ms/ContentUserFeedback.
בקרוב: במהלך 2024, נפתור בעיות GitHub כמנגנון המשוב לתוכן ונחליף אותו במערכת משוב חדשה. לקבלת מידע נוסף, ראה:שלח והצג משוב עבור