ฟังก์ชัน 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
ตั้งชื่อหน้าจอเริ่มต้นเป็น แหล่งที่มา เพิ่มอีกหน้าจอ และตั้งชื่อเป็น เป้าหมาย
ที่หน้าจอ แหล่งที่มา เพิ่มปุ่มสองปุ่ม และตั้งค่าคุณสมบัติ Text ของปุ่ม เพื่อระบุเป็น อังกฤษ และอีกปุ่มเป็น สเปน
ตั้งค่าคุณสมบัติ OnSelect ของปุ่ม อังกฤษ เป็นนิพจน์นี้:
Navigate(Target, ScreenTransition.Fade, {ภาษา:"อังกฤษ"})ตั้งค่าคุณสมบัติ OnSelect ของปุ่ม สเปน เป็นนิพจน์นี้:
Navigate(Target, ScreenTransition.Fade, {ภาษา:"สเปน"})บนหน้าจอ เป้าหมาย เพิ่มป้ายชื่อ และตั้งค่าคุณสมบัติ Text เป็นนิพจน์นี้:
If(ภาษา="อังกฤษ", "Hello!", "Hola!")บนหน้าจอ เป้าหมาย เลือก รูปร่าง ที่แท็บ แทรก จากนั้นเลือกลูกศรย้อนกลับ
ตั้งค่าคุณสมบัติ OnSelect ของลูกศรย้อนกลับ เป็นสูตรดังนี้:
Navigate(Source, ScreenTransition.Fade)จากหน้าจอ แหล่งที่มา กด F5 จากนั้นเลือกปุ่มสำหรับภาษาใดภาษาหนึ่ง
บนหน้าจอ เป้าหมาย ป้ายชื่อปรากฏในภาษาที่สอดคล้องกับปุ่มที่คุณเลือก
เลือกลูกศรย้อนกลับ เพื่อกลับไปยังหน้าจอ แหล่งที่มา จากนั้นเลือกปุ่มสำหรับภาษาอื่น
บนหน้าจอ เป้าหมาย ป้ายชื่อปรากฏในภาษาที่สอดคล้องกับปุ่มที่คุณเลือก
กด Esc เพื่อกลับไปยังพื้นที่ทำงานเริ่มต้น
ตัวอย่างแบบทีละขั้นตอน 2
- เปิดแอปพื้นที่ทำงานที่คุณต้องการใช้สูตรนี้
- เพิ่มหน้าจอว่างใหม่โดยการเลือก หน้าจอใหม่ จากแถบคำสั่ง
- เพิ่มปุ่ม และตั้งค่าคุณสมบัติ OnSelect เป็นสูตรนี้:
UpdateContext( { ชื่อ: "Lily", คะแนน: 10 } )