ตัวแปร Power Fx

หมายเหตุ

Microsoft Power Fx เป็นชื่อใหม่สำหรับภาษาสูตรของแอปพื้นที่ทำงาน บทความเหล่านี้กําลังอยู่ระหว่างดําเนินการอยู่ในขณะที่ Microsoft แยกภาษาจากแอปพื้นที่ทํางาน รวมกับผลิตภัณฑ์ Microsoft Power Platform อื่น ๆ และทําให้พร้อมใช้งานในรูปแบบ โอเพนซอร์ส (Open Source) เริ่มต้นด้วย ภาพรวมของ Microsoft Power Fx สำหรับการแนะนำภาษา

เรียนรู้ว่าตัวแปร Power Fx แตกต่างจากตัวแปรในเครื่องมือเช่น Visual Basic หรือ JavaScript อย่างไร และเมื่อสูตรเป็นตัวเลือกที่ดีกว่า บทความนี้อธิบายวิธีการเลือกตัวแปรส่วนกลาง ตัวแปรบริบท หรือคอลเลกชันเพื่อจัดการค่าและสถานะแอป

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

ในบางกรณี คุณจําเป็นต้องใช้ตัวแปรใน Power Fx Power Fx ขยายแบบจําลองของ Excel โดยการเพิ่มสูตรลักษณะการทํางาน สูตรเหล่านี้จะทำงานเมื่อ ตัวอย่างเช่น ผู้ใช้เลือกปุ่ม ภายในสูตรลักษณะการทํางาน มักจะเป็นประโยชน์ในการตั้งค่าตัวแปรเพื่อใช้ในสูตรอื่น ๆ

โดยทั่วไป ให้หลีกเลี่ยงการใช้ตัวแปร แต่ในบางครั้ง เฉพาะตัวแปรเท่านั้นที่สามารถเปิดใช้งานประสบการณ์ที่คุณต้องการ คุณสร้างและพิมพ์ตัวแปรโดยนัยเมื่อปรากฏในฟังก์ชันที่ตั้งค่า

แปล Excel ลงใน Power Fx

Excel

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

ในตัวอย่างต่อไปนี้เซลล์ A3 ถูกตั้งค่าเป็นสูตร A1 + A2 ถ้า A1 หรือ A2 มีการเปลี่ยนแปลง A3 จะคำนวณใหม่โดยอัตโนมัติเพื่อสะท้อนการเปลี่ยนแปลง พฤติกรรมนี้ไม่จำเป็นต้องมีการเขียนโค้ดนอกสูตร

สกรีนช็อตของสูตร Excel คํานวณผลรวมใหม่หลังจากการเปลี่ยนแปลงค่าที่ป้อนเข้า

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

Power Fx

ตรรกะที่คุณสร้างใน Power Fx ทำงานเหมือนกับ Excel แทนที่จะอัปเดตเซลล์ คุณสามารถเพิ่มตัวควบคุมได้ทุกที่ที่คุณต้องการบนหน้าจอ และตั้งชื่อสำหรับใช้ในสูตร

ตัวอย่างเช่น ใน Power Apps คุณสามารถจำลองลักษณะการทำงานของ Excel ในแอปโดยการเพิ่มการควบคุม Label ชื่อ Label1, และสอง การควบคุม Text input ชื่อ TextInput1 และ TextInput2 ถ้าคุณตั้งค่าคุณสมบัติ Text ของ Label1 เป็น TextInput1.Text + TextInput2.Text ระบบจะแสดงผลรวมของตัวเลขใดก็ตามที่อยู่ใน TextInput1 และ TextInput2 โดยอัตโนมัติ

สกรีนช็อตของการป้อนข้อมูลข้อความสองรายการและป้ายชื่อที่คํานวณผลรวมด้วยสูตร Power Fx

โปรดสังเกตว่า มีการเลือกตัวควบคุม Label1 ซึ่งแสดงสูตร ข้อความ ในแถบสูตรที่ด้านบนของหน้าจอ ที่นี่คุณจะพบสูตร TextInput1.Text + TextInput2.Text สูตรนี้สร้างการขึ้นต่อกันระหว่างตัวควบคุมเหล่านี้ เหมือนกับการขึ้นต่อกันที่ถูกสร้างขึ้นระหว่างเซลล์ในเวิร์กบุ๊ก Excel มาเปลี่ยนค่าของ TextInput1:

สกรีนช็อตของสูตร Power Fx จะคํานวณผลรวมใหม่โดยอัตโนมัติเมื่อค่าที่ป้อนเข้าเปลี่ยนแปลง

สูตรสําหรับ Label1 จะถูกคํานวณใหม่โดยอัตโนมัติ เพื่อแสดงค่าใหม่

ใน Power Fx คุณสามารถใช้สูตรในการกำหนดไม่เฉพาะค่าหลักของตัวควบคุม แต่รวมถึงคุณสมบัติ เช่น การจัดรูปแบบ ในตัวอย่างถัดไป สูตรสําหรับคุณสมบัติ สี ของป้ายชื่อจะแสดงค่าลบเป็นสีแดงโดยอัตโนมัติ ฟังก์ชัน If ควรมีลักษณะที่คุ้นเคยจาก Excel:

If( Value(Label1.Text) < 0, Color.Red, Color.Black )

สกรีนช็อตของสูตร Power Fx ที่เปลี่ยนสีป้ายชื่อเมื่อค่าที่คํานวณเป็นค่าลบ

คุณสามารถใช้สูตรสำหรับสถานการณ์ที่หลากหลาย:

  • ด้วยการใช้ GPS ของอุปกรณ์ของคุณ ตัวควบคุมแผนที่สามารถแสดงตำแหน่งที่ตั้งปัจจุบันของคุณด้วยสูตรที่ใช้ Location.Latitude และ Location.Longitude เมื่อคุณเลื่อน แผนที่จะติดตามตำแหน่งที่ตั้งของคุณโดยอัตโนมัติ
  • ผู้ใช้อื่นสามารถอัปเดต แหล่งข้อมูล ตัวอย่างเช่น ผู้อื่นในทีมของคุณอาจอัปเดตรายการในรายการ SharePoint เมื่อคุณรีเฟรชแหล่งข้อมูล สูตรที่ขึ้นต่อกันจะคํานวณใหม่โดยอัตโนมัติเพื่อแสดงข้อมูลที่อัปเดต ตัวอย่างเพิ่มเติม คุณอาจตั้งค่าคุณสมบัติ รายการ ของแกลเลอรีเป็นสูตร Filter( SharePointList ) ซึ่งจะแสดงชุด ระเบียนที่กรองใหม่โดยอัตโนมัติ

ประโยชน์ของสูตร Power Fx

การใช้สูตรเพื่อสร้างแอปมีข้อดีหลายอย่าง:

  • ถ้าคุณรู้จัก Excel คุณจะรู้จัก Power Fx ภาษาโมเดลและสูตรเป็นแบบเดียวกัน
  • ถ้าคุณใช้เครื่องมือการเขียนโปรแกรมอื่นๆ ให้พิจารณาว่าคุณจําเป็นต้องใช้โค้ดมากเพียงใดในตัวอย่างเหล่านี้ ใน Visual Basic คุณอาจจำเป็นต้องเขียนตัวจัดการเหตุการณ์สำหรับเหตุการณ์การเปลี่ยนแปลงบนตัวควบคุม การป้อนข้อความ แต่ละตัว โค้ดในการดําเนินการคํานวณในตัวจัดการเหตุการณ์แต่ละอย่างเหล่านี้ซ้ําซ้อนและไม่สามารถซิงค์ได้ หรือคุณอาจจําเป็นต้องเขียน Subroutine ทั่วไป ใน Power Fx คุณทํางานทั้งหมดนั้นด้วยสูตรหนึ่งบรรทัดสูตรเดียว
  • เมื่อต้องการทําความเข้าใจว่าข้อความของ Label1 มาจากไหน คุณทราบดีว่าจะต้องค้นหาที่ใด: สูตรในคุณสมบัติ ข้อความ ไม่มีวิธีอื่นที่จะส่งผลต่อข้อความของตัวควบคุมนี้ ในเครื่องมือการเขียนโปรแกรมดั้งเดิม ตัวจัดการเหตุการณ์หรือ Subroutine สามารถเปลี่ยนค่าของป้ายชื่อจากที่ใดก็ได้ในโปรแกรม วิธีนี้อาจทําให้ยากต่อการติดตามเวลาและตําแหน่งที่ตัวแปรถูกเปลี่ยนแปลง
  • ถ้าผู้ใช้เปลี่ยนตัวควบคุมแถบเลื่อน แล้วเปลี่ยนใจ พวกเขาสามารถเปลี่ยนแถบเลื่อนกลับมาเป็นค่าเดิมได้ ซึ่งเหมือนกับไม่มีอะไรเปลี่ยนแปลง: แอปแสดงค่าตัวควบคุมเดียวกันกับก่อนหน้านี้ ไม่จำเป็นต้องทดลองและถามว่า "เกิดอะไรขึ้นถ้า" แบบเดียวกับใน Excel

โดยทั่วไป ถ้าคุณสามารถทําให้มีผลได้โดยใช้สูตร คุณจะทําได้ดีกว่า ปล่อยให้โปรแกรมสูตรใน Power Fx ทำงานให้คุณ

ทราบว่าจะใช้ตัวแปรเมื่อไหร่

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

แสดง รายละเอียด
สกรีนช็อตของการเพิ่มแอปเครื่องที่มีผลรวมเป็นศูนย์และ 77 ที่ป้อนในการป้อนข้อความ เมื่อแอปเริ่มทำงาน ผลรวมการทำงานคือ 0

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

ผู้ใช้เลือกปุ่ม เพิ่ม อีกครั้ง
ภาพหน้าจอของเครื่องการเพิ่มที่แสดงผลรวมสะสม 154 ก่อนที่ผู้ใช้จะเลือก ล้าง 77 จะถูกเพิ่มเข้าไปในผลรวมการทำงาน อีกครั้งส่งผลให้ได้ผลเป็น 154

ผู้ใช้เลือกปุ่ม ล้าง
สกรีนช็อตของเครื่องการเพิ่มหลังจากตั้งค่าผลรวมสะสมเป็นศูนย์แล้ว ผลรวมการทำงานจะถูกรีเซ็ทเป็น 0

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

บางครั้งคุณจำเป็นต้องใช้ตัวแปรเพื่อให้แอปของคุณทำงานตามที่คุณต้องการ แต่วิธีนี้มาพร้อมกับคำเตือน:

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

ใช้ตัวแปรส่วนกลาง

เมื่อต้องการเพิ่มเครื่องการเพิ่มของคุณ คุณจําเป็นต้องมีตัวแปรในการเก็บผลรวมสะสม ตัวแปรที่ง่ายที่สุดเมื่อต้องการทำงานใน Power Fx คือ ตัวแปรส่วนกลาง

วิธีที่ตัวแปรส่วนกลางทำงาน:

  • ใช้ฟังก์ชัน Set เพื่อตั้งค่าของตัวแปรส่วนกลาง Set( MyVar, 1 ) ตั้งค่าตัวแปรส่วนกลาง MyVar เป็นค่า 1
  • ใช้ตัวแปรส่วนกลางโดยการอ้างอิงชื่อที่คุณใช้กับฟังก์ชัน Set ในกรณีนี้ MyVar จะคืนค่า 1
  • ตัวแปรส่วนกลางสามารถเก็บค่า รวมถึงสตริง ตัวเลข เรกคอร์ด และ ตาราง

ลองสร้างเครื่องการเพิ่มใหม่โดยใช้ตัวแปรส่วนกลาง:

  1. เพิ่มตัวควบคุม text input ที่ชื่อว่า TextInput1 และปุ่มสองปุ่มที่ชื่อว่า Button1 และ Button2

  2. ตั้งค่าคุณสมบัติ ข้อความ ของ ปุ่ม1 เป็น "เพิ่ม" และตั้งค่าคุณสมบัติ ข้อความ ของ ปุ่ม2 เป็น "ล้าง"

  3. เมื่อต้องการอัปเดตผลรวมสะสมทุกครั้งที่ผู้ใช้เลือกปุ่ม เพิ่ม ให้ตั้งค่าคุณสมบัติ OnSelect เป็นสูตรนี้

    ตั้งค่า (RunningTotal, RunningTotal + TextInput1.Text)

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

    ครั้งแรกที่ผู้ใช้เลือกปุ่ม เพิ่ม และ ตั้งค่า ทำงาน RunningTotal ถูกกำหนดเป็นค่า RunningTotal + TextInput1

    สกรีนช็อตของคุณสมบัติเพิ่มปุ่ม OnSelect โดยใช้ตั้งค่าเพื่ออัปเดตตัวแปรส่วนกลางของ Power Fx

  4. เมื่อต้องการตั้งค่าผลรวมสะสมเป็น 0 ทุกครั้งที่ผู้ใช้เลือกปุ่ม ล้าง ให้ตั้งค่าคุณสมบัติ OnSelect เป็นสูตรนี้:

    Set( RunningTotal, 0 )

    สกรีนช็อตของปุ่มล้างคุณสมบัติ OnSelect โดยใช้ตั้งค่าเพื่อรีเซ็ตตัวแปรส่วนกลางของ Power Fx

  5. เพิ่มตัวควบคุม ป้ายชื่อ และตั้งค่าคุณสมบัติ ข้อความ เป็น ผลรวมสะสม

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

    สกรีนช็อตของคุณสมบัติข้อความป้ายชื่อที่แสดงค่าของตัวแปรส่วนกลาง RunningTotal

  6. แสดงตัวอย่างแอป และคุณมีเครื่องการเพิ่มตามที่อธิบายไว้ก่อนหน้านี้ ใส่ตัวเลขในกล่องข้อความ และกดปุ่ม เพิ่ม สองสามครั้ง เมื่อพร้อมแล้ว ให้กลับไปยังประสบการณ์การเขียนโดยใช้แป้น Esc

    สกรีนช็อตของตัวอย่างการเพิ่มเครื่องด้วยค่าอินพุตและผลรวมสะสมจากการคํานวณ

  7. เมื่อต้องการแสดงค่าของตัวแปรส่วนกลาง ให้เลือกเมนู ไฟล์ และเลือก ตัวแปร ในบานหน้าต่างด้านซ้าย

    สกรีนช็อตของตัวเลือกตัวแปรส่วนกลางที่เลือกจากเมนูไฟล์ในตัวแก้ไขแอป

  8. เมื่อต้องการแสดงตำแหน่งที่มีการกำหนดและใช้ตัวแปร ให้เลือก

    สกรีนช็อตของตําแหน่งที่ตั้งที่มีการกําหนดและใช้ตัวแปรส่วนกลางในแอป

ชนิดของตัวแปร

Power Fx มีตัวแปรสองชนิด:

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

เมื่อคุณใช้ Power Apps คุณจะเห็นตัวแปรชนิดที่สาม:

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

สร้างและลบตัวแปร

คุณสร้างตัวแปรทั้งหมดโดยปริยายเมื่อปรากฏในฟังก์ชัน Set, UpdateContext, Navigate, Collect หรือ ClearCollect เพื่อประกาศตัวแปรและชนิดของตัวแปร เพียงแค่รวมไว้ในฟังก์ชันเหล่านี้ที่ใดก็ได้ในแอปของคุณ ฟังก์ชั่นเหล่านี้ไม่มีการสร้างตัวแปร มีแค่เติมตัวแปรด้วยค่าเท่านั้น คุณไม่ต้องประกาศตัวแปรอย่างชัดเจน เหมือนกับในเครื่องมือการเขียนโปรแกรมอื่น และการพิมพ์ทั้งหมดนั้นมีค่าจากการใช้งาน

ตัวอย่างเช่น คุณอาจมีตัวควบคุมปุ่มที่มีสูตร OnSelect เท่ากับ Set(X, 1) สูตรนี้สร้าง X เป็นตัวแปรที่เป็นประเภทตัวเลข คุณสามารถใช้ X ในสูตรเป็นตัวเลขและตัวแปรนั้นมีค่าเป็น ว่างเปล่า หลังจากที่คุณเปิดแอป แต่ก่อนที่คุณจะเลือกปุ่ม เมื่อคุณเลือกปุ่ม คุณจะให้ค่า X เป็น 1

ถ้าคุณเพิ่มอีกปุ่มหนึ่ง และตั้งค่าคุณสมบัติ OnSelect เป็น Set( X, "Hello" ), ข้อผิดพลาดเกิดขึ้นเนื่องจากชนิด (สตริงข้อความ) ไม่ตรงกับชนิดใน ชุด ก่อนหน้า (ตัวเลข) คำจำกัดความโดยนัยของตัวแปรทั้งหมดจะต้องมีประเภทตรงกัน อีกครั้ง สิ่งทั้งหมดนี้เกิดขึ้นเนื่องจากคุณได้กล่าวถึง X ในสูตร ไม่ใช่เนื่องจากสูตรใด ๆ เหล่านั้นเรียกใช้งานจริง

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

อายุการใช้งานตัวแปรและค่าเริ่มต้น

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

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

เมื่อผู้ใช้เปิดแอป ตัวแปรทั้งหมดมีค่าเริ่มต้นเป็น ว่างเปล่า

อ่านตัวแปร

ใช้ชื่อของตัวแปรเพื่ออ่านค่า ตัวอย่างเช่น คุณสามารถกำหนดตัวแปรด้วยสูตรนี้:

Set( Radius, 12 )

จากนั้น คุณสามารถใช้ รัศมี ที่ใดก็ได้ที่คุณสามารถใช้ตัวเลข และแทนที่ด้วย 12:

Pi() * Power( Radius, 2 )

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

ใช้ตัวแปรบริบท (Power Apps เท่านั้น)

นี่คือวิธีการสร้างเครื่องการเพิ่มโดยใช้ตัวแปรบริบทแทนที่จะเป็นตัวแปรส่วนกลาง

วิธีที่ตัวแปรบริบททำงาน:

  • คุณสร้างและตั้งค่าตัวแปรบริบทโดยใช้ฟังก์ชัน UpdateContext หรือ Navigate เมื่อแอปเริ่มต้น ตัวแปรบริบททั้งหมดมีค่าเริ่มต้นเป็น ว่างเปล่า
  • คุณอัปเดตตัวแปรบริบทด้วยเรกคอร์ด ในเครื่องมือการเขียนโปรแกรมอื่น คุณมักใช้ "=" สำหรับการกำหนด แบบเดียวกับใน "x = 1" สำหรับตัวแปรบริบท ให้ใช้ { x: 1 } แทน เมื่อคุณใช้ตัวแปรบริบท ให้ใช้ชื่อของโดยตรงโดยไม่มีไวยากรณ์ของเรกคอร์ด
  • คุณยังสามารถตั้งค่าตัวแปรบริบทเมื่อคุณใช้ฟังก์ชัน Navigate บนหน้าจอ ถ้าคุณคิดว่าหน้าจอเป็นกระบวนการหรือ Subroutine ประเภทหนึ่ง วิธีการนี้เหมือนกับพารามิเตอร์ที่ส่งผ่านเครื่องมือการเขียนโปรแกรมอื่น ๆ
  • ข้อยกเว้นสำหรับ Navigate ตัวแปรบริบทจะถูกจำกัดให้อยู่ในบริบทของหน้าจอเดียว ซึ่งเป็นที่มาของชื่อของพวกเขา คุณไม่สามารถใช้ หรือตั้งค่าได้จากภายนอกบริบทนี้
  • ตัวแปรบริบทสามารถเก็บค่าใดก็ได้ รวมถึงสตริง ตัวเลข เรกคอร์ด และ ตาราง

ลองสร้างเครื่องมือการเพิ่มของเราโดยใช้ตัวแปรบริบท

  1. เพิ่มตัวควบคุม text input ที่ชื่อว่า TextInput1 และปุ่มสองปุ่มที่ชื่อว่า Button1 และ Button2

  2. ตั้งค่าคุณสมบัติ ข้อความ ของ ปุ่ม1 เป็น "เพิ่ม" และตั้งค่าคุณสมบัติ ข้อความ ของ ปุ่ม2 เป็น "ล้าง"

  3. เมื่อต้องการอัปเดตผลรวมสะสมทุกครั้งที่ผู้ใช้เลือกปุ่ม เพิ่ม ให้ตั้งค่าคุณสมบัติ OnSelect เป็นสูตรนี้

    อัพเดตคอนเท็กซ์( { RunningTotal: RunningTotal + TextInput1.Text } -

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

    ครั้งแรกที่ผู้ใช้เลือกปุ่ม เพิ่ม และ UpdateContext ทำงาน RunningTotal ถูกกำหนดเป็นค่า RunningTotal + TextInput1

    สกรีนช็อตของปุ่มเพิ่มคุณสมบัติ OnSelect ที่อัปเดตตัวแปรบริบท RunningTotal

  4. เมื่อต้องการตั้งค่าผลรวมสะสมเป็น 0 ทุกครั้งที่ผู้ใช้เลือกปุ่ม ล้าง ให้ตั้งค่าคุณสมบัติ OnSelect เป็นสูตรนี้:

    UpdateContext( { RunningTotal: 0 } )

    ใช้ UpdateContext กับสูตร UpdateContext( { RunningTotal: 0 } ) อีกครั้ง

    สกรีนช็อตของปุ่มล้างคุณสมบัติ OnSelect ที่รีเซ็ตตัวแปรบริบท RunningTotal

  5. เพิ่มตัวควบคุม ป้ายชื่อ และตั้งค่าคุณสมบัติ ข้อความ เป็น ผลรวมสะสม

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

    สกรีนช็อตของคุณสมบัติข้อความป้ายชื่อที่แสดงค่าตัวแปรบริบท RunningTotal

  6. แสดงตัวอย่างแอป และคุณมีเครื่องการเพิ่มของคุณตามที่อธิบายไว้ก่อนหน้านี้ ใส่ตัวเลขในกล่องข้อความ และกดปุ่ม เพิ่ม สองสามครั้ง เมื่อพร้อมแล้ว ให้กลับไปยังประสบการณ์การเขียนโดยใช้แป้น Esc

    สกรีนช็อตของตัวอย่างแอปที่มีค่าการป้อนข้อความและผลรวมที่เรียกใช้ตัวแปรบริบท

  7. คุณสามารถตั้งค่าค่าของตัวแปรบริบทขณะนำทางไปยังหน้าจอ เทคนิคนี้มีประโยชน์สําหรับการส่ง "บริบท" หรือ "พารามิเตอร์" จากหน้าจอหนึ่งไปยังอีกหน้าจอหนึ่ง เพื่อสาธิตเทคนิคนี้ ให้ใส่หน้าจอ ใส่ปุ่ม และตั้งค่าคุณสมบัติ OnSelect เป็นสูตรนี้:

    Navigate( Screen1, None, { RunningTotal: -1000 } )

    สกรีนช็อตของปุ่มคุณสมบัติ OnSelect โดยใช้ Navigate เพื่อส่งผ่านตัวแปรบริบทไปยัง Screen1

    กดปุ่ม Alt ค้างไว้ในขณะที่คุณเลือกปุ่มนี้เพื่อแสดง Screen1 และตั้งค่าตัวแปรบริบท RunningTotal เป็น -1000

    สกรีนช็อตของ Screen1 หลังจากการนําทางตั้งค่าตัวแปรบริบท RunningTotal เป็นลบ 1000

  8. เมื่อต้องการแสดงค่าของตัวแปรบริบท ให้เลือกเมนู ไฟล์ และเลือก ตัวแปร ในบานหน้าต่างด้านซ้าย

    สกรีนช็อตของตัวเลือกตัวแปรบริบทที่เลือกจากเมนูไฟล์ในตัวแก้ไขแอป

  9. เลือกตัวแปรบริบทเพื่อดูตําแหน่งที่กําหนดและใช้

    สกรีนช็อตของตําแหน่งที่ตั้งที่มีการกําหนดและใช้ตัวแปรบริบทในแอป

ใช้คอลเลคชัน

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

วิธีที่คอลเลกชันทำงาน:

  • ใช้ฟังก์ชัน ClearCollect เพื่อสร้างและตั้งค่าคอลเลกชัน คุณสามารถใช้ฟังก์ชัน Collect แทน แต่จําเป็นต้องใช้ตัวแปรอื่นแทนการแทนที่ตัวแปรเก่า
  • คอลเลกชันเป็นแหล่งข้อมูลประเภทหนึ่ง และตาราง เมื่อต้องการเข้าถึงค่าเดียวในคอลเลกชัน ให้ใช้ฟังก์ชัน อันดับแรก และแยกเขตข้อมูลหนึ่งออกจากระเบียนผลลัพธ์ ถ้าคุณใช้ค่าเดียวกับ ClearCollect ค่านี้คือเขตข้อมูล ค่า ตามตัวอย่างนี้:
    First(VariableName).Value

มาลองสร้างเครื่องการเพิ่มของเราใหม่โดยใช้คอลเลกชัน:

  1. เพิ่มการควบคุม การนำเข้าข้อความ ที่ชื่อว่า TextInput1 และปุ่มสองปุ่มที่ชื่อว่า Button1 และ Button2

  2. ตั้งค่าคุณสมบัติ ข้อความ ของ ปุ่ม1 เป็น "เพิ่ม" และตั้งค่าคุณสมบัติ ข้อความ ของ ปุ่ม2 เป็น "ล้าง"

  3. เมื่อต้องการอัปเดตผลรวมสะสมทุกครั้งที่ผู้ใช้เลือกปุ่ม เพิ่ม ให้ตั้งค่าคุณสมบัติ OnSelect เป็นสูตรนี้

    Collect( PaperTape, TextInput1.Text )

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

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

    สกรีนช็อตของคุณสมบัติเพิ่มปุ่ม OnSelect ที่รวบรวมค่าอินพุตใน PaperTape

  4. เมื่อต้องการล้างเทปกระดาษ เมื่อผู้ใช้เลือกปุ่ม ล้าง ให้ตั้งค่าคุณสมบัติ OnSelect เป็นสูตรนี้:

    Clear( PaperTape )

    สกรีนช็อตของคุณสมบัติล้างปุ่ม OnSelect ที่ล้างค่าทั้งหมดจาก PaperTape

  5. เมื่อต้องการแสดงผลรวมสะสม ให้เพิ่มป้ายชื่อ และตั้งค่าคุณสมบัติ ข้อความ เป็นสูตรนี้:

    Sum( PaperTape, Value )

    สกรีนช็อตของคุณสมบัติข้อความป้ายชื่อโดยใช้ผลรวมเพื่อคํานวณผลรวมสะสม PaperTape

  6. เมื่อต้องการเรียกใช้เครื่องการเพิ่ม ให้กด F5 เพื่อเปิดการแสดงตัวอย่าง ใส่ตัวเลขในตัวควบคุม text input และเลือกปุ่ม

    สกรีนช็อตของเครื่องการเพิ่มตามคอลเลกชันที่มีค่าอินพุตและผลรวมสะสม

  7. เมื่อต้องการกลับไปยังพื้นที่ทํางานเริ่มต้น ให้กดแป้น Esc

  8. เมื่อต้องการแสดงเทปกระดาษ ให้แทรกตัวควบคุม ตารางข้อมูล และตั้งค่าคุณสมบัติ รายการ เป็นสูตรนี้:

    PaperTape

    ในบานหน้าต่างด้านขวา ให้เลือก แก้ไขฟิลด์ จากนั้นเลือก เพิ่มฟิลด์ เลือกคอลัมน์ ค่า จากนั้นเลือก เพิ่ม เพื่อแสดง

    ภาพหน้าจอของตารางข้อมูลที่แสดงค่าที่เพิ่มไปยังคอลเลกชัน PaperTape

  9. เมื่อต้องการดูค่าในคอลเลกชันของคุณ ให้เลือก คอลเลกชัน บนเมนู ไฟล์

    สกรีนช็อตของมุมมองคอลเลกชันที่แสดงค่าที่จัดเก็บไว้ในคอลเลกชัน PaperTape

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

    Clear( PaperTape ); LoadData( PaperTape, "StoredPaperTape", true )

    คุณจำเป็นต้องล้างคอลเลกชันก่อน เนื่องจาก LoadData จะผนวกค่าที่จัดเก็บไว้ในตอนท้ายของคอลเลกชัน

    สกรีนช็อตของปุ่มโหลดคุณสมบัติ OnSelect ล้างและโหลดคอลเลกชัน PaperTape

  11. ตั้งค่าคุณสมบัติ OnSelect ของปุ่ม บันทึก เป็นสูตรนี้:

    SaveData( PaperTape, "StoredPaperTape" )

    สกรีนช็อตของปุ่มบันทึกคุณสมบัติ OnSelect ที่บันทึกคอลเลกชัน PaperTape ภายในเครื่อง

  12. แสดงตัวอย่างอีกครั้งโดยการกดปุ่ม F5 ใส่ตัวเลขในตัวควบคุมการป้อนข้อความ และเลือกปุ่ม เลือกปุ่ม บันทึก ปิดและโหลดแอปใหม่ และเลือกปุ่ม โหลด เพื่อโหลดคอลเลกชันของคุณใหม่