protected void InitDetailSheet(HSSFSheet sheet) { ushort colindex = 0; Row header = sheet.CreateRow(0); List <DataFeedColumn> listBasicColums = this.BasicColumns .FindAll(item => item.Type == DataType.LIST); for (int i = 0; i < listBasicColums.Count; i++) { DataFeedColumn item = listBasicColums[i]; header.CreateCell(colindex).SetHeaderCell().SetCellValue(item.Name); this.SetExcelColumns(sheet, item.Width * 600, colindex); if (item.Type == DataType.LIST && item.List != null) { for (int j = 0; j < item.List.Count; j++) { Row row = sheet.GetRow(j + 1); if (row == null) { row = sheet.CreateRow(j + 1); } row.CreateCell(colindex).SetCellValue(item.List[j]); } } colindex++; } if (this.Properties != null && this.Properties.Count > 0) { for (int i = 0; i < this.Properties.Count; i++) { DataFeedColumn item = this.Properties[i]; header.CreateCell(colindex).SetHeaderCell().SetCellValue(item.Name); this.SetExcelColumns(sheet, item.Width * 600, colindex); if (item.Type == DataType.LIST && item.List != null) { for (int j = 0; j < item.List.Count; j++) { Row row = sheet.GetRow(j + 1); if (row == null) { row = sheet.CreateRow(j + 1); } row.CreateCell(colindex).SetCellValue(item.List[j]); } } colindex++; } } }
DataFeedTemplate BulidTemplate(int c3SysNo, string c3Name) { string configPath = Path.Combine( AppDomain.CurrentDomain.SetupInformation.ApplicationBase , AppSettingHelper.Get("DataFeedFilesConfigPath") ); m_dataFeed = SerializationUtility.LoadFromXml <DataFeedFileMapping>(configPath).Mappings[0]; DataFeedTemplate template = new DataFeedTemplate(); template.C3Name = c3Name; template.C3SysNo = c3SysNo; template.C3RowIndex = int.Parse(m_dataFeed.C3RowIndex); //填充列分组信息 template.HeaderGroups = new List <HeaderGroup>(); foreach (var item in m_dataFeed.HeaderGroups) { template.HeaderGroups.Add(item); } template.BasicColumns = BuildBasicColumns(c3SysNo); var list = ExternalDomainBroker.GetCategoryPropertyByCategorySysNo(c3SysNo); if (list != null) { template.Properties = new List <DataFeedColumn>(); var activeList = list.Where(p => p.Property.Status == PropertyStatus.Active); if (activeList.Count() > 0) { var propertySysNoList = activeList.Select(p => p.Property.SysNo.Value).ToList(); var propertyValues = ExternalDomainBroker.GetPropertyValueInfoByPropertySysNoList(propertySysNoList); foreach (var item in activeList) { DataFeedColumn column = new DataFeedColumn(); column.Number = item.Property.SysNo.Value; // item.PropertyType == "D"? 没有这个属性? if (item.PropertyType == PropertyType.Grouping) { column.Name = string.Format("{0}_列表", item.Property.PropertyName.Content); } else { column.Name = item.Property.PropertyName.Content; } column.Type = DataType.LIST; column.Width = column.Name.Length; if (item.IsMustInput == CategoryPropertyStatus.Yes) { column.IsMustInput = true; } else { column.IsMustInput = false; } if (item.IsInAdvSearch == CategoryPropertyStatus.Yes) { column.IsInAdvSearch = true; } column.List = new List <string>(); var propertyList = propertyValues.FirstOrDefault(p => p.Key == item.Property.SysNo.Value).Value; if (propertyList != null) { foreach (var value in propertyList.Where(p => p.PropertyInfo.Status == PropertyStatus.Active)) { column.List.Add(value.ValueDescription.Content); } } template.Properties.Add(column); //分组属性需要多加一列 // item.PropertyType == "D"? 没有这个属性? if (item.PropertyType == PropertyType.Grouping) { column = new DataFeedColumn(); column.Name = string.Format("{0}_自定义", item.Property.PropertyName.Content); column.Width = column.Name.Length; column.Type = DataType.TEXT_LENGTH; template.Properties.Add(column); } //HACK:Bob.H.Li 如果Item.Type==G,那么添加一列“是否分组属性” if (item.PropertyType == PropertyType.Grouping) { column = new DataFeedColumn(); column.Number = template.Properties.Count; column.Name = DataFeedConstString.EXCEL_ADDSELECTGROUPSTRING; column.Width = column.Name.Length; column.Type = DataType.LIST; column.List = new List <string>() { GroupPropertyType.OnlyGroupText, GroupPropertyType.OnlyGroupPicture, GroupPropertyType.GroupAggregationText, GroupPropertyType.GroupAggregationPicture }; template.Properties.Add(column); } } } } return(template); }
List <DataFeedColumn> BuildBasicColumns(int c3SysNo) { List <DataFeedColumn> list = new List <DataFeedColumn>(); if (m_dataFeed != null) { int number = 1; foreach (var header in m_dataFeed.Headers) { DataFeedColumn column = new DataFeedColumn(); column.Number = number; column.Name = header.Name; column.Width = header.Width; column.IsMustInput = header.IsMustInput; column.Type = DataType.ANY; column.HeaderGroupIndex = header.HeaderGroupIndex; if (header.Type == "List") { column.Type = DataType.LIST; column.List = new List <string>(); if (header.Name == "生产商") { List <ManufacturerInfo> manufactures = ExternalDomainBroker.GetManufacturerList(m_companyCode); foreach (var item in manufactures) { column.List.Add(!string.IsNullOrEmpty(item.ManufacturerNameLocal.Content) ? item.ManufacturerNameLocal.Content : item.ManufacturerNameGlobal); } } else if (header.Name == "品牌") { var brands = ExternalDomainBroker.GetBrandList(m_companyCode); var brandsList = brands.Select(p => !string.IsNullOrEmpty(p.BrandNameLocal.Content) ? p.BrandNameLocal.Content : p.BrandNameGlobal); column.List.AddRange(brandsList); } else if (header.Name == "PM") { var pmList = ExternalDomainBroker.GetAllValidPMList(m_companyCode); foreach (var item in pmList) { column.List.Add(item.UserInfo.UserName); } } else if (header.Name == "版本") { column.List.Add("零售版"); column.List.Add("OEM版"); } else if (header.Name == "航空禁运") { column.List.Add("是"); column.List.Add("否"); } //是否拍照 else if (header.Name == DataFeedConstString.EXCEL_COLUMNNAME_ITEM_HASPHOTO) { column.List.Add("是"); column.List.Add("否"); } //是否代销 else if (header.Name == DataFeedConstString.EXCEL_COLUMNNAME_ITEM_SALEBYPROXY) { column.List.Add("代销"); column.List.Add("非代销"); column.List.Add("临时代销"); } //是否虚库 else if (header.Name == DataFeedConstString.EXCEL_COLUMNNAME_ITEM_ISVIRTUALINVENTORY) { column.List.Add("是"); column.List.Add("否"); } //商品类型 else if (header.Name == DataFeedConstString.EXCEL_COLUMNNAME_ITEM_PRODUCTTYPE) { column.List.Add("正常品"); column.List.Add("二手品"); column.List.Add("坏品"); } } list.Add(column); number++; } } return(list); }