результаты опроса в sharepoint - PullRequest
       16

результаты опроса в sharepoint

2 голосов
/ 02 декабря 2008

как получить список пользователей, которые завершили или не завершили или не ответили на опрос.

так что у меня есть опрос, скажем, "опрос А". В этом опросе у меня есть список людей или групп, которые должны заполнить опрос. sharepoint уже дает нам список респондентов, но я хочу составить список людей, которые не ответили или не завершили опрос.

Я использую c #, спасибо ..

Ответы [ 2 ]

2 голосов
/ 18 февраля 2011
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;
}

Вы должны создать группу в user и group и добавить в нее пользователя. и тогда вы можете использовать вышеупомянутую функцию и добавить функцию в загрузку страницы .... я показал результат в виде сетки, добавив в нее столбцы

2 голосов
/ 28 декабря 2008

Предполагая, что ваш опрос помечен как неанонимный, и что люди не могут ответить на него более одного раза, вы можете сделать следующее:

  1. Возьмите список людей, которые ДОЛЖНЫ заполнить анкету.
  2. Перебор элементов в опросе (каждый элемент является ответом от одного человека).
  3. Удалите человека, который создал этот элемент, из списка людей из раздела 1. (В опросах SharePoint лицо, ответившее на опрос, сохраняет свойство «Создатель» / «Автор» этого элемента)

Результатом будет список людей, которые ДОЛЖНЫ ответить на опрос, но еще не сделали этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...