ปรับแต่งเทมเพลฟอร์ม โดยใช้สคริปต์

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

ถ้าคุณคุ้นเคยกับการเขียนสคริปต์ คุณสามารถเพิ่มสคริปต์ลงเทมเพลตฟอร์ม Microsoft Office InfoPath ของคุณ โดยใช้ Microsoft JScript หรือภาษาการเขียนสคริปต์ Microsoft Visual Basic Scripting Edition (VBScript) เพิ่มสคริปต์ช่วยให้คุณสามารถปรับแต่งเทมเพลตของคุณฟอร์มเกินกว่าที่มีอยู่กับกฎ สูตร ตรวจสอบข้อมูล หรือจัดรูปแบบตามเงื่อนไข ตัวอย่างเช่น คุณสามารถเพิ่มสคริปต์ที่สร้าง และส่งข้อความอีเมลเมื่อผู้ใช้สลับมุมมองในฟอร์มโดยยึดตามเทมเพลฟอร์มของคุณ คุณสามารถกำหนดค่าเทมเพลตฟอร์มเพื่อสร้าง และส่งข้อความอีเมลเท่านั้น โดยใช้สคริปต์

ในบทความนี้

ภาพรวม

ข้อควรพิจารณาเกี่ยวกับความเข้ากันได้

ตั้งค่าภาษาการเขียนสคริปต์สำหรับเทมเพลตฟอร์ม

แสดงข้อความแต่ละครั้งที่เกิดเหตุการณ์

เพิ่มสคริปต์ที่ทำงานเมื่อผู้ใช้จะบันทึกข้อมูลฟอร์ม

เพิ่มสคริปต์ที่ทำงานเมื่อผู้ใช้ส่งฟอร์มข้อมูล

สคริปต์ที่ทำงานเมื่อผู้ใช้คลิกปุ่มเพิ่ม

เพิ่มสคริปต์ที่ทำงานเมื่อมีผสานฟอร์มที่มีอยู่

เพิ่มสคริปต์การอัปเดฟอร์มที่มีอยู่

เพิ่มสคริปต์สำหรับเหตุการณ์อื่น ๆ

ภาพรวม

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

เมื่อคุณเพิ่มสคริปต์ เทมเพลตฟอร์ม InfoPath เริ่มต้น Microsoft Script Editor (MSE), ซึ่งช่วยให้คุณสามารถเพิ่ม แก้ไข และดีบักสคริปต์ในเทมเพลตฟอร์ม และวางเคอร์เซอร์ในเหตุการณ์ที่เลือกของคุณ InfoPath เพิ่มตัวจัดการเหตุการณ์โดยอัตโนมัติเพื่อสคริปต์ ตัวจัดการเหตุการณ์เป็นรหัสฟังก์ชันในแม่แบบฟอร์ม InfoPath ที่ตอบสนองต่อผู้ใช้หรือการเปลี่ยนแปลงข้อมูลแบบ XML ในฟอร์ม ตัวอย่างเช่น ถ้าคุณต้องการให้ผู้ใช้ของคุณเพื่อบันทึกฟอร์มของพวกเขาลงในตำแหน่งที่ตั้งบนเครือข่ายหลาย คุณสามารถเพิ่มสคริปต์ลงในตัวจัดการเหตุการณ์OnSaveRequest เมื่อคุณเพิ่มสคริปต์เพื่อทำงานเมื่อผู้ใช้ที่จะบันทึกฟอร์มโดยยึดตามเทมเพลตของคุณฟอร์ม InfoPath เริ่มต้นตัวแก้ไขสคริปต์ และเพิ่มหนึ่งโค้ดต่อไปนี้เพื่อสคริปต์

หมายเหตุ: โค้ดที่เพิ่ม InfoPath ขึ้นอยู่กับภาษาคุณเลือกสคริปต์

JScript

//=======
// The following function handler is created by Microsoft Office InfoPath.
// Do not modify the name of the function, or the name and number of arguments.
//=======
function XDocument::OnSaveRequest(eventObj)
{
// Write the code to be run before saving here.
eventObj.IsCancelled = eventObj.PerformSaveOperation();
// Write the code to be run after saving here.
eventObj.ReturnStatus = true;
}

VBScript

'=======
' The following function handler is created by Microsoft Office InfoPath.
' Do not modify the name of the function, or the name and number of arguments.
'=======
Sub XDocument_OnSaveRequest(eventObj)
' Write the code to be run before saving here.
eventObj.IsCancelled = eventObj.PerformSaveOperation
' Write the code to be run after saving here.
eventObj.ReturnStatus = True
End Sub

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

หมายเหตุ: บทความนี้ให้มุมมองระดับสูงของการสร้างสคริปต์ในเทมเพลตฟอร์ม เมื่อต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ Microsoft สคริปต์ Editor และวัตถุที่เฉพาะเจาะจง methods เหตุการณ์ และคุณสมบัติที่ใช้ใน InfoPath ดูอ้างอิงสำหรับนักพัฒนา InfoPath

InfoPath เพิ่มตัวจัดการเหตุการณ์สำหรับทั้งหมดแต่อย่างใดอย่างหนึ่งของเหตุการณ์ต่อไปนี้โดยอัตโนมัติ

ตัวจัดการเหตุการณ์

คำอธิบาย

ขั้นตอนสำหรับการสร้าง

OnAfterChange

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

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

OnAfterImport

เหตุการณ์นี้ทำงานหลังจากที่ผู้ใช้หลายฟอร์มผสานเสร็จเรียบร้อยแล้วลงในฟอร์มหนึ่ง

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

OnBeforeChange

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

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

เมื่อคลิก

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

ดับเบิลคลิกที่ตัวควบคุมปุ่ม และบนแท็บทั่วไป ของกล่องโต้ตอบคุณสมบัติของปุ่ม คลิกแก้ไขโค้ดฟอร์ม

OnContextChange

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

บนเมนูเครื่องมือ ชี้ไปที่การเขียนโปรแกรม แล้ว คลิ กบนบริบทเปลี่ยนแปลงเหตุการณ์

เมื่อมีการโหลด

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

บนเมนูเครื่องมือ ชี้ไปที่การเขียนโปรแกรม แล้ว คลิ กเหตุการณ์บนโหลด

OnMergeRequest

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

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

OnSaveRequest

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

บนเมนูเครื่องมือ คลิกตัวเลือกฟอร์ม ในรายการประเภท คลิกเปิด และบันทึก ไว้ ภายใต้ลักษณะบันทึก และเลือกกล่องกาเครื่องหมายบันทึกโดยใช้โค้ดแบบกำหนดเอง แล้ว คลิ กแก้ไข

OnSign

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

บนเมนูเครื่องมือ ชี้ไปที่การเขียนโปรแกรม แล้ว คลิ กเหตุการณ์บนเครื่องหมาย

OnSubmitRequest

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

บนเมนูเครื่องมือ คลิกตัวเลือกส่ง เลือกกล่องกาเครื่องหมายอนุญาตให้ผู้ใช้ส่งฟอร์มนี้ คลิกแอคชันแบบกำหนดเองโดยใช้รหัส แล้ว คลิ กแก้ไขโค้ด

OnSwitchView

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

บนเมนูเครื่องมือ คลิกProgramming แล้ว คลิ กบนสลับมุมมองเหตุการณ์

OnValidate

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

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

OnVersionUpgrade

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

บนเมนูเครื่องมือ คลิกตัวเลือกฟอร์ม ในรายการประเภท คลิกการกำหนดเวอร์ชัน ในรายการบนเวอร์ชันอัปเกรด คลิกใช้เหตุการณ์แบบกำหนดเอง นั้นแล้ว คลิกแก้ไข

ด้านบนของหน้า

ข้อควรพิจารณาเกี่ยวกับความเข้ากันได้

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

ด้านบนของหน้า

การตั้งค่าภาษาสคริปต์สำหรับแม่แบบฟอร์ม

เมื่อต้องการปรับแต่งเทมเพลฟอร์ม โดยใช้สคริปต์ คุณสามารถใช้ Microsoft Visual Basic Scripting Edition (VBScript) หรือ Microsoft JScript ตามค่าเริ่มต้น InfoPath จะถูกกำหนดค่าให้เพิ่มสคริปต์ โดยใช้ JScript ถ้าไม่ประกอบด้วยเทมเพลตของคุณฟอร์มใด ๆ สคริปต์หรือโค้ดที่มีการจัดการ และคุณต้องการใช้ VBScript เป็นภาษาการเขียนสคริปต์ของคุณ คุณสามารถเปลี่ยนภาษาการเขียนสคริปต์สำหรับเทมเพลตของคุณฟอร์มเพื่อ VBScript คุณไม่สามารถใช้ภาษาการเขียนสคริปต์ทั้งสองในเทมเพลตฟอร์เดียวกัน

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

  1. บนเมนูเครื่องมือ คลิกตัวเลือกฟอร์ม

  2. ในรายการประเภท ในกล่องโต้ตอบตัวเลือกฟอร์ม คลิกการเขียนโปรแกรม

  3. ในรายการภาษารหัสเทมเพลฟอร์ม ภายใต้ภาษาการเขียนโปรแกรม คลิกVBScript

    หมายเหตุ: 

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

    • ถ้าคุณได้ติดตั้ง Microsoft Visual Studio 2005 เครื่องมือสำหรับแอปพลิเคชัน ภาษาเริ่มต้นคือ Microsoft Visual Basic .NET คุณยังสามารถใช้กระบวนงานนี้เมื่อต้องการเปลี่ยนภาษาการเขียนสคริปต์ VBScript

ด้านบนของหน้า

แสดงข้อความแต่ละครั้งที่เกิดเหตุการณ์

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

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

  1. เพิ่มตัวจัดการเหตุการณ์ของคุณ

  2. เมื่อต้องการเพิ่มรหัสของ JScript พิมพ์XDocument.UI.Alert ("ตัวเหตุการณ์พบชื่อเหตุการณ์เพียง"); แทนที่ ด้วยชื่อของตัวจัดการเหตุการณ์ของคุณ ตัวอย่าง ถ้าคุณเพิ่มโค้ดนี้ลงในตัวจัดการเหตุการณ์OnValidateพิมพ์XDocument.UI.Alert ("ตัว OnValidate พบตัวจัดการเหตุการณ์เพียง");

  3. เมื่อต้องการเพิ่มรหัสใน VBScript พิมพ์ตัวอย่างเช่นXDocument.UI.Alert ("ตัวเหตุการณ์พบชื่อเหตุการณ์เพียง")ถ้าคุณเพิ่มโค้ดนี้ลงในตัวจัดการเหตุการณ์OnSaveRequestคุณจะพิมพ์XDocument.UI.Alert ("ตัว OnSaveRequest พบตัวจัดการเหตุการณ์เพียง")

  4. เมื่อต้องการทดสอบรหัส คลิกแสดงตัวอย่าง บนเมนูไฟล์ หรือกด CTRL + SHIFT + B และดำเนินการกระทำของผู้ใช้ที่สามารถเริ่มเหตุการณ์แล้ว เมื่อเกิดเหตุการณ์ที่ มีบรรทัดของโค้ด กล่องข้อความควรแสดงข้อความของคุณ

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

  5. ก่อนที่คุณประกาศเทมเพลตฟอร์ม และทำให้ผู้ใช้ของคุณเมื่อต้องการกรอกฟอร์มโดยยึดตามเทมเพลตนี้ฟอร์ม ลบรหัสที่คุณใช้เพื่อแสดงกล่องข้อความ

ด้านบนของหน้า

เพิ่มสคริปต์ที่ทำงานเมื่อผู้ใช้จะบันทึกข้อมูลฟอร์ม

  1. บนเมนูเครื่องมือ คลิกตัวเลือกฟอร์ม

  2. ในรายการประเภท ในกล่องโต้ตอบตัวเลือกฟอร์ม คลิกเปิด และบันทึก ไว้

  3. ภายใต้ลักษณะบันทึก และเลือกกล่องกาเครื่องหมายบันทึกโดยใช้โค้ดแบบกำหนดเอง แล้ว คลิ กแก้ไข Microsoft Script Editor เริ่มต้น ด้วยเคอร์เซอร์อยู่ที่ตัวจัดการเหตุการณ์OnSaveRequest

    JScript

    //=======
    // The following function handler is created by Microsoft Office InfoPath.
    // Do not modify the name of the function, or the name and number of arguments.
    //=======
    function XDocument::OnSaveRequest(eventObj)
    {
    // Write the code to be run before saving here.
    eventObj.IsCancelled = eventObj.PerformSaveOperation();
    // Write the code to be run after saving here.
    eventObj.ReturnStatus = true;
    }

    VBScript

    '=======
    ' The following function handler is created by Microsoft Office InfoPath.
    ' Do not modify the name of the function, or the name and number of arguments.
    '=======
    Sub XDocument_OnSaveRequest(eventObj)
    ' Write the code to be run before saving here.
    eventObj.IsCancelled = eventObj.PerformSaveOperation
    ' Write the code to be run after saving here.
    eventObj.ReturnStatus = True
    End Sub
  4. เลือกทำอย่างใดอย่างหนึ่งหรือทั้งสองอย่างต่อไปนี้

    • เมื่อต้องการเพิ่มสคริปต์ที่ทำงานก่อน InfoPath จะบันทึกฟอร์ม แทนข้อคิดเห็นWrite the code to be run before saving here.ด้วยโค้ดของคุณ

    • เมื่อต้องการเพิ่มสคริปต์ที่ทำงานหลังจาก InfoPath จะบันทึกฟอร์ม แทนข้อคิดเห็นWrite the code to be run after saving here.ด้วยโค้ดของคุณ

  5. เมื่อต้องการทดสอบการเปลี่ยนแปลงของคุณ ให้คลิก แสดงตัวอย่าง บนแถบเครื่องมือ มาตรฐาน หรือกด CTRL+SHIFT+B

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

ด้านบนของหน้า

เพิ่มสคริปต์ที่ทำงานเมื่อผู้ใช้ส่งฟอร์มข้อมูล

  1. บนเมนูเครื่องมือ คลิกตัวเลือกส่ง

  2. ในกล่องโต้ตอบตัวเลือกส่ง เลือกกล่องกาเครื่องหมายอนุญาตให้ผู้ใช้ส่งฟอร์มนี้

  3. คลิกแอคชันแบบกำหนดเองโดยใช้โค้ด แล้ว คลิ กแก้ไขโค้ด Microsoft Script Editor เริ่มต้น ด้วยเคอร์เซอร์อยู่ที่ตัวจัดการเหตุการณ์OnSubmitRequest

    JScript

    //=======
    // The following function handler is created by Microsoft Office InfoPath.
    // Do not modify the name of the function, or the name and number of arguments.
    //=======
    function XDocument::OnSubmitRequest(eventObj)
    {
    // If the submit operation is successful, set
    // eventObj.ReturnStatus = true;
    // Write your code here
    }

    VBScript

    '=======
    ' The following function handler is created by Microsoft Office InfoPath.
    ' Do not modify the name of the function, or the name and number of arguments.
    '=======
    Sub XDocument_OnSubmitRequest(eventObj)
    ' If the submit operation is successful, set
    ' eventObj.ReturnStatus = True
    ' Write your code here
    End Sub
  4. แทนข้อคิดเห็นIf the submit operation is successful, set eventObj.ReturnStatus = true Write your code hereด้วยโค้ดของคุณ

  5. เมื่อต้องการทดสอบการเปลี่ยนแปลงของคุณ ให้คลิก แสดงตัวอย่าง บนแถบเครื่องมือ มาตรฐาน หรือกด CTRL+SHIFT+B

ด้านบนของหน้า

สคริปต์ที่ทำงานเมื่อผู้ใช้คลิกปุ่มเพิ่ม

  1. เพิ่มปุ่มใหม่ลงในมุมมองในเทมเพลตฟอร์ แล้ว ดับเบิลคลิกที่ปุ่ม

    หมายเหตุ: ถ้าคุณกำลังเพิ่มสคริปต์กับปุ่มที่มีอยู่ตัว ดับเบิลคลิกที่ปุ่มที่มีอยู่แทน

  2. คลิกแท็บทั่วไป

  3. คลิกแก้ไขโค้ดฟอร์ม Microsoft Script Editor เริ่มต้น ด้วยเคอร์เซอร์อยู่ที่ตัวจัดการเหตุการณ์เมื่อคลิกสำหรับปุ่มนั้น

    JScript

    //=======
    // The following function handler is created by Microsoft Office InfoPath.
    // Do not modify the name of the function, or the name and number of arguments.
    //=======
    function Button Name::OnClick(eventObj)
    {
    // Write your code here
    }

    VBScript

    '=======
    ' The following function handler is created by Microsoft Office InfoPath.
    ' Do not modify the name of the function, or the name and number of arguments.
    '=======
    Sub Button Name_OnClick(eventObj)
    ' Write your code here
    End Sub
  4. แทนข้อคิดเห็นWrite your code hereด้วยโค้ดของคุณ

  5. เมื่อต้องการทดสอบการเปลี่ยนแปลงของคุณ ให้คลิก แสดงตัวอย่าง บนแถบเครื่องมือ มาตรฐาน หรือกด CTRL+SHIFT+B

ด้านบนของหน้า

เพิ่มสคริปต์ที่ทำงานเมื่อมีผสานฟอร์มที่มีอยู่

  1. บนเมนูเครื่องมือ คลิกตัวเลือกฟอร์ม

  2. ในรายการประเภท ในกล่องโต้ตอบตัวเลือกฟอร์ม คลิกขั้นสูง

  3. ภายใต้ผสานฟอร์ม เลือกกล่องกาเครื่องหมายเปิดใช้งานการผสานฟอร์ม

  4. เลือกกล่องกาเครื่องหมายผสานโดยใช้โค้ดแบบกำหนดเอง แล้ว คลิ กแก้ไข Microsoft Script Editor เริ่มต้น ด้วยเคอร์เซอร์อยู่ที่ตัวจัดการเหตุการณ์OnMergeRequest

    JScript

    //=======
    // The following function handler is created by Microsoft Office InfoPath.
    // Do not modify the name of the function, or the name and number of arguments.
    //=======
    function XDocument::OnMergeRequest(eventObj)
    {
    // Write the code that handles each form being merged here.
    XDocument.ImportDOM(eventObj.DOM);
    eventObj.ReturnStatus = true;
    }

    VBScript

    '=======
    ' The following function handler is created by Microsoft Office InfoPath.
    ' Do not modify the name of the function, or the name and number of arguments.
    '=======
    Sub XDocument_OnMergeRequest(eventObj)
    ' Write the code that handles each form being merged here.
    XDocument.ImportDOM(eventObj.DOM)
    eventObj.ReturnStatus = True
    End Sub
  5. แทนข้อคิดเห็นWrite the code that handles each form being merged here. ด้วยโค้ดของคุณ

  6. เมื่อต้องการทดสอบรหัสในเหตุการณ์นี้ ประกาศเทมเพลตฟอร์ สร้างฟอร์มหลายอย่างโดยยึดตามเทมเพลตนี้ฟอร์ม และผสานแล้ว เทมเพลตฟอร์มที่

    หมายเหตุ: ค้นหาลิงก์ไปยังข้อมูลเพิ่มเติมเกี่ยวกับการประกาศเทมเพลตของคุณฟอร์มในส่วนดูเพิ่มเติม

ด้านบนของหน้า

เพิ่มสคริปต์การอัปเดฟอร์มที่มีอยู่

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

  1. บนเมนูเครื่องมือ คลิกตัวเลือกฟอร์ม

  2. ในรายการประเภท ในกล่องโต้ตอบตัวเลือกฟอร์ม คลิกการกำหนดเวอร์ชัน

  3. ในรายการบนเวอร์ชันอัปเกรด คลิกใช้เหตุการณ์แบบกำหนดเอง นั้นแล้ว คลิกแก้ไข Microsoft Script Editor เริ่มต้น ด้วยเคอร์เซอร์อยู่ที่ตัวจัดการเหตุการณ์OnVersionUpgrade

    JScript

    //=======
    // The following function handler is created by Microsoft Office InfoPath.
    // Do not modify the name of the function, or the name and number of arguments.
    //=======
    function XDocument::OnVersionUpgrade(eventObj)
    {
    // Write your code here
    }

    VBScript

    '=======
    ' The following function handler is created by Microsoft Office InfoPath.
    ' Do not modify the name of the function, or the name and number of arguments.
    '=======
    Sub XDocument_OnVersionUpgrade(eventObj)
    ' Write your code here
    End Sub
  4. แทนข้อคิดเห็นWrite your code hereด้วยโค้ดของคุณ

  5. เมื่อต้องการทดสอบรหัสในเหตุการณ์นี้ ประกาศเทมเพลตฟอร์ สร้างฟอร์มหลายอย่างโดยยึดตามเทมเพลตนี้ฟอร์ม ปรับเปลี่ยน และประกาศเทมเพลตฟอร์รุ่นปรับปรุง นั้นแล้ว เปิดฟอร์มที่มีอยู่โดยยึดตามเทมเพลตนี้ฟอร์มรุ่นที่เก่ากว่า

    หมายเหตุ: ค้นหาลิงก์ไปยังข้อมูลเพิ่มเติมเกี่ยวกับการประกาศเทมเพลตของคุณฟอร์มในส่วนดูเพิ่มเติม

ด้านบนของหน้า

เพิ่มสคริปต์สำหรับเหตุการณ์อื่น ๆ

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

  • OnAfterChange

  • OnBeforeChange

  • OnContextChange

  • เมื่อมีการโหลด

  • OnSwitchView

  • OnSign

  • OnValidate

  • บนเมนูเครื่องมือ ชี้ไปที่การเขียนโปรแกรม แล้ว คลิ กเหตุการณ์เพื่อเพิ่มลงในตัวจัดการเหตุการณ์ Microsoft Script Editor เริ่มต้น ด้วยเคอร์เซอร์อยู่ที่ตัวจัดการเหตุการณ์ที่คุณเลือก

  • แทนข้อคิดเห็นWrite your code hereด้วยโค้ดของคุณ

ด้านบนของหน้า

ขยายทักษะ Office ของคุณ
สำรวจการฝึกอบรม
รับฟีเจอร์ใหม่ก่อนใคร
เข้าร่วม Office Insider

ข้อมูลนี้เป็นประโยชน์หรือไม่

ขอบคุณสำหรับคำติชมของคุณ!

ขอขอบคุณสำหรับคำติชมของคุณ! เราคิดว่าอาจเป็นประโยชน์ที่จะให้คุณได้ติดต่อกับหนึ่งในตัวแทนฝ่ายสนับสนุน Office ของเรา

×