2008-12-02 10 views
2

Как получить список пользователей, которые завершили или не завершили или не ответили на опрос.Результаты опроса в sharepoint

поэтому у меня есть опрос, скажем, «обзор A». в этом опросе у меня есть список людей или групп, которые должны заполнить опрос. sharepoint уже дает нам список респондентов, но я хочу составить список людей, которые не ответили или не завершили опрос.

Я использую C#, спасибо ..

+0

Мне любопытно узнать, почему это опущено ... – Stefan 2008-12-02 04:27:07

ответ

2

Предполагая, что вы обследование помечаются как не annonymous, и что люди не могут ответить на опросе более чем один раз, вы можете сделать следующее:

  1. Возьмите список людей, которые ДОЛЖНЫ заполнить опрос.
  2. Итерации над предметами в опросе (каждый элемент является ответом от одного человека).
  3. Удалить человек, который создал этот пункт из lsit людей из раздела 1. (SharePoint обследования Сохранит человек, который ответил на опрос, как свойство «Создатель»/«Автор» пункт)

Результатом будет список людей, которые ДОЛЖНЫ ответить на опрос, но пока этого не сделали.

2
private DataTable GetUser() 
{ 
    //SPGroup User = null; 

    DataTable dt = new DataTable(); 
    dt.Columns.Add("Survey Remeaning User"); 

    DataTable dtuser = new DataTable(); 
    dtuser.Columns.Add("Survey Completed User"); 


    try 
    { 
     SPSecurity.RunWithElevatedPrivileges(delegate() 
     { 
      using (SPSite objSubSite = new SPSite(SPContext.Current.Site.Url)) 
      { 
       SPUserCollection userCollection = SPContext.Current.Web.Groups["Survey Members"].Users; 
       foreach (SPUser user in userCollection) 
       { 
        StringBuilder sb = new StringBuilder(); 
        sb.Append("<Where>"); 
        sb.Append("<Eq>"); 
        sb.Append("<FieldRef Name='Author' />"); 
        sb.Append("<Value Type='User'>" + user + "</Value>"); 
        sb.Append("</Eq>"); 
        sb.Append("</Where>"); 

        // query.ViewFields = "<FieldRef Name='Author'/>"; 
        SPQuery query = new SPQuery(); 
        query.Query = sb.ToString(); 

        using (SPWeb objWeb = objSubSite.OpenWeb()) 
        { 
         int i = objWeb.Lists["SurveyList"].GetItems(query).Count; 
         if (i == 0) 
         { 
          dt.Rows.Add(user); 
          GvUser.DataSource = dt; 
          GvUser.DataBind(); 
         } 
         //if (i == 1) 
         else 
         { 
          //DataTable dtuser = new DataTable(); 
          //dt.Columns.Add("SurveyCompleted"); 
          dtuser.Rows.Add(user); 
          GvComUser.DataSource = dtuser; 
          GvComUser.DataBind(); 
         } 
        } 
       } 
      } 
     }); 
    } 
    catch (Exception) 
    { 


    } 
    return dt; 
} 

необходимо создать группу пользователей и группы и добавить пользователя в нее. , а затем вы можете использовать функцию пользователя выше и добавить функцию в загрузку страницы .... У меня есть результат в виде сетки, добавив в нее coloums