Beispiel #1
0
    /// <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);
        }
    }
Beispiel #2
0
        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;
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #7
0
        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();
            }
        }
Beispiel #8
0
        //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);
            }
        }
Beispiel #10
0
        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);
        }
Beispiel #11
0
        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);
        }
Beispiel #12
0
        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();
                            }
                        }
                    }
                }
            });
        }
Beispiel #13
0
 public static string GetDisplayFormat(this SPFieldNumber field)
 {
     return(field.DisplayFormat.ToString());
 }
Beispiel #14
0
        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);
        }