ฟังก์ชัน EditForm, NewForm, SubmitForm, ResetForm และ ViewForm

ใช้กับ: แอปพื้นที่ทำงาน

ดู แก้ไข หรือสร้างรายการ บันทึกเนื้อหา และรีเซ็ตตัวควบคุมในตัวควบคุม แก้ไขฟอร์ม

ภาพรวม

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

โหมด คำอธิบาย
FormMode.Edit ฟอร์มจะมีข้อมูลจากเรกคอร์ดที่มีอยู่ และผู้ใช้สามารถปรับเปลี่ยนค่าของฟิลด์ได้ เมื่อเสร็จสมบูรณ์ ผู้ใช้สามารถบันทึกการเปลี่ยนแปลงไปยังเรกคอร์ดได้
FormMode.New ฟอร์มจะมีข้อมูลจากค่าเริ่มต้นและผู้ใช้สามารถปรับเปลี่ยนค่าของฟิลด์ได้ เมื่อเสร็จสมบูรณ์ ผู้ใช้สามารถเพิ่มเรกคอร์ดไปยังแหล่งข้อมูลได้
FormMode.View ฟอร์มจะมีข้อมูลจากเรกคอร์ดที่มีอยู่ แต่ผู้ใช้ไม่สามารถปรับเปลี่ยนค่าของฟิลด์ได้

คำอธิบาย

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

ไวยากรณ์

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 เป็นสูตรนี้:

    Back()

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

    EditForm.Error

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

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

    ResetForm( EditForm ); Back()

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

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

    NewForm( EditForm ); Navigate( EditScreen, None )

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