ฟังก์ชัน EditForm, NewForm, SubmitForm, ResetForm และ ViewForm
ใช้กับ: แอป Canvas
ดู แก้ไข หรือสร้างรายการ บันทึกเนื้อหา และรีเซ็ตตัวควบคุมในตัวควบคุม แก้ไขฟอร์ม
ภาพรวม
ฟังก์ชันเหล่านี้จะเปลี่ยนแปลงสถานะของตัวควบคุม แก้ไขฟอร์ม ตัวควบคุมฟอร์มสามารถอยู่ในหนึ่งในโหมดเหล่านี้:
โหมด | คำอธิบาย |
---|---|
FormMode.แก้ไข | ฟอร์มจะมีข้อมูลจากเรกคอร์ดที่มีอยู่ และผู้ใช้สามารถปรับเปลี่ยนค่าของฟิลด์ได้ เมื่อเสร็จสมบูรณ์ ผู้ใช้สามารถบันทึกการเปลี่ยนแปลงไปยังเรกคอร์ดได้ |
FormMode.ใหม่ | ฟอร์มจะมีข้อมูลจากค่าเริ่มต้นและผู้ใช้สามารถปรับเปลี่ยนค่าของฟิลด์ได้ เมื่อเสร็จสมบูรณ์ ผู้ใช้สามารถเพิ่มเรกคอร์ดไปยังแหล่งข้อมูลได้ |
ฟอร์มโหมด.ดู | ฟอร์มจะมีข้อมูลจากเรกคอร์ดที่มีอยู่ แต่ผู้ใช้ไม่สามารถปรับเปลี่ยนค่าของฟิลด์ได้ |
คำอธิบาย
ฟังก์ชันเหล่านี้มักจะถูกเรียกใช้จากสูตร OnSelect ของตัวควบคุม ปุ่ม หรือ รูปภาพ เพื่อให้ผู้ใช้สามารถบันทึก แก้ไข ละทิ้งการแก้ไข หรือสร้างเรกคอร์ดได้ คุณสามารถ ใช้ตัวควบคุมและฟังก์ชันเหล่านี้ร่วมกัน เพื่อสร้างโซลูชันที่สมบูรณ์แบบได้
ฟังก์ชันเหล่านี้จะไม่ส่งกลับค่าใดๆ
คุณสามารถใช้ฟังก์ชันเหล่านี้ ใน สูตรลักษณะการทำงาน เท่านั้น
SubmitForm
ใช้ฟังก์ชัน SubmitForm ในคุณสมบัติ OnSelect ของตัวควบคุม ปุ่ม เพื่อบันทึกการเปลี่ยนแปลงต่างๆ ในตัวควบคุม ฟอร์ม ไปยังแหล่งข้อมูล
ก่อนที่จะส่งการเปลี่ยนแปลง ฟังก์ชันนี้จะตรวจหาปัญหาการตรวจสอบกับฟิลด์ที่ถูกทำเครื่องหมายว่าจำเป็นหรือมีค่าคงที่อย่างน้อยหนึ่งค่า ลักษณะการทำงานนี้จะตรงกับฟังก์ชัน Validate
SubmitForm จะตรวจสอบคุณสมบัติ Valid ของฟอร์มด้วย ซึ่งเป็นการรวมคุณสมบัติ Valid ทั้งหมดของตัวควบคุม การ์ด ที่ตัวควบคุมฟอร์มมีอยู่ ถ้าเกิดปัญหาขึ้น ข้อมูลจะไม่ถูกส่ง และคุณสมบัติ Error และ ErrorKind ของตัวควบคุม ฟอร์ม จะถูกตั้งค่าให้สอดคล้องกัน
ถ้าการตรวจสอบผ่าน SubmitForm จะส่งการเปลี่ยนแปลงไปยังแหล่งข้อมูล
- ถ้าสำเร็จ ลักษณะการทำงาน OnSuccess ของฟอร์มจะทำงาน และคุณสมบัติ Error และ ErrorKind จะถูกล้างออก ถ้าฟอร์มอยู่ในโหมด FormMode.New จะเปลี่ยนกลับเป็นโหมด FormMode.Edit
- ถ้าไม่สำเร็จ ลักษณะการทำงาน OnFailure ของฟอร์มจะทำงาน และคุณสมบัติ Error และ ErrorKind จะถูกตั้งค่าให้สอดคล้องกัน โหมดของฟอร์มจะไม่เปลี่ยนแปลง
EditForm
ฟังก์ชัน EditForm จะเปลี่ยนโหมดของตัวควบคุม ฟอร์ม เป็น FormMode.Edit ในโหมดนี้ จะใช้เนื้อหาของคุณสมบัติ Item ของตัวควบคุม ฟอร์ม เพื่อกรอกข้อมูลลงในฟอร์ม ถ้าฟังก์ชัน SubmitForm ทำงาน เมื่อฟอร์มอยู่ในโหมดนี้ เรกคอร์ดจะถูกเปลี่ยนแปลง ไม่ได้ถูกสร้างขึ้น FormMode.Edit เป็นค่าเริ่มต้นสำหรับการควบคุมฟอร์ม
หมายเหตุ
เมื่อฟอร์มอยู่ในโหมดแก้ไข และรายการเป็น null คุณสมบัติของการ์ดข้อมูลจะไม่ถูกประเมินและจะส่งกลับค่าเริ่มต้น
NewForm
ฟังก์ชัน NewForm จะเปลี่ยนโหมดของตัวควบคุม ฟอร์ม เป็น FormMode.New ในโหมดนี้ เนื้อหาของคุณสมบัติ Item ของตัวควบคุม ฟอร์ม จะถูกละเว้น และค่าเริ่มต้นของคุณสมบัติ DataSource ของฟอร์มจะถูกกรอกลงในฟอร์ม ถ้าฟังก์ชัน SubmitForm ทำงาน เมื่อฟอร์มอยู่ในโหมดนี้ เรกคอร์ดจะถูกสร้าง ไม่ได้ถูกเปลี่ยนแปลง
ResetForm
ฟังก์ชัน ResetForm จะรีเซ็ตเนื้อหาของฟอร์มเป็นค่าเริ่มต้น ก่อนที่ผู้ใช้จะทำการเปลี่ยนแปลง ถ้าฟอร์มอยู่ในโหมด FormMode.New ฟอร์มจะรีเซ็ตเป็นโหมด FormMode.Edit ลักษณะการทำงาน OnReset ของตัวควบคุมฟอร์มจะทำงานเช่นกัน คุณยังสามารถรีเซ็ตตัวควบคุมแต่ละตัวได้ด้วยฟังก์ชัน Reset แต่สามารถทำได้จากภายในฟอร์มเท่านั้น
ViewForm
ฟังก์ชัน ViewForm จะเปลี่ยนโหมดของตัวควบคุม ฟอร์ม เป็น FormMode.View ในโหมดนี้ จะใช้เนื้อหาของคุณสมบัติ Item ของตัวควบคุม ฟอร์ม เพื่อกรอกข้อมูลลงในฟอร์ม ฟังก์ชัน SubmitForm และ ResetForm จะไม่มีผลเมื่ออยู่ในโหมดนี้
คุณสมบัติ DisplayMode
สามารถอ่านโหมดปัจจุบันได้จากคุณสมบัติ Mode โหมดยังเป็นตัวกำหนดค่าของคุณสมบัติ DisplayMode ที่การ์ดข้อมูลและตัวควบคุมสามารถใช้ได้ภายในตัวควบคุมฟอร์ม บ่อยครั้งที่คุณสมบัติ DisplayMode ของการ์ดข้อมูลถูกตั้งค่าเป็น Parent.DisplayMode (การอ้างอิงฟอร์ม) เช่นเดียวกับคุณสมบัติ DisplayMode ของตัวควบคุม (การอ้างอิงการ์ดข้อมูล):
โหมด | DisplayMode | คำอธิบาย |
---|---|---|
FormMode.แก้ไข | DisplayMode.แก้ไข | การ์ดข้อมูลและตัวควบคุมสามารถแก้ไขได้ พร้อมที่จะยอมรับการเปลี่ยนแปลงไปยังเรกคอร์ด |
FormMode.ใหม่ | DisplayMode.แก้ไข | การ์ดข้อมูลและตัวควบคุมสามารถแก้ไขได้ พร้อมที่จะยอมรับเรกคอร์ดใหม่ |
ฟอร์มโหมด.ดู | โหมดการแสดงผล | การ์ดข้อมูลและตัวควบคุมไม่สามารถแก้ไขได้ และถูกปรับให้เหมาะสมสำหรับการดู |
ไวยากรณ์
ส่งแบบฟอร์ม( ชื่อแบบฟอร์ม )
- FormName - จำเป็น ตัวควบคุม ฟอร์ม ที่จะส่งไปยังแหล่งข้อมูล
แก้ไขแบบฟอร์ม( ชื่อแบบฟอร์ม )
- FormName - จำเป็น ตัวควบคุม ฟอร์ม ที่จะสลับเป็นโหมด FormMode.Edit
แบบฟอร์มใหม่( ชื่อแบบฟอร์ม )
- FormName - จำเป็น ตัวควบคุม ฟอร์ม ที่จะสลับเป็นโหมด FormMode.New
รีเซ็ตฟอร์ม( ชื่อฟอร์ม )
- FormName - จำเป็น ตัวควบคุม ฟอร์ม ที่จะรีเซ็ตเป็นค่าเริ่มต้น นอกจากนี้ ยังสลับฟอร์มจากโหมด FormMode.New เป็นโหมด FormMode.Edit
มุมมองฟอร์ม( ชื่อฟอร์ม )
- FormName - จำเป็น ตัวควบคุม ฟอร์ม ที่จะสลับเป็นโหมด FormMode.View
ตัวอย่าง
ดู ทำความเข้าใจฟอร์มข้อมูล สำหรับตัวอย่างที่สมบูรณ์
เพิ่มตัวควบคุม ปุ่ม ตั้งค่าคุณสมบัติ Text ของปุ่ม ให้แสดง บันทึก และตั้งค่าคุณสมบัติ OnSelect ของปุ่ม เป็นสูตรนี้:
SubmitForm(แก้ไขฟอร์ม)
ตั้งค่าคุณสมบัติ OnFailure ของตัวควบคุม ฟอร์ม ให้ว่างเปล่า และคุณสมบัติ OnSuccess เป็นสูตรนี้:
กลับ()
ตั้งชื่อตัวควบคุม ป้ายชื่อ ErrorText แล้วตั้งค่าคุณสมบัติ Text เป็นสูตรนี้:
แก้ไขแบบฟอร์มผิดพลาด
เมื่อผู้ใช้เลือกปุ่ม บันทึก จะส่งการเปลี่ยนแปลงต่างๆ ในตัวควบคุม ฟอร์ม ไปยังแหล่งข้อมูลที่เกี่ยวข้อง
- ถ้าการส่งสำเร็จ การเปลี่ยนแปลงจะถูกบันทึกหรือ ถ้าตัวควบคุม ฟอร์ม อยู่ในโหมด ใหม่ เรกคอร์ดจะถูกสร้างขึ้น ErrorText ว่างเปล่า และหน้าจอเดิมก็ปรากฏขึ้นอีกครั้ง
- ถ้าการส่งล้มเหลว ErrorText แสดงข้อความแสดงข้อผิดพลาด และจะยังคงมองเห็นหน้าจอปัจจุบัน เพื่อให้ผู้ใช้สามารถแก้ไขปัญหาและลองอีกครั้ง
เพิ่มตัวควบคุม ปุ่ม และ ตั้งค่าคุณสมบัติ Text ของปุ่ม ให้แสดง ยกเลิก และตั้งค่าคุณสมบัติ OnSelect เป็นสูตรนี้:
ResetForm( แก้ไขฟอร์ม ); ย้อนกลับ()
เมื่อผู้ใช้เลือกปุ่ม ยกเลิก ค่าในตัวควบคุม ฟอร์ม จะรีเซ็ตเป็นข้อมูลก่อนที่ผู้ใช้จะเริ่มแก้ไข หน้าจอก่อนหน้าจะปรากฏขึ้นอีกครั้ง และตัวควบคุม ฟอร์ม จะย้อนกลับเป็นโหมด แก้ไข ถ้าอยู่ในโหมด ใหม่
เพิ่มตัวควบคุม ปุ่ม ตั้งค่าคุณสมบัติ Text ของปุ่ม ให้แสดง ใหม่ และตั้งค่าคุณสมบัติ OnSelect เป็นสูตรนี้:
NewForm(แก้ไขฟอร์ม); Navigate(แก้ไขหน้าจอ, ไม่มี)
เมื่อผู้ใช้เลือกปุ่ม ใหม่ ตัวควบคุม ฟอร์ม จะสลับเป็นโหมด ใหม่ ค่าเริ่มต้นสำหรับแหล่งข้อมูลของตัวควบคุม ฟอร์ม จะกรอกข้อมูลลงในตัวควบคุมนั้น และหน้าจอที่มีตัวควบคุมฟอร์มจะปรากฏขึ้น เมื่อฟังก์ชัน SubmitForm ทำงาน เรกคอร์ดจะถูกสร้างขึ้นแทนที่จะถูกอัปเดต