miércoles, 22 de abril de 2015

¿Cómo crear una lista en SharePoint con C#?

En este post veremos cómo:
  • Crear una lista
  • Crearle un campo de texto, un campo URL y un campo calculado
  • Ajustar el campo título
  • Ajustas la vista predeterminada (Requiere post anterior)
  • Cargar los primeros ítems
Qué les sea útil!

try
{
    SPSite oSiteCollection = SPContext.Current.Site;

    // Nueva lista de Configuración
    SPList listaProyectoManual = oSiteCollection.RootWeb.Lists.TryGetList("Manual");
    if (listaProyectoManual == null)
    {
        // Nueva lista
        SPListCollection listas = oSiteCollection.RootWeb.Lists;
        listas.Add("Manual", "Conversión de porcentaje a número en proyectos manuales", SPListTemplateType.GenericList);
        contenido.InnerHtml += "<span style='color: green'>Lista de configuración de Proyecto Manuales creada</span><br>";

        // Campos
        SPList listaManual = oSiteCollection.RootWeb.Lists["Manual"];
        listaManual.Fields.Add("Color", SPFieldType.Choice, true);
        SPFieldChoice color = listaManual.Fields["Color"] as SPFieldChoice;
        color.Choices.Add("Verde");
        color.Choices.Add("Amarillo");
        color.Choices.Add("Rojo");
        color.Update();
        listaManual.Fields.Add("Valor1", SPFieldType.Number, true);
        listaManual.Fields.Add("Valor2", SPFieldType.Number, true);
        listaManual.Fields.Add("Valor3", SPFieldType.Number, false);
        contenido.InnerHtml += "<span style='color: green'>Columnas agregadas</span><br>";

        // Campo calculado
        string formulaAmigable = listaManual.Fields.Add("Formula", SPFieldType.Calculated, false);
        SPFieldCalculated formulaAmigableCF = listaManual.Fields["Formula"] as SPFieldCalculated;
        formulaAmigableCF.Formula = "=IF(Color<>\"Rojo\";\"(\"&Color&\") = \"&Valor1&\" + \"&Valor2&\" x (P - \"&Valor3&\")\";\"(\"&Color&\") = \"&Valor1&\" + P / \"&Valor2)";
        formulaAmigableCF.OutputType = SPFieldType.Text;
        formulaAmigableCF.Update();
        contenido.InnerHtml += "<span style='color: green'>Campo calculado creado</span><br>";
                            
        // Ajustes al título
        listaManual.Fields["Título"].Required = false;
        listaManual.Fields["Título"].Hidden = true;
        listaManual.Fields["Título"].Update();
        contenido.InnerHtml += "<span style='color: green'>Título ajustado</span><br>";

        // Vista default
        SPView vistaManual = listaManual.DefaultView;
        vistaManual.ViewFields.DeleteAll();
        vistaManual.ViewFields.Add("Edit");
        vistaManual.ViewFields.Add("Formula");
        vistaManual.Query = "<OrderBy><FieldRef Name=\"ID\"/></OrderBy>";
        vistaManual.Update();
        SetToolbarType(vistaManual, "None");
        contenido.InnerHtml += "<span style='color: green'>Vista ajustada</span><br>";

        // Crear ítems
        SPListItem item1 = listaManual.Items.Add();
        item1["Color"] = "Verde";
        item1["Valor1"] = 2;
        item1["Valor2"] = 10;
        item1["Valor3"] = 0.9;
        item1.Update();
        SPListItem item2 = listaManual.Items.Add();
        item2["Color"] = "Amarillo";
        item2["Valor1"] = 1.5;
        item2["Valor2"] = 2.5;
        item2["Valor3"] = 0.7;
        item2.Update();
        SPListItem item3 = listaManual.Items.Add();
        item3["Color"] = "Rojo";
        item3["Valor1"] = 1;
        item3["Valor2"] = 1.4;
        item3.Update();
        contenido.InnerHtml += "<span style='color: green'>Fórmula creada</span><br>";

    }
    else
    {
        contenido.InnerHtml += "<span style='color: blue'>Ya existe la lista de configuración de Proyecto Manuales</span><br>";
    }
}
catch (Exception error)
{
       contenido.InnerHtml += "<span style='color: red'>Error: " + error + "</span><br>";
}

0 comentarios:

Publicar un comentario en la entrada