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.ServiceReferenceStockOutPickRequest; using System.ServiceModel; using DeiNiu.wms.win.utils.print; using DevExpress.XtraLayout; using DeiNiu.wms.win.ServiceReferenceLot; namespace DeiNiu.wms.win { public partial class GoodsOutValidationForm : BasicRibbonForm { // lWmsStock ls = new lWmsStock(); //lWmsOutPickRequest lgt = new lWmsOutPickRequest(); //lWmsOutRequest lgOutReq = new lWmsOutRequest(); // lWmsOutPickRequest outPickRequest = new lWmsOutPickRequest(); // private string lastQuery = ""; DataSet dsPickOrders; private DataTable dtPickOrders; private DataTable dtPickOrdersDetail; private DataTable dtPickOrders4Validation; private DataTable dtPickOrdersValidated; private DataTable dtPickDetails; private DataTable dtExceptionSolutions; private int selectedRowIndex = -1; private WmsOutPickDetail_tmp currentDetail; string lastScanBarcode = ""; bool isDoubleChk = false; // Thread threadPreProcess; bool autoOrder; string currentPickOrder = ""; string currentWave = ""; string boxWave = ""; int boxDesk = 0; Dictionary isDoublChk = new Dictionary(); public GoodsOutValidationForm() { InitializeComponent(); initialControls(); initialBackGroundTasks(); initialTimer(); isDoublChk.Add("N", "否"); isDoublChk.Add("Y", "是"); } #region initialControls private void initialControls() { initialComboBoxes(); // initialPagerControls(); initialDataGrid(); initialQueryInput(); setValidationRule(); textEditBarcode.GotFocus += new EventHandler(textEditBarcode_GotFocus); textEditBarcode.MouseUp += new MouseEventHandler(textEditBarcode_MouseUp); txtBoxId.GotFocus += new EventHandler(textBoxId_GotFocus); txtBoxId.MouseUp += new MouseEventHandler(textBoxId_MouseUp); textEditValidCount.Enabled = false; // this.checkEditPass.Enabled = false; // layoutControlItem11.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; combColors.Enabled= checkPermission(WmsConstants.SPECIAL_ALL_CHANGE_DESK_COLOR ); // layoutControlGroup15.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; spinBulkBag.Value = 1; } private void initialBackGroundTasks() { swAutoOrder.IsOn = WmsConstants.AUTO_PICK_BULK_VALIDATION_ORDER; autoOrder = swAutoOrder.IsOn; // lgOutReq.UpdateUIDelegate += updateValidationList; if (autoOrder) { this.getValidationOrders(); } } string oldDesk = ""; private int desk { get { if (combColors.SelectedIndex == -1) { showErrorMsg(null, "请选择控制台"); combColors.Focus(); return -1; } // return Convert.ToInt32( ((Node)combColors.SelectedItem).name); if (oldDesk != combColors.Text) { oldDesk = combColors.Text; writeConfig("Desk", combColors.Text); } int i = 0; foreach (string v in enumColors.Values) { i++; if (v == combColors.Text) { return i; } } return 1; } } /*private int desk { get { if (combColors.SelectedIndex == -1) { showErrorMsg(null, "请选择控制台"); combColors.Focus(); return -1; } return Convert.ToInt32(((Node)combColors.SelectedItem).name); } } */ private void initialComboBoxes() { DataTable dtDesk = pickClient.getDeskList((int)enumDeskType.复核); List desks = new List(); foreach (DataRow dr in dtDesk.Rows) { desks.Add(dr["deskName"].ToString()); } oldDesk = "-1"; initialComboBoxs(this.combColors, desks.ToArray()); oldDesk = System.Configuration.ConfigurationManager.AppSettings["Desk"]; try { int i = 0; foreach (string desk in desks) { if (!string.IsNullOrEmpty(oldDesk) && oldDesk == desk) { if (combColors.SelectedIndex == i) { queryOrders(); } else combColors.SelectedIndex = i; } i++; } } catch { } getDeskStatus(); Node[] nds = { }; DataTable dt = Park.getDictionary(false); if (dt.Rows.Count == 0) { return; } DataRow[] drs = dt.Select("flag >0"); foreach (DataRow dr in drs) { int flag = Convert.ToInt32(dr["flag"].ToString()); int parentId = Convert.ToInt32(dr["id"].ToString()); DataRow[] drss = Park.getDictionary(false).Select("parentId =" + parentId); switch (flag) { case 2006: initialComboBoxs(this.comValidException, drss,false); // break; /*case 4001: initialComboBoxs(this.combColors, drss,false); //复合台 if (combColors.Properties.Items.Count > 0) { combColors.SelectedIndex = 0; } break; */ } } } void getDeskStatus() { try { WmsOutDesk wod = new WmsOutDesk(); DataTable dtdesk = pickClient.getDeskByColor(desk); pickClient.Close(); if (dtdesk.Rows.Count > 0) { wod = new WmsOutDesk(dtdesk.Rows[0]); } swStatus.IsOn = !wod.available; } catch(Exception er) { showErrorMsg(er); } } private void setValidationRule() { // dxValidationProvider.SetValidationRule(comWarehouse, ValidationRules.notEmptyValidationRule); //txtGoodType.Properties.MaxLength = 40; //txtGoodDesc.Properties.MaxLength = 250; //textEdit1.Properties.MaxLength = txtGoodType.Properties.MaxLength; } private void initialQueryInput() { } private void initialBoxColumns(GridView gridView1) { setupGridView(gridView1, false,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; gridView1.Columns.Add(myCol0); GridColumn myCol1 = new GridColumn() { Caption = "颜色", Visible = true, FieldName = "color" }; GridColumn myCol2 = new GridColumn() { Caption = "箱子编号", Visible = true, FieldName = "boxid" }; GridColumn myCol3 = new GridColumn() { Caption = "容积", Visible = true, FieldName = "volume" }; GridColumn myCol4 = new GridColumn() { Caption = "", Visible = true, FieldName = " " }; // gridView1.Columns.Add(myCol1); gridView1.Columns.Add(myCol2); gridView1.Columns.Add(myCol3); //to show bottom scroll bar gridView1.OptionsView.ColumnAutoWidth = true; // gridView1.BestFitColumns(); gridView1.Focus(); // initialGridView2Columns(); //gridControl2.DataSource = null; } private void initialDataGridColumns() { setupGridView(gridView1,false,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 = WmsOutPickRequest.fields.pickOrderNo.ToString() }; // GridColumn myCol2 = new GridColumn() { Caption = "类别", Visible = true, FieldName = WmsOutPickRequest.fields.orderTypeName.ToString() }; GridColumn myCol3 = new GridColumn() { Caption = "状态", Visible = true, FieldName = "orderState" }; GridColumn myCol4 = new GridColumn() { Caption = "客户", Visible = true, FieldName = WmsOutPickRequest.fields.customerName. ToString() }; GridColumn myCol5 = new GridColumn() { Caption = "备注", Visible = true, FieldName = WmsOutPickRequest.fields.description.ToString() }; //GridColumn myCol6 = new GridColumn() { Caption = "日期", Visible = true, FieldName = WmsOutPickRequest.fields.orderDate.ToString() }; GridColumn myCol7 = new GridColumn() { Caption = "波次", Visible = true, FieldName = "dpsOrder" }; GridColumn myCol51 = new GridColumn() { Caption = "序号", Visible = true, FieldName = "xuhao" }; GridColumn myCol52 = new GridColumn() { Caption = "状态", Visible = true, FieldName = "orderBulkPickstate" ,MinWidth=80}; GridColumn myCol53 = new GridColumn() { Caption = "分拣单", Visible = true, FieldName = "pickOrderNo", MinWidth = 80 }; this.gridView1.Columns.Add(myCol51); this.gridView1.Columns.Add(myCol52); this.gridView1.Columns.Add(myCol4); // this.gridView1.Columns.Add(myCol1); // this.gridView1.Columns.Add(myCol7); this.gridView1.Columns.Add(myCol5); this.gridView1.Columns.Add(myCol53); //to show bottom scroll bar gridView1.OptionsView.ColumnAutoWidth = false; gridView1.BestFitColumns(); // gridView1.Focus(); // initialGridView2Columns(); //gridControl2.DataSource = null; } private void initialGridView2Columns(GridView gridview) { setupGridView(gridview, false, false, 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 = WmsGoods.fields.goodsId.ToString() }; GridColumn myCol2 = new GridColumn() { Caption = "商品名称", Visible = true, FieldName = WmsGoods.exfields.goodsName.ToString() }; GridColumn myCol3 = new GridColumn() { Caption = "厂家", Visible = true, FieldName = WmsGoods.exfields.manufacturer.ToString() }; GridColumn myCol4 = new GridColumn() { Caption = "规格", Visible = true, FieldName = WmsGoods.exfields.spec.ToString() }; GridColumn myCol5 = new GridColumn() { Caption = "单位", Visible = true, FieldName = WmsGoods.exfields.unit.ToString() }; GridColumn myCol6 = new GridColumn() { Caption = "大包装数量", Visible = true, FieldName = WmsGoods.exfields.bigCount.ToString() }; GridColumn myCol7 = new GridColumn() { Caption = "剂型", Visible = true, FieldName = WmsGoods.exfields.type.ToString() }; GridColumn myCol8 = new GridColumn() { Caption = "商品类型", Visible = true, FieldName = WmsGoods.exfields.goodsTypeName.ToString() }; // GridColumn myCol9 = new GridColumn() { Caption = "大零", Visible = true, FieldName = WmsGoods.fields.bulkMax.ToString() }; // GridColumn myCol10 = new GridColumn() { Caption = "小整", Visible = true, FieldName = WmsGoods.fields.batchMax1.ToString() }; // GridColumn myCol11 = new GridColumn() { Caption = "大整", Visible = true, FieldName = WmsGoods.fields.batchMax2.ToString() }; GridColumn myCol12 = new GridColumn() { Caption = "国药准字", Visible = true, FieldName = WmsGoods.exfields.regeditCode.ToString() }; GridColumn myCol100 = new GridColumn() { Caption = "数量", Visible = true, FieldName = WmsOutDetail.fields.count.ToString() }; GridColumn myCol101 = new GridColumn() { Caption = "应拣数量", Visible = true, FieldName = WmsOutDetail.fields.bulkCount.ToString() }; GridColumn myCol102 = new GridColumn() { Caption = "双人复核", Visible = true, FieldName = "IsDouChk" }; // GridColumn myCol102 = new GridColumn() { Caption = "小整", Visible = true, FieldName = WmsOutDetail.fields.batch1Count.ToString() }; // GridColumn myCol103 = new GridColumn() { Caption = "大整", Visible = true, FieldName = WmsOutDetail.fields.batch2Count.ToString() }; // GridColumn myCol104 = new GridColumn() { Caption = "箱", Visible = true, FieldName = WmsOutDetail.fields.boxcnt.ToString() }; GridColumn myCol14 = new GridColumn() { Caption = "批号", Visible = true, FieldName = WmsOutDetail.fields.batch.ToString() }; GridColumn myCol15 = new GridColumn() { Caption = "生产日期", Visible = true, FieldName = WmsOutDetail.fields.productDate.ToString() }; GridColumn myCol16 = new GridColumn() { Caption = "有效期", Visible = true, FieldName = WmsOutDetail.fields.validDate.ToString() }; GridColumn myCol161 = new GridColumn() { Caption = "复核状态", Visible = true, FieldName = WmsOutPickDetail.fields.bulkPickState.ToString() }; GridColumn myCol17 = new GridColumn() { Caption = "状态", Visible = true, FieldName = WmsOutDetail.fields.state.ToString() }; // GridColumn myCol18 = new GridColumn() { Caption = "说明", Visible = true, FieldName = WmsOutDetail.fields.description.ToString() }; GridColumn myCol25 = new GridColumn() { Caption = "订单", Visible = true, FieldName = WmsOutRequest.fields.orderNo.ToString() }; // GridColumn myCol26 = new GridColumn() { Caption = "条码", Visible = true, FieldName = "BarCode" }; // GridColumn myCol29 = new GridColumn() { Caption = "复核结果", Visible = true, FieldName = "validResult" }; // GridColumn myCol27 = new GridColumn() { Caption = "异常回馈", Visible = true, FieldName = "solution" }; // GridColumn myCol28 = new GridColumn() { Caption = "回馈说明", Visible = true, FieldName = WmsOutPickDetail.fields.solutionRemark.ToString() }; GridColumn myCol30 = new GridColumn() { Caption = "复核数量", Visible = true, FieldName = WmsOutPickDetail.fields.confirmedCount.ToString() }; GridColumn myCol130 = new GridColumn() { Caption = "skuId", Visible = true, FieldName = "skuId" }; // GridColumn myCol131 = new GridColumn() { Caption = "sku", Visible = true, FieldName = "skuCode" }; // GridColumn myCol132 = new GridColumn() { Caption = "货主", Visible = true, FieldName = "ownerName" }; GridColumn myCol133 = new GridColumn() { Caption = "条码", Visible = true, FieldName = "barcode" }; if (gridview == gridViewSaleOrders) { gridview.Columns.Add(myCol25); } gridview.Columns.Add(myCol2); gridview.Columns.Add(myCol4); gridview.Columns.Add(myCol5); gridview.Columns.Add(myCol7); gridview.Columns.Add(myCol101); // gridview.Columns.Add(myCol130); gridview.Columns.Add(myCol14); gridview.Columns.Add(myCol1); gridview.Columns.Add(myCol100); gridview.Columns.Add(myCol6); // gridview.Columns.Add(myCol131); gridview.Columns.Add(myCol15); gridview.Columns.Add(myCol16); gridview.Columns.Add(myCol3); gridview.Columns.Add(myCol3); gridview.Columns.Add(myCol8); //gridview.Columns.Add(myCol9); // gridview.Columns.Add(myCol6); gridview.Columns.Add(myCol12); gridview.Columns.Add(myCol133); // gridview.Columns.Add(myCol17); // gridview.Columns.Add(myCol18); //to show bottom scroll bar gridview.OptionsView.ColumnAutoWidth = false; gridview.BestFitColumns(); // gridView2.Focus(); if (dtPickOrders4Validation.Rows.Count > 0) { switchGridViewRowSelection(gridView4Valid, true); switchGridViewRowSelection(gridViewValidated, false); if (gridView4Valid.IsFocusedView) { return; } gridView4Valid.Focus(); } else if (dtPickOrdersValidated!=null && dtPickOrdersValidated.Rows.Count > 0) { if (gridViewValidated.IsFocusedView) { return; } this.gridViewValidated.Focus(); } } private void initialGridView3Columns(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 = WmsGoods.fields.goodsId.ToString() }; GridColumn myCol2 = new GridColumn() { Caption = "商品名称", Visible = true, FieldName = WmsGoods.exfields.goodsName.ToString() }; GridColumn myCol3 = new GridColumn() { Caption = "厂家", Visible = true, FieldName = WmsGoods.exfields.manufacturer.ToString() }; GridColumn myCol4 = new GridColumn() { Caption = "规格", Visible = true, FieldName = WmsGoods.exfields.spec.ToString() }; GridColumn myCol5 = new GridColumn() { Caption = "单位", Visible = true, FieldName = WmsGoods.exfields.unit.ToString() }; // GridColumn myCol6 = new GridColumn() { Caption = "大包装数量", Visible = true, FieldName = WmsGoods.exfields.bigCount.ToString() }; GridColumn myCol7 = new GridColumn() { Caption = "剂型", Visible = true, FieldName = WmsGoods.exfields.type.ToString() }; GridColumn myCol8 = new GridColumn() { Caption = "商品类型", Visible = true, FieldName = WmsGoods.exfields.goodsTypeName.ToString() }; // GridColumn myCol9 = new GridColumn() { Caption = "大零", Visible = true, FieldName = WmsGoods.fields.bulkMax.ToString() }; // GridColumn myCol10 = new GridColumn() { Caption = "小整", Visible = true, FieldName = WmsGoods.fields.batchMax1.ToString() }; // GridColumn myCol11 = new GridColumn() { Caption = "大整", Visible = true, FieldName = WmsGoods.fields.batchMax2.ToString() }; GridColumn myCol12 = new GridColumn() { Caption = "国药准字", Visible = true, FieldName = WmsGoods.exfields.regeditCode.ToString() }; GridColumn myCol100 = new GridColumn() { Caption = "数量", Visible = true, FieldName ="count"};// WmsOutDetail.fields.count.ToString() }; // GridColumn myCol101 = new GridColumn() { Caption = "零货", Visible = true, FieldName = WmsOutDetail.fields.count.ToString() }; // GridColumn myCol102 = new GridColumn() { Caption = "整货", Visible = true, FieldName = WmsOutDetail.fields.batch1Count.ToString() }; // GridColumn myCol103 = new GridColumn() { Caption = "大整", Visible = true, FieldName = WmsOutDetail.fields.batch2Count.ToString() }; // GridColumn myCol104 = new GridColumn() { Caption = "箱", Visible = true, FieldName = WmsOutDetail.fields.boxcnt.ToString() }; GridColumn myCol14 = new GridColumn() { Caption = "批号", Visible = true, FieldName = WmsOutDetail.fields.batch.ToString() }; GridColumn myCol15 = new GridColumn() { Caption = "生产日期", Visible = true, FieldName = WmsOutDetail.fields.productDate.ToString() }; GridColumn myCol16 = new GridColumn() { Caption = "有效期", Visible = true, FieldName = WmsOutDetail.fields.validDate.ToString() }; GridColumn myCol17 = new GridColumn() { Caption = "状态", Visible = true, FieldName = WmsOutDetail.fields.state.ToString() }; GridColumn myCol18 = new GridColumn() { Caption = "说明", Visible = true, FieldName = WmsOutDetail.fields.description.ToString() }; // GridColumn myCol19 = new GridColumn() { Caption = "分拣状态", Visible = true, FieldName = "pickState" }; GridColumn myCol19 = new GridColumn() { Caption = "分拣状态", Visible = true, FieldName = "state" }; GridColumn myCol191 = new GridColumn() { Caption = "分拣人", Visible = true, FieldName = "操作人" }; GridColumn myCol192 = new GridColumn() { Caption = "分拣时间", Visible = true, FieldName = "pickTime" }; GridColumn myCol20 = new GridColumn() { Caption = "波次", Visible = true, FieldName = WmsOutPickLable.fields.dpsOrder.ToString() }; GridColumn myCol21 = new GridColumn() { Caption = "颜色", Visible = true, FieldName = WmsOutPickLable.fields.color.ToString() }; GridColumn myCol22 = new GridColumn() { Caption = "货位", Visible = true, FieldName = WmsOutPickLable.fields.locationId.ToString() }; GridColumn myCol23 = new GridColumn() { Caption = "标签", Visible = true, FieldName = WmsOutPickLable.fields.elabId.ToString() }; GridColumn myCol24 = new GridColumn() { Caption = "客户", Visible = true, FieldName = WmsOutPickRequest.fields.customerName.ToString() }; GridColumn myCol25 = new GridColumn() { Caption = "订单", Visible = true, FieldName = WmsOutPickDetail.fields.pickOrderNo.ToString() }; GridColumn myCol26 = new GridColumn() { Caption = "异常回馈", Visible = true, FieldName = "solution" }; GridColumn myCol27 = new GridColumn() { Caption = "回馈说明", Visible = true, FieldName = WmsOutPickDetail.fields.solutionRemark.ToString() }; GridColumn myCol130 = new GridColumn() { Caption = "skuId", Visible = true, FieldName = "skuId" }; GridColumn myCol131 = new GridColumn() { Caption = "sku", Visible = true, FieldName = "skuCode" }; GridColumn myCol132 = new GridColumn() { Caption = "货主", Visible = true, FieldName = "ownerName" }; // GridColumn myCol133 = new GridColumn() { Caption = "条码", Visible = true, FieldName = "barcode" }; if (gridview == gridViewException) { gridview.Columns.Add(myCol25); gridview.Columns.Add(myCol26); gridview.Columns.Add(myCol27); gridViewException.OptionsSelection.EnableAppearanceFocusedRow = true; gridViewException.FocusRectStyle = DrawFocusRectStyle.RowFocus; } // gridview.Columns.Add(myCol25); gridview.Columns.Add(myCol2); gridview.Columns.Add(myCol1); gridview.Columns.Add(myCol19); // gridview.Columns.Add(myCol130); gridview.Columns.Add(myCol14); // gridview.Columns.Add(myCol21); gridview.Columns.Add(myCol100); gridview.Columns.Add(myCol22); // gridview.Columns.Add(myCol131); // gridview.Columns.Add(myCol132); gridview.Columns.Add(myCol23); gridview.Columns.Add(myCol191); gridview.Columns.Add(myCol192); // gridview.Columns.Add(myCol133); /* gridview.Columns.Add(myCol5); gridview.Columns.Add(myCol17); gridview.Columns.Add(myCol24); gridview.Columns.Add(myCol7); gridview.Columns.Add(myCol3); gridview.Columns.Add(myCol15); gridview.Columns.Add(myCol16); gridview.Columns.Add(myCol3); gridview.Columns.Add(myCol8); //gridview.Columns.Add(myCol9); gridview.Columns.Add(myCol2); // gridview.Columns.Add(myCol6); gridview.Columns.Add(myCol4); gridview.Columns.Add(myCol12); gridview.Columns.Add(myCol1); gridview.Columns.Add(myCol18); */ //to show bottom scroll bar gridview.OptionsView.ColumnAutoWidth = false; gridview.BestFitColumns(); // gridView2.Focus(); } #endregion /// /// 预处理,按客户分拆订单,生成分拣单,并出库 /// private void getValidationOrders() { this.getPickOrders4Validation(); //threadPreProcess = new Thread(this.getPickOrders4Validation); //threadPreProcess.IsBackground = true; //threadPreProcess.Start(); } private void getPickOrders4Validation() { try { clearDetails(); setOrderFilter(); showWaitForm(); dsPickOrders = pickClient.getPickRequest4BulkValidate(desk); // dtExceptionSolutions = pickClient.getBulkValidationExceptionSolutions(desk); // closeClient(); closeWaitForm(); dtPickOrders = dsPickOrders.Tables[2]; dtPickOrdersDetail = dsPickOrders.Tables[0]; dtPickOrders.PrimaryKey = new DataColumn[] { dtPickOrders.Columns["pickOrderNo"] }; // dtPickOrders.PrimaryKey = new DataColumn[] { dtPickOrders.Columns["dpsOrder"] }; dtPickOrdersDetail.PrimaryKey = new DataColumn[] { dtPickOrdersDetail.Columns["id"] }; } catch (Exception e) { showErrorMsg(e,e.Message); LogHelper.WriteLog(this.GetType(), e); return; } // updateValidationList(null,null); if (InvokeRequired) { this.Invoke(new loadNewPickOrders(delegate() { swAutoOrder.Enabled = true; btnPickOrders.Enabled = !autoOrder; this.loadPickOrders(); })); } else { swAutoOrder.Enabled = true; btnPickOrders.Enabled = !autoOrder; this.loadPickOrders(); } // getValidationOrders(); } DateTime lastRefreshTime; int refreshInterval = 5; //完成任务时需要调用 delegate void loadNewPickOrders(); private void updateValidationList(object source, System.Timers.ElapsedEventArgs e) { //还可以进行其他的一些完任务完成之后的逻辑处理 if (autoOrder) { TimeSpan ts = DateTime.Now - lastRefreshTime; if ( ts.TotalSeconds < refreshInterval) { return; } lastRefreshTime = DateTime.Now; refreshInterval = Convert.ToInt32( spinOrder.Value * 60); getValidationOrders(); } // Thread.CurrentThread.Join(refreshInterval); //继续后台处理 } System.Timers.Timer timer = new System.Timers.Timer();//实例化Timer类 private void timeCnt() { timer.Start(); ; } private void initialTimer() { int intTime = 10000; timer.Interval = intTime;//设置间隔时间,为毫秒; timer.Elapsed += new System.Timers.ElapsedEventHandler(updateValidationList);//到达时间的时候执行事件; timer.AutoReset = true;//设置是执行一次(false)还是一直执行(true); timer.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件; timer.Start(); } /// /// 更新拣选明细 /// private void updatePickDetails() { gridPickDetails.DataSource = null; try { Thread threadPickdetail = new Thread(this.getPickOrdersPickDetail); threadPickdetail.IsBackground = true; threadPickdetail.Start(); } catch (Exception e) { LogHelper.WriteLog(this.GetType(), e); } } private void getPickOrdersPickDetail() { try { dtPickDetails = pickClient.getPickDetailByPickOrderNo(this.currentPickOrder); // closeClient(); } catch(Exception e) { showErrorMsg(e,e.Message); } if (InvokeRequired) { try { this.Invoke(new loadNewPickOrders(delegate() { bindPickDetails(); })); } catch (Exception er) { LogHelper.WriteLog(this.GetType(), er); } } else { bindPickDetails(); } } private void bindPickDetails() { gridPickDetails.DataSource = dtPickDetails; initialGridView3Columns(gridViewPickDetails); } /* /// /// loading waiting pick orders /// private int pagerQuery() { // initialRequestOrders(); //this.gridviewGoodsType.DataSource = lgt.GetAllActiveData().Tables[0].DefaultView; showWaitForm(); try { // this.splashScreenManager1.ShowWaitForm(); string query = string.Format("{0} =#'{1}';", WmsOutRequest.fields.orderType.ToString(), (int)enumOutOrderType.pickOrder); query += string.Format("{0} =#'{1}';", WmsOutRequest.fields.state.ToString(), (int) enumOutStockRequestStatus.prePicking ); bool isQueryNotChanged = lastQuery.Equals(query); this.pager1.PageCurrent = isQueryNotChanged ? this.pager1.PageCurrent : 1; //根据查询条件的变化给pager赋值 int start = (pager1.PageSize * (pager1.PageCurrent - 1) + 1); int end = (pager1.PageSize * pager1.PageCurrent); lastQuery = query; DataSet ds = lgt.Query(query, start, end); dtPickOrders = 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; dtPickOrders.PrimaryKey = new DataColumn[] { dtPickOrders.Columns["pickOrderNo"] }; bool firstLoad = !isQueryNotChanged || this.gridControl1.DataSource == null; this.gridControl1.DataSource = dtPickOrders.DefaultView; initialDataGridColumns(); //update selected row index to the last updated one. if (false && !string.IsNullOrEmpty( currentPickOrder)) { selectedRowIndex = -1; DataRow dr = dtPickOrders.Rows.Find(currentPickOrder); if (dr != null) { selectedRowIndex = dtPickOrders.Rows.IndexOf(dr); } if (selectedRowIndex >= 0 && dtPickOrders.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(); } closeWaitForm(); return cnt; } catch (Exception e) { showErrorMsg(e.Message); } closeWaitForm(); return 0;// lgt.getRowCount(query); // return lgt.GetGoodType.QueryCount(); } */ private void bindDetail() { } private void setDataBack() { } private bool validData() { bool isvalid = dxValidationProvider1.Validate(); // MessageBox.Show("goodtype is " + txtGoodType.Text +", is valid ? " + isvalid); return isvalid; //String gdtype = txtGoodType.Text.Trim(); //if (gdtype.Length == 0) //{ // dxValidationProvider.Validate(); // return false; //} //return true; } /* /// /// 分页控件产生的事件 /// private int pager_EventPaging(DeiNiu.Controls.pager.EventPagingArg e) { selectedRowIndex = 0; //reset currentRowIndex return pagerQuery(); } 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 = 200;//每页行数 this.pager1.Bind();//绑定 #endregion } */ private void gridView1_FocusedRowObjectChanged(object sender, FocusedRowObjectChangedEventArgs e) { if (gridView1.FocusedRowHandle < 0 || gridView1.FocusedRowHandle == selectedRowIndex || isDataSourceChanged && selectedRowIndex >0) { if (gridView1.IsGroupRow(e.RowHandle)) //set first row of group selected { selectedRowIndex = gridView1.GetChildRowHandle(e.RowHandle, 0); setCurrentRequestDetail(); } isDataSourceChanged = false; return; } isDataSourceChanged = false; selectedRowIndex = gridView1.FocusedRowHandle ; // showErrorMsg("selection:"+ selectedRowIndex); setCurrentRequestDetail(); } bool isDataSourceChanged = false; private void gridView1_DataSourceChanged(object sender, EventArgs e) { isDataSourceChanged = true; if (selectedRowIndex >= 0 && dtPickOrders.Rows.Count > selectedRowIndex) { gridView1.FocusedRowHandle = selectedRowIndex; gridView1.MakeRowVisible(selectedRowIndex); } } private void btnDelete_Click(object sender, EventArgs e) { } protected void query() { // pager1.Bind(); } private void loadPickOrders() { // showWaitForm(); try { lbCustmer.Text = ""; bool firstLoad = this.gridControl1.DataSource == null; // gridControl1.DataSource = dtPickOrders; //dt = lgt.Query(query, start, end); //string.IsNullOrEmpty(query) ? lgt.GetGoodType.getAllData(start, end) : lgt.g; //dtPickOrders.PrimaryKey = new DataColumn[] { dtPickOrders.Columns["pickOrderNo"] }; // DataRow drx = dtPickOrders.Rows.Find(currentPickOrder); string boxId = txtBoxId.Text.Trim(); DataView dvp = dtPickOrders.DefaultView; dvp.RowFilter =filter; if (!string.IsNullOrEmpty(boxId) && !string.IsNullOrEmpty(boxWave) && desk == boxDesk) { dvp.RowFilter = string.Format(" and dpsOrder='{0}' and desk={1}", boxWave,boxDesk); } this.gridControl1.DataSource = dvp; //update selected row index to the last updated one. if (!string.IsNullOrEmpty(currentPickOrder) ) { selectedRowIndex = -1; DataRow dr = dtPickOrders.Rows.Find(currentPickOrder); if (dr != null) { // selectedRowIndex = dtPickOrders.Rows.IndexOf(dr); selectedRowIndex = 0; foreach (DataRowView drv in GetGridViewFilteredAndSortedData(gridView1)) { if (drv["pickOrderNo"].ToString().Equals(currentPickOrder)) { break; } selectedRowIndex++; } }else{ selectedRowIndex = 0; } if (selectedRowIndex >= 0 && dtPickOrders.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(); } if (firstLoad && dvp.Count > 0) { selectedRowIndex =0; selectedValidatedItem =0; selectedValidationItem = 0; } setCurrentRequestDetail(); //to load exception solutions // DataView dv = dtExceptionSolutions.DefaultView; #if DEBUG #else // dv.RowFilter = "desk =" + desk; #endif // gridControlException.DataSource = dv; try { // initialGridView3Columns(gridViewException); initialDataGridColumns(); } catch { } if (firstLoad) { setCurrentValidatedDetail(); setCurrentValidationDetail(); textEditBarcode.Focus(); textEditBarcode.SelectAll(); } } 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; loadPickOrders(); } private void updateObjects(List goods) { showWaitForm(); //WaitFormService.Show(this); try { // lgt.update(goods); //get updated data query(); } catch (Exception e) { showErrorMsg(e.Message); } finally { // WaitFormService.Close(); closeWaitForm(); } } private bool getCurrentObject() { if (selectedRowIndex <0 || selectedRowIndex >= dtPickOrders.Rows.Count) { return false; } //clearDetails(); int cnt = GetGridViewFilteredAndSortedData(gridView1).Count; if (selectedRowIndex + 1 > cnt) { return false; } // DataRow currentRow = dtPickOrders.Rows[selectedRowIndex]; DataRowView currentRow = (DataRowView)(GetGridViewFilteredAndSortedData(gridView1)[selectedRowIndex]); // selectedRequest = new WmsOutPickRequest(currentRow); currentPickOrder = currentRow["pickOrderNo"].ToString(); lbCustmer.Text = currentPickOrder; lbCustmer.Text = currentRow["customerName"].ToString(); currentWave = currentRow["dpsOrder"].ToString(); spinBulkBox.Text = currentRow["bulkBox"].ToString(); spinBulkBag.Text = currentRow["bulkBag"].ToString(); return true; } private void btnQuery_Click(object sender, EventArgs e) { clearDetails(); loadPickOrders(); } 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 = false;//按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); gridView1.CustomColumnDisplayText += gridView2_CustomColumnDisplayText; //show line number // this.gridView1.IndicatorWidth = 40; // this.gridView1.CustomDrawRowIndicator += new DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(gridView_CustomDrawRowIndicator); this.gridViewValidated.IndicatorWidth = 40; this.gridViewValidated.CustomDrawRowIndicator += new DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(gridView_CustomDrawRowIndicator); this.gridViewSaleOrders .IndicatorWidth = 40; this.gridViewSaleOrders.CustomDrawRowIndicator += new DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(gridView_CustomDrawRowIndicator); gridViewSaleOrders.OptionsSelection.EnableAppearanceFocusedCell = false; this.gridViewPickDetails.IndicatorWidth = 40; this.gridViewPickDetails.CustomDrawRowIndicator += new DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(gridView_CustomDrawRowIndicator); gridViewPickDetails.OptionsSelection.MultiSelect = false; gridViewPickDetails.OptionsSelection.EnableAppearanceFocusedCell = false; this.gridView4Valid.IndicatorWidth = 40; this.gridView4Valid.CustomDrawRowIndicator += new DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(gridView_CustomDrawRowIndicator); this.gridView4Valid.FocusedRowObjectChanged += new DevExpress.XtraGrid.Views.Base.FocusedRowObjectChangedEventHandler(this.gridView4Validation_FocusedRowObjectChanged); gridView4Valid.OptionsSelection.MultiSelect = false; gridView4Valid.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus; gridView4Valid.OptionsSelection.EnableAppearanceFocusedCell = false; gridView4Valid.CustomColumnDisplayText += gridView2_CustomColumnDisplayText; gridView4Valid.CustomDrawCell += gridView_CustomDrawCell; this.gridView4Valid.CustomDrawRowIndicator += new DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(gridView_CustomDrawRowIndicator); this.gridViewValidated.FocusedRowObjectChanged += new DevExpress.XtraGrid.Views.Base.FocusedRowObjectChangedEventHandler(this.gridViewValidated_FocusedRowObjectChanged); this.gridViewValidated.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus; gridViewValidated.OptionsSelection.EnableAppearanceFocusedCell = false; gridViewValidated.OptionsSelection.MultiSelect = false; this.gridViewException.IndicatorWidth = 40; this.gridViewException.CustomDrawRowIndicator += new DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(gridView_CustomDrawRowIndicator); this.gridViewException.FocusedRowObjectChanged += new DevExpress.XtraGrid.Views.Base.FocusedRowObjectChangedEventHandler(this.gridViewException_FocusedRowObjectChanged); gridViewException.OptionsSelection.MultiSelect = false; gridViewException.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus; gridViewException.OptionsSelection.EnableAppearanceFocusedCell = false; gridView4Valid.GotFocus += new EventHandler(gridview_GotFocus); gridViewValidated.GotFocus += new EventHandler(gridview_GotFocus); switchGridViewRowSelection(gridViewException,false); switchGridViewRowSelection(gridViewPickDetails, false); switchGridViewRowSelection(gridViewSaleOrders, false); gridViewException.LostFocus += new EventHandler(gridview_LostFocus); gridViewSaleOrders.LostFocus += new EventHandler(gridview_LostFocus); gridViewPickDetails.LostFocus += new EventHandler(gridview_LostFocus); gridViewException.GotFocus += new EventHandler(gridview_GotFocus); gridViewSaleOrders.GotFocus += new EventHandler(gridview_GotFocus); gridViewPickDetails.GotFocus += new EventHandler(gridview_GotFocus); gridViewValidated.RowCellStyle += gridView_RowCellStyle; //gridView1.RowCellStyle += gridView_RowCellStyle; gridViewValidated.CustomColumnDisplayText += gridView2_CustomColumnDisplayText; gridViewPickDetails.CustomColumnDisplayText += gridViewPickDetails_CustomColumnDisplayText; this.gridViewException.CustomColumnDisplayText += gridView2_CustomColumnDisplayText; this.gvBox.IndicatorWidth = 40; this.gvBox.CustomDrawRowIndicator += new DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(gridView_CustomDrawRowIndicator); } private void gridViewPickDetails_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e) { if (e.Column.FieldName == WmsOutPickDetail.fields.state.ToString()) { if (!pickOrNot.ContainsValue(e.DisplayText)) { int display = -100; string disTxt = e.DisplayText; try { display = Convert.ToInt16(e.DisplayText); e.DisplayText = pickOrNot[display]; } catch { return; } } // e.DisplayText = pickOrNot.ContainsKey(display) ? pickOrNot[display] : display+""; } else if (e.Column.FieldName == "pickTime") { e.Column.DisplayFormat.FormatString = "yyyy-MM-dd HH:mm:ss"; } } private void gridView2_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e) { //if (sender == gridViewValidated) { if (e.Column.FieldName == "state") { if (!pickDetailStatus.ContainsValue(e.DisplayText)) { int display = -100; string disTxt = e.DisplayText; try { display = Convert.ToInt32(e.DisplayText); e.DisplayText = pickDetailStatus[display]; } catch { return; } } } else if (e.Column.FieldName == "pickState") { if (!pickStatus.ContainsValue(e.DisplayText)) { int display = -100; string disTxt = e.DisplayText; try { display = Convert.ToInt32(e.DisplayText); e.DisplayText = pickStatus[display]; } catch { return; } } } if (e.Column.FieldName == "IsDouChk") { if (!isDoublChk.ContainsValue(e.DisplayText)) { string disTxt = e.DisplayText; try { e.DisplayText = isDoublChk[disTxt]; } catch { return; } } } else if (e.Column.FieldName == "orderBulkPickstate") { if (!pickStatus.ContainsValue(e.DisplayText)) { string disTxt = e.DisplayText; int display = -100; try { display = Convert.ToInt32(e.DisplayText); e.DisplayText = this.pickStatus[display]; } catch { return; } } } } } void gridView_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e) { //var currentView = sender as GridView; //if (currentView != null && e.RowHandle == currentView.FocusedRowHandle) return; Rectangle r = e.Bounds; if (e.Column.FieldName == "IsDouChk" && e.CellValue != null) { string a = e.CellValue.ToString(); string b = e.DisplayText; if (b.Equals("是")) { e.Appearance.ForeColor = Color.Red; e.Appearance.DrawString(e.Cache, e.DisplayText, r); e.Handled = true; } } } void gridView_RowCellStyle(object sender,DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e) { var currentView = sender as GridView; // if( currentView != null){return;} string state = currentView.GetDataRow(e.RowHandle)["bulkPickState"].ToString().Trim(); if (string.IsNullOrEmpty(state)) { return; } enumOutStockPickStatus status = (enumOutStockPickStatus)Convert.ToInt32(state); bool isFocused = e.RowHandle == currentView.FocusedRowHandle; DevExpress.Utils.AppearanceDefault rowStyle = null; DevExpress.Utils.AppearanceDefault appBlueRed = new DevExpress.Utils.AppearanceDefault (Color.White, Color.Red, Color.Empty, Color.Blue, System.Drawing.Drawing2D.LinearGradientMode.Horizontal); DevExpress.Utils.AppearanceDefault appYB = new DevExpress.Utils.AppearanceDefault(Color.White, Color.Red, Color.Green); //DevExpress.Utils.AppearanceDefault alertFocus = new DevExpress.Utils.AppearanceDefault(Color.White, Color.Red, Color.Green, Color.Yellow); DevExpress.Utils.AppearanceDefault alertFocus = new DevExpress.Utils.AppearanceDefault(Color.White,Color.Red); DevExpress.Utils.AppearanceDefault alert = new DevExpress.Utils.AppearanceDefault(Color.Red, Color.White ); DevExpress.Utils.AppearanceDefault passedFocus = new DevExpress.Utils.AppearanceDefault(Color.Gray, Color.WhiteSmoke); DevExpress.Utils.AppearanceDefault passed = new DevExpress.Utils.AppearanceDefault(Color.Gray,Color.White); DevExpress.Utils.AppearanceDefault solutionFocus = new DevExpress.Utils.AppearanceDefault(Color.Green, Color.Yellow); DevExpress.Utils.AppearanceDefault solution = new DevExpress.Utils.AppearanceDefault(Color.Green, Color.White); if (status == enumOutStockPickStatus.复核完成) { rowStyle = isFocused ? passedFocus : passed; } else if (status == enumOutStockPickStatus.复核异常) { rowStyle = isFocused ? alertFocus : alert; } else if (status == enumOutStockPickStatus.复核异常处理) { rowStyle = isFocused ? solutionFocus : solution; } DevExpress.Utils.AppearanceHelper.Apply(e.Appearance, rowStyle); /* if (sender == this.gridView2) { if (this.gridView2.GetDataRow(e.RowHandle)["state"].ToString().Trim() == "2") { DevExpress.Utils.AppearanceHelper.Apply(e.Appearance, alert); } }else if(sender == this.gridView1){ if ( state == "2") { if (currentView != null && e.RowHandle == currentView.FocusedRowHandle) { DevExpress.Utils.AppearanceHelper.Apply(e.Appearance, alertFocus); } else { DevExpress.Utils.AppearanceHelper.Apply(e.Appearance, alert); } } else if (state == "1") { DevExpress.Utils.AppearanceHelper.Apply(e.Appearance, passed); } } */ } private void setCurrentRequestDetail() { if (!getCurrentObject() || string.IsNullOrEmpty( currentPickOrder))  { return; } // showWaitForm(); try { // DataView dv = dtPickOrdersDetail.DefaultView; // dv.Sort = "orderNo ASC"; // dv.RowFilter = string.Format("pickOrderNo ='{0}'", currentPickOrder); bindValidationTables(); if (lgOutPickDetail.Expanded) { showOrderPickDetail(); } bindBoxes(); } catch (Exception e) { showErrorMsg(e,e.Message); } // closeWaitForm(); } void bindBoxes() { if (string.IsNullOrEmpty(currentWave)) { this.gridControlBox.DataSource = null; return; } try { DataTable dt = pickClient.getBoxsByWave(currentWave, desk); initialBoxColumns(gvBox); this.gridControlBox.DataSource = dt; } catch (Exception e) { showErrorMsg(e, ""); } } void showOrderPickDetail() { if (string.IsNullOrEmpty(currentPickOrder)) { return; } try { this.gridSaleOrders.DataSource = pickClient.getOutRequestDetail(currentPickOrder).DefaultView; // closeClient(); } catch (Exception ex) { showErrorMsg(ex,ex.Message); return; } initialGridView2Columns(gridViewSaleOrders); //set pick details updatePickDetails(); } private void bindValidationTables() { resetValidationDetails(); //set sales order details DataView dv = dtPickOrdersDetail.DefaultView; // dv.Sort = "orderNo ASC"; dv.RowFilter = string.Format("pickOrderNo ='{0}'", currentPickOrder); dtPickOrders4Validation = dv.ToTable(); // dtPickOrders4Validation.PrimaryKey = new DataColumn[] { dtPickOrders4Validation.Columns["barCode"] }; //bind data validated dtPickOrdersValidated = dv.ToTable(); DataView dv2 = dtPickOrdersValidated.DefaultView; dv2.RowFilter = string.Format("bulkCount>0 and bulkPickState >{0}", (int)enumOutStockPickStatus.分拣完成); dv2.Sort = "lastmodified desc"; this.gridValidated.DataSource = dv2; initialGridView2Columns(gridViewValidated); //gridViewValidated.FocusedRowHandle = -1; //gridViewValidated.SelectRow(-1); dtPickOrdersValidated = dv2.ToTable(); dtPickOrdersValidated.PrimaryKey = new DataColumn[] { dtPickOrdersValidated.Columns["id"] }; //bind data to be validated DataView dv1 = dtPickOrders4Validation.DefaultView; dv1.RowFilter = string.Format("bulkCount>0 and bulkPickState <={0}", (int)enumOutStockPickStatus.分拣完成); dtPickOrders4Validation = dv1.ToTable(); dtPickOrders4Validation.PrimaryKey = new DataColumn[] { dtPickOrders4Validation.Columns["id"] }; this.grid4Valid.DataSource = dv1; initialGridView2Columns(gridView4Valid); btnPrint.Enabled = rd2.Checked && dtPickOrders4Validation.Rows.Count == 0 && dtPickOrdersValidated.Select("bulkpickstate < " + (int)enumOutStockPickStatus.复核完成).Length == 0; btnOk.Enabled = rd1.Checked && dtPickOrders4Validation.Rows.Count == 0 && dtPickOrdersValidated.Select("bulkpickstate < " + (int)enumOutStockPickStatus.复核完成).Length == 0; ; } private void clearDetails() { resetValidationDetails(); this.gridValidated.DataSource = null; this.grid4Valid.DataSource = null; // lbCustmer.Text = ""; // lbCustmer.Text = ""; spinBulkBox.Value = 0; spinBulkBag.Value = 0; isDoubleChk = false; txtAccount.Text = txtPasswd.Text = ""; btnValidateItem.Enabled = false; } private void btnPickOrders_Click(object sender, EventArgs e) { getValidationOrders(); } private void swAutoOrder_Toggled(object sender, EventArgs e) { autoOrder = swAutoOrder.IsOn; btnPickOrders.Enabled = !autoOrder; if (autoOrder) { getValidationOrders(); } } private void ribbon_Click(object sender, EventArgs e) { } private void gridView1_FocusedRowChanged(object sender, FocusedRowChangedEventArgs e) { } private void resetValidationDetails() { lastScanBarcode = ""; selectedValidationItem = -1; currentDetail = null; lbGoodsName.Text =""; this.lbManufacturer.Text = ""; this.lbPickCount.Text = ""; this.lbSaleCount.Text = ""; this.textEditValidCount.Text = ""; this.textEditValidtionRemark.Text = ""; this.comValidException.SelectedIndex = -1; this.lbType.Text = ""; this.lbUnit.Text = ""; this.checkEditPass.Checked = false; textEditBarcode.Text = ""; this.btnValidateItem.Enabled = false; textEditBarcode.BackColor = textEditValidCount.BackColor; ; foreach (LotAtt la in SKUs.Keys) { SKUs[la].Text = ""; } } //gridviewvalidated int selectedValidatedItem = -1; private void gridViewValidated_FocusedRowObjectChanged(object sender, FocusedRowObjectChangedEventArgs e) { if (this.gridViewValidated.FocusedRowHandle < 0 || gridViewValidated.FocusedRowHandle == selectedValidatedItem) { if (gridViewValidated.IsGroupRow(e.RowHandle)) //set first row of group selected { selectedValidatedItem = gridViewValidated.GetChildRowHandle(e.RowHandle, 0); } else { return; } } selectedValidatedItem = gridViewValidated.FocusedRowHandle >= 0 ? gridViewValidated.FocusedRowHandle : selectedValidatedItem; setCurrentValidatedDetail(); gridView4Valid.FocusedRowHandle = -1; gridView4Valid.SelectRow(-1); } private void setCurrentValidatedDetail() { if (!this.gridValidated.IsFocused) { // return; } if (selectedValidatedItem < 0 || selectedValidatedItem >= this.dtPickOrdersValidated .Rows.Count) { return; } // DataRow dr = dtPickOrdersValidated.Rows[selectedValidatedItem]; DataRowView dr = (DataRowView)(GetGridViewFilteredAndSortedData(gridViewValidated)[selectedValidatedItem]); setValidataDetail(dr.Row); } //exception int selectedExceptionItem = -1; private void gridViewException_FocusedRowObjectChanged(object sender, FocusedRowObjectChangedEventArgs e) { if (this.gridViewException.FocusedRowHandle < 0 || gridViewException.FocusedRowHandle == selectedExceptionItem) { if (gridViewException.IsGroupRow(e.RowHandle)) //set first row of group selected { selectedExceptionItem = gridViewException.GetChildRowHandle(e.RowHandle, 0); setCurrentExceptionDetail(); } return; } selectedExceptionItem = gridViewException.FocusedRowHandle; setCurrentExceptionDetail(); } private void setCurrentExceptionDetail() { if (selectedExceptionItem < 0 || selectedExceptionItem >= dtExceptionSolutions.Rows.Count) { return; } //DataRow dr = this.dtExceptionSolutions.Rows[selectedExceptionItem]; DataRowView dr = (DataRowView)(GetGridViewFilteredAndSortedData(gridViewException)[selectedExceptionItem]); if (dr != null) { this.currentPickOrder = dr["pickOrderNo"].ToString(); isDataSourceChanged = true; loadPickOrders(); this.setCurrentRequestDetail(); this.switchGridViewRowSelection(gridViewException, true); } else { showErrorMsg("no record found"); } } // gridview4validate int selectedValidationItem = -1; private void gridView4Validation_FocusedRowObjectChanged(object sender, FocusedRowObjectChangedEventArgs e) { if (this.gridView4Valid.FocusedRowHandle < 0 || gridView4Valid.FocusedRowHandle == selectedValidationItem) { if (gridView4Valid.IsGroupRow(e.RowHandle)) //set first row of group selected { selectedValidationItem = gridView4Valid.GetChildRowHandle(e.RowHandle, 0); } else { return; } } selectedValidationItem = gridView4Valid.FocusedRowHandle >= 0 ? gridView4Valid.FocusedRowHandle : selectedValidationItem; setCurrentValidationDetail(); gridViewValidated .FocusedRowHandle = -1; gridViewValidated.SelectRow(-1); } private void setCurrentValidationDetail() { if (!grid4Valid.IsFocused) { //return; } if (selectedValidationItem < 0 || selectedValidationItem >= dtPickOrders4Validation.Rows.Count) { return; } // DataRow dr = dtPickOrders4Validation.Rows[selectedValidationItem]; DataRowView dr = (DataRowView)(GetGridViewFilteredAndSortedData(gridView4Valid)[selectedValidationItem]); setValidataDetail(dr.Row); this.textEditValidCount.Text = this.lbPickCount.Text; } void setValidataDetail(DataRow dr) { if (currentDetail != null && currentDetail.ID == Convert.ToInt32(dr["id"].ToString())) { textEditBarcode.Focus(); textEditBarcode.SelectAll(); return; } currentDetail = new WmsOutPickDetail_tmp(dr); lbGoodsName.Text = dr[WmsGoods.exfields.goodsName.ToString()].ToString(); ; this.lbManufacturer.Text = dr[WmsGoods.exfields.manufacturer.ToString()].ToString(); this.lbPickCount.Text = dr[WmsOutPickDetail.fields.bulkCount.ToString()].ToString(); int i = this.lbPickCount.Text.IndexOf("."); if (i > 0) { this.lbPickCount.Text = this.lbPickCount.Text.Substring(0, i); } this.lbSaleCount.Text = dr[WmsOutPickDetail.fields.bulkCount.ToString()].ToString(); this.textEditValidCount.Text = dr[WmsOutPickDetail.fields.confirmedCount.ToString()].ToString(); this.textEditValidtionRemark.Text = dr[WmsOutPickDetail.fields.validRemark.ToString()].ToString(); isDoubleChk = "Y".Equals( dr["isDouChk"].ToString().Trim()); lgDoulbeChk.Visibility = isDoubleChk ? DevExpress.XtraLayout.Utils.LayoutVisibility.Always : DevExpress.XtraLayout.Utils.LayoutVisibility.Never; try { string tmp = dr[WmsOutPickDetail.fields.validReason.ToString()].ToString(); if (string.IsNullOrEmpty(tmp)) { this.comValidException.SelectedIndex = 0; } else { int validReason = Convert.ToInt32(tmp); validReason = validReason > 0 ? validReason : 0; if (validReason > 0) { DataRow ndr = Park.getDictionary().Rows.Find(validReason); Node n = new Node(ndr); foreach (Node cc in comValidException.Properties.Items) { if (cc.ID == n.ID) { comValidException.SelectedItem = cc; break; } } } else { this.comValidException.SelectedIndex = 0; } } } catch (Exception e) { this.comValidException.SelectedIndex = 0; } createSKUinputs(currentDetail.goodsId, currentDetail.skuId); // this.lbBatch.Text = dr["batch"].ToString(); ; // this.lbProductDate.Text = dr[WmsOutPickDetail.fields.productDate.ToString()].ToString(); // this.lbValidDate.Text = dr[WmsOutPickDetail.fields.validDate.ToString()].ToString(); this.lbType.Text = dr[WmsGoods.exfields.type.ToString()].ToString(); this.lbUnit.Text = dr[WmsGoods.exfields.unit.ToString()].ToString(); this.checkEditPass.Checked = true; enumOutStockPickStatus state = (enumOutStockPickStatus)Convert.ToInt32(dr["bulkPickState"].ToString()); if (state == enumOutStockPickStatus.复核异常) { this.checkEditPass.Checked = false; } textEditBarcode.Text = dr[WmsGoods.exfields.barcode.ToString()].ToString(); //textEditBarcode.SelectedText = textEditBarcode.Text; //textEditBarcode.SelectionLength = textEditBarcode.Text.Length; textEditBarcode.Focus(); textEditBarcode.SelectAll(); this.btnValidateItem.Enabled = true; } private void textEditBarcode_EditValueChanged(object sender, EventArgs e) { } private void btnValidateItem_Click(object sender, EventArgs e) { try { validation(); } catch (Exception er) { showErrorMsg(er); } } private void validation() { if (currentDetail == null) { return; } if (currentDetail.bulkPickState < (int)enumOutStockPickStatus.分拣完成) { showErrorMsg("此货物还未完成分拣,不能复核"); return; } if (isDoubleChk) { if (string.IsNullOrEmpty(txtAccount.Text) || string.IsNullOrEmpty(txtPasswd.Text.Trim())) { showErrorMsg("重点商品,需要双人验收!"); this.txtAccount.Focus(); return ; } if (!checkPermission(WmsConstants.SPECIAL_AUTHS_DOUBLE_CHECK)) { showErrorMsg(LoginInfo.Account + " 权限不足,需要特殊权限:" + WmsConstants.SPECIAL_AUTHS_DOUBLE_CHECK); return ; } currentDetail.checkedBy1=checkPermission(txtAccount.Text, txtPasswd.Text, WmsConstants.SPECIAL_AUTHS_DOUBLE_CHECK); if (currentDetail.checkedBy1<0) { showErrorMsg(txtAccount.Text + " 权限不足,需要特殊权限:" + WmsConstants.SPECIAL_AUTHS_DOUBLE_CHECK); return ; } } if (comValidException.SelectedItem == null) { showErrorMsg("请选择复核结果"); this.comValidException.Focus(); return; } currentDetail.bulkPickState = checkEditPass.Checked ? (int)enumOutStockPickStatus.复核完成 : (int)enumOutStockPickStatus.复核异常; currentDetail.validRemark = comValidException.Text +"; " +textEditValidtionRemark.Text.Trim(); currentDetail.validReason = ((Node)comValidException.SelectedItem).ID; currentDetail.confirmedCount = Convert.ToDecimal(textEditValidCount.Text.Trim()); Thread completeThread = new Thread(printErrorCode); completeThread.IsBackground = true; completeThread.Start(); updateValidationItem(); //Thread updateValidation = new Thread(updateValidationItem); //updateValidation.IsBackground = true; //updateValidation.Start(); DataRow dr = this.dtPickOrdersDetail.Rows.Find(currentDetail.ID); if (dr != null) { dr[WmsOutPickDetail.fields.validReason.ToString()] = currentDetail.validReason; dr["bulkPickState"] = currentDetail.bulkPickState; dr["validResult"] = this.comValidException.Text ; dr[WmsOutPickDetail.fields.validRemark.ToString()] = this.textEditValidtionRemark.Text; dr[WmsOutPickDetail.fields.confirmedCount.ToString()] = currentDetail.confirmedCount; } bindValidationTables(); } void printErrorCode() { try { if (currentDetail.bulkPickState == (int)enumOutStockPickStatus.复核异常) { DataView dv = dtPickOrdersDetail.DefaultView; dv.RowFilter = "ID =" + currentDetail.ID; reqportPrint.printBulkValidError(dv.ToTable()); } } catch (Exception er) { showErrorMsg(er); } } private void updateValidationItem() { if (currentDetail == null) { return; } try { bool b = this.pickClient.updateValidBulkPickStatus(currentDetail.ID, currentDetail.bulkPickState, currentDetail.validRemark, currentDetail.validReason, currentDetail.confirmedCount,currentDetail.checkedBy1); //closeClient(); } catch (Exception ex) { showErrorMsg(ex.Message); } // currentDetail.Update(); } private void gridView4Valid_KeyDown(object sender, KeyEventArgs e) { if(e.KeyCode == Keys.Enter){ validation(); } } protected new void gridview_GotFocus(object sender, EventArgs e) { if (sender == gridView4Valid && dtPickOrders4Validation !=null) { //grid4Valid.ForeColor = Color.Blue; // gridView4Valid.OptionsSelection.EnableAppearanceHideSelection = true; if (this.dtPickOrders4Validation.Rows.Count == 0) { gridViewValidated.Focus(); } this.setCurrentValidationDetail(); switchGridViewRowSelection(gridView4Valid,true); switchGridViewRowSelection(gridViewValidated, false); } else if (sender == gridViewValidated) { this.setCurrentValidatedDetail(); switchGridViewRowSelection(gridViewValidated, true); switchGridViewRowSelection(gridView4Valid, false); } else { switchGridViewRowSelection((GridView)sender, true); } } void textEditBarcode_MouseUp(object sender, MouseEventArgs e) { //如果鼠标左键操作并且标记存在,则执行全选 if (e.Button == MouseButtons.Left &&textEditBarcode.Tag!=null&& (bool)textEditBarcode.Tag == true) { textEditBarcode.SelectAll(); } //取消全选标记 textEditBarcode.Tag = false; } void textBoxId_GotFocus(object sender, EventArgs e) { this.txtBoxId.Tag = true; //设置标记 txtBoxId.SelectAll(); //注意1 } void textBoxId_MouseUp(object sender, MouseEventArgs e) { //如果鼠标左键操作并且标记存在,则执行全选 if (e.Button == MouseButtons.Left && txtBoxId.Tag != null && (bool)txtBoxId.Tag == true) { txtBoxId.SelectAll(); } //取消全选标记 txtBoxId.Tag = false; } void textEditBarcode_GotFocus(object sender, EventArgs e) { textEditBarcode.Tag = true; //设置标记 textEditBarcode.SelectAll(); //注意1 } string notGoodsExists = "不存在此商品"; private void textEditBarcode_KeyDown(object sender, KeyEventArgs e) { //Color a = new Color(); if (notGoodsExists.Equals(lbGoodsName.Text)) { lbGoodsName.Text = ""; } lbGoodsName.BackColor = Color.White; if (e.KeyCode != Keys.Enter) { return; } string barcode = textEditBarcode.Text; if (string.IsNullOrEmpty(barcode)) { return; } if(!WmsConstants.OUT_VALIDATION_ONE_ENTER && lastScanBarcode.Equals(barcode)){ validation(); return; } textEditBarcode.BackColor = textEditValidCount.BackColor; ; DataRow[] drs = dtPickOrders4Validation.Select(string.Format("barcode ='{0}'", barcode)); lastScanBarcode = "norec"; if (drs.Length == 0) { //check validated drs = this.dtPickOrdersValidated.Select(string.Format("barcode ='{0}'", barcode)); if (drs.Length == 0) { resetValidationDetails(); // clearDetails(); //setCurrentValidationDetail(); lbGoodsName.Text = notGoodsExists; lbGoodsName.BackColor = Color.Yellow; return; } if (drs.Length > 1) { textEditBarcode.BackColor = Color.OrangeRed; } DataRow dr0 = drs[0]; if (drs != null) { // selectedValidatedItem = dtPickOrdersValidated.Rows.IndexOf(dr0); selectedValidatedItem = 0; foreach (DataRowView drv in GetGridViewFilteredAndSortedData(gridViewValidated)) { if (drv["barcode"].ToString().Equals(barcode)) { break; } selectedValidatedItem++; } } if (selectedValidatedItem >= 0 && dtPickOrdersValidated.Rows.Count > selectedValidatedItem) { this.gridViewValidated.FocusedRowHandle = selectedValidatedItem; } gridViewValidated.Focus(); this.setCurrentValidatedDetail(); return; } lastScanBarcode = barcode; if (drs.Length > 1) { textEditBarcode.BackColor = Color.OrangeRed; } DataRow dr = drs[0]; if (drs != null) { // selectedValidationItem = dtPickOrders4Validation.Rows.IndexOf(dr); selectedValidationItem = 0; foreach (DataRowView drv in GetGridViewFilteredAndSortedData(gridView4Valid)) { if (drv["barcode"].ToString().Equals(barcode)) { break; } selectedValidationItem++; } } if (selectedValidationItem >= 0 && dtPickOrders4Validation.Rows.Count > selectedValidationItem) { this.gridView4Valid.FocusedRowHandle = selectedValidationItem; } gridView4Valid.Focus(); setCurrentValidationDetail(); if (WmsConstants.OUT_VALIDATION_ONE_ENTER ) { validation(); } } string tmpOrder = string.Empty; int boxcnt =0; int bagcnt = 0; private void btnPrint_Click(object sender, EventArgs e) { printCodes(currentPickOrder); } printIn reqportPrint = new printIn(); void completeValidation() { try { // pickClient.completeBulkValidation(tmpOrder,boxcnt, bagcnt, dtPickOrdersValidated); pickClient.completeBulkValidation(tmpOrder, boxcnt, bagcnt); pickClient.Close(); //TODO: print bulk boxs\bags label //t_tmsStock printCodes(tmpOrder); } catch (Exception ex) { showErrorMsg(ex ); } // lgt.completeBulkValidation(currentPickOrder, dtPickOrdersValidated); // currentPickOrder = null; } private void printCodes(string pickOrderNo) { try { if (boxcnt + bagcnt == 0) { boxcnt = Convert.ToInt32(spinBulkBox.Value); bagcnt = Convert.ToInt32(spinBulkBag.Value); // showErrorMsg("请设置零货拼箱、拼袋数量"); // return; } // tmpOrder = string.IsNullOrEmpty(tmpOrder) ? currentPickOrder : tmpOrder; // tmpOrder="PK20210812025228"; DataTable dt = tmsClient.getTmsStockBulkDetail(pickOrderNo); reqportPrint.printBulkPackingNoStore(dt, boxcnt, bagcnt); // tmsClient.deletTmsRec(tmpOrder); tmsClient.Close(); } catch (Exception ex) { showErrorMsg(ex ); } } private void textEditValidCount_EditValueChanged(object sender, EventArgs e) { if (currentDetail == null) { return; } this.checkEditPass.Checked = textEditValidCount.Value == currentDetail.bulkCount; if (textEditValidCount.Value != currentDetail.bulkCount) { this.comValidException.SelectedIndex = -1; } } private void comValidException_SelectedIndexChanged(object sender, EventArgs e) { this.checkEditPass.Checked = comValidException.SelectedIndex == 0; } private void btnEndWave_Click(object sender, EventArgs e) { } private void GoodsOutValidationForm_FormClosing(object sender, FormClosingEventArgs e) { timer.Stop(); timer.Close(); closeClient(); } private void lgOutPickDetail_CustomButtonChecked(object sender, DevExpress.XtraBars.Docking2010.BaseButtonEventArgs e) { this.gridSaleOrders.DataSource = null; gridPickDetails.DataSource = null; } private void lgOutPickDetail_CustomButtonUnchecked(object sender, DevExpress.XtraBars.Docking2010.BaseButtonEventArgs e) { showOrderPickDetail(); } private void combColors_SelectedIndexChanged(object sender, EventArgs e) { if (oldDesk == "-1") { return; } queryOrders(); } void queryOrders() { showWaitForm(); this.refreshInterval = 0; clearDetails(); getValidationOrders(); getDeskStatus(); closeWaitForm(); } private void spinOrder_EditValueChanged(object sender, EventArgs e) { refreshInterval = Convert.ToInt32(spinOrder.Value * 60); } private void txtBoxId_KeyUp(object sender, KeyEventArgs e) { string boxId = txtBoxId.Text.Trim(); if (string.IsNullOrEmpty(boxId)) { boxWave = string.Empty; boxDesk = 0; } if (e.KeyCode != Keys.Enter) { return; } if (string.IsNullOrEmpty(boxId)) { boxWave = string.Empty; boxDesk = 0; getPickOrders4Validation(); return; } try { DataTable dt = pickClient.getWaveDeskByBoxId(boxId); if (dt.Rows.Count==0) { showErrorMsg("未找到该箱子的注册信息"); return; } boxWave = dt.Rows[0]["waveNo"].ToString(); boxDesk = Convert.ToInt32( dt.Rows[0]["color"].ToString()); if (boxDesk != desk) { showErrorMsg(string.Format("该箱子属于复核台{0}",boxDesk)); return; } getPickOrders4Validation(); //loadPickOrders(); } catch (Exception er) { showErrorMsg(er, ""); } } //-----------create sku input controls // List ATTs = new List(); // Dictionary SKUs = new Dictionary(); Dictionary SKUs = new Dictionary(); int lastLotId = 0; private void createSKUinputs(string goodsId,int skuId) { // skuId = 1; DataTable skuValues = null; DataTable lotAtts = null; try { showWaitForm(); lotAtts = lotClient.getLotAtts(goodsId); skuValues = lotClient.querySkuValues(skuId); closeWaitForm(); //closeClient(); } catch (Exception e) { closeWaitForm(); showErrorMsg(e, "出错了"); return; } List liSKU = new List(); int pjCount = lotAtts.Rows.Count; if (pjCount == 0) { return; } int lotId = Convert.ToInt32(lotAtts.Rows[0]["lotId"].ToString()); if (lastLotId == lotId) //批次定义相同,不需从新创建sku控件 { foreach (LotAtt la in SKUs.Keys) { SKUs[la].Text = ""; } } else { lcgSKUGroup.BeginUpdate(); lcgSKUGroup.Clear(); lcgSKUGroup.Items.Clear(); SKUs.Clear(); LayoutControlItem lastItem = null; int i = 0; foreach (DataRow dr in lotAtts.Rows) { Label be; LotAtt la = new LotAtt(dr); enumLotAttType enLt = (enumLotAttType)la.attType; be = new Label(); be.Name = "SKU" + la.ID; be.TabIndex = 40 + (i * 8); be.Font = new System.Drawing.Font("微软雅黑", 16F); if (!la.isOptional) { be.ForeColor = Color.Red; } LayoutControlItem item = lcgSKUGroup.AddItem(la.attName, be) as LayoutControlItem; item.MaxSize = new System.Drawing.Size(300, 44); item.MinSize = new System.Drawing.Size(270, 44); item.Name = "lci" + la.attName; item.Padding = new DevExpress.XtraLayout.Utils.Padding(20, 2, 2, 2); item.Size = new System.Drawing.Size(839, 44); item.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; // this.layoutControlItem2.Text = "批次信息"; item.TextSize = new System.Drawing.Size(51, 14); if (lastItem != null && i % 4 != 0) { item.Move(lastItem, DevExpress.XtraLayout.Utils.InsertType.Left); } lastItem = item; SKUs.Add(la, be); i++; } } lcgSKUGroup.EndUpdate(); lastLotId = lotId; foreach (LotAtt la in SKUs.Keys) { Label be = SKUs[la]; DataRow[] drs = skuValues.Select(string.Format("attID ={0}", la.ID)); if (la.isList && la.listId > 0) { foreach (DataRow drr in drs) { DataRow[] drss = Park.getDictionary(false).Select(string.Format("ID ={0}", drr["value"].ToString())); if (drss.Length > 0) be.Text = drss[0]["name"].ToString(); break; } } else { if (drs.Length > 0) be.Text = drs[0]["value"].ToString(); } } } private void swStatus_Toggled(object sender, EventArgs e) { try { showWaitForm(); pickClient.setDeskAvailable(desk, !swStatus.IsOn); } catch (Exception er) { showErrorMsg(er); } pickClient.Close(); closeWaitForm(); } private void rd1_CheckedChanged(object sender, EventArgs e) { rd2.Checked = !rd1.Checked; setOrderFilter(); getValidationOrders(); } private void rd2_CheckedChanged(object sender, EventArgs e) { rd1.Checked = !rd2.Checked; setOrderFilter(); getValidationOrders(); } string filter = "orderState=" + (int)enumOutStockPickStatus.正在分拣; private void setOrderFilter() { //clearDetails(); if (rd2.Checked) { filter = "orderState>" + (int)enumOutStockPickStatus.正在分拣; } else if (rd1.Checked) { filter = "orderState=" + (int)enumOutStockPickStatus.正在分拣; } } private void btnOk_Click(object sender, EventArgs e) { boxcnt = Convert.ToInt32(spinBulkBox.Value); bagcnt = Convert.ToInt32(spinBulkBag.Value); if (boxcnt + bagcnt == 0) { showErrorMsg("请设置零货拼箱、拼袋数量"); spinBulkBox.SelectAll(); spinBulkBox.Focus(); return; } //save the box/bag info //handle tran system //print //close current order getCurrentObject(); tmpOrder = currentPickOrder; Thread completeThread = new Thread(completeValidation); completeThread.IsBackground = true; completeThread.Start(); //remove the order from pickorder list clearDetails(); if (dtPickOrders.Rows.Count < 2) { showWaitForm(); try { getPickOrders4Validation(); } catch (Exception ee) { LogHelper.WriteLog(typeof(GoodsOutValidationForm), ee); closeWaitForm(); } closeWaitForm(); } else { DataRow dr = dtPickOrders.Rows.Find(currentPickOrder); if (dr != null) { dtPickOrders.Rows.Remove(dr); } currentPickOrder = null; this.selectedRowIndex = 0; loadPickOrders(); } } } }