การกำหนดแม่แบบฟอร์มเองโดยใช้สคริปต์

สิ่งสำคัญ:  บทความนี้เป็นการแปลด้วยเครื่อง โปรดดู ข้อจำกัดความรับผิดชอบ โปรดดูบทความฉบับภาษาอังกฤษ ที่นี่ เพื่อใช้อ้างอิง

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

ในบทความนี้

ภาพรวม

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

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

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

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

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

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

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

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

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

ภาพโดยรวม

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

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

หมายเหตุ: โค้ดที่ 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 Script Editor และวัตถุ เมธอด เหตุการณ์ และคุณสมบัติที่ใช้ใน InfoPath อย่างใดอย่างหนึ่งโดยเฉพาะ โปรดดูการอ้างอิงสำหรับ InfoPath Developer

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

Event handler

Description

Steps for creating

OnAfterChange

This event runs after a user changes the value in the specified control bound to a field. For example, you can display a custom HTML task pane after a user selects an item in a list box control. This event runs after the OnValidate event.

Right-click a control on the form template or a field in the Data Source task pane, point to Programming on the shortcut menu, and then click On After Change Event.

OnAfterImport

This event runs after the user successfully merges several forms into one form.

Manually add the OnAfterImport event handler declaration directly to the script file by using MSE. This event handler cannot be created in design mode.

OnBeforeChange

This event runs after a user changes the value in a control and before the value is added to the specified field bound to that control. For example, you can prevent a user from adding an additional row before filling out the last row in a repeating table.

Right-click a control on the form template or a field in the Data Source task pane, point to Programming on the shortcut menu, and then click On Before Change Event.

OnClick

This event runs when a user clicks a button associated with this event. This event is available after you add a button to the form template. For example, you can perform a complex calculation by using the values in fields in the main data source when a user clicks the button.

Double-click the button control and then on the General tab of the Button Properties dialog box, click Edit Form Code.

OnContextChange

This event runs when the focus changes in the form. For example, this event runs when a user navigates from a text box to a date picker, or when a user switches views. This event occurs after all other events have occurred.

On the Tools menu, point to Programming, and then click On Context Change Event.

OnLoad

This event runs whenever a user creates a new form or opens an existing form based on your form template. For example, you can copy a list of items from a secondary data source to the main data source when a user opens the form.

On the Tools menu, point to Programming, and then click On Load Event.

OnMergeRequest

This event runs when forms based on your form template are merged. For example, you can display the number of forms that were merged to give a user a status during the merge operation.

On the Tools menu, click Form Options. In the Category list, click Advanced. Under Merge forms, select the Merge using custom code check box, and then click Edit.

OnSaveRequest

This event runs when a user saves a form based on your form template. For example, you can save the form based on this form template to more than one location when a user saves the form. InfoPath adds two additional lines of code to this event: a line that saves the form and another line that tells you if InfoPath successfully saved the form.

On the Tools menu, click Form Options. In the Category list, click Open and Save. Under Save behavior, select the Save using custom code check box, and then click Edit.

OnSign

This event runs when a user applies a digital signature to a form. For example, you can add additional data to the digital signature of an expense report form when a user signs it.

On the Tools menu, point to Programming, and then click On Sign Event.

OnSubmitRequest

This event runs when a user submits his or her form data. For example, you can submit the form data to a secure Web service when the user clicks Submit on the File menu. Since InfoPath does not support a data connection to a secure Web service, you need to add a custom data connection that works with your secure Web service.

On the Tools menu, click Submit Options. Select the Allow users to submit this form check box, click Perform custom action using Code, and then click Edit Code.

OnSwitchView

This event runs when a user opens a form based on your form template or switches to another view in the form. For example, when a user switches to a specific view, you can create an e-mail message that contains data from the fields in the form's main data source.

On the Tools menu, click Programming, and then click On Switch View Event.

OnValidate

This event runs when a user changes the value in a control bound to a field. For example, when the user changes the value in a specific control, you can calculate a new value for another control by using the number that the user entered and a number that is in the script. This event occurs after the OnBeforeChange event handler runs.

Right-click a control on the form template or a field in the Data Source task pane, point to Programming on the shortcut menu, and then click On After Validate Event.

OnVersionUpgrade

This event runs when a user opens an existing form and the version number of the form template used by the existing form is older than the version number of the form template in the publish location. When a user opens an existing form, InfoPath checks the version number of the form template associated with the existing form. If the form template has a newer version number, InfoPath runs the OnVersion event handler when the user opens the existing form. For example, imagine that you add a new field to an existing form template and republish it, and you want the new field to be added to the main data source if a user opens an existing form. This event adds the new field to the main data source when a user opens an existing form.

On the Tools menu, click Form Options. In the Category list, click Versioning. In the On version upgrade list, click Use custom event, and then click Edit.

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

การพิจารณาความเข้ากันได้

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

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

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

เมื่อต้องการปรับแต่งเทมเพลตฟอร์ม โดยใช้ script คุณสามารถใช้ Microsoft JScript หรือ Microsoft Visual Basic Scripting Edition (VBScript) ตามค่าเริ่มต้น 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 จะเริ่มต้นด้วยเคอร์เซอร์จะอยู่ที่ตัวจัดการเหตุการณ์ OnClick สำหรับปุ่มดังกล่าว

    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

  • OnLoad

  • OnSwitchView

  • OnSign

  • OnValidate

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

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

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

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

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

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

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

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

×