2008-12-02 6 views
2

Comment puis-je obtenir une liste des utilisateurs qui ont terminé ou n'ont pas répondu ou n'ont pas répondu à un sondage.résultats de l'enquête en point de partage

donc j'ai un sondage, disons "sondage A". Dans cette enquête, j'ai une liste de personnes ou de groupes qui doivent remplir l'enquête. sharepoint nous donne déjà une liste de répondants, mais je veux faire une liste des personnes qui n'ont pas répondu ou qui n'ont pas répondu au sondage.

J'utilise C#, merci ..

+0

Je suis curieux de savoir pourquoi cela est downvoted ... – Stefan

Répondre

2

En supposant que vous enquête est marquée comme non annonymous, et que les gens ne peuvent répondre à l'enquête plus d'une fois, vous pouvez effectuer les opérations suivantes:

  1. Prenez la liste des personnes qui DOIVENT remplir le sondage.
  2. Effectuez une itération sur les éléments de l'enquête (chaque élément est une réponse d'une seule personne).
  3. Retirez la personne qui a créé cet élément de la lsit de personnes de la section 1. (SharePoint de l'enquête garder la personne qui a répondu à l'enquête comme étant la propriété « Créateur »/« Auteur » de l'article)

Le résultat sera la liste des personnes qui DOIVENT répondre à l'enquête, mais ne l'ont pas encore fait.

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; 
} 

vous devez créer un groupe dans l'utilisateur et le groupe et ajouter l'utilisateur dans cela. puis vous pouvez utiliser l'utilisateur au-dessus de la fonction et ajouter la fonction dans le chargement de la page .... J'ai montré le résultat dans la grille en ajoutant des couleurs

Questions connexes