แชร์ผ่าน


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.แก้ไข การ์ดข้อมูลและตัวควบคุมสามารถแก้ไขได้ พร้อมที่จะยอมรับเรกคอร์ดใหม่
ฟอร์มโหมด.ดู โหมดการแสดงผล การ์ดข้อมูลและตัวควบคุมไม่สามารถแก้ไขได้ และถูกปรับให้เหมาะสมสำหรับการดู

ไวยากรณ์

SubmitForm( FormName )

  • FormName - จำเป็น ตัวควบคุม ฟอร์ม ที่จะส่งไปยังแหล่งข้อมูล

EditForm( FormName )

  • FormName - จำเป็น ตัวควบคุม ฟอร์ม ที่จะสลับเป็นโหมด FormMode.Edit

NewForm( FormName )

  • FormName - จำเป็น ตัวควบคุม ฟอร์ม ที่จะสลับเป็นโหมด FormMode.New

ResetForm( FormName )

  • FormName - จำเป็น ตัวควบคุม ฟอร์ม ที่จะรีเซ็ตเป็นค่าเริ่มต้น นอกจากนี้ ยังสลับฟอร์มจากโหมด FormMode.New เป็นโหมด FormMode.Edit

ViewForm( FormName )

  • FormName - จำเป็น ตัวควบคุม ฟอร์ม ที่จะสลับเป็นโหมด FormMode.View

ตัวอย่าง

ดู ทำความเข้าใจฟอร์มข้อมูล สำหรับตัวอย่างที่สมบูรณ์

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

    SubmitForm( EditForm )

  2. ตั้งค่าคุณสมบัติ OnFailure ของตัวควบคุม ฟอร์ม ให้ว่างเปล่า และคุณสมบัติ OnSuccess เป็นสูตรนี้:

    กลับ()

  3. ตั้งชื่อตัวควบคุม ป้ายชื่อErrorText แล้วตั้งค่าคุณสมบัติ Text เป็นสูตรนี้:

    EditForm. ความผิดพลาด

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

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

    ResetForm( EditForm ); Back()

    เมื่อผู้ใช้เลือกปุ่ม ยกเลิก ค่าในตัวควบคุม ฟอร์ม จะรีเซ็ตเป็นข้อมูลก่อนที่ผู้ใช้จะเริ่มแก้ไข หน้าจอก่อนหน้าจะปรากฏขึ้นอีกครั้ง และตัวควบคุม ฟอร์ม จะย้อนกลับเป็นโหมด แก้ไข ถ้าอยู่ในโหมด ใหม่

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

    NewForm( EditForm ); Navigate( EditScreen, None )

    เมื่อผู้ใช้เลือกปุ่ม ใหม่ ตัวควบคุม ฟอร์ม จะสลับเป็นโหมด ใหม่ ค่าเริ่มต้นสำหรับแหล่งข้อมูลของตัวควบคุม ฟอร์ม จะกรอกข้อมูลลงในตัวควบคุมนั้น และหน้าจอที่มีตัวควบคุมฟอร์มจะปรากฏขึ้น เมื่อ SubmitForm ฟังก์ชันทํางาน ระเบียนจะถูกสร้างขึ้นแทนที่จะถูกอัปเดต