risultati dell'indagine in sharepoint
-
22-07-2019 - |
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 ..
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:
- Prendi l'elenco delle persone che DEVONO compilare il sondaggio.
- Scorri gli articoli nel sondaggio (ogni articolo è una risposta di una singola persona).
- 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