Персонализиране на шаблон на формуляр чрез използване на скрипт

Важно : Тази статия е преведена машинно – вижте отказа от отговорност. Английската версия на тази статия за справка можете да намерите тук .

Ако сте запознати с писането на скрипт, можете да добавите скрипт във вашия шаблон на формуляр на Microsoft Office InfoPath, използвайки скриптовия език Microsoft JScript или Microsoft Visual Basic Scripting Edition (VBScript). Добавянето на скрипт ви позволява да персонализирате вашия шаблон на формуляр повече, отколкото ви позволяват правилата, формулите, проверката на данни или условното форматиране. Например можете да добавите скрипт, който създава и изпраща имейл съобщение, когато един потребител превключи изгледа във формуляр, базиран на вашия шаблон на формуляр. Можете да конфигурирате шаблон на формуляр да създава и изпраща имейл съобщение само чрез използването на скрипт.

В тази статия

Общ преглед

Съображения за съвместимост

Задаване на скриптовия език за шаблон на формуляр

Показване на съобщение всеки път, когато възникне събитие

Добавяне на скрипт, който се изпълнява, когато потребителят записва данните от формуляра

Добавяне на скрипт, който се изпълнява, когато потребителят подаде формуляр за данни

Добавяне на скрипт, който се изпълнява, когато потребителят щракне върху бутон

Добавяне на скрипт, който се изпълнява, когато се обединяват съществуващи формуляри

Добавяне на скрипт, за да актуализирате съществуващи формуляри

Добавяне на скрипт за други събития

Общ преглед

Можете да персонализирате вашия шаблон на формуляр на InfoPath, използвайки правила, формули, проверка на данни и условно форматиране. Въпреки че тези функции са много гъвкави и могат да обработят голямо разнообразие от задачи, някои задачи са извън възможностите на тези функции. Например не можете да използвате правила, за да изпратите имейл съобщение, когато потребителят въведе стойност в текстово поле на формуляр. Ако трябва да персонализирате вашия шаблон на формуляр по начин извън възможностите на тези функции и сте запознати с писането на скриптове, използвайки скриптовия език JScript или VBScript, можете да добавите скрипт, който да се изпълнява, когато потребителят отвори нов формуляр или модифицира съществуващ формуляр, който се базира на вашия шаблон на формуляр.

Когато добавяте скрипт в шаблон на формуляр, 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 Script Editor и конкретни обекти, методи, събития и свойства, използвани в InfoPath, погледнете ръководството за разработчика на InfoPath.

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. Можете да персонализирате шаблон на формуляр, съвместим с браузър, само като използвате управляем код.

Най-горе на страницата

Задаване на скриптовия език за шаблон на формуляр

За да персонализирате шаблон на формуляр чрез използване на скрипт, можете да използвате Microsoft JScript или Microsoft Visual Basic Scripting Edition (VBScript). По подразбиране InfoPath е конфигуриран да добавите скрипт, използвайки JScript. Ако вашият шаблон на формуляр съдържа скрипт или управляем код, а предпочитате да използвате VBScript като скриптов език, можете да промените скриптовия език за вашия шаблон на формуляр към VBScript. Не можете да използвате и двата скриптови езици в същия шаблон за формуляр.

Ако шаблонът за формуляр вече съдържа скрипт на един език и искате да използвате друг език, трябва да запишете съществуващия скрипт, така че да можете да конвертирате скрипта на другия език, премахнете скрипта от шаблона за формуляр чрез диалоговия прозорец Опции за формуляри и след това добавите конвертирания скрипт обратно към шаблона за формуляр. InfoPath не може да конвертира скриптове нов скриптов език. Промяната на езика на скрипт в диалоговия прозорец Опции за формуляри засяга само този шаблон за формуляр. Други шаблони за формуляри ще бъде JScript като скриптов език по подразбиране.

  1. В менюто Инструменти щракнете върху Опции за формуляри.

  2. В списъка категория в диалоговия прозорец Опции за формуляри щракнете върху програмиране.

  3. В списъка език на код за шаблон на формуляр под език за програмиране, щракнете върху VBScript.

    Забележки : 

    • След Задаване на скриптовия език и създаване на един или повече манипулатори за шаблон на формуляр, можете да променяте на скриптовия език за шаблона за формуляр.

    • Ако сте инсталирали Microsoft Visual Studio 2005 Tools for Applications, езикът по подразбиране е 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 ("The 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 Editor с курсора в манипулатора на събитие, който сте избрали.

  • Заменете коментара Write your code here с вашия код.

Най-горе на страницата

Забележка : Отказ от отговорност за машинен превод: Тази статия е преведена от компютърна система без човешка намеса. Microsoft предлага тези машинни преводи, за да помогне на потребителите, които не говорят английски, да се възползват от съдържанието за продукти, услуги и технологии на Microsoft. Тъй като статията е преведена машинно, е възможно да съдържа грешки в речника, синтаксиса и граматиката.

Разширете уменията си
Преглед на обучението
Получавайте първи новите функции
Присъединете се към участниците в Office Insider

Беше ли полезна тази информация?

Благодарим ви за обратната връзка!

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×