ออบเจ็กต์ App ใน Power Apps
ใช้กับ: แอป Canvas แอปที่ขับเคลื่อนด้วยโมเดล
มีข้อมูลเกี่ยวกับแอปที่กำลังทำงานอยู่ในขณะนี้ และควบคุมลักษณะการทำงานของแอป
คำอธิบาย
เช่นเดียวกับตัวควบคุม ออบเจ็กต์ แอป มีคุณสมบัติที่ระบุว่าหน้าจอใดที่กำลังแสดงอยู่ และแจ้งให้ผู้ใช้บันทึกการเปลี่ยนแปลงเพื่อไม่ให้สูญหาย แอปทุกตัวมีออบเจ็กต์ แอป
คุณสามารถเขียนสูตรสำหรับคุณสมบัติบางอย่างของออบเจ็กต์ แอป ที่ด้านบนของบานหน้าต่าง มุมมองทรี ให้เลือกออบเจ็กต์ แอป ที่คุณจะเลือกตัวควบคุมหรือหน้าจออื่นๆ ดูและแก้ไขคุณสมบัติของออบเจ็กต์อย่างใดอย่างหนึ่งโดยการเลือกในรายการดรอปดาวน์ทางด้านซ้ายของแถบสูตร
คุณสมบัติ ActiveScreen
คุณสมบัติ ActiveScreen ระบุหน้าจอที่กำลังแสดง
คุณสมบัตินี้ส่งคืนออบเจ็กต์หน้าจอ ใช้เพื่ออ้างอิงคุณสมบัติของหน้าจอที่แสดงอยู่ในปัจจุบัน เช่น ชื่อพร้อมสูตร App.ActiveScreen.Name คุณยังสามารถเปรียบเทียบคุณสมบัตินี้กับออบเจ็กต์หน้าจออื่นได้ เช่น ด้วยสูตรการเปรียบเทียบ App.ActiveScreen = Screen2 เพื่อทดสอบว่า Screen2 คือหน้าจอที่แสดงอยู่ในปัจจุบัน
ใช้ฟังก์ชัน Back หรือ Navigate เพื่อเปลี่ยนหน้าจอที่กำลังแสดง
คุณสมบัติ BackEnabled
คุณสมบัติ BackEnabled เปลี่ยนวิธีที่แอปตอบสนองต่อท่าทางย้อนกลับของอุปกรณ์ (ปัดหรือใช้ปุ่มย้อนกลับของฮาร์ดแวร์บนอุปกรณ์ Android ปัดจากซ้ายบนอุปกรณ์ iOS) เมื่อทำงานใน Power Apps บนมือถือ เมื่อเปิดใช้งาน ท่าทางย้อนกลับของอุปกรณ์จะนำทางกลับไปยังหน้าจอที่แสดงล่าสุด ซึ่งคล้ายกับสูตร ย้อนกลับ เมื่อปิดใช้งาน ท่าทางย้อนกลับของอุปกรณ์จะนำผู้ใช้กลับไปยังรายการแอป
คุณสมบัติ ConfirmExit
ไม่มีใครต้องการสูญเสียการเปลี่ยนแปลงที่ไม่ได้บันทึก ใช้คุณสมบัติ ConfirmExit และ ConfirmExitMessage เพื่อเตือนผู้ใช้ก่อนที่จะปิดแอปของคุณ
หมายเหตุ
- ConfirmExit ไม่ทำงานในแอปที่ฝังอยู่ในตัวอย่างเช่น Power BI และ SharePoint
- ในปัจจุบันคุณสมบัติเหล่านี้สามารถอ้างอิงการควบคุมบนหน้าจอแรกเท่านั้น หากคุณลักษณะการแสดงตัวอย่าง โหลดล่าช้า เปิดใช้งาน (ซึ่งเป็นค่าเริ่มต้นสำหรับแอปใหม่) หากมีการอ้างอิง Power Apps Studio ไม่แสดงข้อผิดพลาด แต่แอปที่เผยแพร่แล้วที่เป็นผลลัพธ์ไม่เปิดขึ้นใน Power Apps Mobile หรือเบราว์เซอร์ เราได้ทำงานอย่างหนักเพื่อปรับปรุงข้อจำกัดนี้ ในระหว่างนี้ คุณสามารถปิด การโหลดล่าช้า ใน การตั้งค่า>คุณลักษณะที่กำลังจะเกิดขึ้น (ภายใต้ ตัวอย่าง)
ConfirmExit
ConfirmExit เป็นคุณสมบัติ แบบบูลีน ที่เมื่อ true จะเปิดกล่องโต้ตอบการยืนยันก่อนที่จะปิดแอป โดยค่าเริ่มต้น คุณสมบัตินี้คือ เท็จ และไม่มีกล่องโต้ตอบปรากฏขึ้น
ในสถานการณ์ที่ผู้ใช้อาจมีการเปลี่ยนแปลงที่ยังไม่ได้บันทึกในแอป ให้ใช้คุณสมบัตินี้เพื่อแสดงกล่องโต้ตอบการยืนยันก่อนออกจากแอป ใช้สูตรที่สามารถตรวจสอบตัวแปรและคุณสมบัติการควบคุม (ตัวอย่างเช่น คุณสมบัติ Unsaved ของตัวควบคุม แก้ไขฟอร์ม)
กล่องโต้ตอบการยืนยันจะปรากฏขึ้นในทุกสถานการณ์ที่ข้อมูลอาจสูญหายได้ ดังตัวอย่างเหล่านี้:
- เรียกใช้ฟังก์ชัน Exit
- หากแอปทำงานในเบราว์เซอร์:
- ปิดเบราว์เซอร์หรือแท็บเบราว์เซอร์ที่แอปทำงานอยู่
- การเลือกปุ่มย้อนกลับของเบราว์เซอร์
- การเรียกใช้ฟังก์ชัน Launch ด้วย LaunchTarget ของ Self
- หากแอปกำลังทำงานอยู่ใน Power Apps Mobile (iOS หรือ Android):
- การปัดเพื่อสลับไปยังแอปอื่นใน Power Apps Mobile
- การเลือกปุ่มย้อนกลับบนอุปกรณ์ Android
- การเรียกใช้ฟังก์ชัน Launch เพื่อเปิดแอปพื้นที่ทำงานอื่น
รูปลักษณ์ที่แน่นอนของกล่องโต้ตอบการยืนยันอาจแตกต่างกันไปตามอุปกรณ์และรุ่นของ Power Apps
กล่องโต้ตอบการยืนยันไม่ปรากฎใน Power Apps Studio
ConfirmExitMessage
โดยค่าเริ่มต้น กล่องโต้ตอบการยืนยันจะแสดงข้อความทั่วไป เช่น "คุณอาจมีการเปลี่ยนแปลงที่ยังไม่ได้บันทึก" ในภาษาของผู้ใช้
ใช้ ConfirmExitMessage เพื่อให้ข้อความที่กำหนดเองในกล่องโต้ตอบการยืนยัน ถ้าคุณสมบัตินี้เป็น ว่างเปล่า ค่าเริ่มต้นจะถูกใช้ ข้อความที่กำหนดเองจะถูกตัดทอนตามความจำเป็นเพื่อให้พอดีกับในกล่องโต้ตอบการยืนยัน ดังนั้นควรเก็บข้อความไว้ไม่เกินสองบรรทัด
ในเบราว์เซอร์ กล่องโต้ตอบการยืนยันอาจปรากฏขึ้นพร้อมกับข้อความทั่วไปจากเบราว์เซอร์
หมายเหตุ
ออบเจ็กต์แอปมีคุณสมบัติเพิ่มเติมอีกสองรายการคือ OnMessage
และ BackEnabled
ที่กำลังทดลองอยู่ คุณสมบัติเหล่านี้จะถูกลบออกจากออบเจ็กต์แอปในที่สุด เราขอแนะนำไม่ให้คุณใช้คุณสมบัติเหล่านี้ในสภาพแวดล้อมการทำงานจริงของคุณ
ตัวอย่างเช่น
สร้างแอปที่มีการควบคุมฟอร์มสองแบบ AccountForm และ ContactForm
ตั้งค่าคุณสมบัติ ConfirmExit ของออปเจกต์ แอป สำหรับนิพจน์นี้:
AccountForm.Unsaved Or ContactForm.Unsaved
กล่องโต้ตอบนี้จะปรากฏขึ้น หากผู้ใช้เปลี่ยนข้อมูลในฟอร์มใดฟอร์มหนึ่ง แล้วพยายามปิดแอปโดยไม่บันทึกการเปลี่ยนแปลงเหล่านั้น
ตั้งค่าคุณสมบัติ ConfirmExitMessage ของออปเจกต์ แอป สำหรับสูตรนี้:
If( AccountsForm.Unsaved, "Accounts form has unsaved changes.", "Contacts form has unsaved changes." )
กล่องโต้ตอบนี้จะปรากฏขึ้น หากผู้ใช้เปลี่ยนข้อมูลในฟอร์มลูกค้าองค์กร แล้วพยายามปิดแอปโดยไม่บันทึกการเปลี่ยนแปลงเหล่านั้น
ตั้งค่าคีย์การรายงานข้อมูลระบบสำหรับ Application Insights
หากต้องการส่งออกบันทึกแอปพลิเคชันที่ระบบสร้างไปยัง Application Insights คุณต้องตั้งค่า คีย์การรายงานข้อมูลระบบ สำหรับแอปพื้นที่ทำงานของคุณ
- เปิดแอปของคุณสำหรับ การแก้ไข ใน Power Apps Studio
- เลือกออบเจ็กต์ App ในมุมมองทรีบนการนำทางด้านซ้าย
- ป้อน คีย์การรายงานข้อมูลระบบ ในบานหน้าต่างคุณสมบัติ
หากข้อมูลไม่ถูกส่งไปยัง App Insights โปรดติดต่อผู้ดูแลระบบ Power Platform ของคุณ และตรวจสอบว่า App Insights ถูกปิดใช้งานในระดับผู้เช่าหรือไม่
คุณสมบัติของสูตร
ใช้สูตรที่ระบุชื่อในคุณสมบัติ Formulas เพื่อกำหนดสูตรที่สามารถนำมาใช้ซ้ำได้ทั่วทั้งแอปของคุณ
ใน Power Apps คุณสมบัติของตัวควบคุมมีการทำงานโดยสูตร ตัวอย่างเช่น หากต้องการตั้งค่าสีพื้นหลังให้สอดคล้องกันในแอป คุณอาจตั้งค่าคุณสมบัติ Fill สำหรับแต่ละรายการของสูตรทั่วไป:
Label1.Fill: ColorValue( Param( "BackgroundColor" ) )
Label2.Fill: ColorValue( Param( "BackgroundColor" ) )
Label3.Fill: ColorValue( Param( "BackgroundColor" ) )
สูตรนี้อาจปรากฏขึ้นในที่ต่างๆ มากมายที่ จึงกลายเป็นเรื่องน่าเบื่อและมีแนวโน้มที่จะเกิดข้อผิดพลาดในการปรับปรุงทั้งหมดหากจำเป็นต้องเปลี่ยนแปลง คุณสามารถสร้างตัวแปรส่วนกลางใน OnStart เพื่อตั้งค่าสีหนึ่งครั้ง แล้วนำค่ากลับมาใช้ใหม่ทั่วทั้งแอป:
App.OnStart: Set( BGColor, ColorValue( Param( "BackgroundColor" ) ) )
Label1.Fill: BGColor
Label2.Fill: BGColor
Label3.Fill: BGColor
แม้ว่าวิธีนี้จะดีกว่า แต่ก็ขึ้นอยู่กับ OnStart ที่ทำงานก่อนค่าสำหรับ BGColor จะถูกสร้าง BGColor อาจถูกปรับเปลี่ยนในมุมใดมุมหนึ่งของแอปที่ผู้สร้างไม่ทราบ ซึ่งเป็นการเปลี่ยนแปลงที่ทำโดยบุคคลอื่น และอาจติดตามได้ยาก
สูตรที่ระบุชื่อเป็นทางเลือก เช่นเดียวกับที่เรามักเขียน control-property = นิพจน์ เราสามารถเขียน ชื่อ = นิพจน์ แทนแล้วนำ ชื่อ กลับมาใช้ใหม่ตลอดทั้งแอปของเราเพื่อแทนที่ นิพจน์ คำจำกัดความของสูตรเหล่านี้ทำในคุณสมบัติ Formulas:
App.Formulas: BGColor = ColorValue( Param( "BackgroundColor" ) );
Label1.Fill: BGColor
Label2.Fill: BGColor
Label3.Fill: BGColor
ข้อดีของการใช้สูตรที่ระบุชื่อได้แก่:
- ค่าของสูตรจะใช้ได้เสมอ ไม่มีการข้อต่อกันของเวลา ไม่มี OnStart ที่ต้องทำงานก่อนจึงจะกำหนดค่าได้ ไม่มีเวลาที่ค่าของสูตรไม่ถูกต้อง สูตรที่ระบุชื่อสามารถอ้างอิงถึงกันในลำดับใดก็ได้ ตราบเท่าที่ไม่ได้สร้างการอ้างอิงแบบวงกลม สูตรดังกล่าวสามารถคำนวณแบบขนานได้
- ค่าของสูตรจะเป็นปัจจุบันเสมอ สูตรสามารถทำการคำนวณที่ขึ้นอยู่กับคุณสมบัติของตัวควบคุมหรือเรกคอร์ดฐานข้อมูล และเมื่อมีการเปลี่ยนแปลง ค่าของสูตรจะปรับปรุงโดยอัตโนมัติ คุณไม่จำเป็นต้องปรับปรุงค่าด้วยตนเองเช่นเดียวกับที่ทำกับตัวแปร และสูตรจะคำนวณใหม่เมื่อจำเป็นเท่านั้น
- คำจำกัดความของสูตรนี้ไม่สามารถเปลี่ยนแปลงได้ คำจำกัดความใน สูตร เป็นแหล่งที่มาของความจริงเพียงแหล่งเดียวและไม่สามารถเปลี่ยนแปลงค่าที่อื่นในแอปได้ สำหรับตัวแปร อาจเป็นไปได้ว่าโค้ดบางตัวเปลี่ยนค่าโดยไม่คาดคิด แต่สิ่งนี้ไม่สามารถทำได้ในสูตรที่ระบุชื่อ
- การคำนวณของสูตรสามารถเลื่อนออกไปได้ เนื่องจากค่าไม่เปลี่ยนรูป จึงสามารถคำนวณได้เสมอเมื่อจำเป็น ซึ่งหมายความว่าไม่จำเป็นต้องคำนวณจนกว่าจะจำเป็น ค่าสูตรที่ไม่ได้ใช้จนกระทั่ง screen2 ของแอปแสดงขึ้นไม่จำเป็นต้องคำนวณจนกว่า screen2 จะปรากฏขึ้น การเลื่อนเวลาการทำงานนี้สามารถปรับปรุงเวลาในการโหลดแอปได้ สูตรที่ระบุชื่อเป็นการประกาศและให้โอกาสสำหรับระบบในการปรับวิธีและเวลาคำนวณให้เหมาะสม
- สูตรที่ระบุชื่อเป็นแนวคิดของ Excel Power Fx ใช้แนวคิดของ Excel เมื่อเป็นไปได้ เนื่องจากมีคนจำนวนมากที่รู้จัก Excel เป็นอย่างดี สูตรที่ระบุชื่อจะเทียบเท่ากับเซลล์ที่มีชื่อและสูตรที่ระบุชื่อใน Excel ซึ่งจัดการด้วยโปรแกรมจัดการชื่อ โดยจะคำนวณใหม่โดยอัตโนมัติเหมือนกับสเปรดชีต เช่นเดียวกับคุณสมบัติของตัวควบคุม
มีการกำหนดสูตรที่ระบุชื่อไว้ทีละรายการในคุณสมบัติ Formulas แต่ละรายการลงท้ายด้วยเครื่องหมายอัฒภาค ชนิดของสูตรจะอนุมานจากชนิดของนิพจน์ ซึ่งขึ้นอยู่กับชนิดขององค์ประกอบภายในนิพจน์และวิธีการใช้ร่วมกัน ตัวอย่างเช่น สูตรที่ระบุชื่อเหล่านี้ดึงข้อมูลที่เป็นประโยชน์เกี่ยวกับผู้ใช้ปัจจุบันจาก Dataverse:
UserEmail = User().Email;
UserInfo = LookUp( Users, 'Primary Email' = User().Email );
UserTitle = UserInfo.Title;
UserPhone = Switch( UserInfo.'Preferred Phone',
'Preferred Phone (Users)'.'Mobile Phone', UserInfo.'Mobile Phone',
UserInfo.'Main Phone' );
ถ้าสูตรสำหรับ UserTitle จำเป็นต้องปรับปรุงก็สามารถทำได้ง่ายๆ ในที่เดียวนี้ ถ้า UserPhone ไม่จำเป็นในแอป จะไม่มีการทำการเรียกไปยังตาราง ผู้ใช้ ใน Dataverse เหล่านี้ ไม่มีผลเสียสำหรับการรวมคำจำกัดความของสูตรที่ไม่ได้ใช้
ข้อจำกัดบางประการของสูตรที่ระบุชื่อ:
- สูตรที่ระบุชื่อไม่สามารถใช้ฟังก์ชันของลักษณะการทำงานหรือทำให้เกิดผลข้างเคียงภายในแอปได้
- สูตรที่ระบุชื่อสามารถสร้างการอ้างอิงแบบวงกลมได้ การมี a = b; และ b = a; ในแอปเดียวกันไม่ได้รับอนุญาต
คุณสมบัติ OnError
ใช้ OnError เพื่อดำเนินการหลังจากตรวจพบข้อผิดพลาด เป็นการให้โอกาสในการสกัดกั้นแบนเนอร์ข้อผิดพลาดทั้งหมดก่อนที่จะแสดงต่อผู้ใช้ปลายทาง นอกจากนี้ยังสามารถใช้เพื่อบันทึกข้อผิดพลาดด้วย ฟังก์ชัน Trace หรือเขียนไปยังฐานข้อมูลหรือบริการเว็บ
ผลลัพธ์ของการประเมินทุกสูตรจะถูกตรวจสอบหาข้อผิดพลาด หากเป็นความผิดพลาด OnError ก็จะถูกประเมินด้วยตัวแปรขอบเขต FirstError และ AllErrors ที่คล้ายกันซึ่งจะมีการแสดงถ้าสูตรทั้งหมดถูกตัดใน ฟังก์ชัน IfError
ถ้า OnError ว่างเปล่า แบนเนอร์ข้อผิดพลาดเริ่มต้นจะแสดงด้วย FirstError.Message ของข้อผิดพลาด การกำหนดสูตร OnError จะแทนที่ลักษณะการทำงานนี้ ซึ่งทำให้ผู้สร้างสามารถจัดการการรายงานข้อผิดพลาดตามที่เห็นสมควร สามารถขอลักษณะการทำงานเริ่มต้นได้ใน OnError โดยการส่งข้อผิดพลาดด้วย ฟังก์ชัน Error การดำเนินการนี้มีประโยชน์หากมีการกรองหรือจัดการข้อผิดพลาดบางอย่างในลักษณะที่ต่างออกไป ในขณะที่ข้อผิดพลาดอื่นๆ จะถูกส่ง
OnError ไม่สามารถแทนที่ข้อผิดพลาดในการคำนวณได้ในลักษณะเดียวกับ IfError ในตอนที่มีการเรียก OnError ข้อผิดพลาดได้เกิดขึ้นแล้ว และได้ดำเนินการผ่านการคำนวณตามสูตรแล้ว *OnError* ควบคุมเฉพาะการรายงานข้อผิดพลาดเท่านั้น
สูตร OnError จะได้รับการประเมินพร้อมๆ กัน และเป็นไปได้ที่การประเมินอาจทับซ้อนกับการประมวลผลข้อผิดพลาดอื่นๆ ตัวอย่างเช่น หากคุณตั้งค่าตัวแปรทั่วไปที่ด้านบนของ OnError และอ่านภายหลังในสูตรเดียวกัน ค่าอาจมีการเปลี่ยนแปลง ใช้ ฟังก์ชัน With เพื่อสร้างค่าที่ระบุชื่อซึ่งระบุตำแหน่งไปยังสูตร
แม้ว่าแต่ละข้อผิดพลาดจะได้รับการประมวลผลทีละรายการโดย OnError แต่แบนเนอร์ข้อผิดพลาดเริ่มต้นอาจไม่ปรากฏสำหรับข้อผิดพลาดแต่ละรายการ เพื่อหลีกเลี่ยงไม่ให้มีแบนเนอร์ข้อผิดพลาดมากเกินไปแสดงพร้อมกัน ข้อผิดพลาดเดียวกันจะไม่เรียกแบนเนอร์ข้อผิดพลาดใหม่หากเพิ่งมีการแสดงเมื่อเร็วๆ นี้
ตัวอย่างเช่น
พิจารณาตัวควบคุม ป้ายชื่อ และ แถบเลื่อน ที่ถูกผูกด้วยกันผ่านสูตร:
Label1.Text = 1/Slider1.Value
ค่าเริ่มต้นแถบเลื่อนเป็น 50 หากแถบเลื่อนถูกย้ายไปที่ 0 Label1 จะไม่แสดงค่าและแสดงแบนเนอร์ข้อผิดพลาด:
ลองดูสิ่งที่เกิดขึ้นโดยละเอียด:
- ผู้ใช้เลื่อนแถบเลื่อนไปทางซ้ายและคุณสมบัติ Slide1.Value เปลี่ยนเป็น 0
- Label1.Text ได้รับการประเมินใหม่โดยอัตโนมัติ เกิดการหารด้วยศูนย์ทำให้เกิดข้อผิดพลาด
- ไม่มี IfError ในสูตรนี้ ข้อผิดพลาดการหารด้วยศูนย์จะถูกส่งกลับโดยการประเมินสูตร
- Label1.Text ไม่สามารถแสดงสิ่งใด ๆ สำหรับข้อผิดพลาดนี้ ดังนั้นจึงแสดงสถานะ ว่างเปล่า
- OnError ถูกเรียกใช้ เนื่องจากไม่มีตัวจัดการ แบนเนอร์ข้อผิดพลาดมาตรฐานจึงแสดงพร้อมข้อมูลข้อผิดพลาด
หากจำเป็น เราก็สามารถปรับเปลี่ยนสูตรเป็น Label1.Text = IfError( 1/Slider1.Value, 0 )
ซึ่งจะส่งผลให้ไม่มีข้อผิดพลาดหรือแบนเนอร์ข้อผิดพลาด เราไม่สามารถเปลี่ยนค่าของข้อผิดพลาดจาก OnError เนื่องจากข้อผิดพลาดได้เกิดขึ้นแล้ว จึงเป็นเพียงการถามว่าจะรายงานอย่างไร
ถ้าเราเพิ่มตัวจัดการ OnError จะไม่มีผลกระทบก่อนขั้นตอนที่ 5 แต่อาจส่งผลต่อวิธีการรายงานข้อผิดพลาด:
Trace( $"Error {FirstError.Message} in {FirstError.Source}" )
ด้วยวิธีนี้ จากมุมมองของผู้ใช้แอป จะไม่มีข้อผิดพลาดใดๆ แต่ข้อผิดพลาดจะถูกเพิ่มในการติดตามของการตรวจสอบ พร้อมแหล่งที่มาของข้อมูลข้อผิดพลาดจาก FirstError:
หากเราต้องการให้แบนเนอร์ข้อผิดพลาดเริ่มต้นเดียวกันแสดงเพิ่มเติมจากการติดตาม เราสามารถเรียกใช้ข้อผิดพลาดอีกครั้งด้วยฟังก์ชัน Error หลังการเรียก Trace เรียกเช่นเดียวกับที่ทำหาก Trace ไม่อยู่ที่นั่น:
Trace( $"Error {FirstError.Message} in {FirstError.Source}" );
Error( FirstError )
คุณสมบัติ OnStart
หมายเหตุ
การใช้คุณสมบัติ OnStart อาจทำให้เกิดปัญหาด้านประสิทธิภาพเมื่อโหลดแอป เรากำลังดำเนินการสร้างทางเลือกสำหรับเหตุผลสองอันดับแรกสำหรับการใช้ property—แคชข้อมูลและการตั้งค่าตัวแปรส่วนกลาง เราได้สร้างทางเลือกอื่นสำหรับการกำหนดหน้าจอแรกที่จะแสดงด้วย Navigate คุณสมบัตินี้อาจถูกปิดใช้งานโดยค่าเริ่มต้นทั้งนี้ขึ้นอยู่กับบริบทของคุณ หากคุณไม่เห็นและต้องการใช้ ให้ตรวจสอบการตั้งค่าขั้นสูงของแอปเพื่อดูสวิตช์เพื่อเปิดใช้งาน คุณสมบัติ OnVisible ของหน้าจอสามารถใช้ได้
คุณสมบัติ OnStart จะทำงานเมื่อผู้ใช้เริ่มต้นแอป คุณสมบัตินี้มักใช้เพื่อทำงานต่อไปนี้:
สูตรนี้จะถูกประเมินก่อนที่หน้าจอแรกจะปรากฏขึ้น ไม่มีการโหลดหน้าจอ ดังนั้นคุณจึงไม่สามารถตั้งค่าตัวแปรบริบทด้วยฟังก์ชัน UpdateContext อย่างไรก็ตาม คุณสามารถส่งผ่านตัวแปรบริบทด้วยฟังก์ชัน Navigate
หลังจากที่คุณเปลี่ยนคุณสมบัติ OnStart ทดสอบโดยวางเมาส์เหนือออบเจ็กต์ แอป ในบานหน้าต่าง มุมมองทรี เลือกจุดไข่ปลา (...) แล้วเลือก เรียกใช้ OnStart ต่างจากเมื่อโหลดแอปเป็นครั้งแรก คอลเลกชันและตัวแปรที่มีอยู่จะถูกตั้งค่าไว้แล้ว ในการเริ่มต้นด้วยคอลเลกชันว่าง ให้ใช้ฟังก์ชัน ClearCollect แทนฟังก์ชัน Collect
หมายเหตุ
- การใช้ฟังก์ชัน Navigate ในคุณสมบัติ OnStart เลิกใช้แล้ว แอปที่มีอยู่จะยังคงทำงานต่อไป ในช่วงเวลาจำกัด คุณยังสามารถเปิดใช้งานได้ในการตั้งค่าแอปได้ (พร้อมใช้งานภายใต้ เลิกใช้แล้ว) อย่างไรก็ตาม การใช้ นำทาง ในลักษณะนี้อาจนำไปสู่ความล่าช้าในการโหลดแอป เนื่องจากเป็นการบังคับให้ระบบทำการประเมิน OnStart ก่อนแสดงหน้าจอแรก ใช้คุณสมบัติ StartScreen แทนการคำนวณหน้าจอแรกที่แสดง
- สวิตช์ที่เลิกใช้ จะถูกปิดสำหรับแอปที่สร้างก่อนเดือนมีนาคม 2021 ที่คุณเพิ่ม นำทาง ไปที่ OnStart ระหว่างเดือนมีนาคม 2021 ถึงตอนนี้ เมื่อคุณแก้ไขแอปดังกล่าวใน Power Apps Studio คุณอาจเห็นข้อผิดพลาด สลับสวิตช์ เลิกใช้งาน ที่กล่าวถึงข้างต้นเพื่อล้างข้อผิดพลาดนี้
คุณสมบัติ StartScreen
หมายเหตุ
คุณสมบัติ StartScreen จะไม่ปรากฏในรายการคุณสมบัติเมื่อเปิดใช้งานตัวเลือกที่ถูกเลิกใช้ แถบสูตรที่ได้รับการปรับปรุง เพื่อปิด แถบสูตรที่ปรับปรุงแล้ว ไปที่ การตั้งค่า>คุณลักษณะที่กำลังจะเกิดขึ้น>เลิกใช้แล้ว> ปิดตัวสลับ แถบสูตรที่ปรับปรุงแล้ว เมื่อคุณต้องการใช้คุณสมบัติ StartScreen
คุณสมบัติ StartScreen กำหนดว่าจะแสดงหน้าจอใดก่อน ซึ่งจะมีการประเมินหนึ่งครั้งเมื่อโหลดแอปและส่งคืนออบเจ็กต์หน้าจอที่จะแสดง โดยค่าเริ่มต้น คุณสมบัตินี้จะว่างเปล่า และหน้าจอแรกในมุมมองทรีของสตูดิโอจะแสดงก่อน
StartScreen เป็นคุณสมบัติการไหลของข้อมูลที่ไม่สามารถมีฟังก์ชันพฤติกรรมได้ ฟังก์ชันกระแสข้อมูลทั้งหมดพร้อมใช้งาน ใช้ฟังก์ชันและสัญญาณเหล่านี้โดยเฉพาะเพื่อกำหนดว่าจะแสดงหน้าจอใดก่อน:
- ฟังก์ชัน Param สำหรับอ่านพารามิเตอร์ที่ใช้ในการเริ่มต้นแอปพลิเคชัน
- ฟังก์ชันผู้ใช้ สำหรับอ่านข้อมูลเกี่ยวกับผู้ใช้งานปัจจุบัน
- LookUp, Filter, CountRows, Max และฟังก์ชันอื่นๆ ที่อ่านจาก แหล่งข้อมูล
- API ใดๆ ที่เรียกใช้ผ่านตัวเชื่อมต่อ แต่ระวังว่าจะส่งกลับคืนอย่างรวดเร็ว
- สัญญาณ เช่น การเชื่อมต่อ เข็มทิศ และ แอป
หมายเหตุ
ตัวแปรและคอลเลกชันส่วนกลาง รวมถึงตัวแปรที่สร้างขึ้นใน OnStart ไม่พร้อมใช้งานใน StartScreen มีทางเลือกอื่นที่ประกาศสำหรับการทำเช่นนี้ที่กำลังดำเนินการอยู่ สำหรับข้อคิดเห็นของคุณเกี่ยวกับข้อจำกัดนี้ ไปที่ ฟอรัมชุมชน Power Apps
ถ้า StartScreen ส่งคืนข้อผิดพลาด หน้าจอแรกในมุมมองทรีของสตูดิโอจะแสดงเหมือนว่า StartScreen ไม่ได้รับการตั้งค่า ใช้ฟังก์ชัน IfError ตรวจจับข้อผิดพลาดและเปลี่ยนเส้นทางไปยังหน้าจอข้อผิดพลาดที่เหมาะสม
หลังจากที่เปลี่ยน StartScreen ในสตูดิโอ ทดสอบโดยวางเมาส์เหนือออบเจ็กต์ แอป ในบานหน้าต่าง มุมมองทรี เลือกจุดไข่ปลา (...) แล้วเลือก นำทางไปยัง StartScreen หน้าจอจะเปลี่ยนเหมือนว่าโหลดแอปแล้ว
ตัวอย่าง
Screen9
แสดงว่า Screen9
ควรแสดงก่อนทุกครั้งที่แอปเริ่มทำงาน
If( Param( "admin-mode" ) = 1, HomeScreen, AdminScreen )
ตรวจสอบว่าผู้ใช้ตั้งค่าพารามิเตอร์ "โหมดผู้ดูแลระบบ" ไว้หรือไม่ และใช้เพื่อตัดสินใจว่าควรแสดง HomeScreen หรือ AdminScreen ก่อนหรือไม่
If( LookUp( Attendees, User = User().Email ).Staff, StaffPortal, HomeScreen )
ตรวจสอบว่าผู้เข้าร่วมประชุมเป็นพนักงานหรือไม่ และนำพวกเขาไปยังหน้าจอที่เหมาะสมเมื่อเริ่มต้นระบบ
IfError( If( CustomConnector.APICall() = "Forest",
ForestScreen,
OceanScreen
),
ErrorScreen
)
นำแอปตามการเรียกใช้ API ไปที่ ForestScreen
หรือ OceanScreen
หาก API ล้มเหลวด้วยเหตุผลใดก็ตาม ErrorScreen
จะนำมาใช้แทน
คุณสมบัติ StudioVersion
ใช้คุณสมบัติ StudioVersion เพื่อแสดงหรือบันทึกเวอร์ชันของ Power Apps Studio ที่ใช้ในการเผยแพร่แอป สิ่งนี้มีประโยชน์เมื่อแก้ไขข้อบกพร่องและเพื่อให้แน่ใจว่าแอปของคุณได้รับการเผยแพร่ซ้ำด้วย Power Apps Studio เวอร์ชันล่าสุด
StudioVersion จะถูกส่งคืนเป็นข้อความ รูปแบบของข้อความอาจมีการเปลี่ยนแปลงเมื่อเวลาผ่านไป และควรถือเป็นภาพรวม เพื่อหลีกเลี่ยงการแยกแต่ละส่วน