Ejemplo n.º 1
0
 /// <summary>
 /// 构造
 /// </summary>
 /// <param name="pETCLColumn">ETCL列信息</param>
 public ValueRangeChecker(ETCLColumn pETCLColumn)
 {
     this._etclColumn = pETCLColumn;
 }
Ejemplo n.º 2
0
        ///// <summary>
        ///// 所有转换器
        ///// </summary>
        //protected Dictionary<ITransformer, List<string>> AllTransformer;

        /// <summary>
        /// 构造器
        /// </summary>
        /// <param name="pUserInfo">用户信息</param>
        public CommonExcelETCL(BasicUserInfo pUserInfo)
        {
            //从XML加载列及模板信息
            this._currentBusinessInfo      = new ETCLTemplateInfo();
            this._currentBusinessInfo.Lang = (int)Reflection.DynamicReflectionHandler.GetProperty(pUserInfo, "Lang");
            this.CurrentUserInfo           = pUserInfo;
            XmlDocument xmlDoc  = new XmlDocument();
            string      xmlPath = AppDomain.CurrentDomain.BaseDirectory + "\\ETCLConfig.xml";

            xmlDoc.Load(xmlPath);
            List <XmlNode> lstTemplates = XMLHandler.GetNodesByProperty(xmlDoc, "JitETCLTemplates/JitETCLTemplate", "ClientID", pUserInfo.ClientID);

            if (this._currentBusinessInfo.Lang == 2)
            {
                this._currentBusinessInfo.TemplateName = lstTemplates[0].Attributes["TemplateNameEn"].Value;
            }
            else
            {
                this._currentBusinessInfo.TemplateName = lstTemplates[0].Attributes["TemplateName"].Value;
            }
            this._currentBusinessInfo.TemplateDescription = lstTemplates[0].Attributes["TemplateDescription"].Value;
            this._currentBusinessInfo.WorkSheets          = new List <ETCLWorkSheetInfo>();
            //加载Worksheets
            foreach (XmlNode worksheetItem in lstTemplates[0].ChildNodes)
            {
                ETCLWorkSheetInfo worksheetInfo = new ETCLWorkSheetInfo();
                worksheetInfo.Transformers = new List <ITransformer>();
                worksheetInfo.Transformers.Add(new DefaultTransformer(worksheetInfo));
                worksheetInfo.Tables = new List <ETCLTable>();
                if (this._currentBusinessInfo.Lang == 2)
                {
                    worksheetInfo.WorkSheetName = worksheetItem.Attributes["WorkSheetNameEn"].Value;
                }
                else
                {
                    worksheetInfo.WorkSheetName = worksheetItem.Attributes["WorkSheetName"].Value;
                }
                worksheetInfo.WorkSheetDescription = worksheetItem.Attributes["WorkSheetDescription"].Value;
                worksheetInfo.Index = this._currentBusinessInfo.WorkSheets.Count;
                this._currentBusinessInfo.WorkSheets.Add(worksheetInfo);

                //加载 当前Worksheet所涉及到的数据表
                foreach (XmlNode tableItem in worksheetItem.ChildNodes)
                {
                    ETCLTable etclTable = new ETCLTable();
                    etclTable.Columns   = new List <ETCLColumn>();
                    etclTable.TableName = tableItem.Attributes["TableName"].Value;
                    if (this._currentBusinessInfo.Lang == 2)
                    {
                        etclTable.TableDesc = tableItem.Attributes["TableDescEn"].Value;
                    }
                    else
                    {
                        etclTable.TableDesc = tableItem.Attributes["TableDesc"].Value;
                    }
                    if (tableItem.Attributes["ReferenceOnly"] != null && !string.IsNullOrWhiteSpace(tableItem.Attributes["ReferenceOnly"].Value))
                    {
                        etclTable.ReferenceOnly = Convert.ToInt32(tableItem.Attributes["ReferenceOnly"].Value);
                    }
                    if (tableItem.Attributes["DAOAssemblyName"] != null)
                    {
                        etclTable.DAOAssemblyName = tableItem.Attributes["DAOAssemblyName"].Value;
                    }
                    if (tableItem.Attributes["EntityAssemblyName"] != null)
                    {
                        etclTable.EntityAssemblyName = tableItem.Attributes["EntityAssemblyName"].Value;
                    }
                    if (tableItem.Attributes["DAOName"] != null)
                    {
                        etclTable.DAOName = tableItem.Attributes["DAOName"].Value;
                    }
                    if (tableItem.Attributes["EntityName"] != null)
                    {
                        etclTable.EntityName = tableItem.Attributes["EntityName"].Value;
                    }
                    etclTable.ReferenceDepth = 0;
                    etclTable.Worksheet      = worksheetInfo;
                    etclTable.Index          = worksheetInfo.Tables.Count;
                    etclTable.Loaders        = new List <ILoader>();
                    etclTable.Loaders.Add(new DefaultLoader());
                    worksheetInfo.Tables.Add(etclTable);

                    //加载表中的列
                    foreach (XmlNode columnItem in tableItem.ChildNodes)
                    {
                        ETCLColumn etclColumnInfo = new ETCLColumn();
                        if (columnItem.Attributes["ColumnName"] != null)
                        {
                            etclColumnInfo.ColumnName = columnItem.Attributes["ColumnName"].Value;
                        }


                        if (this._currentBusinessInfo.Lang == 2)
                        {
                            if (columnItem.Attributes["ColumnTextEn"] != null)
                            {
                                etclColumnInfo.ColumnText = columnItem.Attributes["ColumnTextEn"].Value;
                            }
                        }
                        else
                        {
                            if (columnItem.Attributes["ColumnText"] != null)
                            {
                                etclColumnInfo.ColumnText = columnItem.Attributes["ColumnText"].Value;
                            }
                        }
                        if (columnItem.Attributes["ColumnType"] != null)
                        {
                            etclColumnInfo.ColumnType = columnItem.Attributes["ColumnType"].Value;
                        }
                        if (columnItem.Attributes["Visible"] != null)
                        {
                            if (!string.IsNullOrEmpty(columnItem.Attributes["Visible"].Value))
                            {
                                etclColumnInfo.Visible = columnItem.Attributes["Visible"].Value != "0";
                            }
                        }
                        if (columnItem.Attributes["Nullable"] != null)
                        {
                            if (!string.IsNullOrEmpty(columnItem.Attributes["Nullable"].Value))
                            {
                                etclColumnInfo.Nullable = columnItem.Attributes["Nullable"].Value != "0";
                            }
                        }
                        if (columnItem.Attributes["Duplicatable"] != null)
                        {
                            if (!string.IsNullOrEmpty(columnItem.Attributes["Duplicatable"].Value))
                            {
                                etclColumnInfo.Duplicatable = columnItem.Attributes["Duplicatable"].Value != "0";
                            }
                        }
                        if (columnItem.Attributes["CanTermReplace"] != null)
                        {
                            if (!string.IsNullOrEmpty(columnItem.Attributes["CanTermReplace"].Value))
                            {
                                etclColumnInfo.CanTermReplace = columnItem.Attributes["CanTermReplace"].Value != "0";
                            }
                        }
                        if (columnItem.Attributes["IsLogicalField"] != null)
                        {
                            if (!string.IsNullOrEmpty(columnItem.Attributes["IsLogicalField"].Value))
                            {
                                etclColumnInfo.IsLogicalField = columnItem.Attributes["IsLogicalField"].Value != "0";
                            }
                        }
                        if (columnItem.Attributes["MaxValue"] != null)
                        {
                            etclColumnInfo.MaxValue = columnItem.Attributes["MaxValue"].Value;
                        }
                        if (columnItem.Attributes["MinValue"] != null)
                        {
                            etclColumnInfo.MinValue = columnItem.Attributes["MinValue"].Value;
                        }
                        if (columnItem.Attributes["ReferenceTableName"] != null)
                        {
                            etclColumnInfo.ReferenceTableName = columnItem.Attributes["ReferenceTableName"].Value;
                        }
                        if (columnItem.Attributes["ReferenceAdditionalCondition"] != null)
                        {
                            etclColumnInfo.ReferenceAdditionalCondition = columnItem.Attributes["ReferenceAdditionalCondition"].Value;
                        }
                        if (columnItem.Attributes["ReferenceColumnName"] != null)
                        {
                            etclColumnInfo.ReferenceColumnName = columnItem.Attributes["ReferenceColumnName"].Value;
                        }

                        if (this._currentBusinessInfo.Lang == 2)
                        {
                            if (columnItem.Attributes["ReferenceTextColumnNameEn"] != null)
                            {
                                etclColumnInfo.ReferenceTextColumnName = columnItem.Attributes["ReferenceTextColumnNameEn"].Value;
                            }
                        }
                        else
                        {
                            if (columnItem.Attributes["ReferenceTextColumnName"] != null)
                            {
                                etclColumnInfo.ReferenceTextColumnName = columnItem.Attributes["ReferenceTextColumnName"].Value;
                            }
                        }
                        etclColumnInfo.ValueCountCache = new Dictionary <object, int>();
                        etclColumnInfo.ValueCache      = new List <object>();
                        //添加默认Checker
                        etclColumnInfo.Checkers = new List <IChecker>();
                        if (etclColumnInfo.Nullable.HasValue && !etclColumnInfo.Nullable.Value)
                        {
                            etclColumnInfo.Checkers.Add(new DefaultNullValueChecker());
                        }
                        if (etclColumnInfo.Duplicatable.HasValue && !etclColumnInfo.Duplicatable.Value)
                        {
                            etclColumnInfo.Checkers.Add(new DefaultDuplicateChecker(this.CurrentUserInfo, etclTable, etclColumnInfo));
                        }
                        if (!string.IsNullOrWhiteSpace(etclColumnInfo.MaxValue) || !string.IsNullOrWhiteSpace(etclColumnInfo.MinValue))
                        {
                            etclColumnInfo.Checkers.Add(new ValueRangeChecker(etclColumnInfo));
                        }
                        etclTable.Columns.Add(etclColumnInfo);
                    }
                }
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// 构造器
 /// </summary>
 /// <param name="pBasicUserInfo">当前用户信息</param>
 /// <param name="pETCLWorkSheetInfo">ETCL工作簿信息</param>
 /// <param name="pETCLColumn">ETCL列信息</param>
 public DefaultReferenceChecker(BasicUserInfo pBasicUserInfo, ETCLWorkSheetInfo pETCLWorkSheetInfo, ETCLColumn pETCLColumn)
 {
     this._userInfo      = pBasicUserInfo;
     this._etclWorksheet = pETCLWorkSheetInfo;
     this._etclColumn    = pETCLColumn;
 }
Ejemplo n.º 4
0
 /// <summary>
 /// 构造器
 /// </summary>
 /// <param name="pUserInfo">用户信息</param>
 /// <param name="pETCLTable">ETCL表</param>
 /// <param name="pETCLColumn">ETCL列</param>
 public DefaultDuplicateChecker(BasicUserInfo pUserInfo, ETCLTable pETCLTable, ETCLColumn pETCLColumn)
 {
     this._userInfo   = pUserInfo;
     this._etclTable  = pETCLTable;
     this._etclColumn = pETCLColumn;
 }