/// <summary> /// 构造 /// </summary> /// <param name="pETCLColumn">ETCL列信息</param> public ValueRangeChecker(ETCLColumn pETCLColumn) { this._etclColumn = pETCLColumn; }
///// <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); } } } }
/// <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; }
/// <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; }