private Array CreateArray(SheetDataType newDataType, int length)
        {
            switch (newDataType)
            {
            case SheetDataType.Long:
                return(new long[length]);

            case SheetDataType.Int:
                return(new int[length]);

            case SheetDataType.Short:
                return(new short[length]);

            case SheetDataType.Byte:
                return(new byte[length]);

            case SheetDataType.Double:
                return(new double[length]);

            case SheetDataType.Float:
                return(new float[length]);

            case SheetDataType.String:
                return(new string[length]);

            case SheetDataType.Boolean:
                return(new bool[length]);

            case SheetDataType.Reference:
                return(new string[length]);
            }

            throw new MissingMemberException(string.Format(Localization.EXCEPTION_CONVERTDATA, newDataType));
        }
        private static object GetDataValue_Single(this SheetDataType dataType, string value)
        {
            switch (dataType)
            {
            case SheetDataType.Long:
                return(long.Parse(value));

            case SheetDataType.Int:
                return(int.Parse(value));

            case SheetDataType.Short:
                return(short.Parse(value));

            case SheetDataType.Byte:
                return(byte.Parse(value));

            case SheetDataType.Double:
                return(double.Parse(value));

            case SheetDataType.Float:
                return(float.Parse(value));

            case SheetDataType.String:
                return(value);

            case SheetDataType.Boolean:
                return(bool.Parse(value));

            case SheetDataType.Reference:
                return(value);
            }

            throw new MissingMemberException(string.Format(Localization.EXCEPTION_GETDATAVALUE_SINGLE, dataType));
        }
        private object ConvertFloatToDataType(float oldData, SheetDataType newDataType)
        {
            switch (newDataType)
            {
            case SheetDataType.Long:
                return((long)oldData);

            case SheetDataType.Int:
                return((int)oldData);

            case SheetDataType.Short:
                return((short)oldData);

            case SheetDataType.Byte:
                return((byte)oldData);

            case SheetDataType.Double:
                return((double)oldData);

            case SheetDataType.Float:
                return(oldData);

            case SheetDataType.String:
                return(oldData.ToString());
            }

            return(newDataType.GetDefaultValue(false));
        }
        private static object GetDataValue_Collection(this SheetDataType dataType, string value)
        {
            switch (dataType)
            {
            case SheetDataType.Long:
                return(GetDataCollection_Long(value));

            case SheetDataType.Int:
                return(GetDataCollection_Int(value));

            case SheetDataType.Short:
                return(GetDataCollection_Short(value));

            case SheetDataType.Byte:
                return(GetDataCollection_Byte(value));

            case SheetDataType.Double:
                return(GetDataCollection_Double(value));

            case SheetDataType.Float:
                return(GetDataCollection_Float(value));

            case SheetDataType.String:
                return(GetDataCollection_String(value));

            case SheetDataType.Boolean:
                return(GetDataCollection_Bool(value));

            case SheetDataType.Reference:
                return(GetDataCollection_String(value));
            }

            throw new MissingMemberException(string.Format(Localization.EXCEPTION_GETDATAVALUE_COLLECTION, dataType));
        }
        public SheetColumn(SheetPage sheetPage, string serializationName, string propertyName, SheetDataType dataType, string referenceSheet, bool isCollection, int insertIndex)
        {
            if (insertIndex < sheetPage.columns.Count)
            {
                sheetPage.columns.Insert(insertIndex, this);
            }
            else
            {
                sheetPage.columns.Add(this);
            }

            this.serializationName = serializationName;
            this.propertyName      = propertyName;
            this.dataType          = dataType;
            this.isCollection      = isCollection;
            this.referenceSheet    = referenceSheet;

            object defaultData = dataType.GetDefaultValue(isCollection);

            foreach (SheetRow sheetRow in sheetPage.rows)
            {
                SheetCell sheetCell = new SheetCell(defaultData);
                if (insertIndex < sheetPage.columns.Count)
                {
                    sheetRow.cells.Insert(insertIndex, sheetCell);
                }
                else
                {
                    sheetRow.cells.Add(sheetCell);
                }
            }
        }
        private static object GetDefaultValue_Collection(this SheetDataType dataType)
        {
            switch (dataType)
            {
            case SheetDataType.Long:
                return(new long[0]);

            case SheetDataType.Int:
                return(new int[0]);

            case SheetDataType.Short:
                return(new short[0]);

            case SheetDataType.Byte:
                return(new byte[0]);

            case SheetDataType.Double:
                return(new double[0]);

            case SheetDataType.Float:
                return(new float[0]);

            case SheetDataType.String:
                return(new string[0]);

            case SheetDataType.Boolean:
                return(new bool[0]);

            case SheetDataType.Reference:
                return(new string[0]);
            }

            throw new MissingMemberException(string.Format(Localization.EXCEPTION_GETDEFAULTVALUE_COLLECTION, dataType));
        }
        private static object GetDefaultValue_Single(this SheetDataType dataType)
        {
            switch (dataType)
            {
            case SheetDataType.Long:
                return(default(long));

            case SheetDataType.Int:
                return(default(int));

            case SheetDataType.Short:
                return(default(short));

            case SheetDataType.Byte:
                return(default(byte));

            case SheetDataType.Double:
                return(default(double));

            case SheetDataType.Float:
                return(default(float));

            case SheetDataType.String:
                return(string.Empty);

            case SheetDataType.Boolean:
                return(default(bool));

            case SheetDataType.Reference:
                return("None");
            }

            throw new MissingMemberException(string.Format(Localization.EXCEPTION_GETDEFAULTVALUE_SINGLE, dataType));
        }
        private static string GetStringValue_Collection(this SheetDataType dataType, object value)
        {
            switch (dataType)
            {
            case SheetDataType.Long:
                return(GetStringCollection_Long((long[])value));

            case SheetDataType.Int:
                return(GetStringCollection_Int((int[])value));

            case SheetDataType.Short:
                return(GetStringCollection_Short((short[])value));

            case SheetDataType.Byte:
                return(GetStringCollection_Byte((byte[])value));

            case SheetDataType.Double:
                return(GetStringCollection_Double((double[])value));

            case SheetDataType.Float:
                return(GetStringCollection_Float((float[])value));

            case SheetDataType.String:
                return(GetStringCollection_String((string[])value));

            case SheetDataType.Boolean:
                return(GetStringCollection_Bool((bool[])value));

            case SheetDataType.Reference:
                return(GetStringCollection_String((string[])value));
            }

            throw new MissingMemberException(string.Format(Localization.EXCEPTION_GETSTRINGVALUE_COLLECTION, dataType));
        }
        private static string GetStringValue_Single(this SheetDataType dataType, object value)
        {
            switch (dataType)
            {
            case SheetDataType.Long:
                return(value.ToString());

            case SheetDataType.Int:
                return(value.ToString());

            case SheetDataType.Short:
                return(value.ToString());

            case SheetDataType.Byte:
                return(value.ToString());

            case SheetDataType.Double:
                return(value.ToString());

            case SheetDataType.Float:
                return(value.ToString());

            case SheetDataType.String:
                return((string)value);

            case SheetDataType.Boolean:
                return(value.ToString());

            case SheetDataType.Reference:
                return((string)value);
            }

            throw new MissingMemberException(string.Format(Localization.EXCEPTION_GETSTRINGVALUE_SINGLE, dataType));
        }
        private object ConvertData(object oldData, SheetDataType oldDataType, SheetDataType newDataType, bool sameReferenceSheet)
        {
            switch (oldDataType)
            {
            case SheetDataType.Long:
                return(ConvertLongToDataType((long)oldData, newDataType));

            case SheetDataType.Int:
                return(ConvertIntToDataType((int)oldData, newDataType));

            case SheetDataType.Short:
                return(ConvertShortToDataType((short)oldData, newDataType));

            case SheetDataType.Byte:
                return(ConvertByteToDataType((byte)oldData, newDataType));

            case SheetDataType.Double:
                return(ConvertDoubleToDataType((double)oldData, newDataType));

            case SheetDataType.Float:
                return(ConvertFloatToDataType((float)oldData, newDataType));

            case SheetDataType.String:
                return(ConvertStringToDataType((string)oldData, newDataType));

            case SheetDataType.Boolean:
                return(ConvertBoolToDataType((bool)oldData, newDataType));

            case SheetDataType.Reference:
                return(ConvertReferenceToDataType((string)oldData, newDataType, sameReferenceSheet));
            }

            return(newDataType.GetDefaultValue(false));
        }
        private Array ReplaceColumnValuesNonArrayToArray(object oldData, SheetDataType oldDataType, SheetDataType newDataType, bool sameReferenceSheet)
        {
            Array  newData  = CreateArray(newDataType, 1);
            object newValue = ConvertData(oldData, oldDataType, newDataType, sameReferenceSheet);

            newData.SetValue(newValue, 0);
            return(newData);
        }
 public SheetColumn(SheetColumnJsonable jsonable)
 {
     serializationName = jsonable.serializationName;
     propertyName      = jsonable.propertyName;
     dataType          = jsonable.dataType;
     isCollection      = jsonable.isCollection;
     referenceSheet    = jsonable.referenceSheet;
 }
 public SheetColumnJsonable(SheetColumn sheetColumn)
 {
     serializationName = sheetColumn.serializationName;
     propertyName      = sheetColumn.propertyName;
     dataType          = sheetColumn.dataType;
     isCollection      = sheetColumn.isCollection;
     referenceSheet    = sheetColumn.referenceSheet;
 }
        private object ReplaceColumnValuesArrayToNonArray(Array oldData, SheetDataType oldDataType, SheetDataType newDataType, bool sameReferenceSheet)
        {
            if (oldData.Length == 0)
            {
                return(newDataType.GetDefaultValue(false));
            }

            object oldValue = oldData.GetValue(0);

            return(ConvertData(oldValue, oldDataType, newDataType, sameReferenceSheet));
        }
 public static string GetStringValue(this SheetDataType dataType, object value, bool isCollection)
 {
     if (isCollection)
     {
         return(dataType.GetStringValue_Collection(value));
     }
     else
     {
         return(dataType.GetStringValue_Single(value));
     }
 }
 public static object GetDefaultValue(this SheetDataType dataType, bool isCollection)
 {
     if (isCollection)
     {
         return(dataType.GetDefaultValue_Collection());
     }
     else
     {
         return(dataType.GetDefaultValue_Single());
     }
 }
        private Array ReplaceColumnValuesArrayToArray(Array oldData, SheetDataType oldDataType, SheetDataType newDataType, bool sameReferenceSheet)
        {
            Array newData = CreateArray(newDataType, oldData.Length);

            for (int i = 0; i < newData.Length; i++)
            {
                object oldValue = oldData.GetValue(i);
                object newValue = ConvertData(oldValue, oldDataType, newDataType, sameReferenceSheet);
                newData.SetValue(newValue, i);
            }
            return(newData);
        }
        private object ConvertBoolToDataType(bool oldData, SheetDataType newDataType)
        {
            switch (newDataType)
            {
            case SheetDataType.String:
                return(oldData.ToString());

            case SheetDataType.Boolean:
                return(oldData);
            }

            return(newDataType.GetDefaultValue(false));
        }
        private void Awake()
        {
            titleContent.text = "Add Column";
            minSize           = new Vector2(WIDTH, 200);

            dataType                = SheetDataType.Int;
            isCollection            = false;
            referenceSheet          = default;
            propertyManuallyChanged = false;

            serializationName = string.Empty;
            propertyName      = string.Empty;
        }
        private void DrawSaveButton(bool containsColumnChanges)
        {
            if (!GUILayout.Button(Localization.SAVE))
            {
                return;
            }

            string        oldReferenceSheet = sheetColumn.referenceSheet;
            bool          oldIsCollection   = sheetColumn.isCollection;
            SheetDataType oldDataType       = sheetColumn.dataType;

            sheetColumn.isCollection      = isCollection;
            sheetColumn.serializationName = serializationName;
            sheetColumn.propertyName      = propertyName;
            sheetColumn.dataType          = dataType;

            sheetColumn.referenceSheet = dataType == SheetDataType.Reference ? referenceSheet : "";
            bool sameReferenceSheet = oldReferenceSheet == sheetColumn.referenceSheet;

            if (containsColumnChanges)
            {
                int columnIndex = sheetPage.columns.IndexOf(sheetColumn);

                foreach (SheetRow sheetRow in sheetPage.rows)
                {
                    SheetCell sheetCell = sheetRow.cells[columnIndex];
                    if (oldIsCollection && isCollection)
                    {
                        sheetCell.data = ReplaceColumnValuesArrayToArray(sheetCell.data as Array, oldDataType, dataType, sameReferenceSheet);
                    }
                    else if (oldIsCollection && !isCollection)
                    {
                        sheetCell.data = ReplaceColumnValuesArrayToNonArray(sheetCell.data as Array, oldDataType, dataType, sameReferenceSheet);
                    }
                    else if (!oldIsCollection && isCollection)
                    {
                        sheetCell.data = ReplaceColumnValuesNonArrayToArray(sheetCell.data, oldDataType, dataType, sameReferenceSheet);
                    }
                    else
                    {
                        sheetCell.data = ReplaceColumnValuesNonArrayToNonArray(sheetCell.data, oldDataType, dataType, sameReferenceSheet);
                    }
                }
            }

            onColumnEdited();
            Close();
        }
        private object ConvertReferenceToDataType(string oldData, SheetDataType newDataType, bool sameReferenceSheet)
        {
            switch (newDataType)
            {
            case SheetDataType.Reference:
            {
                if (!sameReferenceSheet)
                {
                    break;
                }
                return(oldData);
            }
            }

            return(newDataType.GetDefaultValue(false));
        }
        private void DrawDataType()
        {
            EditorGUILayout.BeginHorizontal();
            GUILayout.Label(Localization.COLUMN_DATA_TYPE, GUILayout.Width(120));
            dataType = (SheetDataType)EditorGUILayout.EnumPopup(dataType);
            EditorGUILayout.EndHorizontal();

            if (dataType == SheetDataType.Reference)
            {
                EditorGUILayout.BeginHorizontal();
                GUILayout.Label(Localization.COLUMN_REFERENCE_SHEET, GUILayout.Width(120));
                string[] options        = dataSheet.datasheetPages.Select(i => i.sheetName).ToArray();
                int      currentOption  = Array.IndexOf(options, referenceSheet);
                int      selectedOption = EditorGUILayout.Popup(currentOption, options);
                referenceSheet = options[selectedOption];
                EditorGUILayout.EndHorizontal();
            }
        }
        public void Initialize(DataSheet dataSheet, SheetPage sheetPage, SheetColumn sheetColumn, Action onColumnEdited)
        {
            this.dataSheet      = dataSheet;
            this.sheetPage      = sheetPage;
            this.sheetColumn    = sheetColumn;
            this.onColumnEdited = onColumnEdited;
            serializationName   = sheetColumn.serializationName;
            propertyName        = sheetColumn.propertyName;
            isCollection        = sheetColumn.isCollection;
            dataType            = sheetColumn.dataType;

            if (dataType != SheetDataType.Reference)
            {
                string[] options = dataSheet.datasheetPages.Select(i => i.sheetName).ToArray();
                referenceSheet = options[0];
            }
            else
            {
                referenceSheet = sheetColumn.referenceSheet;
            }
        }
        public string DataTrack(MvcPostValue MvcPost, FieldSchema[] fields, SheetDataType sheetDataType, ClientActivity clientActivity)
        {
            var dics = new Dictionary <string, object>();

            // 数据项存在2个情况,1.数据项名称  2.数据项.子数据项
            foreach (FieldSchema field in fields)
            {
                // 如果数据项设置不允许保存,那么不会被保存进去
                if (sheetDataType == SheetDataType.Workflow && !clientActivity.GetItemEditable(field.Name))
                {
                    continue;
                }
                if (!MvcPost.BizObject.DataItems.ContainsKey(field.Name))
                {
                    continue;
                }
                if (field.LogicType == DataLogicType.BizObject || field.LogicType == DataLogicType.BizObjectArray)
                {
                    continue;
                }

                if (field.LogicType == DataLogicType.Comment && int.Equals(MvcPost.WorkItemType, (int)WorkItemType.WorkItemAssist))
                {
                    // 协办处理审核意见和审批结果逻辑
                    //SaveCommentData(MvcPost.BizObject, field.Name, MvcResult, MvcPost);
                }
                else if (field.LogicType == DataLogicType.Comment)
                {
                    // 处理审核意见和审批结果逻辑
                    //SaveCommentData(MvcPost.BizObject, field.Name, MvcResult, null);
                }
                else if (field.LogicType == DataLogicType.Attachment)
                {
                    // 处理附件逻辑
                }
                else if (field.LogicType == DataLogicType.MultiParticipant)
                {
                    // 处理多人参与者逻辑
                }
                else
                {   // 处理普通数据项
                    //this.ActionContext.InstanceData[field.Name].Value = MvcPost.BizObject.DataItems[field.Name].V;
                    dics.Add(field.Name, MvcPost.BizObject.DataItems[field.Name].V);
                }
            }

            // 最后保存子表,因为关联关系的子表主键有可能在主表中,所以先保存主表
            foreach (FieldSchema field in fields)
            {
                // 如果数据项设置不允许保存,那么不会被保存进去
                if (sheetDataType == SheetDataType.Workflow && !clientActivity.GetItemEditable(field.Name))
                {
                    continue;
                }
                if (!MvcPost.BizObject.DataItems.ContainsKey(field.Name))
                {
                    continue;
                }
                if (field.LogicType != DataLogicType.BizObject && field.LogicType != DataLogicType.BizObjectArray)
                {
                    continue;
                }

                if (field.LogicType == DataLogicType.BizObject)
                {
                    // 业务对象可以使用普通控件显示,例如:业务对象A.Code,可以使用文本框绑定数据项显示 A.Code
                }
                else if (field.LogicType == DataLogicType.BizObjectArray)
                {
                    if (field.Name == "APPLICANT_TYPE")
                    {
                        continue;
                    }
                    // 记录字表变动数据
                    List <Dictionary <string, object> > result = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Dictionary <string, object> > >(MvcPost.BizObject.DataItems[field.Name].V.ToString());
                    if (result != null && result.Any())
                    {
                        var dicItems = new List <Dictionary <string, object> >();
                        foreach (var item in result)
                        {
                            var dicItem = new Dictionary <string, object>();
                            foreach (var dicKey in item.Keys)
                            {
                                if (dicKey.ToLower() == "objectid")
                                {
                                    continue;
                                }
                                var itemField = field.Schema.Fields.Where(p => p.Name == dicKey).FirstOrDefault();
                                if (itemField != null)
                                {
                                    dicItem.Add(dicKey, item[dicKey]);
                                }
                            }
                            dicItems.Add(dicItem);
                        }
                        dics.Add(field.Name, dicItems);
                    }
                }
            }

            var dataTrack = JsonConvert.SerializeObject(dics, Formatting.Indented);

            return(dataTrack);
        }
Exemple #25
0
        /// <summary>
        /// 验证权限
        /// </summary>
        /// <param name="UserValidator"></param>
        /// <param name="SheetDataType"></param>
        /// <param name="IsOriginateMode"></param>
        /// <param name="SchemaCode"></param>
        /// <param name="BizObject"></param>
        /// <param name="SheetMode"></param>
        /// <param name="WorkflowCode"></param>
        /// <param name="WorkItem"></param>
        /// <param name="InstanceContext"></param>
        /// <returns></returns>
        public static bool ValidateAuthorization(
            UserValidator UserValidator,
            SheetDataType SheetDataType,
            bool IsOriginateMode,
            string SchemaCode,
            DataModel.BizObject BizObject,
            SheetMode SheetMode,
            string WorkflowCode,
            WorkItem.WorkItem WorkItem,
            WorkItem.CirculateItem CirculateItem,
            Instance.InstanceContext InstanceContext)
        {
            if (UserValidator.ValidateAdministrator())
            {
                return(true);
            }
            // 业务对象表单
            else if (SheetDataType == SheetDataType.BizObject)
            {
                if (IsOriginateMode)
                {
                    return(UserValidator.ValidateBizObjectAdd(SchemaCode, null, UserValidator.UserID));
                }
                else
                {
                    if (UserValidator.ValidateOrgAdmin(BizObject.OwnerId))
                    {
                        return(true);
                    }
                    return(UserValidator.ValidateBizObjectAdmin(SchemaCode, null, BizObject.OwnerId));
                }
            }
            else
            {
                switch (SheetMode)
                {
                case SheetMode.Originate:
                    return(UserValidator.ValidateCreateInstance(WorkflowCode));

                case SheetMode.View:
                case SheetMode.Print:
                    if (WorkItem != null &&
                        ValidateWorkItemAuth(WorkItem, UserValidator, UserValidator.Engine.AgencyManager))
                    {
                        return(true);
                    }
                    else if (CirculateItem != null && ValidateCirculateItemAuth(CirculateItem, UserValidator))
                    {
                        return(true);
                    }
                    else if (UserValidator.ValidateWFInsView(WorkflowCode, InstanceContext.Originator))
                    {
                        // 是否允许查看这个流程模板的所有实例
                        return(true);
                    }
                    else
                    {
                        // 判定用户是否参与过流程实例
                        string[] workItems = UserValidator.Engine.Query.QueryWorkItems(
                            new string[] { InstanceContext.InstanceId },
                            new string[] { UserValidator.UserID },
                            DateTime.Now.AddYears(-100),
                            DateTime.Now.AddDays(1),
                            H3.WorkItem.WorkItemState.Unspecified,
                            OThinker.H3.WorkItem.WorkItem.NullWorkItemID);
                        if (workItems != null && workItems.Length > 0)
                        {
                            return(true);
                        }
                        return(false);
                    }

                case SheetMode.Work:
                    if (WorkItem != null)
                    {
                        return(ValidateWorkItemAuth(WorkItem, UserValidator, UserValidator.Engine.AgencyManager));
                    }
                    else
                    {
                        return(ValidateCirculateItemAuth(CirculateItem, UserValidator));
                    }

                default:
                    throw new NotImplementedException();
                }
            }
        }
 private object ReplaceColumnValuesNonArrayToNonArray(object oldData, SheetDataType oldDataType, SheetDataType newDataType, bool sameReferenceSheet)
 {
     return(ConvertData(oldData, oldDataType, newDataType, sameReferenceSheet));
 }
Exemple #27
0
        /// <summary>
        /// 从服务器读取数据
        /// </summary>
        private void GetDataFromServer()
        {
            if (!_GetDataFromServer)
            {
                _GetDataFromServer = true;
                string strWorkItemId   = OThinker.Data.Convertor.SqlInjectionPrev(this.Request.QueryString[Param_WorkItemID]);
                string strInstanceId   = OThinker.Data.Convertor.SqlInjectionPrev(this.Request.QueryString[Param_InstanceId]);
                string strWorkflowCode = OThinker.Data.Convertor.SqlInjectionPrev(this.Request.QueryString[Param_WorkflowCode]);
                string strSchemaCode   = OThinker.Data.Convertor.SqlInjectionPrev(this.Request.QueryString[Param_SchemaCode]);
                int    workflowVersion = WorkflowTemplate.PublishedWorkflowTemplate.NullWorkflowVersion;
                int.TryParse(this.Request.QueryString[Param_WorkflowVersion], out workflowVersion);
                string strSheetCode = OThinker.Data.Convertor.SqlInjectionPrev(this.Request.QueryString[OThinker.H3.Controllers.SheetEnviroment.Param_SheetCode] + string.Empty);

                if (!string.IsNullOrEmpty(strWorkItemId) ||
                    !string.IsNullOrEmpty(strInstanceId) ||
                    (this.IsOriginateMode && !string.IsNullOrEmpty(strWorkflowCode)))
                {
                    // 流程模式
                    this._SheetDataType = SheetDataType.Workflow;
                }
                else if (!string.IsNullOrEmpty(strSchemaCode))
                {
                    // 开发平台模式
                    this._SheetDataType = SheetDataType.BizObject;
                }

                if (this.SheetDataType == SheetDataType.Workflow)
                {
                    this.Engine.Interactor.GetDataForWorkflow(
                        (InteractiveType)this.SheetMode,
                        strWorkflowCode,
                        workflowVersion,
                        strInstanceId,
                        strWorkItemId,
                        strSheetCode,
                        this.User.UserID,
                        SheetUtility.GetClientIP(this.Request),
                        SheetUtility.GetClientPlatform(this.Request),
                        SheetUtility.GetClientBrowser(this.Request),
                        out this._Authorized,
                        out this._InstanceContext,
                        out this._WorkItem,
                        out this._CirculateItem,
                        out this._Workflow,
                        out this._Schema,
                        out this._ActivityCode,
                        out this._Sheet,
                        out this._PostUnits,
                        out this._SheetDisplayName,
                        out this._LockValidation,
                        out this._Message);
                }
                else
                {
                    this.Engine.Interactor.GetDataForBizObject(
                        strSchemaCode,
                        strSheetCode,
                        out this._Schema,
                        out this._Sheet);
                }
            }
        }
        private object ConvertStringToDataType(string oldData, SheetDataType newDataType)
        {
            switch (newDataType)
            {
            case SheetDataType.Long:
            {
                long result;
                if (long.TryParse(oldData, out result))
                {
                    return(result);
                }
                break;
            }

            case SheetDataType.Int:
            {
                int result;
                if (int.TryParse(oldData, out result))
                {
                    return(result);
                }
                break;
            }

            case SheetDataType.Short:
            {
                short result;
                if (short.TryParse(oldData, out result))
                {
                    return(result);
                }
                break;
            }

            case SheetDataType.Byte:
            {
                byte result;
                if (byte.TryParse(oldData, out result))
                {
                    return(result);
                }
                break;
            }

            case SheetDataType.Double:
            {
                double result;
                if (double.TryParse(oldData, out result))
                {
                    return(result);
                }
                break;
            }

            case SheetDataType.Float:
            {
                float result;
                if (float.TryParse(oldData, out result))
                {
                    return(result);
                }
                break;
            }

            case SheetDataType.Boolean:
            {
                bool result;
                if (bool.TryParse(oldData, out result))
                {
                    return(result);
                }
                break;
            }

            case SheetDataType.String:
            {
                return(oldData);
            }
            }

            return(newDataType.GetDefaultValue(false));
        }