Я пытаюсь создать надстройку InfoPath, чтобы редакторы шаблонов (в отличие от конечных пользователей) могли просматривать форму с заполненными образцами данных.
Сначала немного информации о нашей среде. У нас есть пользовательский процесс, который подключается к MOSS, загружает соответствующие сборки источника данных для заданной формы и вызывает их для загрузки данных из базы данных в форму (например, информации об адресе получателя в шаблоне письма). Этот процесс запускается при загрузке формы и передаче параметров (через URL) для извлечения данных. Я могу приблизить это поведение путем передачи параметров в локально сохраненный шаблон формы через командную строку.
Вооружившись этими знаниями, я решил создать надстройку InfoPath, которая будет выполнять следующие действия:
- Отображение пользовательской кнопки панели инструментов в режиме «Дизайн», которую может щелкнуть редактор шаблонов, чтобы заполнить форму примерами данных (требуется передать параметры).
- Когда кнопка нажата, сохраните копию активного шаблона во временную папку и используйте команду Shell () для передачи параметров в форму. Затем копия формы будет запущена в отдельном окне InfoPath.
Я обращался к различным интерактивным учебным пособиям и Pro InfoPath 2007 от Apress для получения рекомендаций по этому вопросу, и, как и в предыдущих публикациях, обнаружил, что доступная информация очень ограничена. Я частично там, но столкнулся с несколькими проблемами:
- Мне удалось заставить кнопку настраиваемой панели инструментов отображаться, но только в режиме предварительного просмотра. Мне нужно, чтобы кнопка отображалась в режиме «Дизайн».
- Метод Application.ActiveWindow.XDocument.SaveAs (), по-видимому, сохраняет только форму, а не весь шаблон. Возможно, это потому, что я нахожусь в режиме предварительного просмотра, а не в режиме дизайна? Возможно, решение первой проблемы решит и это.
- Чтобы избежать двух проблем, описанных выше, я рассмотрел, как я мог бы вызывать обработчик FormEvents_Loading в своем решении на основе шаблона формы. Это позволило бы мне передать параметры теста без необходимости сохранять копию и запускать ее из командной строки. Я не мог понять, как это сделать.
Есть идеи или предложения? Заранее спасибо за помощь!