Пример #1
0
        public ArtDevField CreateFieldDateTime(string Name)
        {
            SPFieldDateTime Field       = NewOrRefDateTime(Name);
            ArtDevField     ArtDevField = new ArtDevField(Field);

            return(ArtDevField);
        }
Пример #2
0
    public static void CreateDateTimeColumn(this SPWeb web, string group, string description, string name, string displayName, SPDateTimeFieldFormatType format = SPDateTimeFieldFormatType.DateOnly)
    {
        try
        {
            if (!web.Fields.ContainsField(name))
            {
                string fieldName = web.Fields.Add(name, SPFieldType.DateTime, false);

                SPFieldDateTime field = (SPFieldDateTime)web.Fields.GetField(name);

                field.Group         = group;
                field.StaticName    = name;
                field.DisplayFormat = format;
                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:CreateDateTimeColumn. MESSAGE: {0}. EXCEPTION TRACE: {1} ", ex.Message, ex.StackTrace), ex.StackTrace);
        }
    }
Пример #3
0
        // Uncomment the method below to handle the event raised after a feature has been activated.

        public override void FeatureActivated(SPFeatureReceiverProperties properties)
        {
            SPWeb  currentWeb  = properties.Feature.Parent as SPWeb;
            SPList classesList = currentWeb.Lists["Classes"];

            SPField titleField = classesList.Fields["Title"];

            titleField.Required       = false;
            titleField.ShowInNewForm  = false;
            titleField.ShowInEditForm = false;
            titleField.Title          = "Class ID";
            titleField.Update();

            SPField registrationsField = classesList.Fields["Registrations"];

            registrationsField.DefaultValue  = "0";
            registrationsField.ShowInNewForm = false;
            registrationsField.Update();

            SPFieldDateTime startDate = currentWeb.Fields["Start Date"] as SPFieldDateTime;

            startDate.DisplayFormat = SPDateTimeFieldFormatType.DateTime;
            SPFieldDateTime endDate = currentWeb.Fields["End Date"] as SPFieldDateTime;

            endDate.DisplayFormat = SPDateTimeFieldFormatType.DateTime;
            classesList.Fields.Add(startDate);
            classesList.Fields.Add(endDate);
            SPView defaultView = classesList.DefaultView;

            defaultView.ViewFields.Add(startDate);
            defaultView.ViewFields.Add(endDate);
            defaultView.Update();
            classesList.Update();
        }
Пример #4
0
        public static void UpdateTypeOfDateTime(string siteUrl)
        {
            if (!string.IsNullOrEmpty(siteUrl))
            {
                List <string> colNames = new List <string>()
                {
                    "StartDate", "DueDate"
                };
                string listName = "Task List";
                try
                {
                    SPSecurity.RunWithElevatedPrivileges(delegate()
                    {
                        Console.Write("Processing...");
                        using (SPSite spSite = new SPSite(siteUrl))
                        {
                            using (SPWeb spWeb = spSite.RootWeb)
                            {
                                SPList spList = spWeb.Lists.TryGetList(listName);
                                if (spList != null)
                                {
                                    Console.WriteLine();
                                    Console.Write("List Name: {0}", listName);

                                    spWeb.AllowUnsafeUpdates = true;
                                    foreach (var colName in colNames)
                                    {
                                        SPField spField = spList.Fields.TryGetFieldByStaticName(colName);
                                        if (spField != null)
                                        {
                                            Console.WriteLine();
                                            Console.Write("Column Name: {0}", colName);

                                            SPFieldDateTime spFieldDateTime = spField as SPFieldDateTime;
                                            if (!(spFieldDateTime.FriendlyDisplayFormat == SPDateTimeFieldFriendlyFormatType.Disabled))
                                            {
                                                spFieldDateTime.FriendlyDisplayFormat = SPDateTimeFieldFriendlyFormatType.Disabled;
                                                spFieldDateTime.Update();
                                            }
                                            Console.Write(" -> Done");
                                        }
                                    }
                                    spWeb.AllowUnsafeUpdates = false;
                                }
                            }
                        }
                    });
                }
                catch (Exception ex)
                {
                    Console.WriteLine(string.Format("Error: {0}", ex.Message));
                }
                Console.Read();
            }
            else
            {
                Console.Write("Troll?");
                Console.Read();
            }
        }
Пример #5
0
        private void OnListCreated(ref SPList list)
        {
            SPFieldDateTime modified = list.Fields.GetFieldByInternalName("Modified") as SPFieldDateTime;

            modified.FriendlyDisplayFormat = SPDateTimeFieldFriendlyFormatType.Disabled;
            modified.Update();
        }
Пример #6
0
        public SPFieldDateTime NewOrRefDateTime(string Name)
        {
            string          DateTimeName  = this.Web().Fields.ContainsField(Name) ? Name : this.Web().Fields.Add(Name, SPFieldType.DateTime, false);
            SPFieldDateTime DateTimeField = (SPFieldDateTime)this.Web().Fields.GetFieldByInternalName(DateTimeName);

            DateTimeField.Group = this.columnGroup;
            return(DateTimeField);
        }
Пример #7
0
        // Uncomment the method below to handle the event raised after a feature has been activated.

        public override void FeatureActivated(SPFeatureReceiverProperties properties)
        {
            var web = (SPWeb)properties.Feature.Parent;

            SPList  courseList = web.Lists["Courses"];
            SPField field      = courseList.Fields["Tytu³"];

            field.Title = "Course Title";
            field.Update();

            SPList  trainersList  = web.Lists["Trainers"];
            SPField fullNameField = trainersList.Fields["Imiê i nazwisko"];

            fullNameField.Required = true;
            fullNameField.Update();

            SPList classesList = web.Lists["Classes"];

            //Title column updates
            SPField titleField = classesList.Fields["Tytu³"];

            titleField.Required       = false;
            titleField.ShowInNewForm  = false;
            titleField.ShowInEditForm = false;
            titleField.Title          = "Class ID";
            titleField.Update();

            //Registrations column updates
            SPField registrationsField = classesList.Fields["Registrations"];

            registrationsField.DefaultValue  = "0";
            registrationsField.ShowInNewForm = false;
            registrationsField.Update();

            //Add the "Start Date" and "End Date" columns to the list, ensure they both display Date and Time, and add them to the default view of the list
            SPFieldDateTime startDate = web.ParentWeb.Fields["Data rozpoczêcia"] as SPFieldDateTime;

            startDate.DisplayFormat = SPDateTimeFieldFormatType.DateTime;
            SPFieldDateTime endDate = web.ParentWeb.Fields["Data zakoñczenia"] as SPFieldDateTime;

            endDate.DisplayFormat = SPDateTimeFieldFormatType.DateTime;
            classesList.Fields.Add(startDate);
            classesList.Fields.Add(endDate);
            SPView defaultView = classesList.DefaultView;

            defaultView.ViewFields.Add(startDate);
            defaultView.ViewFields.Add(endDate);
            defaultView.Update();
            classesList.Update();
        }
Пример #8
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);
        }
        private void OnListCreated(ref SPList list)
        {
            SPFieldDateTime modified = list.Fields.GetFieldByInternalName("Modified") as SPFieldDateTime;

            modified.FriendlyDisplayFormat = SPDateTimeFieldFriendlyFormatType.Disabled;
            modified.Update();

            list.EnableVersioning            = true;
            list.EnableMinorVersions         = true;
            list.MajorVersionLimit           = 10;
            list.MajorWithMinorVersionsLimit = 3;
            list.DraftVersionVisibility      = DraftVisibilityType.Author;
            list.EnableModeration            = false;
            list.ForceCheckout = true;

            list.Update();
        }
Пример #10
0
        // Uncomment the method below to handle the event raised after a feature has been activated.

        public override void FeatureActivated(SPFeatureReceiverProperties properties)
        {
            //Reference the newly created Classes list and perform the following:
            //1.  Set the display name of the "Title" column to "Class ID" and hide it from the New and Edit forms
            //2.  Make the "Class ID" column not required
            //3.  Set the default value of the Registrations column to 0 and do not display it on the new form
            //4.  Add the built-in "Start Date" and "End Date" columns

            //Reference the newly created Classes list
            SPWeb  currentWeb  = properties.Feature.Parent as SPWeb;
            SPList classesList = currentWeb.Lists["Classes"];

            //Title column updates
            SPField titleField = classesList.Fields["Title"];

            titleField.Required       = false;
            titleField.ShowInNewForm  = false;
            titleField.ShowInEditForm = false;
            titleField.Title          = "Class ID";
            titleField.Update();

            //Registrations column updates
            SPField registrationsField = classesList.Fields["Registrations"];

            registrationsField.DefaultValue  = "0";
            registrationsField.ShowInNewForm = false;
            registrationsField.Update();

            //Add the "Start Date" and "End Date" columns to the list, ensure they both display Date and Time, and add them to the default view of the list
            SPFieldDateTime startDate = currentWeb.Fields["Start Date"] as SPFieldDateTime;

            startDate.DisplayFormat = SPDateTimeFieldFormatType.DateTime;
            SPFieldDateTime endDate = currentWeb.Fields["End Date"] as SPFieldDateTime;

            endDate.DisplayFormat = SPDateTimeFieldFormatType.DateTime;
            classesList.Fields.Add(startDate);
            classesList.Fields.Add(endDate);
            SPView defaultView = classesList.DefaultView;

            defaultView.ViewFields.Add(startDate);
            defaultView.ViewFields.Add(endDate);
            defaultView.Update();
            classesList.Update();
        }
Пример #11
0
        protected void Page_Load(object sender, EventArgs e)
        {
            // Declare Fields

            var site = SPContext.Current.Site;
            var web  = site.RootWeb;
            // Get the SPFieldCollection for the root web.
            var fields = web.Fields;
            // Add a new date field.
            var fieldExpiryDate = new SPFieldDateTime(fields, SPFieldType.DateTime.ToString(), "Expiry Date")
            {
                StaticName    = "ExpiryDate",
                DisplayFormat = SPDateTimeFieldFormatType.DateOnly,
                Group         = "Contoso Columns",
                Required      = true
            };

            fieldExpiryDate.Update();
            fields.Add(fieldExpiryDate);

            // Add a new choice field.
            var fieldProductionType = new SPFieldChoice(fields, SPFieldType.Choice.ToString(), "Production Type")
            {
                StaticName = "ProductionType"
            };

            fieldProductionType.Choices.Add("Research");
            fieldProductionType.Choices.Add("Prototype");
            fieldProductionType.Choices.Add("Trial");
            fieldProductionType.Choices.Add("Release");
            fieldProductionType.Group    = "Contoso Columns";
            fieldProductionType.Required = true;
            fieldProductionType.Update();
            fields.Add(fieldProductionType);

            // Declare Content Types

            // Get the ID of the parent content type.
            var parentId = SPBuiltInContentTypeId.Document;
            // Create the Invoice content type.
            var ctInvoice = new SPContentType(parentId, web.ContentTypes, "Invoice");
            // Create field links.
            var fldClientName         = fields.GetField("ClientName");
            var fldPaymentDueDate     = fields.GetField("PaymentDueDate");
            var fldAmount             = fields.GetField("Amount");
            var fldLinkClientName     = new SPFieldLink(fldClientName);
            var fldLinkPaymentDueDate = new SPFieldLink(fldPaymentDueDate);
            var fldLinkAmount         = new SPFieldLink(fldAmount);

            // Add the field links to the content type.
            ctInvoice.FieldLinks.Add(fldLinkClientName);
            ctInvoice.FieldLinks.Add(fldLinkPaymentDueDate);
            ctInvoice.FieldLinks.Add(fldLinkAmount);
            // Persist the changes to the content database.
            ctInvoice.Update();
            // Add the content type to the collection.
            web.ContentTypes.Add(ctInvoice);
            web.Dispose();

            // Bind Content Type

            // Get the list.
            var list = web.GetList("Invoices");
            // Get the site content type.
            var ct = web.AvailableContentTypes["Invoice"];

            // Enable content types on the list.
            list.ContentTypesEnabled = true;
            // Add the content type to the list.
            list.ContentTypes.Add(ct);
            // Persist the changes to the database.
            list.Update();

            //Set Document Template

            ct.DocumentTemplate = "SiteAssets/MyTemplate.dotx";
            ct.Update();

            //Set Workflow Template

            SPWorkflowTemplate template = web.WorkflowTemplates.GetTemplateByName("InvoiceWorkflow", web.Locale);

            // Create a new workflow association.
            SPWorkflowAssociation association = SPWorkflowAssociation.CreateWebContentTypeAssociation(template, "Process Invoice", "Invoice Tasks", "Process Invoice History");

            if (ct.WorkflowAssociations.GetAssociationByName("Process Invoice", web.Locale) == null)
            {
                ct.WorkflowAssociations.Add(association);
                ct.UpdateWorkflowAssociationsOnChildren(false, true, true, false);
            }
        }
Пример #12
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request["siteid"] != null)
            {
                SPSite   site     = null;
                SPWeb    web      = null;
                SPList   list     = null;
                GridData gd       = new GridData();
                bool     isRollup = false;
                gd.GanttParams64bitString = Request["params"].ToString();
                gd.InitRoutine(out isRollup);
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    site    = new SPSite(new Guid(Request["siteid"].ToString()));
                    web     = site.AllWebs[new Guid(Request["webid"].ToString())];
                    list    = web.Lists[new Guid(Request["listid"].ToString())];
                    gd.List = list;
                    //GridUtilities.List = list;
                });

                try
                {
                    //GridUtilities.View = web.GetViewFromUrl(Request["viewUrl"].ToString());
                    gd.View = web.GetViewFromUrl(Request["viewUrl"].ToString());
                }
                catch (Exception ex)
                {
                    try
                    {
                        gd.View = web.ParentWeb.GetViewFromUrl(Request["viewUrl"].ToString());
                    }
                    catch (Exception ex2)
                    {
                        //GridUtilities.AddError("Web: " + web.ServerRelativeUrl + " List: " + list.Title + " View: " + Request["viewUrl"].ToString() + " Message: " + ex2.Message);
                    }
                }

                //GridUtilities.InitViewFields();
                SPListItem li   = gd.List.GetItemById(int.Parse(Request["itemid"].ToString()));
                ArrayList  imgs = new ArrayList();
                if (Request["imgs"].ToString() != string.Empty)
                {
                    imgs.AddRange(Request["imgs"].ToString().Split(",".ToCharArray()));
                }
                string json  = "{ \"FieldValues\": [";
                string types = "";
                foreach (string sfield in gd.ViewFields)
                {
                    FieldValues fv = new FieldValues();
                    if (list.Fields.ContainsField(sfield))
                    {
                        SPField spField = list.Fields.GetFieldByInternalName(sfield);
                        types       = types + spField.TypeAsString + "|";
                        fv.fieldKey = gd.GetDisplayName(sfield);
                        if (!spField.Description.ToLower().Contains("indicator"))
                        {
                            string type = spField.TypeAsString;
                            string val  = string.Empty;
                            switch (type)
                            {
                            case "Computed":
                                fv.dataValue      = spField.GetFieldValueAsText(li[spField.Id]);
                                fv.localizedValue = spField.GetFieldValueAsText(li[spField.Id]);
                                break;

                            case "Calculated":
                                fv.dataValue      = spField.GetFieldValueAsText(li[spField.Id]);
                                fv.localizedValue = spField.GetFieldValueAsText(li[spField.Id]);
                                break;

                            case "Text":
                                fv.dataValue      = li[spField.Id];
                                fv.localizedValue = li[spField.Id];
                                break;

                            case "Number":
                                if (li[spField.Id] != null && li[spField.Id].ToString() != "")
                                {
                                    if (spField.InternalName.ToLower() != "percentcomplete")
                                    {
                                        val = String.Format("{0:#,0.00}", li[spField.Id]);
                                    }
                                    else
                                    {
                                        decimal pct = decimal.Parse(li[spField.Id].ToString());
                                        pct = pct * 100;
                                        val = String.Format("{0:#,0.00}", pct.ToString());
                                        val = val + " %";
                                    }
                                }

                                fv.dataValue      = val;
                                fv.localizedValue = val;
                                break;

                            case "Currency":
                                if (li[spField.Id] != null)
                                {
                                    val = String.Format("{0:C}", li[spField.Id]);
                                }
                                fv.dataValue      = val;
                                fv.localizedValue = val;
                                break;

                            case "Boolean":
                                fv.dataValue      = spField.GetFieldValueAsText(li[spField.Id]);
                                fv.localizedValue = spField.GetFieldValueAsText(li[spField.Id]);
                                break;

                            case "Note":
                                fv.dataValue      = li[spField.Id];
                                fv.localizedValue = li[spField.Id];
                                break;

                            case "DateTime":
                                SPFieldDateTime spfdt = (SPFieldDateTime)spField;
                                if (spfdt.DisplayFormat == SPDateTimeFieldFormatType.DateTime)
                                {
                                    if (li[spField.Id] != null)
                                    {
                                        val = DateTime.Parse(li[spField.Id].ToString()).ToString();
                                    }
                                    fv.dataValue      = val;
                                    fv.localizedValue = val;
                                }
                                else
                                {
                                    if (li[spField.Id] != null)
                                    {
                                        val = DateTime.Parse(li[spField.Id].ToString()).ToShortDateString();
                                    }
                                    fv.dataValue      = val;
                                    fv.localizedValue = val;
                                }
                                break;

                            default:
                                fv.dataValue      = spField.GetFieldValueAsText(li[spField.Id]);
                                fv.localizedValue = spField.GetFieldValueAsText(li[spField.Id]);
                                break;
                            }
                        }
                        else
                        {
                            string val = spField.GetFieldValueAsText(li[spField.Id]).ToLower();
                            fv.dataValue      = imgs.IndexOf(spField.GetFieldValueAsText(li[spField.Id]).ToLower());
                            fv.localizedValue = "";
                        }
                        Serializer s = new Serializer();
                        json = json + fv.ToJson(s) + ",";
                    }
                }
                json = json.Remove(json.LastIndexOf(","));
                json = json + "]}";
                Response.Output.WriteLine(json);
            }
            else
            {
                Response.Output.WriteLine("Failed");
            }
            //GridUtilities.WriteLog();
            //GridUtilities.IDisposable();
        }
Пример #13
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;
                }
            }
        }
Пример #14
0
        private static string GetFieldType(SPField oField, out string senum, out string senumkeys, out string sFormat, out string sRange, SPWeb oWeb)
        {
            var currencyFormatDictionary = new Dictionary <int, string> {
                { 0, "$n" }, { 1, "n$" }, { 2, "$ n" }, { 3, "n $" }
            };

            senum     = "";
            senumkeys = "";
            sFormat   = "";
            sRange    = "";

            switch (oField.Type)
            {
            case SPFieldType.Boolean:
                return("Bool");

            case SPFieldType.DateTime:
                SPFieldDateTime oDTField   = (SPFieldDateTime)oField;
                string          dateFormat = GetExampleDateFormat(oWeb, "yyyy", "M", "d");
                sFormat = oDTField.GetProperty("Format").Equals("DateOnly") ? dateFormat : string.Format("{0} h:mm tt", dateFormat);
                return("Date");

            case SPFieldType.Currency:
                var currenvyCultureInfo           = new CultureInfo(((SPFieldCurrency)oField).CurrencyLocaleId);
                NumberFormatInfo numberFormatInfo = currenvyCultureInfo.NumberFormat;

                sFormat = currencyFormatDictionary[numberFormatInfo.CurrencyPositivePattern]
                          .Replace("$", numberFormatInfo.CurrencySymbol)
                          .Replace("n",
                                   string.Format(",0.{0}", new string('0', numberFormatInfo.CurrencyDecimalDigits)));
                return("Float");

            case SPFieldType.Note:
                SPFieldMultiLineText field = (SPFieldMultiLineText)oField;
                if (field.RichText)
                {
                    return("Html");
                }
                else
                {
                    return("Lines");
                }

            case SPFieldType.Number:
                string percentageSign = string.Empty;

                if (((SPFieldNumber)oField).ShowAsPercentage)
                {
                    //sFormat = "0\\%;0\\%;0\\%";
                    return("Float");
                }

                switch (((SPFieldNumber)oField).DisplayFormat)
                {
                case SPNumberFormatTypes.Automatic:
                    sFormat = ",#0.##########" + percentageSign;
                    break;

                case SPNumberFormatTypes.NoDecimal:
                    sFormat = ",#0" + percentageSign;
                    break;

                case SPNumberFormatTypes.OneDecimal:
                    sFormat = ",#0.0" + percentageSign;
                    break;

                case SPNumberFormatTypes.TwoDecimals:
                    sFormat = ",#0.00" + percentageSign;
                    break;

                case SPNumberFormatTypes.ThreeDecimals:
                    sFormat = ",#0.000" + percentageSign;
                    break;

                case SPNumberFormatTypes.FourDecimals:
                    sFormat = ",#0.0000" + percentageSign;
                    break;

                case SPNumberFormatTypes.FiveDecimals:
                    sFormat = ",#0.00000" + percentageSign;
                    break;
                }
                return("Float");

            case SPFieldType.Choice:
                SPFieldChoice oCField = (SPFieldChoice)oField;
                foreach (string sChoice in oCField.Choices)
                {
                    senum += ";" + sChoice;
                }
                return("Enum");

            case SPFieldType.Lookup:
                SPFieldLookup oLField = (SPFieldLookup)oField;
                if (oLField.AllowMultipleValues)
                {
                    sRange = "1";
                }

                SPList oLookupList = oWeb.Lists[new Guid(oLField.LookupList)];

                foreach (SPListItem li in oLookupList.Items)
                {
                    senum     += ";" + li.Title.Replace(";", "");
                    senumkeys += ";" + li.ID;
                }

                return("Enum");

            case SPFieldType.MultiChoice:
                SPFieldMultiChoice oMCField = (SPFieldMultiChoice)oField;
                foreach (string sChoice in oMCField.Choices)
                {
                    senum += ";" + sChoice;
                }
                sRange = "1";
                return("Enum");

            case SPFieldType.User:

                DataTable dtResources = EPMLiveCore.API.APITeam.GetResourcePool("<Pool><Columns>SimpleColumns</Columns></Pool>", oWeb);

                foreach (DataRow dr in dtResources.Rows)
                {
                    senum     += ";" + dr["Title"].ToString();
                    senumkeys += ";" + dr["SPID"].ToString();
                }

                SPFieldUser oUField = (SPFieldUser)oField;
                if (oUField.AllowMultipleValues)
                {
                    sRange = "1";
                }
                return("Enum");

            default:
                return("Text");
            }
        }
Пример #15
0
        private string getFieldVal(string field, SPItemEventProperties properties, SPList list)
        {
            try
            {
                SPField f   = list.Fields.GetFieldByInternalName(field);
                string  val = properties.AfterProperties[field].ToString();

                if (f.Type == SPFieldType.DateTime)
                {
                    val = val.Replace("T", " ").Replace("Z", "");
                }

                if (val == "")
                {
                    return("");
                }

                switch (f.Type)
                {
                case SPFieldType.DateTime:
                    try
                    {
                        val = f.GetFieldValue(val).ToString();
                        DateTime dt = DateTime.Parse(val);

                        SPFieldDateTime dtF = (SPFieldDateTime)f;
                        if (dtF.DisplayFormat == SPDateTimeFieldFormatType.DateOnly)
                        {
                            return(dt.ToShortDateString());
                        }
                        else
                        {
                            return(dt.ToString());
                        }
                    }catch {}
                    return("");

                case SPFieldType.Lookup:
                    if (val != "")
                    {
                        if (val.Contains(";#"))
                        {
                            return(f.GetFieldValueAsText(val));
                        }
                        else
                        {
                            SPList     lookupList = properties.Web.Lists[new Guid(((SPFieldLookup)f).LookupList)];
                            SPListItem lookupItem = lookupList.GetItemById(int.Parse(val));
                            return(lookupItem[((SPFieldLookup)f).LookupField].ToString());
                        }
                    }
                    return("");

                default:
                    return(f.GetFieldValue(val).ToString());
                }
                ;
            }
            catch { }
            return("");
        }
 public static string GetDisplayFormat(this SPFieldDateTime field)
 {
     return(field.DisplayFormat.ToString());
 }
 public static string GetCalendarType(this SPFieldDateTime field)
 {
     return(field.CalendarType.ToString());
 }
        internal static string GetExportValue(SPWeb exportWeb, object val, SPField field, string locale, bool forceDate, string mulSep)
        {
            string                  colVal;
            int                     pos;
            DateTime                dtVal;
            SPFieldDateTime         dtField = field as SPFieldDateTime;
            SPFieldLookup           pgField = field as SPFieldLookup;
            SPFieldMultiLineText    rtField = field as SPFieldMultiLineText;
            SPFieldMultiChoiceValue mcv;
            XmlDocument             doc;

            if (field is SPFieldCalculated)
            {
                val = ((SPFieldCalculated)field).GetFieldValueAsText(val);
            }
            if (field is SPFieldUrl)
            {
                val = ((SPFieldUrl)field).GetFieldValue(val + string.Empty);
            }
            if (forceDate && (DateTime.TryParse(val + string.Empty, out dtVal) || DateTime.TryParse(val + string.Empty, JsonSchemaManager.Property.Type.LocaleChoice.GetCulture(locale), DateTimeStyles.AllowWhiteSpaces, out dtVal)))
            {
                val = dtVal;
            }
            if ((val is DateTime) && ((dtField != null) || forceDate))
            {
                colVal = ((DateTime)val).ToString((dtField == null) ? "m" : ((dtField.DisplayFormat == SPDateTimeFieldFormatType.DateOnly) ? "d" : "g"), JsonSchemaManager.Property.Type.LocaleChoice.GetCulture(locale));
            }
            else if (val is SPFieldUrlValue)
            {
                colVal = ((SPFieldUrlValue)val).Url;
            }
            else if (val is SPFieldLookupValueCollection)
            {
                colVal = string.Join(mulSep, ((SPFieldLookupValueCollection)val).ConvertAll <string> ((lv) => {
                    return(lv.LookupValue);
                }).ToArray());
            }
            else if (val is SPFieldLookupValue)
            {
                colVal = ((SPFieldLookupValue)val).LookupValue;
            }
            else if ((mcv = val as SPFieldMultiChoiceValue) != null)
            {
                colVal = string.Empty;
                for (int i = 0; i < mcv.Count; i++)
                {
                    colVal += (mulSep + mcv [i]);
                }
                if (colVal.Length > mulSep.Length)
                {
                    colVal = colVal.Substring(mulSep.Length);
                }
            }
            else if (((pgField = field as SPFieldLookup) != null) || (((rtField = field as SPFieldMultiLineText) != null) && rtField.RichText))
            {
                colVal = val + string.Empty;
                if (pgField != null)
                {
                    if ((pos = colVal.IndexOf(";#", StringComparison.InvariantCultureIgnoreCase)) >= 0)
                    {
                        colVal = colVal.Substring(pos + 2);
                    }
                    if ((pos = colVal.IndexOf(";#")) > 0)
                    {
                        colVal = colVal.Substring(0, pos);
                    }
                }
                colVal = htmlRegex.Replace(colVal.Replace(WEIRD_CHAR, string.Empty).Replace("<br>", "\r\n").Replace("<BR>", "\r\n").Replace("<br/>", "\r\n").Replace("<BR/>", "\r\n").Replace("<br />", "\r\n").Replace("<BR />", "\r\n"), string.Empty);
            }
            else
            {
                colVal = val + string.Empty;
            }
            if (colVal.StartsWith("<roxhtml/>"))
            {
                colVal = htmlRegex.Replace(colVal.Substring("<roxhtml/>".Length).Replace(WEIRD_CHAR, string.Empty).Replace("<br>", "\r\n").Replace("<BR>", "\r\n").Replace("<br/>", "\r\n").Replace("<BR/>", "\r\n").Replace("<br />", "\r\n").Replace("<BR />", "\r\n"), string.Empty);
                try {
                    doc = new XmlDocument();
                    doc.LoadXml(colVal);
                    colVal = doc.DocumentElement.InnerText;
                } catch {
                }
                colVal = colVal.Replace('\r', ' ').Replace('\n', ' ').Trim();
            }
            return(colVal);
        }
Пример #19
0
        private string GetFieldValue(SPField field, SPListItemVersion version)
        {
            string      fieldValue = string.Empty;
            SPFieldType fieldType  = field.Type;

            switch (fieldType)
            {
            case SPFieldType.Lookup:
                SPFieldLookup newField = (SPFieldLookup)field;
                fieldValue = newField.GetFieldValueAsText(version[field.StaticName]);
                break;

            case SPFieldType.User:
                SPFieldUser newUser = (SPFieldUser)field;
                fieldValue = newUser.GetFieldValueAsText(version[field.StaticName]);
                break;

            case SPFieldType.ModStat:
                SPFieldModStat modStat = (SPFieldModStat)field;
                fieldValue = modStat.GetFieldValueAsText(version[field.StaticName]);
                break;

            case SPFieldType.URL:
                SPFieldUrl urlField = (SPFieldUrl)field;
                fieldValue = urlField.GetFieldValueAsHtml(version[field.StaticName]);
                break;

            case SPFieldType.DateTime:
                SPFieldDateTime newDateField = (SPFieldDateTime)field;
                if (!string.IsNullOrEmpty(newDateField.GetFieldValueAsText(version[field.StaticName])))
                {
                    if (newDateField.DisplayFormat == SPDateTimeFieldFormatType.DateTime)
                    {
                        fieldValue = DateTime.Parse(newDateField.GetFieldValueAsText(version[field.StaticName])).ToString();
                    }
                    else
                    {
                        fieldValue = DateTime.Parse(newDateField.GetFieldValueAsText(version[field.StaticName])).ToShortDateString();
                    }
                }
                break;

            case SPFieldType.Invalid:

                // http://sharepointnadeem.blogspot.com/2013/09/sharepoint-spfieldtype-is-invalid-for.html
                if (field.TypeAsString.Equals("TaxonomyFieldType") || field.TypeAsString.Equals("TaxonomyFieldTypeMulti"))
                {
                    TaxonomyField taxonomyField = field as TaxonomyField;
                    fieldValue = taxonomyField.GetFieldValueAsText(version[field.StaticName]);
                }
                else
                {
                    fieldValue = version[field.StaticName].ToString();
                }
                break;

            default:
                fieldValue = version[field.StaticName].ToString();
                break;
            }

            return(fieldValue);
        }
Пример #20
0
        public static void UpdateFieldValue(this SPListItem item, SPField updatedField, string data)
        {
            if (string.IsNullOrEmpty(data) || data.CompareTo(";#") == 0)
            {
                return;
            }

            switch (updatedField.Type)
            {
            case SPFieldType.Boolean:
                item[updatedField.Id] = Convert.ToBoolean(data);
                break;

            case SPFieldType.File:
            case SPFieldType.Calculated:
            case SPFieldType.Computed:
            case SPFieldType.Currency:
            case SPFieldType.Integer:
            case SPFieldType.Note:
            case SPFieldType.Number:
            case SPFieldType.Text:
                item[updatedField.Id] = data;
                break;

            case SPFieldType.Choice:
                SPFieldChoice fieldChoice = (SPFieldChoice)updatedField;
                item[updatedField.Id] = data;
                break;

            case SPFieldType.DateTime:
                SPFieldDateTime fieldDate = (SPFieldDateTime)updatedField;
                item[updatedField.Id] = Convert.ToDateTime(data);
                break;

            case SPFieldType.Lookup:

                SPFieldLookup fieldLookup = (SPFieldLookup)updatedField;
                if (fieldLookup.AllowMultipleValues)
                {
                    SPFieldLookupValueCollection multiValues = new SPFieldLookupValueCollection();
                    foreach (var s in data.Split("|".ToCharArray()))
                    {
                        multiValues.Add(new SPFieldLookupValue(s));
                    }
                    item[updatedField.Id] = multiValues;
                }
                else
                {
                    //int id = fieldLookup.GetLookupIdFromValue(data);

                    SPFieldLookupValue singleLookupValue = new SPFieldLookupValue(data);
                    item[updatedField.Id] = singleLookupValue;
                }
                break;

            case SPFieldType.MultiChoice:
                SPFieldMultiChoice fieldMultichoice = (SPFieldMultiChoice)updatedField;

                string[] items = data.Split("|".ToCharArray());
                SPFieldMultiChoiceValue values = new SPFieldMultiChoiceValue();
                foreach (string choice in items)
                {
                    values.Add(choice);
                }

                item[updatedField.Id] = values;

                break;

            case SPFieldType.User:
                SPFieldUser fieldUser = (SPFieldUser)updatedField;

                SPFieldUserValueCollection fieldValues = new SPFieldUserValueCollection();
                string[] entities = data.Split("|".ToCharArray());

                foreach (string entity in entities)
                {
                    SPUser user = item.Web.EnsureUser(entity.Split(";#".ToCharArray())[2]);
                    if (user != null)
                    {
                        fieldValues.Add(new SPFieldUserValue(item.Web, user.ID, user.Name));
                    }
                }

                item[updatedField.Id] = fieldValues;
                break;
            }
        }