コード例 #1
0
        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++;
                }
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }