using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Linq;
using System.Windows.Forms;
using DevExpress.XtraBars;
using DevExpress.XtraGrid.Views.Base;
//using DeiNiu.wms.Logical;
using DeiNiu.wms.Data;
using DevExpress.XtraGrid.Columns;
 
using System.Threading;
using DevExpress.XtraGrid.Views.Grid;
using DevExpress.XtraEditors.DXErrorProvider;
using DeiNiu.wms.Data.Model;
using DevExpress.XtraEditors;
using DevExpress.XtraEditors.Controls;
using DeiNiu.Utils;
 
using DeiNiu.wms.win.TMService;
namespace DeiNiu.wms.win
{
    public partial class TranLinesForm : BasicRibbonForm
    {
         
        //  lWmsStock ls = new lWmsStock();
      //  lWmsOutPickRequest lgt = new lWmsOutPickRequest();
     //   lWmsOutRequest lgOutReq = new lWmsOutRequest();
       // lWmsOutPickRequest outPickRequest = new lWmsOutPickRequest();
        private string lastQuery = "";
        private DataTable dtLines;
        private DataTable dtCust;
        private int selectedRowIndex = -1;
        private int currentLineId = 0;
       // string currentOrder = "";
        int newOrder = 0;
        DataTable dtDetail;
        DataView dtDetailViwer;
        public TranLinesForm()
        {
            InitializeComponent();
            initialControls();
            //initialBackGroundTasks();
            //    loadData();
        }
        #region initialControls
        private void initialControls()
        {
            initialComboBoxes();
            initialPagerControls();
            initialDataGrid();
            initialQueryInput(); 
            setValidationRule();
            queryLines();
        }
        /*
        private void initialBackGroundTasks()
        {
            lgOutReq.UpdateUIDelegate += updatePreOutStatus;
            lgOutReq.TaskCallBack += preOutFinished;
             
            lgt.UpdateUIDelegate += updatePickDetails;
            lgt.TaskCallBack += waveFinished;
         
            newWave();
            preErpOrders(); 
        }
        */
        private void initialComboBoxes()
        {
            
        }
      
        private void setValidationRule()
        { 
        }
        private void initialQueryInput()
        {
        }
      
        private void initialDataGridColumns()
        {
            setupGridView(gridView1,false);
            //setupGridView(gridView2, false,false);
            //setupGridView(gridView3, false,false);
            //   gridviewGoodsType.PopulateColumns();
            gridView1.Columns.Clear();
            // gridviewGoodsType.Columns.Remove(gridviewGoodsType.Columns["DealerPrice"]); 
            GridColumn myCol0 = new GridColumn() { Caption = "ID", Visible = true, FieldName = "id" };
            myCol0.Visible = false;
            this.gridView1.Columns.Add(myCol0);
            GridColumn myCol1 = new GridColumn() { Caption = "线路", Visible = true, FieldName = Node.fields.name.ToString() };
            GridColumn myCol2 = new GridColumn() { Caption = "分拣优先级", Visible = true, FieldName = Node.fields.flag.ToString() };
          //  GridColumn myCol3 = new GridColumn() { Caption = "说明", Visible = true, FieldName = Node.fields.description.ToString() }; 
            this.gridView1.Columns.Add(myCol1);
            this.gridView1.Columns.Add(myCol2);
 
            //to show bottom scroll bar
            gridView1.OptionsView.ColumnAutoWidth = false;
            gridView1.BestFitColumns();
            gridView1.Focus();
        //    initialGridView2Columns();
            gridControlDetail.DataSource = null;
            this.gridcontrolCusts.DataSource = null;
        }
        private void initialGridView2Columns(GridView gridview)
        {
            setupGridView(gridview, false, true, false);
            gridview.FocusRectStyle = DrawFocusRectStyle.None;
            //   gridviewGoodsType.PopulateColumns();
            gridview.Columns.Clear();
            // gridviewGoodsType.Columns.Remove(gridviewGoodsType.Columns["DealerPrice"]); 
            GridColumn myCol0 = new GridColumn() { Caption = "ID", Visible = true, FieldName = "id" };
            myCol0.Visible = false;
            gridview.Columns.Add(myCol0);
            GridColumn myCol1 = new GridColumn() { Caption = "线路", Visible = true, FieldName = Node.fields.name.ToString() };
            GridColumn myCol2 = new GridColumn() { Caption = "客户", Visible = true, FieldName = "custName" };
            GridColumn myCol3 = new GridColumn() { Caption = "客户编号", Visible = true, FieldName = "custId" }; 
            GridColumn myCol5 = new GridColumn() { Caption = "客户地址", Visible = true, FieldName = "Address" };
            GridColumn myCol4 = new GridColumn() { Caption = "排序", Visible = true, FieldName = "lineOrder" };
            gridview.Columns.Add(myCol1); 
            gridview.Columns.Add(myCol4); 
        
            gridview.Columns.Add(myCol2);
            gridview.Columns.Add(myCol5);
            
            gridview.Columns.Add(myCol3);
             
            //to show bottom scroll bar
            gridview.OptionsView.ColumnAutoWidth = false;
            gridview.BestFitColumns();
          //  gridView2.Focus();
        }
        private void initialDataGridLogColumns(GridView gridview)
        {
            setupGridView(gridview, false);
            //setupGridView(gridView2, false,false);
            //setupGridView(gridView3, false,false);
            //   gridviewGoodsType.PopulateColumns();
            gridview.Columns.Clear();
            // gridviewGoodsType.Columns.Remove(gridviewGoodsType.Columns["DealerPrice"]); 
            GridColumn myCol0 = new GridColumn() { Caption = "ID", Visible = true, FieldName = "id" };
            myCol0.Visible = false;
            this.gridView1.Columns.Add(myCol0);
            GridColumn myCol2 = new GridColumn() { Caption = "客户", Visible = true, FieldName = "custName" };
            GridColumn myCol3 = new GridColumn() { Caption = "客户编号", Visible = true, FieldName = "custId" };
            GridColumn myCol5 = new GridColumn() { Caption = "客户地址", Visible = true, FieldName = "Address" };
            gridview.Columns.Add(myCol2);
            gridview.Columns.Add(myCol5); 
            gridview.Columns.Add(myCol3);
           
            //to show bottom scroll bar
            gridview.OptionsView.ColumnAutoWidth = false;
            gridview.BestFitColumns();
            gridview.Focus();
 
        }
        
        #endregion
  
        ///   
        /// loading data
        ///   
        private int loadCust()
        {
           // initialRequestOrders();
            //this.gridviewGoodsType.DataSource = lgt.GetAllActiveData().Tables[0].DefaultView;
            showWaitForm();
            this.labelAddress.Text = "";
            this.labelCust.Text = "";
            btnAdd.Enabled = false;
            try
            {
                string custName = this.txtCust.Text.Trim();
                bool isQueryNotChanged = lastQuery.Equals(custName);
                this.pager1.PageCurrent = isQueryNotChanged ? this.pager1.PageCurrent : 1; //根据查询条件的变化给pager赋值
                int start = (pager1.PageSize * (pager1.PageCurrent - 1) + 1);
                int end = (pager1.PageSize * pager1.PageCurrent);
                lastQuery = custName;
                DataSet ds = tmsClient.getAvalibleCusts(currentLineId, custName, start, end);
                closeClient();
                dtCust = ds.Tables[0];
                int cnt = Convert.ToInt32(ds.Tables[1].Rows[0][0].ToString());
                //dt = lgt.Query(query, start, end); //string.IsNullOrEmpty(query) ? lgt.GetGoodType.getAllData(start, end) : lgt.g;
                 
               // dt.PrimaryKey = new DataColumn[] { dt.Columns[orderFieldName] };
                bool firstLoad = !isQueryNotChanged || this.gridcontrolCusts.DataSource == null;
                this.gridcontrolCusts.DataSource = dtCust.DefaultView;
                initialDataGridLogColumns(this.gridViewCust);
                //update selected row index to the last updated one.
               /*
                if (false && !string.IsNullOrEmpty( currentOrder))
                {
                    selectedRowIndex = -1;
                    DataRow dr = dt.Rows.Find(currentOrder);
                    if (dr != null)
                    {
                        selectedRowIndex = dt.Rows.IndexOf(dr);
                    }
                    if (selectedRowIndex >= 0 && dt.Rows.Count > selectedRowIndex)
                    {
                        // gridView1.SelectRow(selectedRowIndex);
                        gridView1.FocusedRowHandle = selectedRowIndex;
                        //  gridView1.MakeRowVisible(selectedRowIndex);
                    }
                    //gridView1.FocusedRowHandle = selectedRowIndex;
                }else
               // if (firstLoad)
                {
                    gridView1.FocusedRowHandle = 0;
                    gridView1.SelectRow(0);
                    setCurrentRequestDetail();
                }
                */
                setCurrentCustDetail();
                closeWaitForm();
                return cnt;
            }
            catch (Exception e)
            {
                showErrorMsg(e,e.Message);
            }
            closeWaitForm();
            return 0;// lgt.getRowCount(query);
            // return lgt.GetGoodType.QueryCount(); 
        }
          
        ///   
        /// 分页控件产生的事件  
        ///   
        private int pager_EventPaging(DeiNiu.Controls.pager.EventPagingArg e)
        {
           // selectedCustIndex = 0; //reset currentRowIndex
            return loadCust();
        }
        private void initialPagerControls()
        {
            pager1.MaximumSize = new Size(0, 20);
            pager1.EventPaging += new DeiNiu.Controls.pager.EventPagingHandler(pager_EventPaging);
            #region DataGridView与Pager控件绑定
            this.pager1.PageCurrent = 1;//当前页为第一页  
            //pager1.PageSize = Utils.WmsConstants.PAGER_SIZE;//每页行数  
            this.pager1.Bind();//绑定  
            #endregion
        }
        
        
        private void gridView1_FocusedRowObjectChanged(object sender, FocusedRowObjectChangedEventArgs e)
        {
            if (gridView1.FocusedRowHandle <0 || gridView1.FocusedRowHandle == selectedRowIndex)
            {
                if (gridView1.IsGroupRow(e.RowHandle)) //set first row of group selected
                {
                    selectedRowIndex = gridView1.GetChildRowHandle(e.RowHandle, 0);
                    setCurrentRequestDetail();
                }
                 
                    return; ;
                
            }
            selectedRowIndex = gridView1.FocusedRowHandle;
            // showErrorMsg("selection:"+ selectedRowIndex);
            setCurrentRequestDetail();
        }
        private void gridView1_DataSourceChanged(object sender, EventArgs e)
        {
            if (selectedRowIndex >= 0 && dtLines.Rows.Count > selectedRowIndex)
            {
                gridView1.FocusedRowHandle = selectedRowIndex;
                gridView1.MakeRowVisible(selectedRowIndex);
            }
        }
 
        protected void query()
        {
            pager1.Bind();
        }
        private void queryCust()
        {
            showWaitForm();
            try
            {
                query();// loadData();  
            }
            catch (Exception e)
            {
                showErrorMsg(e.Message);
            }
            finally
            {
                // WaitFormService.Close();
                closeWaitForm();
                bbQuery.Enabled = true;
            }
        }
         
        private void bbQuery_ItemClick_1(object sender, ItemClickEventArgs e)
        {
            this.bbQuery.Enabled = false;
            queryCust();
        }
       
        private void updateObjects(List goods)
        { 
            showWaitForm();
            //WaitFormService.Show(this); 
            try
            {
             //   lgt.update(goods);
                //get updated data 
                queryCust();
            }
            catch (Exception e)
            {
                showErrorMsg(e.Message);
            }
            finally
            {
                // WaitFormService.Close();
                closeWaitForm();
             
            }
             
        }
        string currentLineName = "";
        private bool getCurrentObject()
        {
            lbCustName.Text = "";
            lbCustAddress.Text = "";
            this.labelAddress.Text = "";
            this.labelCust.Text = "";
            btnAdd.Enabled = false;
            //lbaddress.Text = "";
            currentLineName = "";
            if (selectedRowIndex <0 || selectedRowIndex >= dtLines.Rows.Count)
            {
                return false;
            }
           
          //  DataRow currentRow = dt.Rows[selectedRowIndex];
            DataRowView dr = (DataRowView)(GetGridViewFilteredAndSortedData(gridView1)[selectedRowIndex]);
            string filedName = string.IsNullOrEmpty(txtLineCust.Text.Trim()) ? "ID" : "lineId";
            currentLineId = Convert.ToInt32(dr[filedName].ToString());
            currentLineName = dr["name"].ToString();
           
         //   lbCustName.Text = dr["custName"].ToString();
          //  lbCustAddress.Text = dr["Address"].ToString(); 
        //    lbaddress.Text = dr["address"].ToString();
             
            return true;
        }
       
       
        private void btnQuery_Click(object sender, EventArgs e)
        {
            queryCust();
        }
        private void gridView1_SelectionChanged(object sender, DevExpress.Data.SelectionChangedEventArgs e)
        {
            if (gridView1.FocusedRowHandle <0 || gridView1.FocusedRowHandle == selectedRowIndex)
            {
                return;
            }
            selectedRowIndex = gridView1.FocusedRowHandle;
            // showErrorMsg("selection:"+ selectedRowIndex);
            setCurrentRequestDetail();
        }
        private void initialDataGrid()
        {
            gridView1.OptionsSelection.MultiSelect = true;//按shift / control 多选
            this.gridView1.OptionsBehavior.AutoPopulateColumns = false;
            this.gridView1.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus;
            this.gridView1.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.CellFocus;
            this.gridView1.OptionsBehavior.Editable = false;
            //    this.gridView1.OptionsSelection.EnableAppearanceFocusedCell = false;
            this.gridView1.FocusedRowObjectChanged += new DevExpress.XtraGrid.Views.Base.FocusedRowObjectChangedEventHandler(this.gridView1_FocusedRowObjectChanged);
            this.gridView1.DataSourceChanged += new System.EventHandler(this.gridView1_DataSourceChanged);
            //show line number
            this.gridView1.IndicatorWidth = 40;
            this.gridView1.CustomDrawRowIndicator += new DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(gridView_CustomDrawRowIndicator);
            this.gridView2.IndicatorWidth = 40;
            this.gridView2.CustomDrawRowIndicator += new DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(gridView_CustomDrawRowIndicator);
             this.gridViewCust.IndicatorWidth = 40;
             this.gridViewCust.CustomDrawRowIndicator += new DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(gridView_CustomDrawRowIndicator);
            gridView2.CustomColumnDisplayText += gridView2_CustomColumnDisplayText;
            gridView2.CustomDrawCell += gridView_CustomDrawCell;
           // gridView2.RowCellStyle += gridView_RowCellStyle;
            gridView1.RowCellStyle += gridView_RowCellStyle;
             gridView1.CustomColumnDisplayText += gridView2_CustomColumnDisplayText;
             gridViewCust.CustomColumnDisplayText += gridView2_CustomColumnDisplayText;
             this.gridView2.FocusedRowObjectChanged += new DevExpress.XtraGrid.Views.Base.FocusedRowObjectChangedEventHandler(this.gridView2_FocusedRowObjectChanged);
             this.gridView2.DataSourceChanged += new System.EventHandler(this.gridView2_DataSourceChanged);
             this.gridViewCust.FocusedRowObjectChanged += new DevExpress.XtraGrid.Views.Base.FocusedRowObjectChangedEventHandler(this.gridViewCust_FocusedRowObjectChanged);
             this.gridViewCust.DataSourceChanged += new System.EventHandler(this.gridViewCust_DataSourceChanged);
           // this.gridView2.FocusedRowObjectChanged += new DevExpress.XtraGrid.Views.Base.FocusedRowObjectChangedEventHandler(this.gridView1_FocusedRowObjectChanged);
          //  this.gridView2.DataSourceChanged += new System.EventHandler(this.gridView1_DataSourceChanged);
             
        }
    
       private void gridView2_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e)
        { 
                 
            
        }
       void gridView_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
       { 
       }
       void gridView_RowCellStyle(object sender,DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e)
       {
           
       }
        private void setCurrentRequestDetail()
        {
            if (!getCurrentObject() || currentLineId <=0)
            {
                return;
            }
           /// gridView1.FocusedRowHandle = selectedRowIndex;//
          //  gridView1.SelectRow(selectedRowIndex);
            showWaitForm();
            try
            {
                selectedCustIndex = -1;
                currentCustOrder = -1;
                selectedDetailRowIndex = -1;
                dtDetail = tmsClient.getLineCust(currentLineId);
                closeClient();
                string custFilter = string.IsNullOrEmpty(txtLineCust.Text.Trim()) ? "" : string.Format(" and custName like '%{0}%'", txtLineCust.Text.Trim());
                dtDetailViwer = dtDetail.DefaultView;
                dtDetailViwer.RowFilter =    string.IsNullOrEmpty(txtLineCust.Text.Trim()) ? "" : string.Format("custName like '%{0}%'", txtLineCust.Text.Trim());
                this.gridControlDetail.DataSource = dtDetail;
                initialGridView2Columns(gridView2);
                queryCust(); 
                 
            }
            catch (Exception e)
            {
                showErrorMsg(e.Message);
            }
            closeWaitForm();
        }
        int selectedDetailRowIndex = -1;
        private void gridView2_FocusedRowObjectChanged(object sender, FocusedRowObjectChangedEventArgs e)
        {
            if (gridView2.FocusedRowHandle < 0 || gridView2.FocusedRowHandle == selectedDetailRowIndex)
            {
                if (gridView2.IsGroupRow(e.RowHandle)) //set first row of group selected
                {
                    selectedDetailRowIndex = gridView1.GetChildRowHandle(e.RowHandle, 0);
                    setCurrentLineDetail();
                }
                return; ;
            }
            selectedDetailRowIndex = gridView2.FocusedRowHandle;
            // showErrorMsg("selection:"+ selectedRowIndex);
            setCurrentLineDetail();
        }
        private void gridView2_DataSourceChanged(object sender, EventArgs e)
        {
            if (selectedDetailRowIndex >= 0 && dtDetail.Rows.Count > selectedDetailRowIndex)
            {
                gridView2.FocusedRowHandle = selectedDetailRowIndex;
                gridView2.MakeRowVisible(selectedDetailRowIndex);
            }
        }
      
        int currentCustOrder = -1;
        int currentLineDetailId = -1;
        private bool getCurrentDetailObject()
        {
            btnDel.Enabled = false;
            btnUpdateLine.Enabled = false;
            spinEdit1.Enabled = false;
            int cnt = GetGridViewFilteredAndSortedData(gridView2).Count;
            if (selectedDetailRowIndex < 0 || selectedDetailRowIndex >=cnt)// dtDetailViwer.Count)
            {
                return false;
            }
            //  DataRow currentRow = dt.Rows[selectedRowIndex];
            DataRowView dr = (DataRowView)(GetGridViewFilteredAndSortedData(gridView2)[selectedDetailRowIndex]);
           
            lbCustAddress.Text = dr["Address"].ToString();
            lbCustName .Text = dr["custName"].ToString();
            currentCustOrder = Convert.ToInt32(dr["lineOrder"].ToString());
            currentLineDetailId = Convert.ToInt32(dr["ID"].ToString()); 
            spinEdit1.Properties.MaxValue = dtDetail.Rows.Count;
            spinEdit1.Value = currentCustOrder;
            btnDel.Enabled = true;
            spinEdit1.Enabled = true;
            btnUpdateLine.Enabled = true;
            return true;
        }
       
       
        private void setCurrentLineDetail()
        {
            if ( currentLineId <= 0 ||!getCurrentDetailObject() )
            {
                return;
            }
            /// gridView1.FocusedRowHandle = selectedRowIndex;//
            //  gridView1.SelectRow(selectedRowIndex);
         
        }
        int selectedCustIndex = -1;
        private void gridViewCust_FocusedRowObjectChanged(object sender, FocusedRowObjectChangedEventArgs e)
        {
            if (gridViewCust.FocusedRowHandle < 0 || gridViewCust.FocusedRowHandle == selectedCustIndex)
            {
                if (gridViewCust.IsGroupRow(e.RowHandle)) //set first row of group selected
                {
                    selectedCustIndex = gridViewCust.GetChildRowHandle(e.RowHandle, 0);
                    setCurrentCustDetail();
                }
                return; ;
            }
            selectedCustIndex = gridViewCust.FocusedRowHandle;
            // showErrorMsg("selection:"+ selectedRowIndex);
            setCurrentCustDetail();
        }
        private void gridViewCust_DataSourceChanged(object sender, EventArgs e)
        {
            if (selectedCustIndex >= 0 && dtCust.Rows.Count > selectedCustIndex)
            {
                gridViewCust.FocusedRowHandle = selectedCustIndex;
                gridViewCust.MakeRowVisible(selectedCustIndex);
            }
        }  
        string currentCustId = string.Empty; 
        private bool getCurrentCustDetailObject()
        {
            if (selectedCustIndex < 0 || selectedCustIndex >= dtCust.Rows.Count)
            {
                return false;
            }
            //  DataRow currentRow = dt.Rows[selectedRowIndex];
            DataRowView dr = (DataRowView)(GetGridViewFilteredAndSortedData(gridViewCust)[selectedCustIndex]);
            currentCustId = dr["custId"].ToString();
             this.labelAddress .Text = dr["Address"].ToString();
            this.labelCust.Text = dr["custName"].ToString();
            btnAdd.Enabled = true;
            return true;
        }
        private void setCurrentCustDetail()
        {
            if ( !getCurrentCustDetailObject() || selectedCustIndex <= 0 )
            {
                return;
            }
           
        }
        private void btnIn_Click(object sender, EventArgs e)
        {
          
            showWaitForm();
            try
            {
               // lgOutReq.requestOutStock(selectedRequest.pickOrderNo);
                queryCust();
            }
            catch (Exception er)
            {
                setCurrentRequestDetail();
                showErrorMsg(er.Message);
            }
             
          
            closeWaitForm();
        }
        private void GoodsOutQueryForm_FormClosing(object sender, FormClosingEventArgs e)
        {
           // outClient.Close();
          //  pickClient.Close();
        }
        private void gridcontrolOderLogs_Click(object sender, EventArgs e)
        {
        }
        private void gridControlDetail_Click(object sender, EventArgs e)
        {
          
        }
        private void btnQueryLines_Click(object sender, EventArgs e)
        {
            queryLines();
        }
        
        void queryLines()
        {
            currentCustOrder = -1;
            dtLines = tmsClient.getLines(txtLineCust.Text);
            closeClient();
            DataView dv = dtLines.DefaultView;
           // dv.RowFilter = " flag!=3001"; 
            this.gridControl1.DataSource = dv;
            initialDataGridColumns();
            setCurrentRequestDetail();
            getCurrentDetailObject();
        }
        private void btnSave_Click(object sender, EventArgs e)
        { 
            if (tmsClient.updateLineCustOrder(currentLineId,currentLineDetailId, currentCustOrder, newOrder))
            {
                MessageBox.Show("调整成功");
            }
            setCurrentRequestDetail();
            closeClient();
        }
        private void spinEdit1_EditValueChanged(object sender, EventArgs e)
        { 
            newOrder = Convert.ToInt32(spinEdit1.Value);  
            btnSave.Enabled = (currentCustOrder != newOrder);
             
        }
        private void btnQueryCust_Click(object sender, EventArgs e)
        {
            queryCust();// loadCust();
        }
        private void btnAdd_Click(object sender, EventArgs e)
        {
            getCurrentDetailObject();
            currentCustOrder = currentCustOrder == dtDetail.Rows.Count ? currentCustOrder + 1 : currentCustOrder; //last one, plus 1
            currentCustOrder = currentCustOrder < 0 ? 1 : currentCustOrder;  //first one
             
            tmsClient.addLineCust(currentLineId, currentCustId, currentCustOrder);
            setCurrentRequestDetail();
            queryCust();
            closeClient();
        }
        private void btnDel_Click(object sender, EventArgs e)
        {
            DialogResult r = MessageBox.Show(string.Format("确定要从路线{0}中删除客户{1}吗?", currentLineName,lbCustName.Text), "确认删除", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
            if (r == DialogResult.Yes)
            {
                try
                {
                    string msg = "删除成功";
                    if (tmsClient.removeCust(currentLineDetailId))
                    {
                        setCurrentRequestDetail();
                        
                    }
                    else
                    {
                        msg = "删除失败";
                    }
                    MessageBox.Show(msg);
                }
                catch (Exception er) {
                    showErrorMsg("删除失败:" + er.Message);
                
                }
                closeClient();
                ;
            }
        }
        private void btnReorder_Click(object sender, EventArgs e)
        {
            try
            {
                string msg = "排序成功";
                if (tmsClient.reOrderLine(currentLineId))
                {
                    setCurrentRequestDetail();
                }
                else
                {
                    msg = "排序失败";
                }
                MessageBox.Show(msg);
            }
            catch (Exception er)
            {
                showErrorMsg("排序失败:" + er.Message);
            } closeClient();
        }
        private void bbiExport_ItemClick(object sender, ItemClickEventArgs e)
        {
            exportExcel(gridView2);
        }
    }
}