SharePoint 2010: Trabajo programático con listas de tipo encuesta (I)!

Una de las listas que se crea por defecto en un sitio de tipo “Sitio de grupo” de SharePoint 2010 es la de tipo encuesta que permite modelar de forma sencilla cuestionarios en los que se pueden definir preguntas de distintos tipos y se permite responder a la misma de forma secuencial. Como habréis deducido, este tipo de lista es un tanto especial lo que es un factor a tener en cuenta cuando queremos atacarla programáticamente (para explotar las respuestas a una encuesta por ejemplo). Sin embargo, como os demostraré el trabajo vía API con este tipo de listas es similar al que realizamos con otros tipos:

  • Creamos en nuestro sitio de trabajo una lista de tipo encuesta.
  • Añadimos un par de preguntas de tipo “Una línea de texto”.
  • Respondemos al menos una vez a la encuesta.
image image image
  • Nos vamos a Visual Studio 2010 y creamos un proyecto de tipo Aplicación de Consola. Añadimos una referencia a Microsoft.SharePoint.
  • Añadimos una directiva using a Microsoft.SharePoint.
  • Añadimos un método estático a Program.cs que nos permita recorrer las respuestas de la encuesta y mostrar la información por pantalla como sigue:
   1: using System;

   2: using System.Collections.Generic;

   3: using System.Linq;

   4: using System.Text;

   5:  

   6: //Espacios de nombres necesarios

   7: using Microsoft.SharePoint;

   8: namespace SPEncuestasProc

   9: {

  10:     class Program

  11:     {

  12:         static void Main(string[] args)

  13:         {

  14:             ProcessSurvey();

  15:             Console.ReadLine();

  16:         }

  17:  

  18:         static void ProcessSurvey()

  19:         {

  20:             using (SPSite spsSitio = new SPSite("http://demo2010a:100/sites/PortalIntranet/"))

  21:             {

  22:                 using (SPWeb spwWeb = spsSitio.OpenWeb())

  23:                 {

  24:                     SPList splSurvey = spwWeb.Lists["Encuesta"];

  25:                     SPListItemCollection splicItemCollection = splSurvey.Items;

  26:                     int iInitialCount, iFieldsNumber, iAnswerNumber=0;                    

  27:                     foreach (SPListItem splItem in splicItemCollection)

  28:                     {

  29:                         Console.WriteLine("----Respuesta # {0} ----", iAnswerNumber);

  30:                        iFieldsNumber = splItem.Fields.Count;

  31:                        for (iInitialCount  = 0; iInitialCount < iFieldsNumber; iInitialCount++)

  32:                        {

  33:                            

  34:                            if (splItem[splItem.Fields[iInitialCount].InternalName]!=null)

  35:                            {

  36:                                Console.WriteLine(

  37:                                     splItem.Fields[iInitialCount].InternalName + " - " +

  38:                                     splItem[splItem.Fields[iInitialCount].InternalName]);    

  39:                            }                        

  40:                        }

  41:                        iAnswerNumber++;

  42:                     }

  43:                 }

  44:             }

  45:         }        

  46:     }

  47: }

  • Cómo veis, lo más interesante del método es la forma en la que se recorren todos los campos disponibles para un registro de la encuesta lo que nos permite acceder a las preguntas y a su respuesta. Esto lo conseguimos accediendo a la colección Fields disponible en cada objeto de tipo SPListItem de la lista.
  • Para cada campo, mostramos su nombre interno y su valor. La salida correspondiente por pantalla es la que se muestra a continuación:

image

Y hasta aquí llega este post sobre trabajo programático con listas de tipo encuesta.

Publicado por

Juan Carlos González

Juan Carlos es Ingeniero de Telecomunicaciones por la Universidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC). Cuenta con más de 12 años de experiencia en tecnologías y plataformas de Microsoft diversas (SQL Server, Visual Studio, .NET Framework, etc.), aunque su trabajo diario gira en torno a SharePoint & Office 365. Juan Carlos es MVP de Office Servers & Services desde 2015 (anteriormente fue reconocido por Microsoft como MVP de Office 365 y MVP de SharePoint Server desde 2008 hasta 2015), coordinador del grupo de usuarios .NET de Cantabria (Nuberos.Net, www.nuberos.es), co-fundador y coordinador del Grupo de Usuarios de SharePoint de España (SUGES, www.suges.es), así como co-director de la revista gratuita en castellano sobre SharePoint CompartiMOSS (www.compartimoss.com). Hasta la fecha, ha publicado 8 libros sobre SharePoint & Office 365 y varios artículos en castellano y en inglés sobre ambas plataformas.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *