Ejemplo n.º 1
0
        public void SaveSizePart(DataTable dt, int TaskID)
        {
            Hownet.BLL.SizePart          bllSP = new SizePart();
            Hownet.BLL.SizeTable         bllSt = new SizeTable();
            Hownet.BLL.MaterielAttribute blMa  = new MaterielAttribute();
            Hownet.Model.SizeTable       modST = new Hownet.Model.SizeTable();
            ArrayList PartList = new ArrayList();
            ArrayList SizeList = new ArrayList();

            bllSt.DelTask(TaskID);
            PartList.Clear();
            SizeList.Clear();
            PartList.Add(0);
            SizeList.Add(0);
            for (int r = 1; r < dt.Rows.Count - 1; r++)
            {
                int partID = 0;
                if (dt.DefaultView[r]["Part"].ToString() != string.Empty)
                {
                    partID = bllSP.GetID(dt.DefaultView[r]["Part"].ToString());
                }
                PartList.Add(partID);
            }
            for (int c = 1; c < dt.Columns.Count; c++)
            {
                int sizeID = 0;
                if (dt.DefaultView[0][c].ToString() != string.Empty)
                {
                    sizeID = blMa.GetID(dt.DefaultView[0][c].ToString(), 2);
                }
                SizeList.Add(sizeID);
            }
            for (int r = 0; r < PartList.Count; r++)
            {
                if (PartList[r].ToString() != "0")
                {
                    for (int c = 0; c < SizeList.Count; c++)
                    {
                        if (SizeList[c].ToString() != "0")
                        {
                            if (dt.DefaultView[r][c].ToString() != string.Empty && dt.DefaultView[r][c].ToString() != "0")
                            {
                                modST.ProduceTaskID = TaskID;
                                modST.SizeID        = int.Parse(SizeList[c].ToString());
                                modST.SizePartID    = int.Parse(PartList[r].ToString());
                                modST.Length        = decimal.Parse(dt.DefaultView[r][c].ToString());
                                bllSt.Add(modST);
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public int OrderNow(int uid, int pid, OrderModel model)
        {
            using (ShoppingELFEntities context = new ShoppingELFEntities())
            {
                UserTable user = new UserTable();
                user = context.UserTable.FirstOrDefault(m => m.UserID == uid);
                SizeTable st = new SizeTable();
                st = context.SizeTable.FirstOrDefault(m => m.PID == pid);
                if (st.productQuantity > 0)
                {
                    OrderTable ot = new OrderTable()
                    {
                        UserID          = uid,
                        PID             = pid,
                        productBrand    = st.ProductTable.productBrand,
                        ProductName     = st.ProductTable.productName,
                        productPicture  = st.ProductTable.picture1,
                        productPrice    = st.productPrice,
                        productSize     = st.productSize,
                        productQuantity = 1
                    };
                    st.productQuantity -= 1;
                    context.OrderTable.Add(ot);
                    context.SaveChanges();

                    SizeTable seller = new SizeTable();
                    seller = context.SizeTable.FirstOrDefault(x => x.PID == pid);
                    ProductTable pp = new ProductTable();
                    pp = context.ProductTable.FirstOrDefault(m => m.ProductID == seller.ProductID);

                    SoldTable soldt = new SoldTable()
                    {
                        SellerID        = pp.SellerID,
                        productName     = st.ProductTable.productName,
                        productBrand    = st.ProductTable.productBrand,
                        productPrice    = st.productPrice,
                        productQuantity = 1,
                        productSize     = st.productSize,
                        productPicture  = st.ProductTable.picture1,
                        PID             = pid,
                        UserName        = user.email
                    };
                    context.SoldTable.Add(soldt);
                    context.SaveChanges();

                    return(1);
                }
                else
                {
                    return(0);
                }
            }
        }
Ejemplo n.º 3
0
        static void Main(string[] args)
        {
            string[] example =
            {
                "my_label:",
                "mov $4200, &my_label",
                "mov r1, &0060",
                "mov $1300, r1",
                "mov &0060, r2",
                "add r1, r2",
            };

            var iss = Grammar.Parse(string.Join('\n', example));

            var program = new byte[] {
                (byte)OpCodes.MOV_LIT_REG, 65, 0xFF, (byte)Registers.R5, // write A
                (byte)OpCodes.MOV_REG_MEM, (byte)Registers.R5, 0xff, 0,
                (byte)OpCodes.INC_REG, (byte)Registers.R5,
                (byte)OpCodes.MOV_LIT_REG, (byte)'\n', 0xFF, (byte)Registers.R5, //write new line
                (byte)OpCodes.MOV_REG_MEM, (byte)Registers.R5, 0xff, 0,
                (byte)OpCodes.HLT
            };

            SizeTable.Init();
            EmitVisitor visitor = new EmitVisitor();

            Emitter em = new Emitter(visitor);

            visitor.Visit(iss);

            var output  = em.ToArray();
            var strOutp = string.Join(' ', output);

            //var vvv = sg.SquareBracketExpression.Parse("[eax - 4]");


            MemoryMapper.Map(new MemoryDevice(), 0, 100);

            // Map 0xFF bytes of the address space to an "output device" - just stdout
            MemoryMapper.Map(new ScreenDevice(), 0xff, 0x30ff, true);

            var cpu = new CPU(program);

            cpu.Run();

            cpu.DumpRegisters();
            Console.WriteLine();
        }
 public bool AddProductSize(int pid, SizeModel model)
 {
     using (ShoppingELFEntities context = new ShoppingELFEntities())
     {
         SizeTable st = new SizeTable()
         {
             ProductID       = pid,
             productSize     = model.productSize,
             productPrice    = model.productPrice,
             productQuantity = model.productQuantity
         };
         context.SizeTable.Add(st);
         context.SaveChanges();
         SelectMininmumPrice(pid);
     }
     return(true);
 }
        public void SelectMininmumPrice(int pid)
        {
            using (ShoppingELFEntities context = new ShoppingELFEntities())
            {
                ProductTable pt = new ProductTable();
                SizeTable    st = new SizeTable();
                pt = context.ProductTable.FirstOrDefault(x => x.ProductID == pid);

                var SizeList  = context.SizeTable.Where(m => m.ProductID == pid).ToList();
                int min_price = 2147483647;
                foreach (var i in SizeList)
                {
                    if (i.productPrice < min_price)
                    {
                        min_price = i.productPrice;
                    }
                }
                pt.price = min_price;
                context.SaveChanges();
            }
        }
        public ActionResult _Add2_NewDrinks(Add2_DrinksView DrinkD, Add2_Drinks_Size Add2_Drinks_Sizes, Add2_MEnuSis AddType, string AddSend, string SweetSend, string IceSend, string SizeSend, string saveAdd)
        {
            //先判斷按的按鈕

            //按下加料按鈕
            if (AddSend != null)
            {
                //判斷價錢不得為負
                int Price = 0;
                if (AddType.AddItemCreate != null)
                {
                    Price = Models.Add2_NewMenuAbout.MyMenuAdditemEdit_PriceNoSmall2(AddType.AddItemCreate);
                }
                //判斷輸入的值不得為空
                string Addmodelstate = "No";
                if (AddType.AddItemCreate != null)
                {
                    foreach (var item in AddType.AddItemCreate)
                    {
                        if (String.IsNullOrEmpty(item.ItemName))
                        {
                            Addmodelstate = null;
                        }
                    }
                }

                if (String.IsNullOrEmpty(Addmodelstate) || Price < 0)
                {
                    if (Price < 0)
                    {
                        ViewBag.PriceSmall = "加料價錢不得為負數.";
                    }

                    if (String.IsNullOrEmpty(Addmodelstate))
                    {
                        ViewBag.Additem = "加料名稱不得為空.";
                    }

                    ViewBag.AddItemcreats = AddType.AddItemCreate;
                    var result = Models.Add2_NewMenuAbout.BackDetails(DrinkD.MenuID, DrinkD.Add2_Drinks_details);
                    //回傳使用者剛剛輸入的資料
                    DrinkD.Add2_Drinks_details = result;
                    return(View(DrinkD));
                }
                //同菜單不能建立重覆的種類價表
                if (AddType.AddItemCreate != null)
                {
                    //判斷是否有重複的種類
                    foreach (var item in AddType.AddItemCreate)
                    {
                        if (item.ID == 0)
                        {
                            var query = db.AddItemTypes.Where(m => m.ItemName == item.ItemName);

                            if (query.FirstOrDefault() != null)
                            {
                                foreach (var queryItem in query)
                                {
                                    var query2 = db.AddItemTypePrices.Where(m => m.MenuID == DrinkD.MenuID && m.ItemID == queryItem.ID);
                                    if (query2.FirstOrDefault() != null)
                                    {
                                        ViewBag.PriceSmall         = "您建立了重覆的種類,請檢查後再做新增.";
                                        ViewBag.AddItemcreats      = AddType.AddItemCreate;
                                        DrinkD.Add2_Drinks_details = Models.Add2_NewMenuAbout.BackDetails(DrinkD.MenuID, DrinkD.Add2_Drinks_details);
                                        return(View(DrinkD));
                                    }
                                }
                            }
                        }
                        else
                        {
                            continue;
                        }
                    }
                }//End if

                //存入資料(寫入菜單)
                Models.Add2_NewMenuAbout.EditAdditem(DrinkD.MenuID, AddType);
                //返回視圖
                DrinkD.Add2_Drinks_details = Models.Add2_NewMenuAbout.BackDetails(DrinkD.MenuID, DrinkD.Add2_Drinks_details);
                return(View(DrinkD));
            }

            //按下甜度按鈕
            if (SweetSend != null)
            {
                //判斷
                //判斷甜度勾選及動態欄其一必填
                //判斷甜度.兩個都沒有選的情況
                var SweetCheck = Models.Add2_NewMenuAbout.CheckCheckboxNotEmpty2(AddType, "sweet");
                if ((AddType.SweetName == null || AddType.SweetName.Count == 0) && (SweetCheck == null || SweetCheck.Count == 0))
                {
                    ViewBag.SweetEmpty = "甜度欄位尚未填寫,請填寫完畢再儲存.";
                    //var Menu = Models.ManagerModels.ErrorBackMenu(newM);
                    var result = Models.Add2_NewMenuAbout.BackDetails(DrinkD.MenuID, DrinkD.Add2_Drinks_details);
                    //回傳使用者剛剛輸入的資料
                    DrinkD.Add2_Drinks_details = result;
                    return(View(DrinkD));
                }


                //存入資料(寫入菜單)
                Models.Add2_NewMenuAbout.EditSweet(DrinkD.MenuID, AddType);
                //返回視圖
                DrinkD.Add2_Drinks_details = Models.Add2_NewMenuAbout.BackDetails(DrinkD.MenuID, DrinkD.Add2_Drinks_details);
                return(View(DrinkD));
            }
            //按下冰度按鈕
            if (IceSend != null)
            {
                //判斷冰度.兩個都沒有選的情況
                var IceCheck = Models.Add2_NewMenuAbout.CheckCheckboxNotEmpty2(AddType, "ice");
                if ((AddType.IceName == null || AddType.IceName.Count == 0) && (IceCheck == null || IceCheck.Count == 0))
                {
                    ViewBag.IceEmpty = "冰度欄位尚未填寫,請填寫完畢再儲存.";
                    var result = Models.Add2_NewMenuAbout.BackDetails(DrinkD.MenuID, DrinkD.Add2_Drinks_details);
                    //回傳使用者剛剛輸入的資料
                    DrinkD.Add2_Drinks_details = result;
                    return(View(DrinkD));
                }
                //存入資料(寫入菜單)
                Models.Add2_NewMenuAbout.EditIce(DrinkD.MenuID, AddType);
                //返回視圖
                DrinkD.Add2_Drinks_details = Models.Add2_NewMenuAbout.BackDetails(DrinkD.MenuID, DrinkD.Add2_Drinks_details);
                return(View(DrinkD));
            }
            //按下尺寸按鈕
            if (SizeSend != null)
            {
                //判斷尺寸.兩個都沒有選的情況
                var SizeCheck = Models.Add2_NewMenuAbout.CheckCheckboxNotEmpty2(AddType, "size");
                if ((AddType.SizeName == null || AddType.SizeName.Count == 0) && (SizeCheck == null || SizeCheck.Count == 0))
                {
                    ViewBag.SizeEmpty = "尺寸欄位尚未填寫,請填寫完畢再儲存.";
                    var result = Models.Add2_NewMenuAbout.BackDetails(DrinkD.MenuID, DrinkD.Add2_Drinks_details);
                    //回傳使用者剛剛輸入的資料
                    DrinkD.Add2_Drinks_details = result;
                    return(View(DrinkD));
                }

                //存入資料(寫入菜單)
                Models.Add2_NewMenuAbout.EditSize(DrinkD.MenuID, AddType);
                //返回視圖
                DrinkD.Add2_Drinks_details = Models.Add2_NewMenuAbout.BackDetails(DrinkD.MenuID, DrinkD.Add2_Drinks_details);
                return(View(DrinkD));
            }
            //按下送出按鈕
            if (saveAdd != null)
            {
                //判斷新增飲料欄位不得刪除全部,導致此欄位null
                if (DrinkD.Add2_Drinks_details == null || DrinkD.Add2_Drinks_details.Count == 0)
                {
                    ViewBag.EmptyError = "您沒有新增任何飲品.";
                    //返回視圖
                    //DrinkD.Add2_Drinks_details = Models.Add2_NewMenuAbout.BackDetails(DrinkD.MenuID, DrinkD.Add2_Drinks_details);
                    return(View(DrinkD));
                }
                //飲品金額則以不為負數為基準
                int Price = Models.Add2_NewMenuAbout.DrinkPriceIsNotSmall(DrinkD);
                if (!ModelState.IsValid || Price < 0)
                {
                    if (Price < 0)
                    {
                        ViewBag.PriceSmall = "價錢不得為負值.";
                    }
                    //返回視圖
                    DrinkD.Add2_Drinks_details = Models.Add2_NewMenuAbout.BackDetails(DrinkD.MenuID, DrinkD.Add2_Drinks_details);
                    return(View(DrinkD));
                }

                //判斷勾選甜度.冰度.欄位必須勾選一項(由於是多項,所以必須一樣樣判斷)
                //加料由於有可加與不可加所以就不判斷
                foreach (var item in DrinkD.Add2_Drinks_details)
                {
                    var CheckSweet = Models.Add2_NewMenuAbout.AddDrink_CheckboxNotEmpty2(item, "sweet");
                    var CheckIce   = Models.Add2_NewMenuAbout.AddDrink_CheckboxNotEmpty2(item, "ice");
                    if ((CheckSweet == null || CheckSweet.Count == 0) || (CheckIce == null || CheckIce.Count == 0))
                    {
                        ViewBag.EmptyError = "請將欄位填寫完全,甜度及冰度欄位請至少勾選一項.";
                        //返回視圖
                        DrinkD.Add2_Drinks_details = Models.Add2_NewMenuAbout.BackDetails(DrinkD.MenuID, DrinkD.Add2_Drinks_details);
                        return(View(DrinkD));
                    }
                }
                //判斷完後分別寫入四個表////////////////////////////////////////
                //飲料名及種類表(要先寫入資料庫才能取DrinkID)
                //飲料尺寸價表(取得DrinkID寫入資料庫,再取得SizePID)
                //
                //--依照DrinkID,再用DrinkID.SizeID.Price取SizePID------
                //這裡先不判斷使用者若重覆建立飲料名.種類.大小.價錢一樣,但冷冰度不一樣的資料(使用者不使用修改[這樣會造成有兩筆一樣但ID不一樣的資料])
                //飲料甜度表
                //飲料冰度表
                //飲料加料表(要先判斷是否null,若不為null則寫入)
                ////////////////////////////////////////////////////////////////

                //飲料名及種類表(要先判斷同一菜單是否已有同名.同種類飲料)
                foreach (var item in DrinkD.Add2_Drinks_details)
                {
                    DrinkD.DrinkType = DrinkD.DrinkType.Trim();
                    var query = db.MenuDrinks.Where(m => m.MenuID == DrinkD.MenuID && m.DrinkType == DrinkD.DrinkType && m.DrinkName == item.DrinkName);
                    if (query.FirstOrDefault() != null)
                    {
                        continue;
                    }
                    else
                    {
                        var NewDrinks = new MenuDrink()
                        {
                            MenuID    = DrinkD.MenuID,
                            DrinkType = DrinkD.DrinkType,
                            DrinkName = item.DrinkName
                        };
                        //NewDrinks.Add(new MenuDrink()
                        //{
                        //    MenuID = addDks.MenuID,
                        //    DrinkType = item.DrinkType,
                        //    DrinkName = item.DrinkName
                        //});
                        db.MenuDrinks.Add(NewDrinks);
                        db.SaveChanges();
                    }
                }
                //依照MenuID.DrinkType.DrinkName取出飲料ID/////////////////////////////////
                var NewSizeP = new List <SizeTable>();
                foreach (var item in DrinkD.Add2_Drinks_details)
                {
                    int DrinkID = Models.Add2_NewMenuAbout.PickDrinkID_UseModel2(item, DrinkD.MenuID, DrinkD.DrinkType);
                    //飲料尺寸價表
                    int SizeID = Int32.Parse(item.SizeTypeM);
                    //由於加入了排序的要素所以要先判斷所寫入的這個項目是第幾個
                    //一個一個分別寫入
                    var CheckHave = db.SizeTables.Where(m => m.MenuID == DrinkD.MenuID);
                    //若此菜單找不到飲料則起始值為1
                    if (CheckHave.FirstOrDefault() == null)
                    {
                        var NSizeTable = new SizeTable()
                        {
                            DrinkID   = DrinkID,
                            SizeID    = SizeID,
                            Price     = item.DrinkPrice,
                            MenuID    = DrinkD.MenuID,
                            DrinkSort = 1
                        };
                        db.SizeTables.Add(NSizeTable);
                        db.SaveChanges();
                    }
                    //若有找到飲料則以最後一個值的sort加1
                    if (CheckHave.FirstOrDefault() != null)
                    {
                        //先找到最後一個飲料的sort值
                        int sortNum = 0;
                        CheckHave = CheckHave.OrderByDescending(m => m.DrinkSort);
                        foreach (var CHitem in CheckHave)
                        {
                            sortNum = CHitem.DrinkSort;
                            break;
                        }
                        sortNum = sortNum + 1;
                        //要先判斷第一個要寫入的值有沒有先寫入了(當菜單為空白時要判斷)
                        var HaveSet = db.SizeTables.Where(m => m.DrinkID == DrinkID && m.SizeID == m.SizeID && m.Price == item.DrinkPrice && m.MenuID == DrinkD.MenuID && sortNum == 1);
                        if (HaveSet.FirstOrDefault() != null)
                        {
                            continue;
                        }
                        else
                        {
                            var NSizeTable = new SizeTable()
                            {
                                DrinkID   = DrinkID,
                                SizeID    = SizeID,
                                Price     = item.DrinkPrice,
                                MenuID    = DrinkD.MenuID,
                                DrinkSort = sortNum
                            };
                            db.SizeTables.Add(NSizeTable);
                            db.SaveChanges();
                        }
                    }
                    //NewSizeP.Add(new SizeTable()
                    //{
                    //    DrinkID = DrinkID,
                    //    SizeID = SizeID,
                    //    Price = item.DrinkPrice,
                    //    MenuID = DrinkD.MenuID
                    //});
                }
                //db.SizeTables.AddRange(NewSizeP);
                //db.SaveChanges();

                //依照DrinkID,再用DrinkID.SizeID.Price取SizePID//////////////////////////
                var NewSweetTable   = new List <SweetTable>();
                var NewIceTable     = new List <IceTable>();
                var NewAddItemTable = new List <AddItemTable>();
                foreach (var item in DrinkD.Add2_Drinks_details)
                {
                    int DrinkID      = Models.Add2_NewMenuAbout.PickDrinkID_UseModel2(item, DrinkD.MenuID, DrinkD.DrinkType);
                    int SizePID      = Models.Add2_NewMenuAbout.PickSizePID_UseDidSidPrice2(item, DrinkID);
                    var CheckSweet   = Models.Add2_NewMenuAbout.AddDrink_CheckboxNotEmpty2(item, "sweet");
                    var CheckIce     = Models.Add2_NewMenuAbout.AddDrink_CheckboxNotEmpty2(item, "ice");
                    var CheckAddItem = Models.Add2_NewMenuAbout.AddDrink_CheckboxNotEmpty2(item, "additem");

                    //飲料甜度表
                    foreach (var sweetitem in CheckSweet)
                    {
                        NewSweetTable.Add(new SweetTable()
                        {
                            SizePID = SizePID,
                            SweetID = sweetitem
                        });
                    }
                    //飲料冰度表
                    foreach (var iceitem in CheckIce)
                    {
                        NewIceTable.Add(new IceTable()
                        {
                            SizePID = SizePID,
                            IceID   = iceitem
                        });
                    }
                    //飲料加料表(要先判斷是否null,若不為null則寫入)
                    if (NewAddItemTable != null || NewAddItemTable.Count != 0)
                    {
                        foreach (var additem in CheckAddItem)
                        {
                            NewAddItemTable.Add(new AddItemTable()
                            {
                                SizePID       = SizePID,
                                ItemIDPriceID = additem
                            });
                        }
                    }
                    db.SweetTables.AddRange(NewSweetTable);
                    db.IceTables.AddRange(NewIceTable);
                    if (NewAddItemTable != null || NewAddItemTable.Count != 0)
                    {
                        db.AddItemTables.AddRange(NewAddItemTable);
                    }
                    db.SaveChanges();
                }

                //寫完依menuID回到飲料詳細介面
                return(RedirectToAction("MyMenuDrinkDetail", "Manager", new { id = DrinkD.MenuID }));
            }

            //寫完依menuID回到飲料詳細介面
            return(RedirectToAction("MyMenuDrinkDetail", "Manager", new { id = DrinkD.MenuID }));
        }
Ejemplo n.º 7
0
        public int AddFromCartToOrder(int uid)
        {
            using (ShoppingELFEntities context = new ShoppingELFEntities())
            {
                CartTable ct   = new CartTable();
                SizeTable st   = new SizeTable();
                UserTable user = new UserTable();
                user = context.UserTable.FirstOrDefault(m => m.UserID == uid);
                var cart      = context.CartTable.Where(m => m.UserID == uid).ToList();
                var cartitems = context.CartTable.Where(m => m.UserID == uid).ToList();
                if (cart.Count > 0)
                {
                    foreach (var i in cartitems)
                    {
                        st = context.SizeTable.FirstOrDefault(x => x.PID == i.PID);
                        if (st.productQuantity > 0)
                        {
                            OrderTable ot = new OrderTable()
                            {
                                UserID          = uid,
                                productBrand    = i.SizeTable.ProductTable.productBrand,
                                ProductName     = i.SizeTable.ProductTable.productName,
                                productPicture  = i.SizeTable.ProductTable.picture1,
                                productPrice    = i.SizeTable.productPrice,
                                productSize     = i.SizeTable.productSize,
                                productQuantity = i.Quantity,
                                PID             = i.PID,
                            };

                            st.productQuantity -= i.Quantity;
                            context.OrderTable.Add(ot);
                            context.SaveChanges();

                            ProductTable seller = new ProductTable();
                            seller = context.ProductTable.FirstOrDefault(x => x.ProductID == i.SizeTable.ProductID);


                            SoldTable soldt = new SoldTable()
                            {
                                SellerID        = seller.SellerID,
                                productName     = i.SizeTable.ProductTable.productName,
                                productBrand    = i.SizeTable.ProductTable.productBrand,
                                productPrice    = i.SizeTable.productPrice,
                                productQuantity = i.SizeTable.productQuantity,
                                productSize     = i.SizeTable.productSize,
                                productPicture  = i.SizeTable.ProductTable.picture1,
                                PID             = i.PID,
                                UserName        = user.email
                            };
                            context.SoldTable.Add(soldt);
                            context.SaveChanges();
                            //return 1;
                        }
                        else
                        {
                            return(2);
                        }
                    }
                    return(3);
                }
                else
                {
                    return(0);
                }
            }
        }
Ejemplo n.º 8
0
        /// <summary>
        /// 显示生产单明细
        /// </summary>
        /// <param name="TaskID"></param>
        /// <param name="t">真加空行,假不加</param>
        /// <returns></returns>
        public DataSet ShowInfo(int TaskID, bool t)
        {
            bool f = false;

            Hownet.BLL.ProduceTaskInfo   pti    = new ProduceTaskInfo();
            Hownet.Model.ProduceTaskInfo modPti = new Hownet.Model.ProduceTaskInfo();
            Hownet.BLL.SizeBow           bllSB  = new SizeBow();
            Hownet.BLL.SizeTable         bllST  = new SizeTable();

            DataTable dtSBInfo   = bllSB.GetListByTask(TaskID).Tables[0];
            DataTable dtSTInfo   = bllST.GetListByTask(TaskID).Tables[0];
            DataTable dtInfo     = pti.GetList("(MainID=" + TaskID + ")").Tables[0];
            DataTable dtSizePart = bllST.GetSizePartIDGroup(TaskID).Tables[0];
            DataTable dt         = new DataTable();
            DataTable dtSB       = new DataTable();
            DataTable dtST       = new DataTable();

            dt.Columns.Add("Color", typeof(string));
            dtSB.Columns.Add("SizeBow", typeof(string));
            dtST.Columns.Add("SizePart", typeof(string));
            dt.Rows.Add(dt.NewRow());
            dtSB.Rows.Add(dtSB.NewRow());
            dtST.Rows.Add(dtST.NewRow());
            dtST.Rows[0]["SizePart"] = 0;
            dt.Rows[0]["Color"]      = "颜色\\尺码";
            if (dtSBInfo.Rows.Count > 0)
            {
                f = true;
            }
            SqlDataReader myReader = pti.GetSize(TaskID);

            int       i            = 1;
            ArrayList ColorList    = new ArrayList();
            ArrayList SizeList     = new ArrayList();
            ArrayList ColorOneList = new ArrayList();
            ArrayList ColorTwoList = new ArrayList();

            ColorList.Clear();
            ColorOneList.Clear();
            ColorTwoList.Clear();
            SizeList.Clear();
            ColorList.Add(0);
            SizeList.Add(0);
            ColorOneList.Add(0);
            ColorTwoList.Add(0);
            while (myReader.Read())
            {
                dt.Columns.Add("Columns" + i);
                dtSB.Columns.Add("Columns" + i);
                dtST.Columns.Add("Columns" + i);
                dtST.Rows[0][i] = dtSB.Rows[0][i] = dt.Rows[0][i] = myReader[0].ToString();
                SizeList.Add(int.Parse(myReader[1].ToString()));
                i++;
            }
            myReader.Close();
            for (int c = dt.Columns.Count; c < 12; c++)
            {
                dt.Columns.Add("Columns" + c);
            }
            dt.Columns.Add("SumNum");
            dt.Rows[0]["SumNum"] = "合计";
            dt.Columns.Add("ColorOne", typeof(string));
            dt.Columns.Add("ColorTwo", typeof(string));
            dt.Rows[0]["ColorOne"] = "插色一";
            dt.Rows[0]["ColorTwo"] = "插色二";
            SqlDataReader ColorReader = pti.GetColor(TaskID);

            i = 1;
            while (ColorReader.Read())
            {
                dt.Rows.Add(dt.NewRow());
                dt.Rows[i][0] = ColorReader[0].ToString();
                dt.Rows[i][dt.Columns.Count - 2] = ColorReader[3].ToString();
                dt.Rows[i][dt.Columns.Count - 1] = ColorReader[5].ToString();
                ColorList.Add(int.Parse(ColorReader[1].ToString()));
                ColorOneList.Add(int.Parse(ColorReader[4].ToString()));
                ColorTwoList.Add(int.Parse(ColorReader[6].ToString()));
                i++;
            }
            dtSB.Rows.Add(dtSB.NewRow());
            dtSB.Rows.Add(dtSB.NewRow());
            dtSB.Rows.Add(dtSB.NewRow());
            dtSB.Rows.Add(dtSB.NewRow());
            dtSB.Rows.Add(dtSB.NewRow());
            dtSB.Rows[1][0] = "钢弓";
            dtSB.Rows[2][0] = "棉碗";
            dtSB.Rows[3][0] = "成品肩带";
            dtSB.Rows[4][0] = "透明背带";
            dtSB.Rows[5][0] = "胶骨";
            ColorReader.Close();
            if (dtSizePart.Rows.Count > 0)
            {
                for (int a = 0; a < dtSizePart.Rows.Count; a++)
                {
                    object obj = dtSizePart.Rows[a][0].ToString();
                    dtST.Rows.Add(dtST.NewRow());
                    dtST.Rows[a + 1][0] = dtSizePart.Rows[a]["SizePartID"];
                }
            }
            DataTable dtNotAmount  = dt.Copy();
            DataTable dtBackAmount = dt.Copy();

            for (int r = 1; r < SizeList.Count; r++)
            {
                modPti.SizeID = int.Parse(SizeList[r].ToString());
                for (int c = 1; c < ColorList.Count; c++)
                {
                    modPti.ColorID    = int.Parse(ColorList[c].ToString());
                    modPti.ColorOneID = int.Parse(ColorOneList[c].ToString());
                    modPti.ColorTwoID = int.Parse(ColorTwoList[c].ToString());
                    modPti.MainID     = TaskID;
                    string    sql = "(SizeID=" + modPti.SizeID + ") and (ColorID=" + modPti.ColorID + ") and (ColorOneID=" + modPti.ColorOneID + ") and (ColorTwoID=" + modPti.ColorTwoID + ")";
                    DataRow[] drs = dtInfo.Select(sql);
                    if (drs.Length > 0)
                    {
                        dt.Rows[c][r]           = drs[0]["Amount"];
                        dtNotAmount.Rows[c][r]  = drs[0]["NotAmount"];
                        dtBackAmount.Rows[c][r] = drs[0]["BackAmount"];
                    }
                }
                if (f)
                {
                    DataRow[] drSb = dtSBInfo.Select("(SizeID=" + modPti.SizeID + ")");
                    if (drSb.Length > 0)
                    {
                        dtSB.Rows[1][r] = drSb[0]["BowName"];
                        dtSB.Rows[2][r] = drSb[0]["CottonName"];
                        dtSB.Rows[3][r] = drSb[0]["SashName"];
                        dtSB.Rows[4][r] = drSb[0]["OpenSashName"];
                        dtSB.Rows[5][r] = drSb[0]["PlasticBoneName"];
                    }
                }
                if (dtSTInfo.Rows.Count > 0)
                {
                    for (int a = 0; a < dtSizePart.Rows.Count; a++)
                    {
                        string    aaaa = "(SizeID=" + modPti.SizeID + ") and (SizePartID=" + dtSizePart.Rows[a]["SizePartID"] + ")";
                        DataRow[] drSt = dtSTInfo.Select(aaaa);
                        if (drSt.Length > 0)
                        {
                            dtST.Rows[a + 1][r] = drSt[0]["Length"];
                        }
                    }
                }
            }
            if (t)
            {
                //for (int r = dt.Rows.Count; r < 11; r++)
                //{
                //    DataRow dr = dt.NewRow();
                //    dt.Rows.Add(dr);
                //}
                dt.Rows.Add(dt.NewRow());
            }
            DataSet ds = new DataSet();

            ds.Tables.Add(dt);
            ds.Tables.Add(dtSB);
            ds.Tables.Add(dtST);
            ds.Tables.Add(dtNotAmount);
            ds.Tables.Add(dtBackAmount);
            return(ds);
        }