public void Refresh(string channelGroup, string position, string itemName)
        {
            object cacheObj = Ops.Read(Global.ServiceName_SortingOPC, itemName);
            int sortNoStart, frontQuantity, laterQuantity, sumQuantity;
            DataTable table = null;
            if (cacheObj is Array)
            {
                Array arraycache = (Array)cacheObj;
                if (arraycache.Length == 3)
                {
                    sortNoStart =Convert.ToInt32( arraycache.GetValue(0));
                    frontQuantity = Convert.ToInt32(arraycache.GetValue(2));
                    laterQuantity = Convert.ToInt32(arraycache.GetValue(1));
                    sumQuantity = frontQuantity + laterQuantity;
                    OrderDal orderDal = new OrderDal();
                    DataTable orderTable = orderDal.FindDetailForCacheOrderQuery(channelGroup, sortNoStart);
                    table = orderTable.Clone();
                    if (position == "front")
                    {
                        if (orderTable.Rows.Count != 0)
                        {
                            int tempQuantity = 0;
                            foreach (DataRow orderDetailRow in orderTable.Rows)
                            {
                                int orderQuantity = Convert.ToInt32(orderDetailRow["QUANTITY"]);
                                tempQuantity = tempQuantity + orderQuantity;

                                if (tempQuantity >= frontQuantity)
                                {
                                    orderDetailRow["QUANTITY"] = orderQuantity + frontQuantity - tempQuantity;
                                    table.ImportRow(orderDetailRow);
                                    break;
                                }
                                else
                                {
                                    table.ImportRow(orderDetailRow);
                                }
                            }
                        }
                    }
                    else
                    {
                        if (orderTable.Rows.Count != 0)
                        {
                            int tempQuantity = 0;
                            foreach (DataRow orderDetailRow in orderTable.Rows)
                            {
                                int orderQuantity = Convert.ToInt32(orderDetailRow["QUANTITY"]);
                                if(tempQuantity+orderQuantity<=frontQuantity)
                                {
                                    tempQuantity+=orderQuantity;
                                }
                                else if(tempQuantity<=frontQuantity)
                                {
                                    if(tempQuantity+orderQuantity<=sumQuantity)
                                    {
                                        orderDetailRow["QUANTITY"] = tempQuantity + orderQuantity - frontQuantity;
                                        table.ImportRow(orderDetailRow);
                                        tempQuantity+=orderQuantity;
                                    }
                                    else
                                    {
                                        orderDetailRow["QUANTITY"]=laterQuantity;
                                        table.ImportRow(orderDetailRow);
                                        break;
                                    }
                                }
                                else if (tempQuantity > frontQuantity && tempQuantity<sumQuantity)
                                {
                                    if (tempQuantity+orderQuantity<=sumQuantity)
                                    {
                                        table.ImportRow(orderDetailRow);
                                        tempQuantity+=orderQuantity;
                                    }
                                    else
                                    {
                                        orderDetailRow["QUANTITY"] = sumQuantity-tempQuantity;
                                        table.ImportRow(orderDetailRow);
                                        break;
                                    }
                                }
                                else if (tempQuantity >= sumQuantity)
                                {
                                    break;
                                }
                            }
                        }
                    }
                }
            }
            gridControl.DataSource = table;
        }