ฟังก์ชัน UpdateContext
ใช้กับ: แอป Canvas
สร้างหรือปรับปรุง ตัวแปรบริบท ของหน้าจอปัจจุบัน
ภาพรวม
ใช้ฟังก์ชัน UpdateContext เพื่อสร้างตัวแปรบริบท ซึ่งเก็บส่วนหนึ่งของข้อมูลไว้ชั่วคราว เช่น จำนวนครั้งที่ผู้ใช้เลือกปุ่ม หรือผลลัพธ์ของการดำเนินการข้อมูล
ตัวแปรบริบทจะอยู่ในขอบเขตหน้าจอ ซึ่งหมายความว่า คุณไม่สามารถสร้างสูตรที่อ้างอิงถึงตัวแปรบริบทบนหน้าจออื่นได้ ถ้าคุณใช้เครื่องมือเขียนโปรแกรมอื่น คุณสามารถนึกถึงภาพของตัวแปรบริบทเป็นเหมือนกับตัวแปรภายในเครื่อง ใช้ ฟังก์ชัน Set เพื่อทำงานกับตัวแปรส่วนกลางที่พร้อมใช้งานทั่วทั้งแอปของคุณ
Power Apps ยึดตามสูตรที่คำนวณใหม่โดยอัตโนมัติเมื่อผู้ใช้โต้ตอบกับแอป ตัวแปรบริบทไม่มีสิทธิประโยชน์นี้ และอาจทำให้การสร้างและการทำความเข้าใจแอปของคุณยากขึ้น ก่อนที่คุณจะใช้ตัวแปรบริบท ให้ดู การทำงานกับตัวแปร
คำอธิบาย
เมื่อต้องสร้างหรืออัปเดตตัวแปรบริบท ส่ง เรกคอร์ด เดี่ยวไปยังฟังก์ชัน UpdateContext ในแต่ละรเรกคอร์ด ระบุชื่อของ คอลัมน์ ซึ่งกำหนดหรือตรงกับชื่อของตัวแปร และค่าที่คุณต้องการตั้งค่าตัวแปรนั้น
- ถ้าคุณระบุชื่อของตัวแปรที่คุณได้กำหนดไว้ก่อนหน้านี้ UpdateContext จะตั้งค่าของตัวแปรเป็นค่าที่คุณระบุ
- ถ้าคุณระบุชื่อของตัวแปรที่ยังไม่มี UpdateContext จะสร้างตัวแปรด้วยชื่อนั้น และตั้งค่าของตัวแปรนั้นเป็นค่าที่คุณระบุ
- ถ้าคุณได้กำหนดตัวแปรไว้ก่อนหน้านี้ แต่ไม่ได้ระบุในสูตร UpdateContext นี้ ค่าของตัวแปรจะยังคงเหมือนเดิม
ตัวแปรบริบทสร้างขึ้นโดยปริยายโดยใช้ฟังก์ชัน UpdateContext หรือ Navigate ไม่จำเป็นต้องมีการประกาศอย่างชัดเจน ถ้าคุณลบการอ้างอิง UpdateContext และ Navigate ทั้งหมดสำหรับตัวแปรบริบท ตัวแปรบริบทจะไม่มีอยู่ด้วยเช่นกัน เมื่อต้องล้างตัวแปร ให้ตั้งค่าเป็นค่าที่เป็นผลลัพธ์ของ ฟังก์ชัน Blank
คุณสามารถดูค่า นิยาม และการใช้งานของตัวแปรของคุณได้ด้วยมุมมอง ตัวแปร ภายในเมนู ไฟล์ ในสภาพแวดล้อมการเขียน
คุณอ้างอิงตัวแปรบริบทในสูตรได้โดยใช้ชื่อคอลัมน์ของตัวแปร ตัวอย่างเช่น UpdateContext( { ShowLogo: true } ) สร้างตัวแปรบริบทที่ชื่อว่า ShowLogo และตั้งค่าเป็น จริง จากนั้น คุณสามารถใช้ค่าของตัวแปรบริบทนี้ได้โดยใช้ชื่อ ShowLogo ในสูตรได้ คุณสามารถเขียน ShowLogo เป็นสูตรสำหรับคุณสมบัติ Visible ของตัวควบคุมรูปภาพ และแสดงหรือซ่อนตัวควบคุมดังกล่าวตามค่าของตัวแปรบริบทว่าเป็น จริง หรือ เท็จ
ดังที่ตัวอย่างในภายหลังของหัวข้อนี้แสดง ตัวแปรบริบทสามารถเก็บข้อมูลได้หลายประเภท รวมถึง:
- ค่าเดี่ยว
- เรกคอร์ด
- ตาราง
- การอ้างอิงออบเจ็กต์
- ผลลัพธ์จากสูตร
ตัวแปรบริบทงจะเก็บค่าไว้จนกว่าจะปิดแอป ถ้าคุณกำหนดตัวแปรบริบทและตั้งค่าบนหน้าจอใดหน้าจอหนึ่ง ข้อมูลดังกล่าวยังคงเชื่อมต่ออยู่ แม้ว่าผู้ใช้เปลี่ยนไปยังหน้าจออื่นก็ตาม เมื่อปิดแอป ค่าของตัวแปรบริบทจะหายไป และต้องสร้างขึ้นใหม่เมื่อโหลดแอปอีกครั้ง
ทุกตัวแปรบริบทจะถูกกำหนดอยู่ในขอบเขตหน้าจอหนึ่ง ถ้าคุณต้องการกำหนดตัวแปรบริบทบนหน้าจอหนึ่งและปรับเปลี่ยนตัวแปรนั้นจากหน้าจออื่น คุณต้องสร้างสูตรที่เป็นไปตามฟังก์ชัน Navigate หรือใช้ตัวแปรส่วนกลาง
UpdateContext ไม่มีค่าส่งคืน และคุณสามารถใช้ได้ภายในสูตร พฤติกรรมเท่านั้น
ไวยากรณ์
อัปเดตบริบท( บันทึกอัปเดต )
- UpdateRecord – จำเป็น เรกคอร์ดที่ประกอบด้วยชื่อของคอลัมน์อย่างน้อยหนึ่งคอลัมน์ และหนึ่งค่าสำหรับคอลัมน์นั้น ตัวแปรบริบทสร้างขึ้นหรือปรับปรุงสำหรับแต่ละคอลัมน์และค่าที่คุณระบุ
อัปเดตบริบท( { ตัวแปรบริบท1: ค่า1 [, ตัวแปรบริบท2: ค่า2 [, ... ] ] } )
- ContextVariable1 - จำเป็น ชื่อของตัวแปรบริบทสำหรับสร้างหรืออัปเดต
- ค่า1 - จำเป็น ค่าสำหรับมอบหมายให้กับตัวแปรบริบท
- ContextVariable2: Value2, ... - ไม่บังคับ ตัวแปรบริบทเพิ่มเติมเพื่อสร้างหรือปรับปรุงและค่าของตัวแปรเหล่านี้
ตัวอย่าง
สูตร | คำอธิบาย | ผลลัพธ์ |
---|---|---|
UpdateContext( { ตัวนับ: 1 } ) | สร้างหรือปรับเปลี่ยนตัวแปรบริบท Counter ตั้งค่าเป็น 1 | เคาน์เตอร์ มีค่า 1 คุณสามารถอ้างอิงตัวแปรโดยใช้ชื่อ Counter ในสูตรได้ |
UpdateContext( { ตัวนับ: 2 } ) | ตั้งค่าตัวแปรบริบท Counter จากตัวอย่างที่แล้วเป็น 2 | เคาน์เตอร์ มีค่า 2 |
UpdateContext( { ชื่อ: "ลิลลี่", คะแนน: 10 } ) | สร้างหรือปรับเปลี่ยน ชื่อ และ คะแนน ตัวแปรบริบท ตั้งค่าสำหรับค่าของตัวแปรเป็น Lily และ 10 ตามลำดับ | ชื่อ มีค่า ลิลลี่และ คะแนน มีค่า 10 |
UpdateContext( { บุคคล: { ชื่อ: "มิลตัน", ที่อยู่: "1 Main St" } } ) | สร้างหรือปรับเปลี่ยนตัวแปรบริบท บุคคล ตั้งค่าให้เป็นเรกคอร์ด เรกคอร์ดมีสองคอลัมน์ชื่อ ชื่อ และ ที่อยู่ ค่าของคอลัมน์ ชื่อ คือ Milton และค่าของคอลัมน์ ที่อยู่ เป็น 1 ถนนหลัก | บุคคล มีค่าของบันทึก { ชื่อ: "มิลตัน", ที่อยู่: "1 Main St" } } อ้างอิงเรกคอร์ดนี้ทั้งเรกคอร์ดด้วยชื่อ บุคคล หรืออ้างอิงเพียงคอลัมน์เดียวของเรกคอร์ดนี้ด้วย ชื่อ.บุคคล หรือ ที่อยู่.บุคคล |
UpdateContext( { บุคคล: Patch( บุคคล, {ที่อยู่: "2 Main St" } ) } ) | ใช้ได้กับฟังก์ชัน Patch เพื่ออัปเดตตัวแปรบริบท บุคคล โดยตั้งค่าคอลัมน์ ที่อยู่ เป็น 2 Main St | บุคคล ตอนนี้มีค่าของบันทึก { ชื่อ: "มิลตัน", ที่อยู่: "2 Main St" } } |
ตัวอย่างแบบทีละขั้นตอน 1
ตั้งชื่อหน้าจอเริ่มต้นเป็น แหล่งที่มา เพิ่มอีกหน้าจอ และตั้งชื่อเป็น เป้าหมาย
ที่หน้าจอ แหล่งที่มา เพิ่มปุ่มสองปุ่ม และตั้งค่าคุณสมบัติ Text ของปุ่ม เพื่อระบุเป็น อังกฤษ และอีกปุ่มเป็น สเปน
ตั้งค่าคุณสมบัติ OnSelect ของปุ่ม อังกฤษ เป็นนิพจน์นี้:
นำทาง(เป้าหมาย,การเปลี่ยนหน้าจอ.จางลง, {ภาษา: "อังกฤษ"})ตั้งค่าคุณสมบัติ OnSelect ของปุ่ม สเปน เป็นนิพจน์นี้:
นำทาง(เป้าหมาย, การเปลี่ยนหน้าจอ.จางลง, {ภาษา: "สเปน"})บนหน้าจอ เป้าหมาย เพิ่มป้ายชื่อ และตั้งค่าคุณสมบัติ Text เป็นนิพจน์นี้:
หาก(ภาษา="ภาษาอังกฤษ", "สวัสดี!", "สวัสดี!")บนหน้าจอ เป้าหมาย เลือก รูปร่าง ที่แท็บ แทรก จากนั้นเลือกลูกศรย้อนกลับ
ตั้งค่าคุณสมบัติ OnSelect ของลูกศรย้อนกลับ เป็นสูตรดังนี้:
การนำทาง (แหล่งที่มา, การเปลี่ยนหน้าจอ, การจางหาย)จากหน้าจอ แหล่งที่มา กด F5 จากนั้นเลือกปุ่มสำหรับภาษาใดภาษาหนึ่ง
บนหน้าจอ เป้าหมาย ป้ายชื่อปรากฏในภาษาที่สอดคล้องกับปุ่มที่คุณเลือก
เลือกลูกศรย้อนกลับ เพื่อกลับไปยังหน้าจอ แหล่งที่มา จากนั้นเลือกปุ่มสำหรับภาษาอื่น
บนหน้าจอ เป้าหมาย ป้ายชื่อปรากฏในภาษาที่สอดคล้องกับปุ่มที่คุณเลือก
กด Esc เพื่อกลับไปยังพื้นที่ทำงานเริ่มต้น
ตัวอย่างแบบทีละขั้นตอน 2
- เปิดแอปพื้นที่ทำงานที่คุณต้องการใช้สูตรนี้
- เพิ่มหน้าจอว่างใหม่โดยการเลือก หน้าจอใหม่ จากแถบคำสั่ง
- เพิ่มปุ่ม และตั้งค่าคุณสมบัติ OnSelect เป็นสูตรนี้:
UpdateContext( { ชื่อ: "ลิลลี่", คะแนน: 10 } )