ฟังก์ชัน UpdateContext

ใช้กับ: แอปพื้นที่ทำงาน

สร้างหรือปรับปรุง ตัวแปรบริบท ของหน้าจอปัจจุบัน

ภาพรวม

ใช้ฟังก์ชัน UpdateContext เพื่อสร้างตัวแปรบริบท ซึ่งเก็บส่วนหนึ่งของข้อมูลไว้ชั่วคราว เช่น จำนวนครั้งที่ผู้ใช้เลือกปุ่ม หรือผลลัพธ์ของการดำเนินการข้อมูล

ตัวแปรบริบทจะอยู่ในขอบเขตหน้าจอ ซึ่งหมายความว่า คุณไม่สามารถสร้างสูตรที่อ้างอิงถึงตัวแปรบริบทบนหน้าจออื่นได้ ถ้าคุณใช้เครื่องมือเขียนโปรแกรมอื่น คุณสามารถนึกถึงภาพของตัวแปรบริบทเป็นเหมือนกับตัวแปรภายในเครื่อง ใช้ ฟังก์ชัน Set เพื่อทำงานกับตัวแปรส่วนกลางที่พร้อมใช้งานทั่วทั้งแอปของคุณ

Power Apps ยึดตามสูตรที่คำนวณใหม่โดยอัตโนมัติเมื่อผู้ใช้โต้ตอบกับแอป ตัวแปรบริบทไม่มีสิทธิประโยชน์นี้ และอาจทำให้การสร้างและการทำความเข้าใจแอปของคุณยากขึ้น ก่อนที่คุณจะใช้ตัวแปรบริบท ให้ดู การทำงานกับตัวแปร

คำอธิบาย

เมื่อต้องสร้างหรืออัปเดตตัวแปรบริบท ส่ง เรกคอร์ด เดี่ยวไปยังฟังก์ชัน UpdateContext ในแต่ละรเรกคอร์ด ระบุชื่อของ คอลัมน์ ซึ่งกำหนดหรือตรงกับชื่อของตัวแปร และค่าที่คุณต้องการตั้งค่าตัวแปรนั้น

  • ถ้าคุณระบุชื่อของตัวแปรที่คุณได้กำหนดไว้ก่อนหน้านี้ UpdateContext จะตั้งค่าของตัวแปรเป็นค่าที่คุณระบุ
  • ถ้าคุณระบุชื่อของตัวแปรที่ยังไม่มี UpdateContext จะสร้างตัวแปรด้วยชื่อนั้น และตั้งค่าของตัวแปรนั้นเป็นค่าที่คุณระบุ
  • ถ้าคุณได้กำหนดตัวแปรไว้ก่อนหน้านี้ แต่ไม่ได้ระบุในสูตร UpdateContext นี้ ค่าของตัวแปรจะยังคงเหมือนเดิม

ตัวแปรบริบทสร้างขึ้นโดยปริยายโดยใช้ฟังก์ชัน UpdateContext หรือ Navigate ไม่จำเป็นต้องมีการประกาศอย่างชัดเจน ถ้าคุณลบการอ้างอิง UpdateContext และ Navigate ทั้งหมดสำหรับตัวแปรบริบท ตัวแปรบริบทจะไม่มีอยู่ด้วยเช่นกัน เมื่อต้องล้างตัวแปร ให้ตั้งค่าเป็นค่าที่เป็นผลลัพธ์ของ ฟังก์ชัน Blank

คุณสามารถดูค่า นิยาม และการใช้งานของตัวแปรของคุณได้ด้วยมุมมอง ตัวแปร ภายในเมนู ไฟล์ ในสภาพแวดล้อมการเขียน

คุณอ้างอิงตัวแปรบริบทในสูตรได้โดยใช้ชื่อคอลัมน์ของตัวแปร ตัวอย่างเช่น UpdateContext( { ShowLogo: true } ) สร้างตัวแปรบริบทที่ชื่อว่า ShowLogo และตั้งค่าเป็น จริง จากนั้น คุณสามารถใช้ค่าของตัวแปรบริบทนี้ได้โดยใช้ชื่อ ShowLogo ในสูตรได้ คุณสามารถเขียน ShowLogo เป็นสูตรสำหรับคุณสมบัติ Visible ของตัวควบคุมรูปภาพ และแสดงหรือซ่อนตัวควบคุมดังกล่าวตามค่าของตัวแปรบริบทว่าเป็น จริง หรือ เท็จ

ดังที่ตัวอย่างในภายหลังของหัวข้อนี้แสดง ตัวแปรบริบทสามารถเก็บข้อมูลได้หลายประเภท รวมถึง:

  • ค่าเดี่ยว
  • เรกคอร์ด
  • ตาราง
  • การอ้างอิงออบเจ็กต์
  • ผลลัพธ์จากสูตร

ตัวแปรบริบทงจะเก็บค่าไว้จนกว่าจะปิดแอป ถ้าคุณกำหนดตัวแปรบริบทและตั้งค่าบนหน้าจอใดหน้าจอหนึ่ง ข้อมูลดังกล่าวยังคงเชื่อมต่ออยู่ แม้ว่าผู้ใช้เปลี่ยนไปยังหน้าจออื่นก็ตาม เมื่อปิดแอป ค่าของตัวแปรบริบทจะหายไป และต้องสร้างขึ้นใหม่เมื่อโหลดแอปอีกครั้ง

ทุกตัวแปรบริบทจะถูกกำหนดอยู่ในขอบเขตหน้าจอหนึ่ง ถ้าคุณต้องการกำหนดตัวแปรบริบทบนหน้าจอหนึ่งและปรับเปลี่ยนตัวแปรนั้นจากหน้าจออื่น คุณต้องสร้างสูตรที่เป็นไปตามฟังก์ชัน Navigate หรือใช้ตัวแปรส่วนกลาง

UpdateContext ไม่มีค่าที่ส่งกลับ และคุณสามารถใช้ได้เฉพาะใน สูตรการทำงาน เท่านั้น

ไวยากรณ์

UpdateContext( UpdateRecord )

  • UpdateRecord - จำเป็น เรกคอร์ดที่ประกอบด้วยชื่อของคอลัมน์อย่างน้อยหนึ่งคอลัมน์ และหนึ่งค่าสำหรับคอลัมน์นั้น ตัวแปรบริบทสร้างขึ้นหรือปรับปรุงสำหรับแต่ละคอลัมน์และค่าที่คุณระบุ

UpdateContext( { ContextVariable1: Value1 [, ContextVariable2: Value2 [, ... ] ] } )

  • ContextVariable1 - จำเป็น ชื่อของตัวแปรบริบทสำหรับสร้างหรืออัปเดต
  • Value1 - จำเป็น ค่าสำหรับมอบหมายให้กับตัวแปรบริบท
  • ContextVariable2: Value2, ... - เลือกได้ ตัวแปรบริบทเพิ่มเติมเพื่อสร้างหรือปรับปรุงและค่าของตัวแปรเหล่านี้

ตัวอย่าง

สูตร คำอธิบาย ผลลัพธ์
UpdateContext( { Counter: 1 } ) สร้างหรือปรับเปลี่ยนตัวแปรบริบท Counter ตั้งค่าเป็น 1 ตัวนับ มีค่า 1 คุณสามารถอ้างอิงตัวแปรโดยใช้ชื่อ Counter ในสูตรได้
UpdateContext( { Counter: 2 } ) ตั้งค่าตัวแปรบริบท Counter จากตัวอย่างที่แล้วเป็น 2 ตัวนับ มีค่า 2
UpdateContext( { ชื่อ: "Lily", คะแนน: 10 } ) สร้างหรือปรับเปลี่ยน ชื่อ และ คะแนน ตัวแปรบริบท ตั้งค่าสำหรับค่าของตัวแปรเป็น Lily และ 10 ตามลำดับ ชื่อ มีค่าเป็น Lily และ คะแนน มีค่าเป็น 10
UpdateContext( { Person: { Name: "Milton", Address: "1 Main St" } } ) สร้างหรือปรับเปลี่ยนตัวแปรบริบท บุคคล ตั้งค่าให้เป็นเรกคอร์ด เรกคอร์ดมีสองคอลัมน์ชื่อ ชื่อ และ ที่อยู่ ค่าของคอลัมน์ ชื่อ คือ Milton และค่าของคอลัมน์ ที่อยู่ เป็น 1 ถนนหลัก บุคคล มีค่าของเรกคอร์ด { ชื่อ:"Milton", ที่อยู่:"1ถนนหลัก" } }

อ้างอิงเรกคอร์ดนี้ทั้งเรกคอร์ดด้วยชื่อ บุคคล หรืออ้างอิงเพียงคอลัมน์เดียวของเรกคอร์ดนี้ด้วย ชื่อ.บุคคล หรือ ที่อยู่.บุคคล
UpdateContext( { Person: Patch( Person, {Address: "2 Main St" } ) } ) ใช้ได้กับฟังก์ชัน Patch เพื่ออัปเดตตัวแปรบริบท บุคคล โดยตั้งค่าคอลัมน์ ที่อยู่ เป็น 2 Main St บุคคล ปัจจุบันมีค่าของเรกคอร์ด { ชื่อ:"Milton", ที่อยู่:"2ถนนหลัก" } }

ตัวอย่างแบบทีละขั้นตอน 1

  1. ตั้งชื่อหน้าจอเริ่มต้นเป็น แหล่งที่มา เพิ่มอีกหน้าจอ และตั้งชื่อเป็น เป้าหมาย

  2. ที่หน้าจอ แหล่งที่มา เพิ่มปุ่มสองปุ่ม และตั้งค่าคุณสมบัติ Text ของปุ่ม เพื่อระบุเป็น อังกฤษ และอีกปุ่มเป็น สเปน

  3. ตั้งค่าคุณสมบัติ OnSelect ของปุ่ม อังกฤษ เป็นนิพจน์นี้:
    Navigate(Target, ScreenTransition.Fade, {ภาษา:"อังกฤษ"})

  4. ตั้งค่าคุณสมบัติ OnSelect ของปุ่ม สเปน เป็นนิพจน์นี้:
    Navigate(Target, ScreenTransition.Fade, {ภาษา:"สเปน"})

  5. บนหน้าจอ เป้าหมาย เพิ่มป้ายชื่อ และตั้งค่าคุณสมบัติ Text เป็นนิพจน์นี้:
    If(ภาษา="อังกฤษ", "Hello!", "Hola!")

  6. บนหน้าจอ เป้าหมาย เลือก รูปร่าง ที่แท็บ แทรก จากนั้นเลือกลูกศรย้อนกลับ

  7. ตั้งค่าคุณสมบัติ OnSelect ของลูกศรย้อนกลับ เป็นสูตรดังนี้:
    Navigate(Source, ScreenTransition.Fade)

  8. จากหน้าจอ แหล่งที่มา กด F5 จากนั้นเลือกปุ่มสำหรับภาษาใดภาษาหนึ่ง

    บนหน้าจอ เป้าหมาย ป้ายชื่อปรากฏในภาษาที่สอดคล้องกับปุ่มที่คุณเลือก

  9. เลือกลูกศรย้อนกลับ เพื่อกลับไปยังหน้าจอ แหล่งที่มา จากนั้นเลือกปุ่มสำหรับภาษาอื่น

    บนหน้าจอ เป้าหมาย ป้ายชื่อปรากฏในภาษาที่สอดคล้องกับปุ่มที่คุณเลือก

  10. กด Esc เพื่อกลับไปยังพื้นที่ทำงานเริ่มต้น

ตัวอย่างแบบทีละขั้นตอน 2

  1. เปิดแอปพื้นที่ทำงานที่คุณต้องการใช้สูตรนี้
  2. เพิ่มหน้าจอว่างใหม่โดยการเลือก หน้าจอใหม่ จากแถบคำสั่ง
  3. เพิ่มปุ่ม และตั้งค่าคุณสมบัติ OnSelect เป็นสูตรนี้:
    UpdateContext( { ชื่อ: "Lily", คะแนน: 10 } )