none
Calculando elementos de una lista RRS feed

  • Pregunta

  • Saludos,

    Mi problema es el siguiente, me encuentro realizando un Workflow en Visual.Net 2010 para Sharepoint, en C# y necesito agrupar por el Proyecto al cual pertenece el elemento y que me sume la cantidad de horas que se ha trabajado en el mismo.

    Tengo hasta la llamada del item de la lista, pero no sé como realizar la agrupación y la suma. ¿Puede alguien indicarme dónde puedo encontrar información clara para realizar el cálculo? o en su defecto, puede alguien indicarme como hacerlo.

    Agradezco de antemano,

    lunes, 9 de julio de 2012 18:57

Todas las respuestas

  • Hola

    se me ocurre que conviertes el Item a un elemento de una clase propia y agrupes usando LINQ o que utilices un for para recorrerlos y agruparlos.


    Alberto Diaz Martin twitter://@adiazcan | http://geeks.ms/blogs/adiazmartin | MVP SharePoint Server

    martes, 10 de julio de 2012 6:17
  • Hola,

    Al final tendrás que hacer un contaje...un enfoque posible es el siguiente:

    • Como tienes información del elemento de lista, tienes la lista en la qué está almacenado y tienes el valor de la propiedad "Proyecto".
    • A partir de estas dos informaciones, con un ForEach puedes recorrerte la colección de elementos de la lista, comprobar que el elemento tiene la propiedad "Proyecto" con el valor que necesites y mediante una variable realizar la suma.
    • Sería algo así como:

    using (SPSite site = new SPSite("http://TuSitio")) 
    { 
      if (site != null) 
      { 
        using (SPWeb web = site.OpenWeb()) 
        { 
          int sSumaHoras=0;	
          SPList list = web.Lists["List"]; 
     
          if (list != null) 
          { 
            foreach (SPListItem item in list.Items) 
            { 
              //Lógica de suma aquí
     
              if(item["Proyecto"].ToString() == "MyProject") 
                {           
    		sSumaHoras+=item["Horas"]; 
                }
            } 
          } 
        } 
      } 
    }

    Varias cosas a tener en cuenta aquí:

    • La información de la coleción de sitios y del sitio web la tienes en las propiedades del workflow. Lo mismo te digo con el valor del proyecto, la tienes en el elemento que ha desencandenado el workflow.
    • De acuerdo a esto, modifica el código anterior para realizar la suma según necesites.

    Un saludo


    ------------------------------------------------------------
    Juan Carlos González Martín MVP de SharePoint Server
    Director revista CompartiMOSS: http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
    Blog: http://geeks.ms/blogs/ciin
    Twitter: @jcgm1978
    ------------------------------------------------------------

    martes, 10 de julio de 2012 6:24
  • Gracias Juan Carlos por tu ayuda, lamento no haberte respondido antes. Luego de tu enfoque me resultó bastante bien, pero al intentar comparar el mismo campo de dos listas distintas, no me lee el campo que deseo, solo el campo "Título", que no son los mismos.

    Hice la prueba utilizando listas en que el título era igual y me funciona, he probado todas las combinaciones que me conozco y no lo he podido resolver. Agradecería de corazón tu ayuda.

    Saludos.

    martes, 17 de julio de 2012 12:44