及时刷新子窗体

        #region 确定事件
        private void btnConfirm_Click(object sender, EventArgs e)
        {
            decimal SendNumber = Convert.ToDecimal(lblSendNumber.Text.Trim().ToString() == "" ? "0" : lblSendNumber.Text.Trim().ToString());
            mi.RealNum = SendNumber;
            //赋值指令跟打印的状态值
            if (chbmand.Checked)
            {
                mi.IsInstruction = 1;
            }
            else
            {
                mi.IsInstruction = 0;
            }
            if (ckIsPrint.Checked)
            {
                mi.IsPrint = 1;
            }
            else
            {
                mi.IsPrint = 0;
            }
            string sqlsd = string.Empty;
            string value = string.Empty;
            User.isYieldTransit = true;
            FrmYieldTransitEdit fmm = (FrmYieldTransitEdit)this.Owner;
            ListView vi = ((ListView)fmm.Controls["panshow1"].Controls["listShowCar"]);
            if (YieldTransitEditBus.Add(mi) == true)
            {
                // 保存运送单后当前排队车辆状态改为出站,主窗体的车辆排队重新绑定第一个排队车辆
             
                int EMTinCar_ID = mi.EMTinCar_ID;
                SelectVehicleStateType_IDByTinID(EMTinCar_ID, vi);
                if (chbmand.Checked)
                {
                    string str = string.Format(@",本站坍落度:{0}", lblTankVolume.Text);
                    mcti.YieldTransit_ID = mi.ID;
                    mcti.CommandNum = SendNumber;
                    mcti.ISSJ = chbIssj.Checked;
                    mcti.EMAgitation_ID = Convert.ToInt32(mi.EMAgitation_ID);
                    mcti.YieldTime = Convert.ToDateTime(mi.SendTime);
                    mcti.Artask = mcti.Artask + str;
                    mcti.UserInfo_ID = User.UserID;
                    mcti.SetTime = DateTime.Now;
                    mcti.ISscreen = false;
                    mcti.ISGet = false;
                    mcti.TankVolumeRatio = lblTankVolume.Text;
                    if (YieldTransitEditBus.InsertCommand(mcti) == true)
                    {
                     
                        MessageBox.Show("发送指令成功", "");
                        this.Close();
                        BindDateYieldTransitdgv();
                        if (ckIsPrint.Checked)
                        {
                            try
                            {
                                string strurl = YieldTransitEditBus.GetPrintSql("MenuYieldTransit");
                                DataTable dt = null;
                                string ID = mi.ID.ToString();
                                dt = YieldTransitEditBus.GetPrintDate("MenuYieldTransit", ID);
                                if (dt != null && dt.Rows.Count > 0)
                                {
                                    User.Print(dt, strurl);
                                }
                            }
                            catch (Exception ex)
                            {
                                MessageBox.Show(ex.Message);
                            }
                        }
                    }
                    else
                    {
                        //MessageBox.Show("发送指令失败");
                    }
                }
                //没有选择指令
                else
                {
                    if (ckIsPrint.Checked)
                    {
                        try
                        {
                            string strurl = YieldTransitEditBus.GetPrintSql("MenuYieldTransit");
                            DataTable dt = null;
                            string ID = mi.ID.ToString();
                            dt = YieldTransitEditBus.GetPrintDate("MenuYieldTransit", ID);
                            if (dt != null && dt.Rows.Count > 0)
                            {
                                User.Print(dt, strurl);
                            }
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message);
                        }
                    }
                    this.Close();
                    BindDateYieldTransitdgv();
                }

                Thread T = new Thread(RingVoice);
                T.Start();
            }
            #region   移除之后的数据源不管是那种车辆都应该及时刷新为排队的第一辆
            ComboBox com = ((ComboBox)fmm.Controls["panshow1"].Controls["cmbEMTinCar_ID"]);
            DataTable dttess = (DataTable)com.DataSource;
            if (vi.Items.Count > 0)
            {
                string tess = vi.Items[0].Text; //获取第一项

                if (dttess != null && dttess.Rows.Count > 0)
                {
                    DataRow[] dr = dttess.Select("No='" + tess + "'");  //   "fatherNum='"+fatherNum+"'"

                    if (dr != null && dr.Length > 0)//说明找到"fatherNum='"+fatherNum+"'"
                    {
                        com.SelectedValue = dr[0].ItemArray[0];
                    }
                }
            }
            #endregion
            else
            {
                User.isYieldTransit = false;
                MessageBox.Show("保存失败");
            }
        }
        #endregion

#region 新建运送单成功后,车辆监控及时刷新
        /// <summary>
        /// 新建运送单成功后,车辆监控及时刷新
        /// </summary>
        /// <param name="CheckVehicleOrder_ID">没有修改之前本身的排序顺序</param>
        /// <param name="NewVehicleStateType_ID">之后的类型</param>
        ///  <param name="CheckVehicleStateType_ID">根据选中的类型传入不同的tv选中执行不同的脚本</param>
        public void updates(int CheckVehicleOrder_ID, int NewVehicleStateType_ID, string CheckVehicleStateType_ID)
        {
            string TransportorderSQL = string.Empty;
            string strMessage = string.Empty;
            //之后类型最大的排序
            string sqlMax = "SELECT max (VehicleOrder_ID)as VehicleOrder_ID from EMTinCar where VehicleStateType_ID=" + NewVehicleStateType_ID;
            string MaxValue = Common.Conn.SqlHelper.getSqlValue(sqlMax);
            int Maxvalues = 0;
            if (!string.IsNullOrEmpty(MaxValue))
            {
                Maxvalues = Convert.ToInt32(MaxValue) + 1;
            }
            if (CheckVehicleStateType_ID == "1")
            {
                if (string.IsNullOrEmpty(MaxValue))//出站没有任何数据排序第一次
                {
                    Maxvalues = 1;
                }
                tin.VehicleOrder_ID = Convert.ToInt32(Maxvalues);
            }
            if (CheckVehicleStateType_ID == "2")
            {
                if (string.IsNullOrEmpty(MaxValue))
                {
                    Maxvalues = 1;
                }
                else
                {
                    //修改之前把大于本身的小于最大的-1
                    TransportorderSQL = string.Format("exec UpdateTransorderByMax_Proc {0},{1},{2}", NewVehicleStateType_ID, CheckVehicleOrder_ID, MaxValue);
                    strMessage = Common.Conn.SqlHelper.ExecSql(TransportorderSQL);
                    if (strMessage != string.Empty)
                    {
                        return;
                    }
                }
                tin.VehicleOrder_ID = Convert.ToInt32(MaxValue);
            }
            if (CheckVehicleStateType_ID == "3")
            {
                if (string.IsNullOrEmpty(MaxValue))
                {
                    Maxvalues = 1;
                }
                //else {
                //    //修改之前把大于本身的小于最大的-1
                //    TransportorderSQL = string.Format("exec UpdateTransorderByMax_Proc {0},{1},{2}", NewVehicleStateType_ID, CheckVehicleOrder_ID, MaxValue);
                //    strMessage = Common.Conn.SqlHelper.ExecSql(TransportorderSQL);
                //    if (strMessage != string.Empty)
                //    {
                //        return;
                //    }
                //}
                tin.VehicleOrder_ID = Convert.ToInt32(Maxvalues);
            }
            //移动最后
            tin.VehicleStateType_ID = NewVehicleStateType_ID;
            tin.ID = mi.EMTinCar_ID;
            YieldTransitEditBus.updateemtin(tin);
        }
        #endregion

#region 根据车id查询属于老数据,排队,还是出站还是暂停
        public void SelectVehicleStateType_IDByTinID(int timcarid, ListView vi)
        {
            FrmEMTinCar fmt = null;
            Form YieldTransitEditForm = this.Owner;
            TabPage tc = (TabPage)YieldTransitEditForm.Parent;
            foreach (var f in tc.Controls )
            {
                if (tc.Controls .Count >0)
                {
                    if (tc.Text == "生产运送")
                    {
                        fmt = null;
                    }else if (tc.Text != "车辆状态监控")
                    {
                        fmt = null;
                    }
                    else
                    {
                        fmt = (FrmEMTinCar)f;
                    }
                    
                }
               
            }
        
            string sqlsd = string.Empty;
            string CheckVehicleOrder_ID = string.Empty;
            int checkorder_id = 0;
            //选中车的排序顺序
            string CheckVehicleOrderSql = "SELECT VehicleOrder_ID FROM EMTinCar where  ID=" + timcarid;
            CheckVehicleOrder_ID = Common.Conn.SqlHelper.getSqlValue(CheckVehicleOrderSql);
            if (!string.IsNullOrEmpty(CheckVehicleOrder_ID))
            {
                checkorder_id = Convert.ToInt32(CheckVehicleOrder_ID);
            }
            string CheckVehicleStateType_ID = string.Empty;//选中的类型
            int oldVehicleStateType_ID = 0;
            string value = string.Empty;
            sqlsd = "SELECT VehicleStateType_ID FROM EMTinCar where ID=" + timcarid;
            CheckVehicleStateType_ID = Common.Conn.SqlHelper.getSqlValue(sqlsd);
            if (!string.IsNullOrEmpty(CheckVehicleStateType_ID))
            {
                oldVehicleStateType_ID = Convert.ToInt32(CheckVehicleStateType_ID);
            }

            if (!string.IsNullOrEmpty(CheckVehicleStateType_ID))
            {
                //根据查询出来的VehicleStateType_ID判断是那种车辆,原始状态,
                //1排队车辆往出站车辆添加,出站车辆本身存在顺序是好的,只是往最后一个排
                //2选中出站车辆发货,是顺序相当于出站车辆拖拽最后一个
                //3选中车属于暂停车辆发货,跟第一种情况一样
                if (CheckVehicleStateType_ID == "1")
                {
                    sqlsd = "SELECT NO FROM EMTinCar where VehicleStateType_ID =1 AND ID=" + mi.EMTinCar_ID;
                    value = Common.Conn.SqlHelper.getSqlValue(sqlsd);
                    if (!string.IsNullOrEmpty(value))//当前车在排队里面修改为出站,还要及时更新5个车给treeview
                    {
                        updates(checkorder_id, 2, CheckVehicleStateType_ID);
                        updateTransportorder_proc(oldVehicleStateType_ID);
                        if (fmt != null)
                        {
                            RemoveMySofeNode(fmt, CheckVehicleStateType_ID, value);
                        }
                        else { //车辆监控车辆没有打开的情况下直接更新数据库的二个字段数据
                        }
                        Messages(value, CheckVehicleStateType_ID);
                        #region   移除刚新建的项排队车
                        string te = "";
                        foreach (ListViewItem item in vi.Items)
                        {
                            te = item.Text;
                            if (value.Contains(te))//找到59
                            {
                                vi.Items.Remove(item);
                            }
                        }
                        //vi.Items.Clear();
                        //fmm.BindListView();
                        #endregion
                    }
                }
                else if (CheckVehicleStateType_ID == "2")
                {
                    sqlsd = "SELECT NO FROM EMTinCar where VehicleStateType_ID =2 AND ID=" + mi.EMTinCar_ID;
                    value = Common.Conn.SqlHelper.getSqlValue(sqlsd);
                    if (!string.IsNullOrEmpty(value))//当前车在出站里面重新刷新排序
                    {
                        updates(checkorder_id, 2, CheckVehicleStateType_ID);
                        if (fmt != null)
                        {
                            RemoveMySofeNode(fmt, CheckVehicleStateType_ID, value);
                        }
                        Messages(value, CheckVehicleStateType_ID);
                    }
                }
                else if (CheckVehicleStateType_ID == "3")
                {
                    sqlsd = "SELECT NO FROM EMTinCar where VehicleStateType_ID =3 AND ID=" + mi.EMTinCar_ID;
                    value = Common.Conn.SqlHelper.getSqlValue(sqlsd);
                    if (!string.IsNullOrEmpty(value))//当前暂停重新排序
                    {
                        updates(checkorder_id, 2, CheckVehicleStateType_ID);
                        updateTransportorder_proc(oldVehicleStateType_ID);
                        if (fmt != null)
                        {
                            RemoveMySofeNode(fmt, CheckVehicleStateType_ID, value);
                        }
                        Messages(value, CheckVehicleStateType_ID);
                    }
                }
                else if (CheckVehicleStateType_ID == "4")//新建车辆就是不显示的车
                {
                    //sqlsd = "SELECT NO FROM EMTinCar where VehicleStateType_ID =4 AND ID=" + mi.EMTinCar_ID;
                    //value = Common.Conn.SqlHelper.getSqlValue(sqlsd);
                    //if (!string.IsNullOrEmpty(value))//当前暂停重新排序
                    //{
                    //    updates(checkorder_id, 2, CheckVehicleStateType_ID);
                    //    updateTransportorder_proc(oldVehicleStateType_ID);
                    //    if (fmt != null)
                    //    {
                    //        RemoveMySofeNode(fmt, CheckVehicleStateType_ID, value);
                    //    }
                    //    Messages(value, CheckVehicleStateType_ID);
                    //}
                }

            }
        }
        #endregion

#region 选择的车是排队的,出站的,暂停的,都出站最后,本身也及时刷新数据
        public void RemoveMySofeNode(FrmEMTinCar fmt, string VehicleStateType_ID, string value)
        {
            //本身所在节点移除
            TreeView tv = null;
            if (VehicleStateType_ID == "1")
            {
                tv = ((TreeView)fmt.Controls["tvQueuing"]);
            }
            if (VehicleStateType_ID == "2")
            {
                tv = ((TreeView)fmt.Controls["tvDeparture"]);
            }
            if (VehicleStateType_ID == "3")
            {
                tv = ((TreeView)fmt.Controls["tvPause"]);
            }
            TreeNode node = new TreeNode();
            node.Text = value;
            tv.Nodes.Remove(node);
        }
        #endregion

  #region 提示操作信息
        public void Messages(string No, string CheckVehicleStateType_ID)
        {
            FrmEMTinCar f= null;
            Form YieldTransitEditForm = this.Owner;
            TabPage tc = (TabPage)YieldTransitEditForm.Parent;
            foreach (var fmt in tc.Controls)
            {
                if (tc.Controls.Count > 0)
                {
                    if (tc.Text == "生产运送")
                    {
                        f = null;
                    }
                    else if (tc.Text != "车辆状态监控")
                    {
                        f = null;
                    }
                    else
                    {
                        f = (FrmEMTinCar)fmt;
                    }
                }
            }
            if (f != null)
            {
                Label lblMessages = ((Label)f.Controls["lblMessages"]);
                if (lblMessages != null)
                {
                    lblMessages.Visible = true;
                    if (CheckVehicleStateType_ID == "1")
                    {
                        lblMessages.Text = "提示:" + No + "号车已修改为出站车辆";
                    }
                    if (CheckVehicleStateType_ID == "2")
                    {
                        lblMessages.Text = "提示:" + No + "号车已修改为出站车辆"; ;
                    }
                    if (CheckVehicleStateType_ID == "3")
                    {
                        lblMessages.Text = "提示:" + No + "号车已修改为出站车辆";
                    }
                }
            }

        }
        #endregion

        #region 重新排序修之前
        public void updateTransportorder_proc(int OldVehicleStateType_ID)
        {
            //获取修改之前的状态值
            //然后在之前的类型代表数据已经移动走了,那排序字段重新赋值排序
            string TransportorderSQL = string.Format("exec UpdateTransportorder_proc {0}", OldVehicleStateType_ID);
            string strMessage = Common.Conn.SqlHelper.ExecSql(TransportorderSQL);
            if (strMessage != string.Empty)
            {
                return;
            }
        }
        #endregion

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值