/// <summary> /// Añade una nueva columna de tipo "UserField" /// </summary> /// <param name="columnName">Nombre de la columna</param> /// <param name="containInformation">Idica si la columna debe de contener información (campo requerido)</param> /// <param name="userSelectionMode">Especifica si se pueden indicar usuarios o usuarios y grupos</param> /// <param name="showField">Campo a mostrar identificar la información del usuario a mostrar (mas info aquí: https://www.c-sharpcorner.com/blogs/setting-show-field-for-person-or-group-type-column-using-powershell-in-sharepoint2)</param> /// <param name="multiUser">Opcional - Indica si el campo se ha de indicar un solo usuario o grupo (FALSE) o si es multi usuairo / grupo (TRUE)</param> /// <param name="usersFromGroup">Opcional - Nombre del grupo de usuarios por el que queremos filtrar los usuarios que se pueden seleccionar o indicar en el campo</param> /// <param name="listName">Opcional - Nombre de la lista en la que crear la nueva columna. Si no se indica valor, se tomará el nombre definido en la propiedad ListName</param> /// <param name="description">Opcional - Descripción del campo</param> public void AddNewColumn(string columnName, bool containInformation, TypeUserSelectionMode userSelectionMode, string showField, bool multiUser = false, string usersFromGroup = "", string listName = "", string description = "") { listName = SetListName(listName); string type = "User"; if (multiUser) { type = "UserMulti"; } SPFields field = new SPFields { Column = TypeColumn.UsersAndGroups, ListName = listName.Trim(), ColumnName = columnName.Trim(), Description = description.Trim(), Type = type, FieldUserGroup = new Clases.SPFieldUsersAndGroup { ContainInformation = containInformation, UserSelectionMode = userSelectionMode, ShowField = showField, MultiUser = multiUser, UsersFromGroup = usersFromGroup } }; SPFields.Add(field); }
/// <summary> /// Añade una nueva columna de tipoo "Varias líneas de texto" /// </summary> /// <param name="columnName">Nombre de la columna</param> /// <param name="containInformation">Idica si la columna debe de contener información (campo requerido)</param> /// <param name="numLines">Indica el nº de líneas de texto para la columna</param> /// <param name="richText">Indica el tipo de texto que se permite (FALSE = Texto sin formato / TRUE = Texto enriquecido)</param> /// <param name="listName">Opcional - Nombre de la lista en la que crear la nueva columna. Si no se indica valor, se tomará el nombre definido en la propiedad ListName</param> /// <param name="description">Opcional - Descripción del campo</param> public void AddNewColumn(string columnName, bool containInformation, int numLines, bool richText, string listName = "", string description = "") { listName = SetListName(listName); if (numLines <= 0) { numLines = 6; } SPFields field = new SPFields { Column = TypeColumn.Multiline, ListName = listName.Trim(), ColumnName = columnName.Trim(), Description = description.Trim(), Type = "Note", FieldMultiText = new SPFieldMultiText { ContainInformation = containInformation, NumLines = numLines, RichText = richText } }; SPFields.Add(field); }
//-------------------------------------------------------------------- #region Crear nuevos campos /// <summary> /// Añade una nueva columna de tipo "Linea de Texto" /// </summary> /// <param name="columnName">Nombre de la columna</param> /// <param name="containInformation">Idica si la columna debe de contener información (campo requerido)</param> /// <param name="uniqueValues">Indica si en la coolumna se deben aplicar valores únicos </param> /// <param name="maxLength">Indica el nº máximo de caracteres para la columna (Entre 1 y 255)</param> /// <param name="defaultValue">Opcional - Indicia el valor por defecto de la columna (solo texto, valor calculado)</param> /// <param name="listName">Opcional - Nombre de la lista en la que crear la nueva columna. Si no se indica valor, se tomará el nombre definido en la propiedad ListName</param> /// <param name="description">Opcional - Descripción del campo</param> public void AddNewColumn(string columnName, bool containInformation, bool uniqueValues, int maxLength, string defaultValue = "", string listName = "", string description = "") { listName = SetListName(listName); if ((maxLength <= 0) || (maxLength > 255)) { maxLength = 255; } SPFields field = new SPFields { Column = TypeColumn.LineOfText, ListName = listName.Trim(), ColumnName = columnName.Trim(), Description = description.Trim(), Type = "Text", FieldText = new Clases.SPFieldText { ContainInformation = containInformation, UniqueValues = uniqueValues, MaxLength = maxLength, DefaultValue = defaultValue.Trim() } }; SPFields.Add(field); }
/// <summary> /// Añade una nueva columna de tipo "Lookup" /// </summary> /// <param name="columnName">Nombre de la columna</param> /// <param name="containInformation">Idica si la columna debe de contener información (campo requerido)</param> /// <param name="listName">Opcional - Nombre de la lista en la que crear la nueva columna. Si no se indica valor, se tomará el nombre definido en la propiedad ListName</param> /// <param name="lookupList">Nombre de la lista con la cual se desea vincular el campo de busqueda</param> /// <param name="lookupField">Nombre del campo a mostrar</param> ///<param name="description">Opcional - Descripción del campo</param> public void AddNewColumn(string columnName, bool containInformation, string lookupList, string lookupField, string listName = "", string description = "") { listName = SetListName(listName); SPFields field = new SPFields { Column = TypeColumn.Lookup, ListName = listName.Trim(), ColumnName = columnName.Trim(), Description = description.Trim(), Type = "Lookup", FieldLookup = new Clases.SPFieldLookup { ContainInformation = containInformation, LookupList = lookupList, LookupField = lookupField } }; SPFields.Add(field); }
/// <summary> /// Añade una nueva columna de tipo "Elección (menú para elegir)" /// </summary> /// <param name="columnName">Nombre de la columna</param> /// <param name="containInformation">Idica si la columna debe de contener información (campo requerido)</param> /// <param name="uniqueValues">Indica si en la coolumna se deben aplicar valores únicos </param> /// <param name="options">Lista de opciones para rellenar la columna</param> /// <param name="typeChoice">Tipo de opciones (Menu desplegable, botones o casillas)</param> /// <param name="defaultValue">Opcional - Valor predeterminado (debe de coincidir con uno de los elementos que componen el parametro 'options')</param> /// <param name="listName">Opcional - Nombre de la lista en la que crear la nueva columna. Si no se indica valor, se tomará el nombre definido en la propiedad ListName</param> /// <param name="description">Opcional - Descripción del campo</param> public void AddNewColumn(string columnName, bool containInformation, bool uniqueValues, string[] options, string defaultValue = "", string listName = "", string description = "") { listName = SetListName(listName); SPFields field = new SPFields { Column = TypeColumn.Choice, ListName = listName.Trim(), ColumnName = columnName.Trim(), Description = description.Trim(), Type = "Choice", FieldChoice = new Clases.SPFieldChoice { ContainInformation = containInformation, UniqueValues = uniqueValues, Options = options, DefaultValue = defaultValue.Trim() } }; SPFields.Add(field); }
/// <summary> /// Añade una nueva columna de tipo "Numero" /// </summary> /// <param name="columnName">Nombre de la columna</param> /// <param name="showAsPercentaje">Indica si el campo numerico es un campo para representar porcentajes (TRUE) o no (FALSE)</param> /// <param name="minValue">Valor numérico mínimo para el campo (null si no desea indicar valor mínimo)</param> /// <param name="MaxValue">Valor numérico máximo para el campo (null si no desea indicar valor máximo)</param> /// <param name="listName">Opcional - Nombre de la lista en la que crear la nueva columna. Si no se indica valor, se tomará el nombre definido en la propiedad ListName</param> /// <param name="description">Opcional - Descripción del campo</param> public void AddNewColumn(string columnName, bool showAsPercentaje, Nullable <double> minValue, Nullable <double> maxValue, string listName = "", string description = "") { listName = SetListName(listName); SPFields field = new SPFields { Column = TypeColumn.Number, ListName = listName.Trim(), ColumnName = columnName.Trim(), Description = description.Trim(), Type = "Number", FieldNumber = new Clases.SPFieldNumber { ShowAsPercentaje = showAsPercentaje } }; //Campos nulos if (double.TryParse(minValue.ToString(), out double Value1)) { field.FieldNumber.MinValue = Value1; } if (double.TryParse(maxValue.ToString(), out double Value2)) { field.FieldNumber.MaxValue = Value2; } if ((field.FieldNumber.MinValue != 0) && (field.FieldNumber.MaxValue != 0) && (field.FieldNumber.MinValue > field.FieldNumber.MaxValue)) { //Si se da la casualidad de que el valor minimo indicado es mayor al valor máximo, anulamos ambos valores (quitamos minimo y maximo) field.FieldNumber.MinValue = 0; field.FieldNumber.MaxValue = 0; } SPFields.Add(field); }