/// <summary>
    /// 修改目标的工作台编码
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnChangeGZT_Click(object sender, EventArgs e)
    {
        //修改工作台的操作
        if (string.IsNullOrEmpty(txtPalletNo.Text) || string.IsNullOrEmpty(txtGZT.Text))
        {
            this.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert(\"托盘号或者是工作台必须要填写!\");", true);
            return;
        }
        else
        {
            //首先要提示这个托盘现在所在的工作台是哪一个或者是库区位置
            BArrangeBillBoxBB bb = new BArrangeBillBoxBB();
            DataTable dt = bb.GetList("PalletNo = '" + txtPalletNo.Text.Trim().ToUpper() + "'").Tables[0];
            if(dt.Rows.Count==0)
            {
            this.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert(\"系统当中没有此托盘!\");", true);
                return;
            }
            if (txtGZT.Text.Trim().ToUpper() != "X04" && txtGZT.Text.ToUpper() != "X02" && txtGZT.Text.ToUpper() != "X09" && txtGZT.Text.ToUpper() != "X07")
            {
                this.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert(\"只能在X04和X02和X07和X09工作台之间进行修改!\");", true);
                return;
            }
            if (dt.Rows[0]["wareLocatorNo"].ToString() != "X04" && dt.Rows[0]["wareLocatorNo"].ToString() != "X02" && txtGZT.Text.ToUpper() != "X09" && txtGZT.Text.ToUpper() != "X07")
            {
                this.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert(\"托盘只能在X04和X02和X07和X09工作台之间修改!\");", true);
                return;
            }
            if (dt.Rows[0]["wareLocatorNo"].ToString() == txtGZT.Text.Trim().ToUpper())
            {
                this.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert(\"修改后的工作台与原来的工作台是同一个工坐台!\");", true);
                return;
            }
            SCommBB comm = new SCommBB();
            try
            {
                comm.ExecuteSql("Update BarrangeBillBox set wareLocatorNo = '" + txtGZT.Text.Trim().ToUpper() + "' where PalletNo = '" + txtPalletNo.Text.Trim().ToUpper() + "'");

                this.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert(\"更新工作台成功 托盘 " + txtPalletNo.Text.Trim().ToUpper() + " 更新后的工作台是"+txtGZT.Text.Trim().ToUpper()+"!\");", true);

            }
            catch (Exception ee)
            {

                this.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert(\"更新工作台失败 " + ee.Message + "!\");", true);

            }
            finally
            {
                comm.Dispose();
                bb.Dispose();
            }

        }
    }
    /// <summary>
    /// 绑定Grid
    /// </summary>
    protected void BindGrid()
    {
        BArrangeBillBoxBB arrangeBillBoxBB = new BArrangeBillBoxBB();
        DataSet ds = new DataSet();

        try
        {
            string strWhere = this.StrWhere;

            if (!string.IsNullOrEmpty(Request.QueryString["arriveBillNo"]))
            {
                strWhere += "  and arriveBillNo='" + Request.QueryString["arriveBillNo"].Replace("'", "''") + "'";
            }

            if (!string.IsNullOrEmpty(Request.QueryString["financeBillNo"]))
            {
                strWhere += "  and financeBillNo='" + Request.QueryString["financeBillNo"].Replace("'", "''") + "'";
            }

            if (!string.IsNullOrEmpty(Request.QueryString["materialNo"]))
            {
                strWhere += "  and materialNo='" + Request.QueryString["materialNo"].Replace("'", "''") + "'";
            }

            ds = arrangeBillBoxBB.GetVList(strWhere);
            this.grid.DataSource = ds.Tables[0];
            this.grid.DataBind();

            //赋值记录条数、页面总数
            this.Label3.Text = ds.Tables[0].Rows.Count.ToString();
            this.Label2.Text = this.grid.PageCount.ToString();
            this.currPage.Text = (this.grid.PageIndex + 1).ToString();
        }
        finally
        {
            arrangeBillBoxBB.Dispose();
        }
    }
    public void SaveTSArriveBox(int arriveDetailId, string strArriveBillNo, string strFinanceBillNo, string strMaterialNo,
        string strBoxNo, string strPalletNo, int factNum, int isrtEmpId, string strWareLocatorNo)
    {
        TSBarriveDetailBB arriveDetailBB = new TSBarriveDetailBB();
        BArrangeBillBoxBB arrangeBillBoxBB = new BArrangeBillBoxBB();
        SCommBB commBB = new SCommBB();

        try
        {
            TSBarriveDetailData arriveDetailModel = new TSBarriveDetailData();
            BArrangeBillBoxData arrangeBillBoxModel = new BArrangeBillBoxData();
            DataTable dtWareLocator = new DataTable();

            //获取某库位信息
            dtWareLocator = this.GetWareLocatorInfo(strWareLocatorNo);

            //获取到货单明细实例
            arriveDetailModel = arriveDetailBB.GetModel(arriveDetailId);

            arrangeBillBoxModel.arriveBillNo = strArriveBillNo;//到货单号
            arrangeBillBoxModel.financeBillNo = strFinanceBillNo;//采购单号
            //arrangeBillBoxModel.financeBillId = arriveDetailModel.financeBillId;//采购订单ID
            //arrangeBillBoxModel.financeBillLineNum = arriveDetailModel.financeBillLineNum;//采购订单行号
            arrangeBillBoxModel.materialNo = strMaterialNo;//物料号
            arrangeBillBoxModel.boxNo = strBoxNo;//箱号
            arrangeBillBoxModel.palletNo = strPalletNo;//托盘号
            arrangeBillBoxModel.wareNo = dtWareLocator.Rows[0]["wareNo"].ToString();//库区
            arrangeBillBoxModel.wareLocatorNo = strWareLocatorNo;//库位
            arrangeBillBoxModel.isBoxArrange = false;//箱子是否已经排托
            arrangeBillBoxModel.isPalletUsing = false;//托盘是否占用
            arrangeBillBoxModel.acceptEmpId = isrtEmpId;//收货人
            arrangeBillBoxModel.acceptDt = System.DateTime.Now.ToString();//收货时间
            arrangeBillBoxModel.factNum = factNum;//收货数量

            arrangeBillBoxBB.AddRecord(arrangeBillBoxModel);

            //锁定库位
            commBB.ExecuteSql("update dbo.LWareLocator set isUsing=1 where wareLocatorNo='" + strWareLocatorNo + "'");
        }
        finally
        {
            arriveDetailBB.Dispose();
            arrangeBillBoxBB.Dispose();
            commBB.Dispose();
        }
    }
    public bool JudgeCheckPallet(string strPalletNo, out string strErrorInfo)
    {
        BArrangeBillBoxBB arrangeBillBoxBB = new BArrangeBillBoxBB();

        try
        {
            strErrorInfo = "";

            DataTable dt = new DataTable();

            dt = arrangeBillBoxBB.GetList(" isnull(arrangeBillBox.wareNo,'')<>'' and arrangeBillBox.palletNo='"
                + strPalletNo + "'").Tables[0];

            //判断托盘上的所有物料是否已经检测完成
            if (dt.Rows.Count == 0)
            {
                strErrorInfo = "系统中不存在此托盘!";
                return false;
            }

            foreach (DataRow row in dt.Rows)
            {
                //判断当前托盘放置的物料是否全为非标准箱
                if (row["isStandardBox"].ToString() == "1" || row["isStandardBox"].ToString().ToUpper() == "Y")
                {
                    strErrorInfo = "当前托盘放置标准箱物料!";
                    return false;
                }

                //判断是否全部判定合格
                if (Convert.ToBoolean(row["checkResult"]) == false)
                {
                    strErrorInfo = "当前托盘存在未判定或判定不合格产品!";
                    return false;
                }

                //判断当前托盘是否未放到质检区
                if (row["wareType"].ToString() != "01")
                {
                    strErrorInfo = "当前托盘不在质检区!";
                    return false;
                }
            }

            return true;
        }
        finally
        {
            arrangeBillBoxBB.Dispose();
        }
    }
    public bool IsExistsBox(string strBoxNo)
    {
        BArrangeBillBoxBB arrangeBillBoxBB = new BArrangeBillBoxBB();

        try
        {
            DataTable dt = new DataTable();

            dt = arrangeBillBoxBB.GetList("boxNo='" + strBoxNo + "'").Tables[0];
            return dt.Rows.Count > 0 ? true : false;
        }
        finally
        {
            arrangeBillBoxBB.Dispose();
        }
    }
    public DataTable GetUsingArrivePallet(string strArriveBillNo, string strFinanceBillNos, string strPalletIndexs)
    {
        BArrangeBillBoxBB arrangeBillBoxBB = new BArrangeBillBoxBB();
        SCommBB commBB = new SCommBB();

        try
        {
            DataTable dtArrangeBillDetail = new DataTable();
            DataTable dtArrangeBillBoxBB = new DataTable();
            DataTable dtPallet = new DataTable();
            StringBuilder strSql = new StringBuilder();
            DataRow myDataRow = null;
            DataColumn myDataColumn;

            dtPallet.TableName = "dtPallet";

            //生成托盘条码号表托盘条码号列
            myDataColumn = new DataColumn();
            myDataColumn.DataType = System.Type.GetType("System.String");
            myDataColumn.ColumnName = "palletNo";
            dtPallet.Columns.Add(myDataColumn);

            //合计排托物料汇总
            strSql.Append("select materialNo,sum(boxNum) as boxNum ");
            strSql.Append("from dbo.BArrangeBillDetail ");
            strSql.Append("where arriveBillNo='" + strArriveBillNo + "' and palletIndex in (" + strPalletIndexs + ") ");
            strSql.Append("group by materialNo");

            dtArrangeBillDetail = commBB.Query(strSql.ToString()).Tables[0];

            //获取到货单下所有未排托并且托盘未占用的的所有托盘
            dtArrangeBillBoxBB = arrangeBillBoxBB.GetVList("arriveBillNo='" + strArriveBillNo
                + "' and '," + strFinanceBillNos + ",' like '%,'+financeBillNo+',%' and isBoxArrange=0 and isPalletUsing=0 and wareType='05'").Tables[0];

            foreach (DataRow row in dtArrangeBillDetail.Rows)
            {
                string strMaterialNo = "";
                int boxNum = 0;
                DataRow[] myDataRowArray = null;
                DataRow[] myDataRowArrayPallet = null;

                strMaterialNo = row["materialNo"].ToString();
                boxNum = Convert.ToInt32(row["boxNum"]);

                for (int i = 0; i < boxNum; i++)
                {
                    myDataRowArray = dtArrangeBillBoxBB.Select("materialNo='" + strMaterialNo
                        + "' and isBoxArrange=0 and isPalletUsing=0");

                    if (myDataRowArray.Length == 0)
                    {
                        break;
                    }
                    else
                    {
                        myDataRowArray[0]["isBoxArrange"] = true;

                        myDataRowArrayPallet = dtPallet.Select("palletNo='" + myDataRowArray[0]["palletNo"].ToString() + "'");
                        if (myDataRowArrayPallet.Length == 0)
                        {
                            //新增一个托盘
                            myDataRow = dtPallet.NewRow();

                            myDataRow["palletNo"] = myDataRowArray[0]["palletNo"].ToString();

                            dtPallet.Rows.Add(myDataRow);
                        }
                    }
                }
            }

            return dtPallet;
        }
        finally
        {
            arrangeBillBoxBB.Dispose();
            commBB.Dispose();
        }
    }
    public string GetPalletWareInfo(string strPalletNo)
    {
        string strWareLocatorNo = "";
        BArrangeBillBoxBB arrangeBillBoxBB = new BArrangeBillBoxBB();
        LWareBB wareBB = new LWareBB();
        LWareLocatorBB wareLocatorBB = new LWareLocatorBB();
        LMaterialBB materialBB = new LMaterialBB();
        SCommBB commBB = new SCommBB();

        try
        {
            DataTable dtArrangeBillBox = new DataTable();
            DataTable dtWare = new DataTable();
            DataTable dtWareLocator = new DataTable();

            //获取托盘下的所有箱子
            dtArrangeBillBox = arrangeBillBoxBB.GetVList("palletNo='" + strPalletNo + "' and isnull(wareNo,'')<>''").Tables[0];
            if (dtArrangeBillBox.Rows.Count > 0)
            {
                string strFinanceBillSort = "", strFinanceBillNo = "";

                strFinanceBillSort = dtArrangeBillBox.Rows[0]["financeBillSort"].ToString();//采购合同类型
                strFinanceBillNo = dtArrangeBillBox.Rows[0]["financeBillNo"].ToString();//采购合同号
                if (strFinanceBillSort == "按单" || strFinanceBillNo.IndexOf("EB16") == -1)
                {
                    #region 按单

                    //按单的物料,放置在正式库的平面库区
                    dtWareLocator = wareLocatorBB.GetVList("wareSortNo='A' and wareType='03' and isUsing=0 and isDel=0").Tables[0];
                    if (dtWareLocator.Rows.Count > 0)
                    {
                        strWareLocatorNo = dtWareLocator.Rows[0]["wareNo"].ToString() + ","
                            + dtWareLocator.Rows[0]["wareLocatorNo"].ToString();//库位
                    }

                    #endregion 按单
                }
                else if (strFinanceBillSort == "备货" || strFinanceBillNo.IndexOf("EB16") != -1)
                {
                    #region 备货

                    string strMaterialNos = "", strUCodeNos = "", strWareSortNos = "B";
                    int materialNum = 1;
                    DataTable dtMaterial = new DataTable();

                    //判断当前托盘是否存在多个物料
                    strMaterialNos = dtArrangeBillBox.Rows[0]["materialNo"].ToString();//物料编号
                    strUCodeNos = dtArrangeBillBox.Rows[0]["U_CodeNo"].ToString();//物料U_CodeNo
                    foreach (DataRow row in dtArrangeBillBox.Rows)
                    {
                        if (strMaterialNos.IndexOf(row["materialNo"].ToString()) == -1)
                        {
                            materialNum++;
                            strMaterialNos += "," + row["materialNo"].ToString();//物料编号
                        }

                        if (strUCodeNos.IndexOf(row["U_CodeNo"].ToString()) == -1)
                        {
                            strUCodeNos += "," + row["U_CodeNo"].ToString();//物料U_CodeNo
                        }
                    }

                    if (materialNum == 1)//托盘上只有一种物料
                    {
                        dtMaterial = materialBB.GetList("materialNo='" + strMaterialNos + "'").Tables[0];//获取物料信息
                        strWareSortNos = dtMaterial.Rows[0]["wareSortNo"].ToString();//获取物料的货位分类
                    }
                    else
                    {
                        foreach (DataRow row in dtArrangeBillBox.Rows)
                        {
                            dtMaterial = materialBB.GetList("materialNo='" + row["materialNo"].ToString() + "'").Tables[0];//获取物料信息
                            if (dtMaterial.Rows[0]["wareSortNo"].ToString() != "B")//查找货位分类为非高位货架所有类别
                            {
                                if (strWareSortNos == "B")//如果当前类型为高位货架
                                {
                                    strWareSortNos = dtMaterial.Rows[0]["wareSortNo"].ToString();//货架分类赋新值
                                }
                                else
                                {
                                    if (strWareSortNos.IndexOf(dtMaterial.Rows[0]["wareSortNo"].ToString()) == -1)
                                    {
                                        strWareSortNos += "," + dtMaterial.Rows[0]["wareSortNo"].ToString();
                                    }
                                }
                            }
                        }
                    }

                    if (strWareSortNos == "D" || strWareSortNos == "E")//流利货架摆放不分库位,推荐到库区即可
                    {
                        //获取推荐库区信息
                        dtWare = wareBB.GetVList("wareSortNo='" + strWareSortNos + "' and wareType='03' and isDel=0").Tables[0];
                        if (dtWare.Rows.Count > 0)
                        {
                            strWareLocatorNo = dtWare.Rows[0]["wareNo"].ToString() + ",";//库区
                        }
                    }
                    else//其他货架,推荐到库位
                    {
                        //获取推荐库位信息
                        dtWareLocator = commBB.Query("exec Proc_GetSuggestWareLocator '" + strWareSortNos.Trim(',')
                            + "','" + strUCodeNos.Trim(',') + "','" + strMaterialNos.Trim(',') + "'").Tables[0];
                        if (dtWareLocator.Rows.Count > 0)
                        {
                            strWareLocatorNo = dtWareLocator.Rows[0]["wareNo"].ToString() + ","
                                + dtWareLocator.Rows[0]["wareLocatorNo"].ToString();//库位
                        }
                    }

                    #endregion 备货
                }
            }
        }
        finally
        {
            arrangeBillBoxBB.Dispose();
            wareBB.Dispose();
            wareLocatorBB.Dispose();
            materialBB.Dispose();
            commBB.Dispose();
        }

        return strWareLocatorNo;
    }
    public string GetPalletNoByBoxNo(string strBoxNo)
    {
        BArrangeBillBoxBB arrangeBillBox = new BArrangeBillBoxBB();

        try
        {
            DataTable dt = new DataTable();

            dt = arrangeBillBox.GetVList("boxNo='" + strBoxNo + "'").Tables[0];
            if (dt.Rows.Count > 0)
            {
                return dt.Rows[0]["palletNo"].ToString();
            }

            return "";
        }
        finally
        {
            arrangeBillBox.Dispose();
        }
    }
    public DataTable GetCheckBoxByWhere(string strWhere)
    {
        BArrangeBillBoxBB arrangeBillBoxBB = new BArrangeBillBoxBB();

        try
        {
            DataTable dt = new DataTable();

            dt = arrangeBillBoxBB.GetVListCheckResult(strWhere).Tables[0];
            return dt;
        }
        finally
        {
            arrangeBillBoxBB.Dispose();
        }
    }
    public DataTable GetBoxCheck(string strBoxNo)
    {
        BArrangeBillBoxBB arrangeBillBoxBB = new BArrangeBillBoxBB();

        try
        {
            DataTable dt = new DataTable();

            dt = arrangeBillBoxBB.GetVListCheck("boxNo='" + strBoxNo + "'").Tables[0];
            return dt;
        }
        finally
        {
            arrangeBillBoxBB.Dispose();
        }
    }
    public DataTable GetBoxByWhereWithSalaBillNO(string strWhere)
    {
        BArrangeBillBoxBB arrangeBillBoxBB = new BArrangeBillBoxBB();

        try
        {
            DataTable dt = new DataTable();

            dt = arrangeBillBoxBB.GetVistWithSaleBillNO(strWhere).Tables[0];
            return dt;
        }
        finally
        {
            arrangeBillBoxBB.Dispose();
        }
    }
    public DataTable GetBoxByWareLocatorLeavingNum(string strWareLocatorNo)
    {
        BArrangeBillBoxBB arrangeBillBoxBB = new BArrangeBillBoxBB();

        try
        {
            DataTable dt = new DataTable();

            dt = arrangeBillBoxBB.GetVList("wareLocatorNo='" + strWareLocatorNo + "'").Tables[0];
            return dt;
        }
        finally
        {
            arrangeBillBoxBB.Dispose();
        }
    }
    public DataTable GetBoxByPalletNoWithNoPass(string PalletNo)
    {
        BArrangeBillBoxBB arrangeBillBoxBB = new BArrangeBillBoxBB();

        try
        {
            DataTable dt = new DataTable();

            dt = arrangeBillBoxBB.GetNoPassBox("PalletNo='" + PalletNo + "'").Tables[0];
            return dt;
        }
        finally
        {
            arrangeBillBoxBB.Dispose();
        }
    }
    public DataTable GetArriveBoxDetail(string strArriveBillNo, string strFinanceBillNo, string strMaterialNo)
    {
        BArrangeBillBoxBB arrangeBillBoxBB = new BArrangeBillBoxBB();

        try
        {
            DataTable dt = new DataTable();
            string strWhere = "1=1";

            //到货单号
            if (strArriveBillNo != "")
            {
                strWhere += " and arriveBillNo like '%" + strArriveBillNo + "%'";
            }

            //采购单号
            if (strFinanceBillNo != "")
            {
                strWhere += " and financeBillNo like '%" + strFinanceBillNo + "%'";
            }

            //物料编号
            if (strMaterialNo != "")
            {
                strWhere += " and materialNo like '%" + strMaterialNo + "%'";
            }

            dt = arrangeBillBoxBB.GetList(strWhere).Tables[0];
            return dt;
        }
        finally
        {
            arrangeBillBoxBB.Dispose();
        }
    }
    public bool CheckTallyBox(int tallyBillId, int region, string strBoxNo, out string strOldPalletNo, out string strMsg)
    {
        BTallyBillDetailBB tallyBillDetailBB = new BTallyBillDetailBB();
        BArrangeBillBoxBB arrangeBillBox = new BArrangeBillBoxBB();

        try
        {
            strMsg = "";
            strOldPalletNo = "";

            string strPreMaterialNo = "", strCurrMaterialNo = "";
            bool isExistsBox = false, isBoxAllowTally = false;
            DataTable dt = new DataTable();

            //判断箱号是否存在
            isExistsBox = this.IsExistsBox(strBoxNo);
            if (isExistsBox == false)
            {
                strMsg = "当前箱号不存在!";
                return false;
            }

            //判断当前箱子是否已经理货
            isBoxAllowTally = this.IsBoxAllowTally(strBoxNo);
            if (!isBoxAllowTally)
            {
                strMsg = "当前箱子已经理货!";
                return false;
            }

            //根据箱号,查找所在的托盘条码号
            strOldPalletNo = this.GetPalletNoByBoxNo(strBoxNo);
            if (strOldPalletNo == "")
            {
                strMsg = "当前箱子不属于任何托盘!";
                return false;
            }

            //判断同一区域箱数是否超过5个
            dt = tallyBillDetailBB.GetVList("mainId='" + tallyBillId.ToString() + "' and region='" + region.ToString() + "'").Tables[0];
            if (dt.Rows.Count >= 5)
            {
                strMsg = "";
                return false;
            }

            //判断同一托内区域,物料是否相同

            //根据箱号,查找物料是否符合排托规范

            //

            return true;
        }
        finally
        {
            tallyBillDetailBB.Dispose();
            arrangeBillBox.Dispose();
        }
    }
    public bool DeleteArriveBox(int id)
    {
        BArrangeBillBoxBB arrangeBillBoxBB = new BArrangeBillBoxBB();

        try
        {
            return arrangeBillBoxBB.DeleteRecord(id);
        }
        finally
        {
            arrangeBillBoxBB.Dispose();
        }
    }
    /// <summary>
    /// 清空天托盘操作 首先判断托盘啥上是否有货 有货的话 是否有 wareNO,wareLocatorNO,
    /// 只是适应于一种情况 就是托盘上有货 但是没有库位的情况
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnClear_Click(object sender, EventArgs e)
    {
        if (txtClearPalletNO.Text.ToString() == "")
        {
            this.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert(\"托盘号不能为空!\");", true);
            return;
        }
        bool canClear = true;
        BArrangeBillBoxBB bb = new BArrangeBillBoxBB();
        DataTable dt = bb.GetVList("PalletNo='" + txtClearPalletNO.Text.ToString().Trim().ToUpper() + "'").Tables[0];
        if (dt.Rows.Count == 0)
        {
            this.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert(\"托盘上已经没有任何产品 不需要清空!\");", true);
            return;
        }
        else
        {
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                if (dt.Rows[i]["wareNo"].ToString() != "" || dt.Rows[i]["wareLocatorNo"].ToString() != "")
                {
                    canClear = false;
                    break;
                }
            }

            if (!canClear)
            {
                this.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert(\"此托盘上的产品仍在仓库当中 请到库存报表当中查看详细!\");", true);
                return;
            }
            else
            {
                string command = "update BArrangeBillBox set palletNo = '' where palletNo = '" + txtClearPalletNO.Text.ToString().Trim().ToUpper() + "'";
                SCommBB comm = new SCommBB();
                try
                {
                    comm.ExecuteSql(command);
                    txtClearPalletNO.Text = "";
                }
                catch (Exception ee)
                {
                    this.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert(\"清理托盘失败 " + ee.Message + "!\");", true);
                }
                finally
                {
                    comm.Dispose();
                }
            }
        }
    }