หมายเหตุ: เราต้องการมอบเนื้อหาวิธีใช้ปัจจุบันในภาษาของคุณให้กับคุณโดยเร็วที่สุดเท่าที่เราจะทำได้ หน้านี้ได้รับการแปลด้วยระบบอัตโนมัติ และอาจมีข้อผิดพลาดทางไวยากรณ์หรือความไม่ถูกต้อง จุดประสงค์ของเราคือเพื่อให้เนื้อหานี้มีประโยชน์กับคุณ คุณแจ้งให้เราทราบว่าข้อมูลดังกล่าวมีประโยชน์ต่อคุณที่ด้านล่างของหน้านี้ได้หรือไม่ นี่คือ บทความภาษาอังกฤษ เพื่อให้ง่ายต่อการอ้างอิง
ถ้าคุณคุ้นเคยกับการเขียนสคริปต์ คุณสามารถเพิ่มสคริปต์ลงเทมเพลตฟอร์ม 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 เป็นค่าเริ่มต้นภาษาการเขียนสคริปต์
-
บนเมนูเครื่องมือ คลิกตัวเลือกฟอร์ม
-
ในรายการประเภท ในกล่องโต้ตอบตัวเลือกฟอร์ม คลิกการเขียนโปรแกรม
-
ในรายการภาษารหัสเทมเพลฟอร์ม ภายใต้ภาษาการเขียนโปรแกรม คลิกVBScript
หมายเหตุ:
-
หลังจากที่คุณตั้งค่าภาษาการเขียนสคริปต์ และสร้างตัวจัดการเหตุการณ์อย่าง น้อยหนึ่งสำหรับเทมเพลตฟอร์ม คุณไม่สามารถเปลี่ยนภาษาการเขียนสคริปต์สำหรับเทมเพลตฟอร์ม
-
ถ้าคุณได้ติดตั้ง Microsoft Visual Studio 2005 เครื่องมือสำหรับแอปพลิเคชัน ภาษาเริ่มต้นคือ Microsoft Visual Basic .NET คุณยังสามารถใช้กระบวนงานนี้เมื่อต้องการเปลี่ยนภาษาการเขียนสคริปต์ VBScript
-
แสดงข้อความแต่ละครั้งที่เกิดเหตุการณ์
ถ้าคุณต้องการทราบว่าตัวจัดการเหตุการณ์เรียกใช้ในการตอบสนองการกระทำหรือเหตุการณ์อื่น ๆ คุณสามารถเพิ่มโค้ดชั่วคราวเมื่อต้องการแสดงกล่องข้อความเมื่อใดก็ ตามเรียกใช้ตัวจัดการเหตุการณ์ คุณควรใช้โค้ดนี้เท่านั้นเพื่อกำหนดเมื่อเรียกใช้ตัวจัดการเหตุการณ์ หลังจากที่คุณเพิ่มโค้ดนี้ คุณสามารถใช้แสดงตัวอย่างเมื่อต้อง การดูฟอร์มโดยยึดตามเทมเพลตนี้ฟอร์ม หรือเพื่อประกาศเทมเพลตฟอร์มแล้ว สร้างเทมเพลตฟอร์มใหม่ ตัวจัดการเหตุการณ์บางอย่างทำงานก็ต่อเมื่อคุณสร้างฟอร์มหลังจากที่คุณประกาศเทมเพลตฟอร์ม คุณสามารถดำเนินการกระทำที่คุณคิดว่า อาจเรียกใช้ตัวจัดการเหตุการณ์นั้น เมื่อเรียกใช้ตัวจัดการเหตุการณ์ คุณเห็นกล่องข้อความ
หลังจากที่คุณกำหนดว่าการกระทำ หรือเหตุการณ์เรียกใช้ตัวจัดการเหตุการณ์ เอารหัส และประวัติย่อออกแบบฟอร์ม ถ้าคุณไม่ได้เอาโค้ดนี้แล้ว คุณสามารถประกาศเทมเพลตฟอร์ ผู้ใช้ของคุณจะเห็นกล่องข้อความนี้เมื่อเรียกใช้ตัวจัดการเหตุการณ์
-
เพิ่มตัวจัดการเหตุการณ์ของคุณ
-
เมื่อต้องการเพิ่มรหัสของ JScript พิมพ์XDocument.UI.Alert ("ตัวเหตุการณ์พบชื่อเหตุการณ์เพียง"); แทนที่ ด้วยชื่อของตัวจัดการเหตุการณ์ของคุณ ตัวอย่าง ถ้าคุณเพิ่มโค้ดนี้ลงในตัวจัดการเหตุการณ์OnValidateพิมพ์XDocument.UI.Alert ("ตัว OnValidate พบตัวจัดการเหตุการณ์เพียง");
-
เมื่อต้องการเพิ่มรหัสใน VBScript พิมพ์ตัวอย่างเช่นXDocument.UI.Alert ("ตัวเหตุการณ์พบชื่อเหตุการณ์เพียง")ถ้าคุณเพิ่มโค้ดนี้ลงในตัวจัดการเหตุการณ์OnSaveRequestคุณจะพิมพ์XDocument.UI.Alert ("ตัว OnSaveRequest พบตัวจัดการเหตุการณ์เพียง")
-
เมื่อต้องการทดสอบรหัส คลิกแสดงตัวอย่าง บนเมนูไฟล์ หรือกด CTRL + SHIFT + B และดำเนินการกระทำของผู้ใช้ที่สามารถเริ่มเหตุการณ์แล้ว เมื่อเกิดเหตุการณ์ที่ มีบรรทัดของโค้ด กล่องข้อความควรแสดงข้อความของคุณ
หมายเหตุ: เหตุการณ์บางอย่างอาจจำเป็นต้องประกาศเทมเพลตฟอร์ม และสร้างฟอร์มโดยยึดตามเทมเพลตฟอร์มนี้ก่อนที่คุณสามารถดำเนินการกระทำของผู้ใช้เพื่อเริ่มต้นเหตุการณ์นั้น
-
ก่อนที่คุณประกาศเทมเพลตฟอร์ม และทำให้ผู้ใช้ของคุณเมื่อต้องการกรอกฟอร์มโดยยึดตามเทมเพลตนี้ฟอร์ม ลบรหัสที่คุณใช้เพื่อแสดงกล่องข้อความ
เพิ่มสคริปต์ที่ทำงานเมื่อผู้ใช้จะบันทึกข้อมูลฟอร์ม
-
บนเมนูเครื่องมือ คลิกตัวเลือกฟอร์ม
-
ในรายการประเภท ในกล่องโต้ตอบตัวเลือกฟอร์ม คลิกเปิด และบันทึก ไว้
-
ภายใต้ลักษณะบันทึก และเลือกกล่องกาเครื่องหมายบันทึกโดยใช้โค้ดแบบกำหนดเอง แล้ว คลิ กแก้ไข 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 -
เลือกทำอย่างใดอย่างหนึ่งหรือทั้งสองอย่างต่อไปนี้
-
เมื่อต้องการเพิ่มสคริปต์ที่ทำงานก่อน InfoPath จะบันทึกฟอร์ม แทนข้อคิดเห็นWrite the code to be run before saving here.ด้วยโค้ดของคุณ
-
เมื่อต้องการเพิ่มสคริปต์ที่ทำงานหลังจาก InfoPath จะบันทึกฟอร์ม แทนข้อคิดเห็นWrite the code to be run after saving here.ด้วยโค้ดของคุณ
-
-
เมื่อต้องการทดสอบการเปลี่ยนแปลงของคุณ ให้คลิก แสดงตัวอย่าง บนแถบเครื่องมือ มาตรฐาน หรือกด CTRL+SHIFT+B
หมายเหตุ: ถ้าตัวจัดการเหตุการณ์ทำงานหลังจากคุณสร้างฟอร์มโดยยึดตามเทมเพลตของคุณฟอร์ม ประกาศเทมเพลตฟอร์ โดยคลิกประกาศ บนเมนูไฟล์ และตัวช่วยสร้างการประกาศที่ทำให้เสร็จสมบูรณ์แล้ว หลังจากที่คุณประกาศเทมเพลตฟอร์ สร้างฟอร์มแล้ว ดำเนินการกระทำเมื่อต้องการเรียกใช้ตัวจัดการเหตุการณ์
เพิ่มสคริปต์ที่ทำงานเมื่อผู้ใช้ส่งฟอร์มข้อมูล
-
บนเมนูเครื่องมือ คลิกตัวเลือกส่ง
-
ในกล่องโต้ตอบตัวเลือกส่ง เลือกกล่องกาเครื่องหมายอนุญาตให้ผู้ใช้ส่งฟอร์มนี้
-
คลิกแอคชันแบบกำหนดเองโดยใช้โค้ด แล้ว คลิ กแก้ไขโค้ด 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 -
แทนข้อคิดเห็นIf the submit operation is successful, set eventObj.ReturnStatus = true Write your code hereด้วยโค้ดของคุณ
-
เมื่อต้องการทดสอบการเปลี่ยนแปลงของคุณ ให้คลิก แสดงตัวอย่าง บนแถบเครื่องมือ มาตรฐาน หรือกด CTRL+SHIFT+B
สคริปต์ที่ทำงานเมื่อผู้ใช้คลิกปุ่มเพิ่ม
-
เพิ่มปุ่มใหม่ลงในมุมมองในเทมเพลตฟอร์ แล้ว ดับเบิลคลิกที่ปุ่ม
หมายเหตุ: ถ้าคุณกำลังเพิ่มสคริปต์กับปุ่มที่มีอยู่ตัว ดับเบิลคลิกที่ปุ่มที่มีอยู่แทน
-
คลิกแท็บทั่วไป
-
คลิกแก้ไขโค้ดฟอร์ม 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 -
แทนข้อคิดเห็นWrite your code hereด้วยโค้ดของคุณ
-
เมื่อต้องการทดสอบการเปลี่ยนแปลงของคุณ ให้คลิก แสดงตัวอย่าง บนแถบเครื่องมือ มาตรฐาน หรือกด CTRL+SHIFT+B
เพิ่มสคริปต์ที่ทำงานเมื่อมีผสานฟอร์มที่มีอยู่
-
บนเมนูเครื่องมือ คลิกตัวเลือกฟอร์ม
-
ในรายการประเภท ในกล่องโต้ตอบตัวเลือกฟอร์ม คลิกขั้นสูง
-
ภายใต้ผสานฟอร์ม เลือกกล่องกาเครื่องหมายเปิดใช้งานการผสานฟอร์ม
-
เลือกกล่องกาเครื่องหมายผสานโดยใช้โค้ดแบบกำหนดเอง แล้ว คลิ กแก้ไข 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 -
แทนข้อคิดเห็นWrite the code that handles each form being merged here. ด้วยโค้ดของคุณ
-
เมื่อต้องการทดสอบรหัสในเหตุการณ์นี้ ประกาศเทมเพลตฟอร์ สร้างฟอร์มหลายอย่างโดยยึดตามเทมเพลตนี้ฟอร์ม และผสานแล้ว เทมเพลตฟอร์มที่
หมายเหตุ: ค้นหาลิงก์ไปยังข้อมูลเพิ่มเติมเกี่ยวกับการประกาศเทมเพลตของคุณฟอร์มในส่วนดูเพิ่มเติม
เพิ่มสคริปต์การอัปเดฟอร์มที่มีอยู่
ถ้าคุณอัปเดเทมเพลตฟอร์มประกาศก่อนหน้า และคุณต้องการอัปเดฟอร์มที่มีอยู่โดยยึดตามเทมเพลฟอร์ม คุณสามารถเพิ่มสคริปต์เทมเพลตฟอร์ปรับปรุงที่ทำงานเมื่อผู้ใช้เปิดขึ้นหนึ่งฟอร์มที่มีอยู่ เมื่อผู้ใช้เปิดฟอร์มที่มีอยู่ InfoPath ตรวจสอบหมายเลขรุ่นของแม่แบบฟอร์มที่เกี่ยวข้องที่ตำแหน่งที่ตั้งประกาศ ถ้าหมายเลขเวอร์ชันของเทมเพลตฟอร์ตำแหน่งที่ตั้งประกาศกว่าหมายเลขเวอร์ชันในฟอร์มที่มีอยู่ ซึ่งระบุว่า มีการอัพเด InfoPath เรียกใช้โค้ดในเหตุการณ์นี้เพื่อปรับปรุงฟอร์มที่มีอยู่
-
บนเมนูเครื่องมือ คลิกตัวเลือกฟอร์ม
-
ในรายการประเภท ในกล่องโต้ตอบตัวเลือกฟอร์ม คลิกการกำหนดเวอร์ชัน
-
ในรายการบนเวอร์ชันอัปเกรด คลิกใช้เหตุการณ์แบบกำหนดเอง นั้นแล้ว คลิกแก้ไข 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 -
แทนข้อคิดเห็นWrite your code hereด้วยโค้ดของคุณ
-
เมื่อต้องการทดสอบรหัสในเหตุการณ์นี้ ประกาศเทมเพลตฟอร์ สร้างฟอร์มหลายอย่างโดยยึดตามเทมเพลตนี้ฟอร์ม ปรับเปลี่ยน และประกาศเทมเพลตฟอร์รุ่นปรับปรุง นั้นแล้ว เปิดฟอร์มที่มีอยู่โดยยึดตามเทมเพลตนี้ฟอร์มรุ่นที่เก่ากว่า
หมายเหตุ: ค้นหาลิงก์ไปยังข้อมูลเพิ่มเติมเกี่ยวกับการประกาศเทมเพลตของคุณฟอร์มในส่วนดูเพิ่มเติม
เพิ่มสคริปต์สำหรับเหตุการณ์อื่น ๆ
ขั้นตอนนี้สามารถใช้เพื่อเพิ่มตัวจัดการเหตุการณ์ที่ต่อไปนี้ลงในแม่แบบฟอร์มของคุณ:
-
OnAfterChange
-
OnBeforeChange
-
OnContextChange
-
เมื่อมีการโหลด
-
OnSwitchView
-
OnSign
-
OnValidate
-
บนเมนูเครื่องมือ ชี้ไปที่การเขียนโปรแกรม แล้ว คลิ กเหตุการณ์เพื่อเพิ่มลงในตัวจัดการเหตุการณ์ Microsoft Script Editor เริ่มต้น ด้วยเคอร์เซอร์อยู่ที่ตัวจัดการเหตุการณ์ที่คุณเลือก
-
แทนข้อคิดเห็นWrite your code hereด้วยโค้ดของคุณ