Header

En muchas ocasiones nos hemos topado con la necesidad de obtener el conjunto de elementos de una lista de SharePoint. El cual tiene una coleccion de items SPListItemCollecction, así como columnas SPFieldCollection.

Si nosotros creamos una lista en la cual vamos a necesitar alguna columna que obtenga sus valores de otra lista . ejm Tipologias, Ciudades, Departamentos, etc. Tendremos que crear un campo a nuestra lista tipo lookup colum (En el cual podemos escoger la lista y el campo que deseamos buscar).

image

* Aunque en MOSS 2007 no soporta aún campos lookup según alguna condicional, ya que siempre trae “all items” de la lista padre.

*Una mejora para MOSS 2010 en los lookup column es que ahora soportan borrado en cascada de los datos relacionados, véanlo en el post SharePoint 2010 What’s New – Lookup Columns #SPC09.

Vamos al escenario.

Tenemos una lista personalizada de cursos, el cual tiene 2 campos lookup (Tipo de curso, Categoria de curso) y 1 campo tipo persona (Usuario destino).

image

Para obtener los datos de la lista podemos utilizar el siguiente código:


Y el resultado que muestra:

image

Como vemos en los campos lookup y user no muestra con el siguiente formato.

1;#Virtual  => ID;#Valor

Si en nuestra código quisieramos preguntar por algún valor como por ejemplo “Obtener los cursos virtuales y del usuario Administrator”. Tal vez escribamos el siguiente código.


Esto NO obtendrá ningún resultado. ya que los valores en formato string de la variable _tipoCurso=”1;#Virtual” y de la variable _userName=”1;#SPVMAdministrator”.

Es en donde ingresa las clases:

SPField => Que representa una columna en una lista.

SPFieldLookup => Representa una columna tipo lookup en SharePoint.

SPFieldLookupValue => Representa los posibles valores del campo lookup.

SPFieldUserValue => Representa el valor de un campo tipo usuario en SharePoint.

Modificando nuestro código para poder obtener los valores de nuestros campos lookup y campo usuario, quedaría de la siguiente manera.


Y con este código ahora si podemos obtener los valores de nuestros campos lookup y obtener el campo usuario como un campo SPUser.

Espero les haya sido de utilidad.

Nos vemos pronto.

Alaos !

A %d blogueros les gusta esto: