Как показать, какие пользователи заполнили форму в библиотеке форм?

У меня есть 10 библиотек форм на сайте Sharepoint 2007.

Сайт предназначен для использования 20 "ученых". Любой ученый (или любой из дюжины секретарей, которые ему помогают) могут войти в любую библиотеку форм, нажать [New], чтобы получить форму Infopath, выбрать имя соответствующего ученого в раскрывающемся списке, заполнить остальные поля. форму и нажмите [Отправить]. Затем форма сохраняется (заголовок формы является именем Scholar, выбранным в раскрывающемся списке).

Владельцы этого сайта хотят иметь возможность создавать отчет (в любой момент времени), в котором перечислены все 20 ученых и какая из 10 форм заполнена.

...................... Form1........... Form2.............. Форма Form3....... и т.д....Form10  
Ученый Энн Адамс..... выполнено....... не выполнено..... выполнено............ не завершено  
Ученый Бет Бейкер.... завершен....... завершен........ не завершен........ завершен  
и т.п. 

Любые идеи о том, как автоматизировать это?

1 ответ

Для чего-то подобного я бы использовал получатель события ItemUpdated, чтобы записать детали того, кто обновил форму, в отдельный список аудита. Затем вы можете просто запросить список аудита, чтобы получить нужный отчет.

Чтобы реализовать это, сначала создайте список аудита, содержащий поля для имени формы и имени пользователя (а также всего, что, по вашему мнению, было бы полезно зарегистрировать). Затем создайте Event Receiver, производный от SPItemEventReceiver. Получатель должен будет работать только с библиотеками форм. В получателе событий переопределите метод ItemUpdated, чтобы проверить, что обновленный элемент является формой, и, если это так, зарегистрируйте имя обновленной формы и пользователя, который обновил ее, в списке аудита.

Пример этого очень похож на http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spitemeventreceiver.aspx, хотя он использует метод ItemAttachmentAdded, а не ItemUpdated.

Некоторые другие уроки, которые могут быть вам полезны, находятся здесь и здесь.

Другие вопросы по тегам