如何获取已完成或未完成或未对调查做出响应的用户列表。
所以我有一个调查,让我们说“调查A”。在本次调查中,我列出了必须填写调查问卷的人员或团体。 sharepoint已经为我们提供了一份受访者名单,但我想列出一些尚未回复或未完成调查的人员。
我正在使用c#,谢谢..
答案 0 :(得分:2)
假设您的调查被标记为非匿名,并且人们无法多次回答调查,您可以执行以下操作:
结果将是必须回答调查的人员名单,但尚未这样做。
答案 1 :(得分: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在网格视图中显示结果