private string[] GetRowData(ProductInvPeriod productInvPeriod)
        {
            string[] rowData = new string[2 + productInvPeriod.DataToGrid.Count * 2];

            rowData[0] = productInvPeriod.InventoryType;
            rowData[1] = productInvPeriod.ProductCount.ToString();

            for (int i = 0; i < productInvPeriod.DataToGrid.Count; i++)
            {
                ProductInvPeriod data = productInvPeriod.DataToGrid[i];

                if (productInvPeriod.IsForTitle)
                {
                    rowData[2 + i * 2]     = data.DateFrom.ToString() + " ~ " + data.DateTo.ToString();
                    rowData[2 + i * 2 + 1] = data.DateFrom.ToString() + " ~ " + data.DateTo.ToString();
                }
                else
                {
                    double rate = 0;
                    if (productInvPeriod.ProductCount > 0)
                    {
                        rate = data.ProductCount * 1.0 / productInvPeriod.ProductCount;
                        rowData[2 + i * 2] = rate.ToString("0.00%");
                    }
                    rowData[2 + i * 2 + 1] = data.PercentageStandard.ToString("0.00%");
                }
            }

            return(rowData);
        }
        private List <ProductInvPeriod> GetDataToGrid(List <ProductInvPeriod> productInvPeriodList)
        {
            List <ProductInvPeriod> returnValue = new List <ProductInvPeriod>();

            if (productInvPeriodList.Count >= 0)
            {
                //新增一个Title
                ProductInvPeriod title = new ProductInvPeriod();
                title.InventoryType = productInvPeriodList[0].InventoryType;
                title.IsForTitle    = true;
                title.ProductCount  = 0;
                foreach (ProductInvPeriod item in productInvPeriodList)
                {
                    title.DataToGrid.Add(item);
                    title.ProductCount += item.ProductCount;
                }

                returnValue.Add(title);

                //新增一个Title
                ProductInvPeriod data = new ProductInvPeriod();
                data.InventoryType = productInvPeriodList[0].InventoryType;
                data.IsForTitle    = false;
                data.ProductCount  = 0;
                foreach (ProductInvPeriod item in productInvPeriodList)
                {
                    data.DataToGrid.Add(item);
                    data.ProductCount += item.ProductCount;
                }
                returnValue.Add(data);

                if (title.DataToGrid.Count > _AddColumnCount)
                {
                    _AddColumnCount = title.DataToGrid.Count;
                }
            }

            return(returnValue);
        }
        private void ProcessDataDourceToGrid(ref object[] dataSource)
        {
            this.gridWebGrid.Rows.Clear();
            _AddColumnCount = 0;

            List <ProductInvPeriod> newDataSource = new List <ProductInvPeriod>();

            if (dataSource != null)
            {
                ProductInvPeriod        lastProductInvPeriod = null;
                List <ProductInvPeriod> productInvPeriodList = new List <ProductInvPeriod>();

                foreach (ProductInvPeriod productInvPeriod in dataSource)
                {
                    if (lastProductInvPeriod == null || productInvPeriod.InventoryType == lastProductInvPeriod.InventoryType)
                    {
                        productInvPeriodList.Add(productInvPeriod);
                    }
                    else
                    {
                        newDataSource.AddRange(GetDataToGrid(productInvPeriodList));

                        productInvPeriodList.Clear();
                        productInvPeriodList.Add(productInvPeriod);
                    }

                    lastProductInvPeriod = productInvPeriod;
                }

                //处理结尾
                newDataSource.AddRange(GetDataToGrid(productInvPeriodList));

                dataSource = newDataSource.ToArray();
                InitWebGrid();
            }
        }