Как показать, какие пользователи заполнили форму в библиотеке форм?
У меня есть 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.
Некоторые другие уроки, которые могут быть вам полезны, находятся здесь и здесь.