سؤال

كيف يمكنني الحصول على قائمة بالمستخدمين الذين أكملوا الاستبيان أو لم يكملوه أو لم يستجيبوا للاستبيان.

لذلك لدي استطلاع، دعنا نقول "المسح أ".لدي في هذا الاستطلاع قائمة بالأشخاص أو المجموعات التي يجب عليها ملء الاستبيان.توفر لنا Sharepoint بالفعل قائمة بالمستجيبين، ولكنني أريد إنشاء قائمة بالأشخاص الذين لم يستجيبوا أو لم يكملوا الاستطلاع.

أنا أستخدم c# شكرا..

هل كانت مفيدة؟

المحلول

بافتراض أنه تم وضع علامة على الاستطلاع الخاص بك على أنه غير مجهول، وأن الأشخاص لا يمكنهم الإجابة على الاستطلاع أكثر من مرة، يمكنك القيام بما يلي:

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

وكان لديك لإنشاء مجموعة في المستخدمين والمجموعات وإضافة المستخدم في ذلك. ثم ش يمكن يمكن للمستخدم فوق وظيفة وإضافة وظيفة عشر في تحميل الصفحة .... لدي تظهر النتيجة في عرض الشبكة بإضافة coloums في ذلك

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top