שתף באמצעות


הפונקציות Update ו- UpdateIf

חל על: יישומי בד ציור יישומים מונחי דגמים

מעדכנת רשומות במקור נתונים.

Description

הפונקציה Update

השתמש בפונקציה Update כדי להחליף רשומה שלמה במקור נתונים. לעומת זאת, הפונקציות UpdateIf ו- Patch משנות ערך אחד או יותר ברשומה, ומשאירות את הערכים האחרים לבדם.

עבור אוסף, הרשומה השלמה מוכרחה להתאים. אוספים מאפשרים רשומות כפולות, כך שרשומות מרובות עשויות להתאים. באפשרותך להשתמש בארגומנט RemoveFlags.All כדי לעדכן את כל העותקים של רשומה; אחרת, רק עותק אחד של הרשומה יתעדכן.

אם מקור נתונים יוצר ערך של עמודה באופן אוטומטי, הערך של עמודה זו מוכרח לעבור אישור מחדש.

הפונקציה UpdateIf

השתמש בפונקציה UpdateIf כדי לשנות ערך אחד או יותר ברשומה אחת או יותר המתאימה לתנאי אחד או יותר. התנאי יכול להיות נוסחה כלשהי שהתוצאה שלה היא true או false ויכול להפנות אל עמודות של מקור הנתונים לפי שם. הפונקציה מעריכה את התנאי עבור כל רשומה ומשנה את כל הרשומות שעבורן התוצאה היא true.

כדי לציין שינוי, השתמש ברשומת שינוי הכוללת ערכי מאפיין חדש. אם תספק רשומת שינוי זו באופן מוטבע עם סוגריים מסולסלים, נוסחאות המאפיין יוכלו להפנות אל מאפיינים של הרשומה שמתבצע בה שינוי. באפשרותך להשתמש באופן פעולה זה כדי לשנות רשומות בהתבסס על נוסחה.

בדומה ל- UpdateIf, באפשרותך גם להשתמש בפונקציה Patch כדי לשנות עמודות ספציפיות של רשומה מבלי להשפיע על רשומות אחרות.

הן Update והן UpdateIf מחזירות את מקור הנתונים שהשתנה כטבלה. עליך להשתמש בכל אחת מהפונקציות בנוסחה של אופן פעולה.

הקצאה

בעת שימוש עם מקור נתונים, לא ניתן להקצות פונקציות אלה. רק החלק הראשון של מקור הנתונים יאוחזר ולאחר מכן הפונקציה תוחל. ייתכן שפעולה זו לא תייצג את כל הסיפור. ייתכן שתופיע אזהרה בזמן היצירה כדי להזכיר לך את המגבלה הזו.

תמיכה בהקצאה (ניסויי)

תמיכת בהקצאה עבור UpdateIf ו- RemoveIf נמצאת כעת בתצוגה מקדימה נסיונית (כברירת מחדל כבויה) עבור מקורות נתונים התומכים בה. אם מקור נתונים אינו תומך בתכונה זו, Power Apps ישלח כעת שאילתה לשרת ויאחזר את כל הנתונים התואמים לביטוי המסנן עד למקסימום של 500, 2000 או גודל עמוד הנתונים. לאחר מכן, הוא יעדכן את הרשומות הללו וישלח כל אחת מהן בחזרה לשרת כדי להתעדכן.

תחביר

Update( DataSource, OldRecord, NewRecord [, RemoveFlags.All ] )

  • DataSource – נדרש. מקור הנתונים שמכיל את הרשומה שברצונך להחליף.
  • OldRecord – נדרש. הרשומה שיש להחליף.
  • NewRecord – נדרש. הרשומה החלופית. זו אינה רשומת שינוי. הרשומה כולה מוחלפת, ותכונות חסרות יכילו ריק.
  • RemoveFlags.All – אופציונלי. באוסף, אותה רשומה עשויה להופיע יותר מפעם אחת. ציין את הארגומנט RemoveFlags.All כדי לעדכן את כל העותקים של הרשומה.

UpdateIf( DataSource, Condition1, ChangeRecord1 [, Condition2, ChangeRecord2, ... ] )

  • DataSource – נדרש. מקור הנתונים שמכיל את הרשומה או הרשומות שברצונך לשנות.
  • Condition(s) – נדרש. נוסחה שמעריכה ל- true עבור הרשומה או הרשומות שברצונך לשנות. באפשרותך להשתמש בשמות עמודות של מקור נתונים בנוסחה.
  • ChangeRecord(s) - נדרש. עבור כל תנאי מתאים, רשומת שינוי של ערכי מאפיין חדש להחלה על רשומות של מקור נתונים שעומדות בתנאי. אם אתה מספק את הרשומה כשהיא מוטבעת באמצעות סוגריים מסולסלים, ערכי מאפיין של הרשומה הקיימת יכולים לשמש בנוסחאות של המאפיין.

דוגמאות

בדוגמאות אלה, תחליף או תשנה רשומות במקור נתונים שנקרא גלידה ואשר מתחיל עם הנתונים בטבלה זו:

דוגמה 'גלידה'.

נוסחה תיאור תוצאה
Update( גלידה,
First( Filter( IceCream, Flavor="Chocolate" ) ), { ID: 1, Flavor: "Mint Chocolate", Quantity:150 } )
מחליפה רשומה ממקור הנתונים. החלף רשומה.

מקור הנתונים גלידה השתנה.
UpdateIf( IceCream, Quantity > 175, { Quantity: Quantity + 10 } ) משנה רשומות הכוללות כמות הגדולה מ- 175. השדה כמות גדל ב- 10, ושדות אחרים אינם משתנים. שנה רשומות.

מקור הנתונים גלידה השתנה.
Update( גלידה,
First( Filter( IceCream, Flavor="Strawberry" ) ),
{ ID: 3, Flavor: "Strawberry Swirl"} )
מחליפה רשומה ממקור הנתונים. המאפיין Quantity‎ לא סופק ברשומה החלופית, ולכן מאפיין זה יהיה ריק בתוצאה. החלף רשומה כאשר הכמות לא סופקה.

מקור הנתונים גלידה השתנה.
UpdateIf( IceCream, true, { Quantity: 0 } ) מגדיר את הערך של המאפיין Quantity‎ עבור כל הרשומות במקור הנתונים ל- 0. הגדר כמות לכל בתור 0.

מקור הנתונים גלידה השתנה.

שלב אחר שלב

  1. יבא או צור אוסף בשם מלאי והצג אותו בגלריה כפי שהנושא הצגת נתונים בגלריה מתאר.

  2. תן לגלריה את השם גלריית מוצרים.

  3. הוסף מחוון בשם יחידות שנמכרו, והגדר את מאפיין Max‎ שלו לביטוי זה:
    ProductGallery.Selected.UnitsInStock

  4. הוסף לחצן, והגדר את מאפיין OnSelect שלו לנוסחה זו:
    UpdateIf(Inventory, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})

  5. הקש F5, בחר מוצר בגלריה, ציין ערך עם המחוון ולאחר מכן בחר בלחצן.

    מספר היחידות במלאי עבור המוצר שציינת יורד בכמות שציינת.