Domanda

come posso ottenere un elenco di utenti che hanno completato o non completato o non hanno risposto a un sondaggio.

quindi ho un sondaggio, diciamo "sondaggio A". in questo sondaggio ho un elenco di persone o gruppi che devono compilare il sondaggio. sharepoint ci fornisce già un elenco di intervistati, ma desidero fare un elenco di persone che non hanno risposto o non hanno completato il sondaggio.

sto usando c #, grazie ..

È stato utile?

Soluzione

Supponendo che il sondaggio sia contrassegnato come non anonimo e che le persone non possano rispondere al sondaggio più di una volta, puoi fare quanto segue:

  1. Prendi l'elenco delle persone che DEVONO compilare il sondaggio.
  2. Scorri gli articoli nel sondaggio (ogni articolo è una risposta di una singola persona).
  3. Rimuovi la persona che ha creato quell'elemento dall'elenco delle persone dalla sezione 1. (I sondaggi di SharePoint mantengono la persona che ha risposto al sondaggio come proprietà dell'autore " / " Autore " dell'elemento)

Il risultato sarà l'elenco delle persone che DEVONO rispondere al sondaggio, ma non l'hanno ancora fatto.

Altri suggerimenti

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

devi creare un gruppo in utente e gruppo e aggiungere l'utente in quello. e quindi puoi utilizzare la funzione sopra e aggiungere la funzione nel caricamento della pagina .... ho mostrato il risultato in vista griglia aggiungendo dei colori in esso

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top