/// <summary> /// /// </summary> /// <param name="web"></param> /// <param name="group"></param> /// <param name="description"></param> /// <param name="name"></param> /// <param name="displayName"></param> /// <param name="decimals"></param> public static void CreateNumberColumn(this SPWeb web, string group, string description, string name, string displayName, SPNumberFormatTypes decimals = SPNumberFormatTypes.Automatic) { try { if (!web.Fields.ContainsField(name)) { string fieldName = web.Fields.Add(name, SPFieldType.Number, false); SPFieldNumber field = (SPFieldNumber)web.Fields.GetField(name); field.Group = group; field.DisplayFormat = decimals; field.StaticName = name; field.Title = displayName; field.NoCrawl = false; field.Description = description; field.Update(); } } catch (Exception ex) { SPDiagnosticsService.Local.WriteTrace(0, new SPDiagnosticsCategory("CORE:HELPERS", TraceSeverity.Unexpected, EventSeverity.Error), TraceSeverity.Unexpected, String.Format("Exception happened in Helpers:CreateNumberColumn. MESSAGE: {0}. EXCEPTION TRACE: {1} ", ex.Message, ex.StackTrace), ex.StackTrace); } }
public SPFieldNumber NewOrRefNumber(string Name) { string NumberName = this.Web().Fields.ContainsField(Name) ? Name : this.Web().Fields.Add(Name, SPFieldType.Number, false); SPFieldNumber NumberField = (SPFieldNumber)this.Web().Fields.GetFieldByInternalName(NumberName); NumberField.Group = this.columnGroup; return(NumberField); }
private void CheckForQuickLaunchField(SPWeb spWeb) { spWeb.AllowUnsafeUpdates = true; SPList list = spWeb.Lists.TryGetList(INSTALLED_APPS); if (list != null) { if (!list.Fields.ContainsFieldWithInternalName("QuickLaunchOrder")) { SPFieldNumber fldQuickLaunchOrder = (SPFieldNumber)list.Fields.CreateNewField(SPFieldType.Number.ToString(), "QuickLaunchOrder"); fldQuickLaunchOrder.Title = "QuickLaunchOrder"; fldQuickLaunchOrder.DisplayFormat = SPNumberFormatTypes.NoDecimal; fldQuickLaunchOrder.Indexed = false; list.Fields.Add(fldQuickLaunchOrder); list.Update(); fldQuickLaunchOrder = list.Fields["QuickLaunchOrder"] as SPFieldNumber; fldQuickLaunchOrder.Title = "QuickLaunchOrder"; fldQuickLaunchOrder.ShowInListSettings = true; fldQuickLaunchOrder.DefaultValue = "1000"; fldQuickLaunchOrder.ShowInDisplayForm = true; fldQuickLaunchOrder.ShowInNewForm = true; fldQuickLaunchOrder.ShowInEditForm = true; fldQuickLaunchOrder.Hidden = false; fldQuickLaunchOrder.Update(); SPView tdefaultList = list.DefaultView; tdefaultList.ViewFields.Add("QuickLaunchOrder"); tdefaultList.Update(); int index = 0; SPQuery query = new SPQuery(); query.Query = "<Where><IsNull><FieldRef Name='EXTID'/></IsNull></Where><OrderBy><FieldRef Name='Title'/></OrderBy>"; foreach (SPListItem li in list.GetItems(query)) { if (spWeb.ParentWeb == null && li["Title"].ToString().Equals("Global My Workplace", StringComparison.InvariantCultureIgnoreCase)) { li["QuickLaunchOrder"] = "-1"; } else { li["QuickLaunchOrder"] = index++; } li.Update(); } } } spWeb.AllowUnsafeUpdates = false; }
public static string FormatValueAsText(this SPFieldCalculated calcField, string rawValue) { string result = rawValue; CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture; switch (calcField.OutputType) { case SPFieldType.Number: try { var numberValue = Convert.ToDouble(rawValue); result = SPFieldNumber.GetFieldValueAsText(numberValue, currentCulture, calcField.ShowAsPercentage, calcField.DisplayFormat); } catch { result = string.Empty; } break; case SPFieldType.DateTime: try { var dateValue = Convert.ToDateTime(rawValue); result = SPFieldDateTime.GetFieldValueAsText(dateValue, SPContext.Current.Web, calcField.DateFormat == SPDateTimeFieldFormatType.DateTime ? SPDateFormat.DateTime : SPDateFormat.DateOnly); } catch { result = string.Empty; } break; case SPFieldType.Currency: try { double data = Convert.ToDouble(rawValue, CultureInfo.InvariantCulture); result = SPFieldCurrency.GetFieldValueAsText(data, currentCulture, calcField.CurrencyLocaleId, calcField.DisplayFormat); } catch { result = string.Empty; } break; case SPFieldType.Boolean: try { result = Convert.ToBoolean(Convert.ToByte(rawValue)).ToString(); } catch { } break; default: break; } return(result); }
private static void AddColumnToDiscussion(SPWeb web) { try { SPList list = web.Lists.TryGetList("BreakThroughProcertProjectsTrackingDiscussions"); web.AllowUnsafeUpdates = true; SPFieldNumber fldEmpID1 = (SPFieldNumber)list.Fields.CreateNewField( SPFieldType.Number.ToString(), "SigmaId"); fldEmpID1.ShowInViewForms = true; SPFieldCollection fields = list.Fields; if (!fields.ContainsField("SigmaId")) { list.Fields.Add(fldEmpID1); } list.Update(); web.AllowUnsafeUpdates = false; } catch (Exception ex) { } }
private SPList EnsureGlymaExportsList() { bool isNewList = false; SPList list = Site.EnsureList(GlymaLists.GlymaExportsList, ref isNewList); SPField titleColumn = list.Fields[SPBuiltInFieldId.Title]; titleColumn.Indexed = true; titleColumn.Title = "WorkItem ID"; titleColumn.EnforceUniqueValues = true; titleColumn.Update(); bool isNewColumn = false; SPField exportStatus = list.EnsureColumn(GlymaColumns.ExportStatus, false, ref isNewColumn); exportStatus.Required = true; exportStatus.Update(); isNewColumn = false; SPField exportType = list.EnsureColumn(GlymaColumns.ExportType, false, ref isNewColumn); exportType.Required = true; exportType.Update(); isNewColumn = false; SPField mapType = list.EnsureColumn(GlymaColumns.MapType, false, ref isNewColumn); mapType.Required = true; mapType.Update(); isNewColumn = false; SPField percentageCompletedField = list.EnsureColumn(GlymaColumns.PercentageComplete, false, ref isNewColumn); SPFieldNumber percentComplete = percentageCompletedField as SPFieldNumber; percentComplete.Required = true; percentComplete.ShowAsPercentage = true; percentComplete.MaximumValue = 1; percentComplete.MinimumValue = 0; percentComplete.Update(); isNewColumn = false; SPField domainUid = list.EnsureColumn(GlymaColumns.DomainUid, false, ref isNewColumn); domainUid.Required = true; domainUid.Update(); isNewColumn = false; SPField rootMapUid = list.EnsureColumn(GlymaColumns.RootMapUid, false, ref isNewColumn); rootMapUid.Required = true; rootMapUid.Update(); isNewColumn = false; SPField exportPropertiesField = list.EnsureColumn(GlymaColumns.ExportProperties, false, ref isNewColumn); SPFieldMultiLineText exportProperties = exportPropertiesField as SPFieldMultiLineText; exportProperties.Required = false; exportProperties.AppendOnly = false; exportProperties.RichText = false; exportProperties.Update(); isNewColumn = false; SPField logMessagesField = list.EnsureColumn(GlymaColumns.LogMessages, false, ref isNewColumn); SPFieldMultiLineText logMessages = logMessagesField as SPFieldMultiLineText; logMessages.Required = false; logMessages.AppendOnly = true; logMessages.RichText = false; logMessages.Update(); SPField lastModifiedField = list.Fields[SPBuiltInFieldId.Modified]; // Configure the default view for the list. SPView defaultView = list.DefaultView; defaultView.ViewFields.DeleteAll(); defaultView.ViewFields.Add(titleColumn); defaultView.ViewFields.Add(exportStatus); defaultView.ViewFields.Add(exportType); defaultView.ViewFields.Add(mapType); defaultView.ViewFields.Add(percentComplete); defaultView.ViewFields.Add(domainUid); defaultView.ViewFields.Add(rootMapUid); defaultView.ViewFields.Add(exportProperties); defaultView.ViewFields.Add(logMessages); defaultView.Query = "<OrderBy><FieldRef Name=\"" + lastModifiedField.InternalName + "\" Ascending=\"FALSE\" /></OrderBy>"; defaultView.Update(); return(list); }
public static void AddColForSortToList(string siteUrl) { if (!string.IsNullOrEmpty(siteUrl)) { string colName = "ColForSort"; List <string> listNameCollection = new List <string>() { "Change Shift Management", "Leave Of Absence For Overtime Management", "Vehicle Management", "Leave Management" }; //"Overtime Management", "Overtime Employee Details", try { SPSecurity.RunWithElevatedPrivileges(delegate() { Console.Write("Processing..."); using (SPSite spSite = new SPSite(siteUrl)) { using (SPWeb spWeb = spSite.RootWeb) { #region CalculatedField foreach (var listName in listNameCollection) { SPList spList = spWeb.Lists.TryGetList(listName); if (spList != null) { Console.WriteLine(); Console.Write("List Name: {0}", listName); spWeb.AllowUnsafeUpdates = true; if (spList.Fields.ContainsField(colName) == false) { spList.Fields.Add(colName, SPFieldType.Calculated, false); SPField spField = spList.Fields.TryGetFieldByStaticName(colName); if (spField != null) { SPFieldCalculated calculatedField = spField as SPFieldCalculated; calculatedField.OutputType = SPFieldType.Number; calculatedField.DisplayFormat = SPNumberFormatTypes.NoDecimal; calculatedField.Formula = "=IF([Approval Status]=\"Approved\",INT(\"7\"),IF([Approval Status]=\"Rejected\",INT(\"8\"),IF([Approval Status]=\"Cancelled\",INT(\"9\"),INT(\"0\"))))"; calculatedField.Update(); Console.Write(" -> Done"); } else { Console.Write(" -> Failed"); } } else { Console.Write(" -> Existed"); } spWeb.AllowUnsafeUpdates = false; } else { Console.WriteLine(); Console.Write("Cannot find list: {0}", listName); } } #endregion #region Create ColForSort for Overtime Management List string overtimeManagementListName = "Overtime Management"; Console.WriteLine(); Console.Write("List Name: {0}", overtimeManagementListName); SPList overtimeManagementList = spWeb.Lists.TryGetList(overtimeManagementListName); if (overtimeManagementList != null) { if (overtimeManagementList.Fields.ContainsField(colName) == false) { spWeb.AllowUnsafeUpdates = true; overtimeManagementList.Fields.Add(colName, SPFieldType.Number, false); SPField spField = overtimeManagementList.Fields.TryGetFieldByStaticName(colName); if (spField != null) { SPFieldNumber spFieldNumber = spField as SPFieldNumber; spFieldNumber.DisplayFormat = SPNumberFormatTypes.NoDecimal; spFieldNumber.Update(); Console.Write(" -> Done"); } else { Console.Write(" -> Failed"); } spWeb.AllowUnsafeUpdates = false; } else { Console.Write(" -> Existed"); } } else { Console.WriteLine(); Console.Write("Cannot find list: {0}", overtimeManagementListName); } #endregion #region Create CalculateField ColForSort for Overtime Employee Details list string overtimeDetailsListName = "Overtime Employee Details"; Console.WriteLine(); Console.Write("List Name: {0}", overtimeDetailsListName); SPList overtimeDetailsList = spWeb.Lists.TryGetList(overtimeDetailsListName); SPList overtimeList = spWeb.Lists.TryGetList("Overtime Management"); if (overtimeDetailsList != null && overtimeList != null) { if (overtimeDetailsList.Fields.ContainsField(colName) == false && overtimeList.Fields.ContainsField(colName) == true) { spWeb.AllowUnsafeUpdates = true; overtimeDetailsList.Fields.AddDependentLookup(colName, new Guid("{878e2996-150c-4e63-b632-ba90dec566a0}")); SPField spField = overtimeDetailsList.Fields.TryGetFieldByStaticName(colName); if (spField != null) { SPFieldLookup spFieldLookup = spField as SPFieldLookup; spFieldLookup.LookupField = colName; spFieldLookup.Update(); Console.Write(" -> Done"); } else { Console.Write(" -> Failed"); } spWeb.AllowUnsafeUpdates = false; } else { Console.Write(" -> Existed"); } } #endregion } } }); } catch (Exception ex) { Console.WriteLine(string.Format("Error: {0}", ex.Message)); } Console.WriteLine(); //Console.Write("Press any key to exit..."); //Console.Read(); } else { Console.Write("Troll?"); Console.Read(); } }
//Create Site Columns public void CreateSiteColumns() { using (SPWeb oSPWeb = oSPSite.RootWeb) { try { //if (!oSPWeb.Fields.ContainsField("Codigo")) //{ //Codigo de Documento string codigoField = oSPWeb.Fields.Add("Codigo", SPFieldType.Text, false); SPFieldText Codigo = (SPFieldText)oSPWeb.Fields.GetFieldByInternalName(codigoField); Codigo.Group = groupColumn; Codigo.Update(); //} //if (!oSPWeb.Fields.ContainsField("Referencia")) //{ string referenciaField = oSPWeb.Fields.Add("Referencia", SPFieldType.Text, false); SPFieldText Referencia = (SPFieldText)oSPWeb.Fields.GetFieldByInternalName(referenciaField); Referencia.Group = groupColumn; Referencia.Update(); //} //if (!oSPWeb.Fields.ContainsField("Comentario")) { string comentarioField = oSPWeb.Fields.Add("Comentario", SPFieldType.Text, false); SPFieldText Comentario = (SPFieldText)oSPWeb.Fields.GetFieldByInternalName(comentarioField); Comentario.Group = groupColumn; Comentario.Update(); //} //if (!oSPWeb.Fields.ContainsField("Remitente")) //{ string remitenteField = oSPWeb.Fields.Add("Remitente", SPFieldType.Text, false); SPFieldText Remitente = (SPFieldText)oSPWeb.Fields.GetFieldByInternalName(remitenteField); Remitente.Group = groupColumn; Remitente.Update(); //} //if (!oSPWeb.Fields.ContainsField("Factura")) { string facturaField = oSPWeb.Fields.Add("Factura", SPFieldType.Number, false); SPFieldNumber Factura = (SPFieldNumber)oSPWeb.Fields.GetFieldByInternalName(facturaField); Factura.Group = groupColumn; Factura.Update(); //} //if (!oSPWeb.Fields.ContainsField("Fecha Receopcion")) { string fechaRecepcionField = oSPWeb.Fields.Add("Fecha Recepcion", SPFieldType.DateTime, true); SPFieldDateTime FechaRecepcion = (SPFieldDateTime)oSPWeb.Fields.GetFieldByInternalName(fechaRecepcionField); FechaRecepcion.Group = groupColumn; FechaRecepcion.Update(); //} //Method 3 using Field schema //if (!oSPWeb.Fields.ContainsField("Nota")) //{ string notaField = oSPWeb.Fields.Add("Nota", SPFieldType.Note, false); SPFieldMultiLineText Nota = (SPFieldMultiLineText)oSPWeb.Fields.GetFieldByInternalName(notaField); Nota.Group = groupColumn; Nota.Update(); //} //if (!oSPWeb.Fields.ContainsField("Gerencias")) //{ // Lookup Column SPList gerenciasList = oSPWeb.Lists.TryGetList("Gerencias"); string GerenciaField = oSPWeb.Fields.AddLookup("Gerencia", gerenciasList.ID, true); SPFieldLookup gerenciaLookup = (SPFieldLookup)oSPWeb.Fields.GetFieldByInternalName(GerenciaField); gerenciaLookup.Group = groupColumn; gerenciaLookup.LookupField = "Title"; gerenciaLookup.Update(); //} SPList listas = oSPWeb.Lists.TryGetList("Listas"); //if (!oSPWeb.Fields.ContainsField("Nivel Prioridad")) //{ string nivelPrioridadField = oSPWeb.Fields.AddLookup("Nivel Prioridad", listas.ID, true); SPFieldLookup nivelPrioridadLookup = (SPFieldLookup)oSPWeb.Fields.GetFieldByInternalName(nivelPrioridadField); nivelPrioridadLookup.Group = groupColumn; nivelPrioridadLookup.LookupField = "Title"; nivelPrioridadLookup.Update(); //} //if (!oSPWeb.Fields.ContainsField("Clasificacion")) //{ string clasificacionField = oSPWeb.Fields.AddLookup("Clasificacion", listas.ID, true); SPFieldLookup clasificacionLookup = (SPFieldLookup)oSPWeb.Fields.GetFieldByInternalName(clasificacionField); clasificacionLookup.Group = groupColumn; clasificacionLookup.LookupField = "Title"; clasificacionLookup.Update(); //} //if (!oSPWeb.Fields.ContainsField("Estado")) //{ string estadoField = oSPWeb.Fields.AddLookup("Estado", listas.ID, false); SPFieldLookup estadoLookup = (SPFieldLookup)oSPWeb.Fields.GetFieldByInternalName(estadoField); estadoLookup.Group = groupColumn; estadoLookup.LookupField = "Title"; estadoLookup.Update(); //} } catch (Exception) { throw; } } }
private void GenerateGridColumns() { if (this._camlXmlQuery.ViewFields == null) { return; } { if (this._head.Heads == null) { this._head.Heads = new List <Head>(); } Head settingsHeader = this._head.Heads.FirstOrDefault(); if (settingsHeader == null) { this._head.Heads.Clear(); this._head.Heads.Add(new Head { Position = "Top", ColumnGroups = new List <ColumnGroup> { new ColumnGroup { Hide = true } } }); } } // а эта колонка нужна для работы клиентского контеста и рибона this._head.Heads[0].ColumnGroups[0].Columns.Add(new ColumnProperties { FieldName = Constants.ColumnSpPrefix + "ID", Caption = "#", Visible = false, Type = SPFieldType.Text.ToString(), GroupIndex = -1 }); // а эта колонка нужна для работы клиентского контеста и рибона //this._head.Heads[0].ColumnGroups[0].Columns.Add(new ColumnProperties //{ // FieldName = "FullId", // Caption = "#", // Visible = false, // Type = SPFieldType.Text.ToString(), // GroupIndex = -1 //}); // а эта колонка нужна для ссылки на элемент bool linkIsPopupWindow = !this._spView.ParentList.NavigateForFormsPages; this._head.Heads[0].ColumnGroups[0].Columns.Add(new ColumnProperties { FieldName = "EditUrl", Caption = "#", Visible = true, Type = Enums.FieldType.AdvancedUrl.ToString(), NavigateUrlFormatString = "{0}", TextField = Constants.ColumnSpPrefix + "ID", // TextField = "FullId", LinkIsPopupWindow = linkIsPopupWindow, GroupIndex = -1 }); List <string> excludedFieldsList = new List <string> { "_CheckinComment", "_CopySource", "CheckoutUser", "AppEditor", "AppAuthor", "FileSizeDisplay", "DocIcon" }; foreach (CamlXmlFieldRef fieldRef in this._camlXmlQuery.ViewFields.FieldRef) { bool isExcledudField = excludedFieldsList.Any(excludedFieldList => String.Equals(fieldRef.Name, excludedFieldList, StringComparison.InvariantCultureIgnoreCase)); if (isExcledudField || !this._spView.ParentList.Fields.ContainsField(fieldRef.Name)) { continue; } SPField spField = this._spView.ParentList.Fields.GetField(fieldRef.Name); ColumnProperties column = new ColumnProperties { FieldName = fieldRef.Name, Caption = spField.Title, Visible = true, Type = spField.Type.ToString(), GroupIndex = -1 }; SPFieldNumber spFieldNumber = spField as SPFieldNumber; if (spFieldNumber != null && spFieldNumber.DisplayFormat != SPNumberFormatTypes.Automatic && spFieldNumber.DisplayFormat != SPNumberFormatTypes.NoDecimal) { column.DisplayFormat = "N2"; } if (this._camlXmlQuery.Query != null && this._camlXmlQuery.Query.GroupBy != null && this._camlXmlQuery.Query.GroupBy.FieldRef != null && this._camlXmlQuery.Query.GroupBy.FieldRef.Count != 0) { if (this._camlXmlQuery.Query.GroupBy.FieldRef.Any(f => f.Name == fieldRef.Name)) { int max = this._head.Heads[0].ColumnGroups[0].Columns.Max(c => c.GroupIndex); column.GroupIndex = max == 0 ? 0 : max + 1; } } if (this._camlXmlQuery.Aggregations != null && this._camlXmlQuery.Aggregations.Value == "On" && this._camlXmlQuery.Aggregations.FieldRef != null && this._camlXmlQuery.Aggregations.FieldRef.Count != 0) { foreach (CamlXmlFieldRef camlXmlFieldRef in this._camlXmlQuery.Aggregations.FieldRef) { if (camlXmlFieldRef.Name == fieldRef.Name) { column.Summary = true; column.SummaryType = this.GetSummaryType(camlXmlFieldRef.Type); column.ShowSummary = 1; } } } this._head.Heads[0].ColumnGroups[0].Columns.Add(column); } }
private static string GetCellValue(SPListItem li, SPField oField, bool bEditMode, SPWeb oWeb) { var currenvyCultureInfo = new CultureInfo(1033); string val = ""; NumberFormatInfo providerEn = new System.Globalization.NumberFormatInfo(); providerEn.NumberDecimalSeparator = "."; providerEn.NumberGroupSeparator = ","; providerEn.NumberGroupSizes = new int[] { 3 }; if (li[oField.Id] != null) { val = li[oField.Id].ToString(); switch (oField.Type) { case SPFieldType.User: if (bEditMode) { SPFieldUserValueCollection lvc = new SPFieldUserValueCollection(oWeb, val); val = ""; foreach (SPFieldUserValue lv in lvc) { val += ";" + lv.LookupId; } val = val.Trim(';'); } else { val = oField.GetFieldValueForEdit(li[oField.Id].ToString()); } break; case SPFieldType.Lookup: if (bEditMode) { SPFieldLookupValueCollection lvc = new SPFieldLookupValueCollection(val); val = ""; foreach (SPFieldLookupValue lv in lvc) { val += ";" + lv.LookupId; } val = val.Trim(';'); } else { val = oField.GetFieldValueForEdit(li[oField.Id].ToString()); } break; case SPFieldType.MultiChoice: if (bEditMode) { SPFieldMultiChoiceValue v = (SPFieldMultiChoiceValue)oField.GetFieldValue(li[oField.Id].ToString()); val = ""; for (int i = 0; i < v.Count; i++) { val += ";" + v[i]; } val = val.Trim(';'); } else { oField.GetFieldValueForEdit(val); } break; case SPFieldType.Calculated: val = li[oField.Id].ToString(); if (oField.Description == "Indicator" || val.ToLower().EndsWith(".gif") || val.ToLower().EndsWith(".png") || val.ToLower().EndsWith(".jpg")) { val = "<img src=\"/_layouts/15/images/" + oField.GetFieldValueAsText(val) + "\">"; } else { val = val.Substring(val.IndexOf(";#") + 2); } break; case SPFieldType.Currency: try { val = ((double)li[oField.Id]).ToString(currenvyCultureInfo.NumberFormat); } catch { val = "0"; } break; case SPFieldType.Number: SPFieldNumber fNum = (SPFieldNumber)oField; if (fNum.ShowAsPercentage) { try { val = (float.Parse(val) * 100).ToString(providerEn); } catch { } } else { //if (bEditMode) //{ // val = li[oField.Id].ToString(); //} //else // val = oField.GetFieldValueAsText(li[oField.Id].ToString()); try { val = ((double)li[oField.Id]).ToString(currenvyCultureInfo.NumberFormat); } catch { val = "0"; } } break; case SPFieldType.Boolean: val = "0"; try { if (li[oField.Id].ToString().ToLower() == "yes" || li[oField.Id].ToString().ToLower() == "true") { val = "1"; } } catch { } break; case SPFieldType.DateTime: try { val = ((DateTime)li[oField.Id]).ToString("u"); } catch { } break; default: if (bEditMode) { val = li[oField.Id].ToString(); } else { val = oField.GetFieldValueAsText(li[oField.Id]); } break; } } return(val); }
private static void iSetGridRowEdit(ref XmlDocument doc, SPWeb oWeb, XmlDocument DocIn) { Guid ListId = new Guid(DocIn.FirstChild.Attributes["listid"].Value); int itemid = int.Parse(DocIn.FirstChild.Attributes["itemid"].Value); SPList list = oWeb.Lists[ListId]; SPListItem li = list.GetItemById(itemid); var gSettings = new GridGanttSettings(list); oWeb.AllowUnsafeUpdates = true; foreach (XmlNode nd in DocIn.FirstChild.SelectNodes("//Field")) { SPField oField = null; try { if (nd.Attributes["Name"].Value == "FState") { oField = list.Fields.GetFieldByInternalName("State"); } else { oField = list.Fields.GetFieldByInternalName(nd.Attributes["Name"].Value); } } catch { } if (oField != null) { string sFieldValue = System.Web.HttpUtility.UrlDecode(nd.InnerText); switch (oField.Type) { case SPFieldType.User: if (nd.InnerText != "") { string[] sUVals = sFieldValue.Split(';'); SPFieldUserValueCollection uvc = new SPFieldUserValueCollection(); foreach (string sVal in sUVals) { SPFieldUserValue lv = new SPFieldUserValue(oWeb, sVal); uvc.Add(lv); } li[oField.Id] = uvc; } else { li[oField.Id] = null; } break; case SPFieldType.Lookup: // Need to check for null / empty value otherwise it will display invalid lookup value error message // when we click outside the grid after editing lookup field value by double clicking on the field. if (!string.IsNullOrEmpty(nd.InnerText)) { string[] sVals = sFieldValue.Split(';'); SPFieldLookupValueCollection lvc = new SPFieldLookupValueCollection(); foreach (string sVal in sVals) { SPFieldLookupValue lv = new SPFieldLookupValue(sVal); lvc.Add(lv); } li[oField.Id] = lvc; } else { li[oField.Id] = null; } break; case SPFieldType.MultiChoice: li[oField.Id] = sFieldValue.Replace(";", ";#"); break; case SPFieldType.Currency: if (nd.InnerText == "") { li[oField.Id] = null; } else { li[oField.Id] = sFieldValue; } break; case SPFieldType.Number: SPFieldNumber fNum = (SPFieldNumber)oField; if (fNum.ShowAsPercentage) { try { li[oField.Id] = float.Parse(sFieldValue, CultureInfo.InvariantCulture) / 100; } catch { li[oField.Id] = null; } } else { if (nd.InnerText == "") { li[oField.Id] = null; } else { li[oField.Id] = sFieldValue; } } break; case SPFieldType.DateTime: if (nd.InnerText == "") { li[oField.Id] = null; } else { li[oField.Id] = new DateTime(1970, 1, 1, 0, 0, 0, 0).AddMilliseconds(double.Parse(sFieldValue)); } break; default: li[oField.Id] = sFieldValue; break; } } } try { if (gSettings.EnableWorkList) { if (li.Fields.ContainsField(FieldCompleteName)) { if ((bool)li[FieldCompleteName]) { li[FieldCompletePercentName] = 1; if (list.Title == ListProjectCenterName) { li[FieldProjectCompletePercentName] = 1; } } } } } catch {} li.Update(); iGetRowValue(ref doc, oWeb, DocIn, list, li, true); }
private void SetListFormFields(Control canvas) { List <DesignDataSource> sources = new List <DesignDataSource>(); if (!string.IsNullOrEmpty(DataSourcesData)) { sources = Utilities.DeserializeObject <List <DesignDataSource> >(DataSourcesData); } if (inEditMode) { } SPSecurity.RunWithElevatedPrivileges(delegate() { SPSite site = SPContext.Current.Site; foreach (DesignDataSource source in sources) { SPWeb web = site.OpenWeb(new Guid(source.WebId)); SPList list = web.Lists[new Guid(source.ListId)]; SPView view = list.GetView(new Guid(source.ViewId)); SPViewFieldCollection viewfields = view.ViewFields; foreach (var viewfield in viewfields) { if (list.Fields.ContainsField(viewfield.ToString())) { try { string fieldname = viewfield.ToString().Replace("_x0020_", " "); SPField field = list.Fields.GetField(fieldname); FormField fld = new FormField(); if (inEditMode && Page.IsPostBack) //if (DesignMode)// && Page.IsPostBack) { fld.ControlMode = SPControlMode.Display; } else { fld.ControlMode = SPControlMode.New; } //fld.ControlMode = SPControlMode.New; fld.ListId = list.ID; fld.FieldName = field.InternalName; fld.ID = field.InternalName; fld.DisableInputFieldLabel = true; fld.InDesign = inEditMode; fld.IsValid = inEditMode; try { if (!string.IsNullOrEmpty(field.DefaultValue)) { if (field.FieldValueType == typeof(Boolean)) { bool isbool = false; fld.Value = (Boolean.TryParse(field.DefaultValue, out isbool)); fld.InputFieldLabel = string.Empty; } else { fld.Value = field.DefaultValue; } } } catch (Exception) { } canvas.Controls.Add(fld); if (field.Required) { InputFormRequiredFieldValidator required = new InputFormRequiredFieldValidator(); required.ID = "required_" + fld.ClientID; required.ControlToValidate = fld.ClientID; required.ValidationGroup = fld.ClientID; required.ErrorMessage = field.ValidationMessage; //required.EnableClientScript = true; required.BreakAfter = true; required.BreakBefore = false; required.Display = System.Web.UI.WebControls.ValidatorDisplay.Dynamic; canvas.Controls.Add(required); } if (field.Type == SPFieldType.Number) { SPFieldNumber Number = (SPFieldNumber)field; if (Number.MinimumValue != Double.MinValue && Number.MaximumValue != Double.MaxValue) { InputFormRangeValidator range = new InputFormRangeValidator(); range.ID = "range_" + fld.ClientID; range.ControlToValidate = fld.ClientID; range.ValidationGroup = fld.ClientID; range.ErrorMessage = field.ValidationMessage; //range.EnableClientScript = true; range.BreakAfter = true; range.BreakBefore = false; range.Display = System.Web.UI.WebControls.ValidatorDisplay.Dynamic; range.MaximumValue = Number.MaximumValue.ToString(); range.MinimumValue = Number.MinimumValue.ToString(); range.Type = System.Web.UI.WebControls.ValidationDataType.Double; canvas.Controls.Add(range); } } if (field.Type == SPFieldType.Currency) { SPFieldCurrency Currency = (SPFieldCurrency)field; if (Currency.MaximumValue != Double.MaxValue && Currency.MinimumValue != Double.MinValue) { InputFormRangeValidator range = new InputFormRangeValidator(); range.ID = "range_" + fld.ClientID; range.ControlToValidate = fld.ClientID; range.ValidationGroup = fld.ClientID; range.ErrorMessage = field.ValidationMessage; //range.EnableClientScript = true; range.BreakAfter = true; range.BreakBefore = false; range.Display = System.Web.UI.WebControls.ValidatorDisplay.Dynamic; range.MaximumValue = Currency.MaximumValue.ToString(); range.MinimumValue = Currency.MinimumValue.ToString(); range.Type = System.Web.UI.WebControls.ValidationDataType.Currency; canvas.Controls.Add(range); } } if (!string.IsNullOrEmpty(field.ValidationFormula)) { InputFormRegularExpressionValidator regex = new InputFormRegularExpressionValidator(); regex.ControlToValidate = fld.ClientID; regex.ValidationGroup = fld.ClientID; regex.ErrorMessage = fld.ErrorMessage; regex.ErrorMessage = field.ValidationMessage; //regex.EnableClientScript = true; regex.BreakAfter = true; regex.BreakBefore = false; regex.Display = System.Web.UI.WebControls.ValidatorDisplay.Dynamic; regex.ValidationExpression = field.ValidationFormula; canvas.Controls.Add(regex); } /* * if (field.Type == SPFieldType.MultiChoice) * { * InputFormCheckBoxListValidator checkboxes = new InputFormCheckBoxListValidator(); * //SPFieldMultiChoice choice = (SPFieldMultiChoice)field; * checkboxes.ControlToValidate = fld.ClientID; * checkboxes.ValidationGroup = fld.ClientID; * checkboxes.ErrorMessage = fld.ErrorMessage; * checkboxes.EnableClientScript = true; * //checkboxes.BreakAfter = true; * checkboxes.Display = System.Web.UI.WebControls.ValidatorDisplay.Dynamic; * canvas.Controls.Add(checkboxes); * * } */ } catch (Exception ex) { ex.Message.ToString(); } } } } }); }
public static string GetDisplayFormat(this SPFieldNumber field) { return(field.DisplayFormat.ToString()); }
public DataTable GetItems(SPList spList, IEnumerable <ColumnProperties> columnList, string sqlFilter, int userId = -1, List <int> userGroups = null, long itemLimit = 0) { DataTable tableData = new DataTable(); try { // а эта колонка нужна для работы клиентского контеста и рибона { string columnType = this.Adapter.GetDataBaseType(SPFieldType.Text); Type baseType = this.Adapter.GetTypeByDataBaseType(columnType); Columns column = new Columns { ColumnName = Constants.ColumnSpPrefix + "ID", ColumnType = columnType }; this.Adapter.TableStruct.Columns.Add(column); tableData.Columns.Add(Constants.ColumnSpPrefix + "ID", baseType); } foreach ( ColumnProperties columnProperties in columnList.Where(c => c.FieldName != Constants.ColumnSpPrefix + "ID" && c.FieldName != "ID")) { SPFieldType fieldType; Enum.TryParse(columnProperties.Type, true, out fieldType); string columnType = this.Adapter.GetDataBaseType(fieldType); bool decimalType = false; if (fieldType == SPFieldType.Number) { SPFieldNumber filed = spList.Fields.GetField(columnProperties.FieldName) as SPFieldNumber; if (filed != null && filed.DisplayFormat != SPNumberFormatTypes.Automatic && filed.DisplayFormat != SPNumberFormatTypes.NoDecimal) { decimalType = true; } } Type baseType = this.Adapter.GetTypeByDataBaseType(columnType, decimalType); Columns column = new Columns { ColumnName = columnProperties.FieldName, ColumnType = columnType }; if (this.Adapter.TableStruct.Columns.Any(c => c.ColumnName == column.ColumnName)) { continue; } this.Adapter.TableStruct.Columns.Add(column); tableData.Columns.Add(columnProperties.FieldName, baseType); } string tableNameSetting; switch (this._syncType) { case SyncType.SpList: tableNameSetting = this.Adapter.BuildTableName(spList.RootFolder.ServerRelativeUrl); break; case SyncType.SpContentType: tableNameSetting = SettingsProvider.Instance(spList.ParentWeb).TableName(spList); this.Adapter.TableStruct.TableName = this.Adapter.BuildTableName(tableNameSetting); break; default: throw new ArgumentOutOfRangeException(); } string tableName = this.Adapter.BuildTableName(tableNameSetting); this.Adapter.TableStruct.TableName = tableName; ArchiveCacheCRUD syncCrud = new ArchiveCacheCRUD(spList.ParentWeb.Site); IEnumerable <dynamic> cacheTableData = syncCrud.GetCacheTable(userGroups ?? new List <int>(), userId, this.Adapter.TableStruct, sqlFilter, itemLimit, spList.ParentWeb); if (cacheTableData == null) { return(tableData); } foreach (IDictionary <string, object> item in cacheTableData) { DataRow dataRow = tableData.NewRow(); foreach (DataColumn column in tableData.Columns) { string columnName = column.ColumnName == "Id" ? column.ColumnName.ToUpperInvariant() : column.ColumnName; object val = item[columnName]; if (val != null) { dataRow[column.ColumnName] = val; } } tableData.Rows.Add(dataRow); } } catch (Exception ex) { Logger.WriteError(ex.Message, ex); } return(tableData); }
private string getFieldValue(string fieldname, string value) { try { SPField oField = base.list.Fields.GetFieldByInternalName(fieldname); switch (oField.Type) { case SPFieldType.DateTime: if (value != "") { try { DateTime dt = (DateTime)oField.GetFieldValue(value); return(dt.ToString("yyyy-MM-dd HH:mm:ss")); } catch { } } return(value); case SPFieldType.Number: SPFieldNumber num = (SPFieldNumber)oField; if (num.ShowAsPercentage) { if (value.Contains("%")) { return(value.Replace("%", "")); } else { return((float.Parse(value, providerEn) * 100).ToString(providerEn)); } } else { return(float.Parse(value, providerEn).ToString(providerEn)); } case SPFieldType.Calculated: if (oField.Description == "Indicator") { if (value != "" && !value.StartsWith("<img src")) { value = "<img src=\"/_layouts/images/" + value.ToLower() + "\">"; } } SPFieldCalculated calc = (SPFieldCalculated)oField; if (calc.ShowAsPercentage) { if (value.Contains("%")) { return(value.Replace("%", "")); } else { return((float.Parse(value, providerEn) * 100).ToString(providerEn)); } } else { return(float.Parse(value, providerEn).ToString(providerEn)); } case SPFieldType.Boolean: if (value.ToLower() == "true") { return("1"); } return("0"); case SPFieldType.Note: return(HttpUtility.HtmlDecode(value)); default: switch (oField.TypeAsString) { case "TotalRollup": return(oField.GetFieldValueAsText(value)); default: return(HttpUtility.HtmlDecode(value)); } } } catch { } return(value); }