Погон: создание базового шаблона формы с кодом
Бизнес-логику для приложения Microsoft InfoPath можно написать на языке Visual Basic или C#, открыв шаблон формы в конструкторе InfoPath и воспользовавшись одной из команд интерфейса пользователя для добавления обработчика событий, который откроет набор Visual Studio 2012 для написания необходимого кода. По умолчанию проекты шаблонов форм создаются с помощью набора средств Visual Studio 2012, использующего новую объектную модель управляемого кода, которая предоставляется пространством имен Microsoft.Office.InfoPath
В первом пошаговом руководстве демонстрируются методы создания простого приложения "Hello World" с помощью языка C# или Visual Basic в наборе Visual Studio 2012. В заключении руководства приведен пример кода, демонстрирующий принципы использования свойства UserName класса User для получения имени текущего пользователя и заполнения элемента управления Текстовое поле полученным значением.
Предварительные требования
Для выполнения инструкций этого пошагового руководства в наборе Visual Studio 2012 необходимо установить следующее программное обеспечение:
- Microsoft InfoPath с набором Visual Studio 2012.
Создание примера "Hello World" в наборе средств Visual Studio Tools для работы с приложениями
В следующем пошаговом руководстве демонстрируется, как написать в наборе Visual Studio 2012 код, отображающий простое диалоговое окно с оповещением путем написания обработчика события Clicked класса ButtonEvent , связанного с элементом управления Кнопка.
Создание нового проекта и выбор языка программированияЗапустите конструктор InfoPath и дважды щелкните шаблон формы Пустой (редактор InfoPath).
Чтобы выбрать язык программирования, нажмите кнопку Microsoft Office, выберите Параметры форм, в списке Категории выберите Программирование, а затем выберите либо Visual Basic, либо C# в раскрывающемся списке Язык кода шаблона формы.
[!Примечание] При выборе других вариантов языков программирования в списке Язык кода шаблона формы обеспечивается совместимость с более ранними версиями InfoPath. Варианты C# (совместимый с InfoPath 2007) и Visual Basic (совместимый с InfoPath 2007) работают с соблюдением описанных здесь процедур. Однако дополнительные сведения об использовании C# (совместимый с InfoPath 2003) и Visual Basic (совместимый с InfoPath 2003) см. в разделе Пошаговое руководство. Создание и отладка начального шаблона формы с помощью объектной модели InfoPath 2003.
Теперь можно добавить элемент управления Кнопка и создать для него обработчик событий.
Добавление элемента управления "Кнопка" и обработчика событийВ группе Элементы управления нажмите элемент управления Кнопка, чтобы добавить его в форму.
Дважды щелкните элемент управления Кнопка, введите значение Hello для свойства Надпись на вкладке Свойства ленты и щелкните Пользовательский код. При получении запроса сохраните форму и назовите ее HelloWorld.
После этого откроется среда Набор средств Microsoft Visual Studio для работы с приложениями с курсором на обработчике событий Clicked для элемента управления Кнопка.
Теперь можно добавить код формы для обработчика событий кнопки.
Добавьте в обработчик событий код "Hello World" и просмотрите формуВ структуре обработчика событий введите:
Код в шаблоне формы должен выглядеть примерно следующим образом:
Переключитесь в окно режима конструктора InfoPath.
Нажмите кнопку Просмотр на панели инструментов Главная.
Нажмите на форме кнопку Hello.
Отобразится окно с текстовым сообщением "Hello World!"
В следующей процедуре показано, как добавить отладочные точки останова в код формы.
Отладка кода формыПереключитесь обратно в окно набора Visual Studio 2012.
Щелкните серую полосу слева от строки:
Отобразится красный кружок, а строка кода будет выделена, указывая, что при запуске кода формы возникнет пауза в этой точке останова.
В меню Отладка выберите пункт Начать отладку (или нажмите клавишу F5).
В окне InfoPath Просмотр нажмите кнопку Hello на форме.
Фокус переместится на редактор кода набора Visual Studio 2012 и выделится строка точки останова.
Чтобы продолжить выполнение кода, в меню Отладка выберите пункт Шаг с обходом (или нажмите сочетание клавиш SHIFT+F8).
Выполнится код обработчика событий, и отобразится сообщение "Hello World!".
Нажмите кнопку ОК, чтобы вернуться в редактор кода набора Visual Studio 2012, а затем щелкните Остановить отладку в меню Отладка (или нажмите сочетание клавиш CTRL+ALT+BREAK).
Получение имени текущего пользователя
В следующем примере демонстрируется, как использовать свойство UserName класса User для получения имени текущего пользователя и заполнения значения элемента управления Текстовое поле с помощью обработчика событий Loading .
Заполнение элемента управления Текстовое поле выполняется с помощью экземпляра класса XPathNavigator для написания имени текущего пользователя в узле XML, к которому привязан элемент управления.
Сначала свойство MainDataSource класса XmlForm вызывается для получения экземпляра класса DataSource , представляющего базовый XML-документ формы. Затем объект DataSource вызывает метод CreateNavigator , создающий объект XPathNavigator и размещающий его в корневом узле основного источника данных формы.
Метод SelectSingleNode класса XPathNavigator вызывается для выбора поля employee в источнике данных формы. В заключение вызывается метод SetValue для установки значения поля с использованием свойства UserName .
Дополнительные сведения о работе с System.Xml в шаблонах управляемых форм кода см. в руб. Работа с классами XPathNavigator и XPathNodeIterator.
Добавление обработчика событий загрузкиОткройте шаблон формы "HelloWorld", созданный в предыдущем пошаговом руководстве.
На вкладке Просмотр выберите Отобразить поля.
Щелкните правой кнопкой мыши папку myFields, а затем выберите Добавить.
В поле Имя введите значение employee и нажмите кнопку ОК.
Перетащите поле employee в текущее представление.
На вкладке Разработчик щелкните Событие "Загрузка".
При этом будет создан обработчик событий Loading , а фокус переключится на этот обработчик событий в редакторе кода.
В редакторе кода введите следующее:
Переключитесь в окно конструктора форм InfoPath и нажмите кнопку Просмотр на вкладке Главная, чтобы просмотреть форму.
В поле employee должно быть автоматически введено имя пользователя.
Дальнейшие действия
Сведения о работе с обработчиками событий для других элементов управления и событий см. в добавлении обработчик событий.
Дополнительные сведения о предварительном просмотре и отладке кода в шаблонах форм см. в дополнительных сведениях о шаблонах предварительного просмотра и отладки шаблонов форм InfoPath с кодом.
Сведения о развертывании шаблона форм с управляемым кодом см. в ссылке Развертывание шаблонов форм InfoPath с кодом.
Сведения об объектной модели InfoPath и распространенных задачах программирования для шаблонов форм с управляемым кодом см. в разделе Ознакомление с объектной моделью InfoPath и распространенными задачами разработчиков