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

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

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

я использую C#, спасибо ..

Мне любопытно узнать, почему это отклонено ...

Stefan 02.12.2008 07:27
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
1
3 133
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

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

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

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

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

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

Другие вопросы по теме