private void LoadUniquePart() { DataTable dt = dalItem.SPPUniqueSelect(); dt.Columns.Add("STOCK"); dt.Columns.Add("DELIVERY QTY"); dt.Columns.Add("PCS/BAG"); dt.Columns.Add("TOTAL BAG(S)"); dt.Columns.Add("MAX STOCK LEVEL"); string preSize = ""; string currentSize = ""; for (int i = 0; i < dt.Rows.Count; i++) { currentSize = dt.Rows[i]["SIZE"].ToString(); int qtyPerBag = int.TryParse(dt.Rows[i]["STD_PACKING"].ToString(), out qtyPerBag)? qtyPerBag : 0; int stockQty = int.TryParse(dt.Rows[i]["QUANTITY"].ToString(), out stockQty) ? stockQty : 0; int toDeliveryQty = int.TryParse(dt.Rows[i]["TO_DELIVERY_QTY"].ToString(), out toDeliveryQty) ? toDeliveryQty : 0; dt.Rows[i]["STOCK"] = stockQty; if (qtyPerBag > 0) { dt.Rows[i]["DELIVERY QTY"] = toDeliveryQty; int bagQty = stockQty / qtyPerBag; //dt.Rows[i]["STOCK"] = stockQty + " ("+bagQty+" bags)"; dt.Rows[i]["PCS/BAG"] = qtyPerBag + "/bag"; dt.Rows[i]["TOTAL BAG(S)"] = bagQty; int maxStockLevel = 0; if (currentSize == "20") { maxStockLevel = text.StockLevel_20; } else if (currentSize == "25") { maxStockLevel = text.StockLevel_25; } else if (currentSize == "32") { maxStockLevel = text.StockLevel_32; } else if (currentSize == "50") { maxStockLevel = text.StockLevel_50; } else if (currentSize == "63") { maxStockLevel = text.StockLevel_63; } dt.Rows[i]["MAX STOCK LEVEL"] = maxStockLevel; } if (preSize == "") { preSize = currentSize; } else if (preSize != currentSize) { DataRow toInsert = dt.NewRow(); dt.Rows.InsertAt(toInsert, i); preSize = currentSize; } } dt.Columns["STOCK"].ColumnName = "STOCK(PCS)"; dt.Columns.Remove("QUANTITY"); dt.Columns.Remove("STD_PACKING"); dt.Columns.Remove("TO_DELIVERY_QTY"); dgvUnique.DataSource = dt; dgvUnique.ColumnHeadersDefaultCellStyle.Font = new Font("Segoe UI", 8F, FontStyle.Regular); dgvUnique.Columns["PCS/BAG"].DefaultCellStyle.Font = new Font("Segoe UI", 6F, FontStyle.Italic); dgvUnique.Columns["MAX STOCK LEVEL"].DefaultCellStyle.Font = new Font("Segoe UI", 6F, FontStyle.Italic); dgvUnique.DefaultCellStyle.Font = new Font("Segoe UI", 9F, FontStyle.Regular); dgvUnique.Columns["PCS/BAG"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; dgvUnique.Columns["MAX STOCK LEVEL"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; dgvUnique.Columns["TOTAL BAG(S)"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; dgvUnique.Columns["SIZE"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight; dgvUnique.Columns["UNIT"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft; dgvUnique.Columns["DELIVERY QTY"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; dgvUnique.Columns["DELIVERY QTY"].DefaultCellStyle.Font = new Font("Segoe UI", 6F, FontStyle.Italic); dgvUnique.Columns.Cast <DataGridViewColumn>().ToList().ForEach(f => f.SortMode = DataGridViewColumnSortMode.NotSortable); dgvUnique.ClearSelection(); }