调查结果在sharepoint

时间:2008-12-02 03:47:28

标签: c# sharepoint survey pseudocode

如何获取已完成或未完成或未对调查做出响应的用户列表。

所以我有一个调查,让我们说“调查A”。在本次调查中,我列出了必须填写调查问卷的人员或团体。 sharepoint已经为我们提供了一份受访者名单,但我想列出一些尚未回复或未完成调查的人员。

我正在使用c#,谢谢..

2 个答案:

答案 0 :(得分:2)

假设您的调查被标记为非匿名,并且人们无法多次回答调查,您可以执行以下操作:

  1. 列出必须填写调查问卷的人员。
  2. 对调查中的项目进行迭代(每个项目都是来自一个人的回复)。
  3. 从第1部分的人员列表中删除创建该项目的人员。(SharePoint调查将回答调查的人员保留为项目的“创建者”/“作者”属性)
  4. 结果将是必须回答调查的人员名单,但尚未这样做。

答案 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在网格视图中显示结果