Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке) .
Если вы знакомы с написания сценария, можно добавить сценарий для шаблона формы Microsoft Office InfoPath с помощью Microsoft JScript или языка сценариев Microsoft Visual Basic Scripting Edition (VBScript). Добавление сценария позволяет настраивать шаблона формы возможности, доступные с правила, формулы, проверки данных и условное форматирование. Например вы можете добавить сценарий, который создает и отправка сообщений электронной почты при переключении представление формы на основе шаблона формы. Вы можете настроить шаблона формы для создания и отправка сообщения электронной почты только с использованием сценария.
В этой статье
Обзор
Вы можете настроить шаблон формы InfoPath с помощью правила, формулы, проверку данных и условное форматирование. Несмотря на то, что эти возможности гибкой и может обрабатывать широкий набор задач, некоторые задачи выходят за возможности этих функций. Например нельзя использовать правила для отправки сообщения электронной почты при вводе значения в текстовое поле в форме. Если вам нужно настроить шаблона формы таким образом, находится за пределами возможности этих функций и вы знакомы с сценариями с помощью языка сценариев VBScript или JScript, вы можете добавить сценарий, который выполняется, когда пользователь открывает новую форму или изменяет ex Форма 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 редактора и конкретных объектов, методов, событий и свойства, используемые в приложении InfoPath, читайте в статье Справочник разработчика InfoPath.
Приложение InfoPath автоматически добавляет обработчики для всех, кроме одного из следующих событий.
Обработчик событий |
Описание |
Инструкции по созданию |
OnAfterChange |
Это событие запускается после пользователь изменяет значения в указанный элемент управления, привязанных к полю. Например можно отобразить настраиваемые области задач HTML после выбора элемента пользователем в элемент управления списком. Это событие запускается после OnValidate события. |
Щелкните правой кнопкой мыши элемент управления в шаблоне формы или поля в области задач Источник данных, выберите в контекстном меню программирование и нажмите кнопку На после изменения событий. |
OnAfterImport |
Это событие запускается после пользователь успешно объединяет несколько форм в одной форме. |
С помощью MSE вручную добавьте объявление обработчика событий OnAfterImport непосредственно на файл сценария. Не удается создать этот обработчик событий в режиме конструктора. |
OnBeforeChange |
Это событие запускается после пользователь изменяет значения в элементе управления и перед добавлением значения для указанного поля, присоединенные к этому элементу управления. Например можно запретить пользователю добавлять дополнительные строки при заполнении последней строки в повторяющуюся таблицу. |
Щелкните правой кнопкой мыши элемент управления в шаблоне формы или поля в области задач Источник данных, выберите в контекстном меню программирование и нажмите кнопку На перед событие изменения. |
OnClick |
Это событие запускается при нажатии кнопки, помеченная это событие. Это событие доступен после добавления кнопки в шаблоне формы. Например можно выполнять сложные расчеты, используя значения в поля в основной источник данных при нажатии этой кнопки. |
Дважды щелкните элемент управления и нажмите кнопку Изменить код формы на вкладке Общие диалогового окна Свойства кнопки. |
OnContextChange |
Это событие запускается при изменении фокуса в форме. Например это событие запускается, если пользователь переходит из текстового поля для выбора даты или пользователь переключения представлений. Это событие происходит после возникновения других событий. |
В меню Сервис выберите программирование и нажмите кнопку На событие изменения контекста. |
OnLoad |
Данное событие выполняется всякий раз, когда пользователь создает новую форму или открывает существующую форму на основе шаблона формы. Например можно скопировать список элементов из дополнительный источник данных в основной источник данных при открытии формы. |
В меню Сервис выберите пункт программирования и нажмите кнопку При загрузке. |
OnMergeRequest |
Это событие запускается при слиянии форм на основе шаблона формы. Например можно отобразить число форм, которые объединены для предоставить пользователю со статусом при слиянии. |
В меню Сервис выберите пункт Параметры формы. В списке Категория выберите пункт Дополнительно. В группе Объединение форм установите флажок " Объединить с использованием пользовательского кода " и нажмите кнопку Изменить. |
OnSaveRequest |
Это событие запускается, когда пользователь сохраняет формы на основе шаблона формы. Например можно сохранить форму на основе этого шаблона формы для нескольких местах при сохранении пользователем формы. Приложение InfoPath добавляет две дополнительные строки кода это событие: линия, сохраняет формы, а другую строку указывает, если InfoPath успешно сохранена форма. |
В меню Сервис выберите пункт Параметры формы. В списке Числовые форматы выберите пункт Открыть и сохранить. В разделе Сохранение поведение установите флажок Сохранить с использованием пользовательского кода и нажмите кнопку Изменить. |
OnSign |
Это событие запускается, когда пользователь демонстрируется создание цифровой подписи в форму. Например можно добавить дополнительные данные цифровой подписи в форме отчета о расходах, когда пользователь подписывает его. |
В меню Сервис выберите пункт программирования и нажмите На события входа. |
OnSubmitRequest |
Это событие запускается, когда пользователь отправляет свой данных формы. Например вы можете отправлять данных формы в веб-службу secure при щелчке пользователем Отправить в меню файл. Поскольку InfoPath не поддерживает подключение к данным для безопасного веб-службы, вам нужно добавить пользовательское подключение данных, совместимый с безопасной веб-службы. |
В меню Сервис выберите пункт Параметры отправки. Установите флажок Разрешить пользователям отправлять эту форму, нажмите кнопку выполнить настраиваемое действие, с помощью кода и нажмите кнопку Изменить код. |
OnSwitchView |
Это событие запускается при открытии формы на основе шаблона формы и переключение на другое представление в виде. Например при переходе на определенный режим просмотра, можно создать сообщение электронной почты, содержащую данные из полей в форме основного источника данных. |
В меню Сервис выберите пункт программирования и нажмите На события переключения представления. |
OnValidate |
Это событие запускается, когда пользователь изменяет значения с помощью элементов управления, привязанных к полю. Например когда пользователь изменяет значения в конкретном элементе управления, можно вычислить новое значение для другого элемента управления с помощью число, введенное пользователем и номер, который находится в сценарий. Это событие происходит после выполнения OnBeforeChange обработчика событий. |
Щелкните правой кнопкой мыши элемент управления в шаблоне формы или поля в области задач Источник данных, выберите в контекстном меню программирование и нажмите кнопку На после проверки событий. |
OnVersionUpgrade |
Это событие запускается, когда пользователь открывает существующую форму и номер версии шаблона формы, используемые в существующую форму старше, чем номер версии шаблона формы в папке публикации. Когда пользователь открывает существующую форму, InfoPath проверяет номер версии шаблона формы, связанные с существующей формы. Наличие новый номер версии шаблона формы InfoPath запускается OnVersion обработчика событий, когда пользователь открывает существующую форму. Например предположим, что можно добавить новое поле в существующий шаблон формы, а затем опубликовать ее, и вы хотите нового поля, которые будут добавлены в основной источник данных, если пользователь открывает существующую форму. Это событие добавляет новое поле основной источник данных, когда пользователь открывает существующую форму. |
В меню Сервис выберите пункт Параметры формы. В списке Категория выберите пункт Управление версиями. В списке при обновлении версии выберите Использование настраиваемых событие и нажмите кнопку Изменить. |
Совместимость
Не удается добавить сценарий шаблон формы с поддержкой веб-браузера. Сценарий можно добавить только к шаблону формы будут заполнены которого форм в InfoPath. Вы можете настроить шаблон формы с поддержкой браузера только с помощью управляемого кода.
Выбор языка сценариев для шаблона формы
Чтобы настроить шаблон формы с использованием сценария, можно использовать Microsoft JScript или Microsoft Visual Basic Scripting Edition (VBScript). По умолчанию InfoPath настроен для добавления сценариев с помощью JScript. Если вы предпочитаете использовать как язык сценариев VBScript шаблона формы не содержит любой управляемый код или сценарий, можно изменить язык сценариев для шаблона формы для VBScript. Оба языка сценариев нельзя использовать в шаблоне формы.
Если шаблон формы уже содержит сценария на одном языке и вы хотите использовать другой язык, необходимо сохранить существующий сценарий, чтобы сценарий можно преобразовать в другой язык удалить сценарий из шаблона формы по Параметры формы диалоговое окно поле, а затем добавьте сценарий преобразованные обратно в шаблон формы. InfoPath не удается преобразовать сценариев нового языка сценариев. Смена языка сценариев в диалоговом окне Параметры формы влияет только на этом шаблоне формы. Другие шаблоны форм будет иметь JScript для использования по умолчанию язык сценариев.
-
В меню Сервис выберите пункт Параметры формы.
-
В списке категорий в диалоговом окне Параметры формы щелкните программирования.
-
В списке язык кода шаблона формы в разделе язык программирования, нажмите кнопку VBScript.
Примечания:
-
После Выбор языка сценариев и создать один или несколько обработчики для шаблона формы, не удается изменить язык сценариев для шаблона формы.
-
Если вы установили Microsoft Visual Studio 2005 Tools for Applications, языком по умолчанию является 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 и выполните действия пользователя, который можно запустить событие. При возникновении события с строки кода, отображается сообщение должно отображаться сообщение.
Примечание: Некоторые события может потребоваться опубликовать шаблон формы, а затем создать на основе этого шаблона формы перед выполнением на действия пользователя, чтобы начать события формы.
-
Прежде чем опубликовать шаблон форм и пользователи могли заполнять формы на основе этого шаблона формы, удалите код, который используется для отображения в окне сообщения.
Добавьте сценарий, который запускается при сохранении данных формы
-
В меню Сервис выберите пункт Параметры формы.
-
В списке категорий в диалоговом окне Параметры формы нажмите кнопку Открыть и сохранить.
-
В разделе Сохранение поведение установите флажок Сохранить с использованием пользовательского кода и нажмите кнопку Изменить. Курсор находится в обработчик событий OnSaveRequest запустится редактор скриптов Microsoft.
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 курсор находится в 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 курсор находится в обработчика событий 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 -
Замените комментарий Write your code here кода.
-
Чтобы проверить изменения, нажмите кнопку Просмотр на стандартной панели инструментов или нажмите клавиши CTRL+SHIFT+B.
Добавьте сценарий, который запускается при слиянии существующих форм
-
В меню Сервис выберите пункт Параметры формы.
-
В списке категорий в диалоговом окне Параметры формы нажмите кнопку Дополнительно.
-
В группе Объединение форм установите флажок Разрешить объединение форм.
-
Установите флажок " Объединить с использованием пользовательского кода " и нажмите кнопку Изменить. Запустится редактор скриптов Microsoft курсор находится в 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 запускается код в это событие, чтобы обновить существующую форму.
-
В меню Сервис выберите пункт Параметры формы.
-
В списке категорий в диалоговом окне Параметры формы нажмите кнопку Управление версиями.
-
В списке при обновлении версии выберите Использование настраиваемых событие и нажмите кнопку Изменить. Курсор находится в обработчика событий OnVersionUpgrade запустится редактор скриптов Microsoft.
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
-
OnLoad
-
OnSwitchView
-
OnSign
-
OnValidate
-
В меню Сервис выберите программирование и выберите событие для добавления обработчика событий. Запустится редактор скриптов Microsoft курсор находится в обработчика событий, который был выбран.
-
Замените комментарий Write your code here кода.