private void gridViewinvDet_DoubleClick(object sender, EventArgs e) { if (this.gridViewinvDet.IsValidRowHandle(this.gridViewinvDet.FocusedRowHandle) & this.gridViewinvDet.State == GridState.Normal & !this.gridViewinvDet.IsFilterRow(this.gridViewinvDet.FocusedRowHandle)) { FormDialog _formDialog = new FormDialog(); _formDialog.AcceptButton = null; _formDialog.Text = "»зменить строку"; MDataSet.InvoiceDetailRow sourceRow = ((this.invoiceDetailBindingSource.CurrencyManager.Current as DataRowView).Row as MDataSet.InvoiceDetailRow); if ((sourceRow != null)) { MDataSet.ProductRow productRow = (this.productBindingSource.DataSource as MDataSet.ProductDataTable).FindByID(sourceRow.ProductRef); if (productRow == null) { MessageBox.Show("ќшибка поиска товара"); return; } InvoiceDetailRowAdd _invoiceDetailRowAdd = new InvoiceDetailRowAdd(sourceRow, sourceRow.RemainsRow, productRow); _formDialog.panel.Controls.Add(_invoiceDetailRowAdd); if (DialogResult.OK == _formDialog.ShowDialog(this)) { this.invoiceDetailBindingSource.EndEdit(); } else { this.invoiceDetailBindingSource.CancelEdit(); } } } }
private void gridViewInvRem_DoubleClick(object sender, EventArgs e) { MDataSet.RemainsRow _rem = this.gridViewInvRem.GetDataRow(this.gridViewInvRem.FocusedRowHandle) as MDataSet.RemainsRow; if (_rem != null) { MDataSet.InvoiceDetailRow _newRow = (this.invoiceDetailBindingSource.AddNew() as DataRowView).Row as MDataSet.InvoiceDetailRow; InvoiceDetailAdd _invoceDetailAdd = new InvoiceDetailAdd(_newRow, _rem, _mainForm); FormDialog formDialog = new FormDialog(); formDialog.Text = "Добавить строку"; formDialog.AcceptButton = null; formDialog.panel.Controls.Add(_invoceDetailAdd); if (DialogResult.OK == formDialog.ShowDialog(this)) { this.invoiceDetailBindingSource.EndEdit(); this.SaleInvoiceDetail(_newRow); } else { this.invoiceDetailBindingSource.CancelEdit(); this.mDataSet.ReceiptRemains.RejectChanges(); } } }
protected override void StateChanged(StateItem stateItem, IProcessDispatcher dispatcher) { object obj = ObjectUtil.GetObject(stateItem.State); if (obj == null) { return; } BLL.BLLBase bll = new BLL.BLLBase(); string Request = obj.ToString(); if (Request.Equals("True") || Request.Equals("1")) { try { string taskNo = Util.ConvertStringChar.BytesToString(ObjectUtil.GetObjects(WriteToService(stateItem.Name, "Barcode"))); if (taskNo.Trim().Length > 0) { string Barcode = taskNo.PadRight(20, ' ').Substring(10, 10).Trim(); DataTable dt = bll.FillDataTable("WCS.SelectReadTaskByPallet", new DataParameter[] { new DataParameter("@PalletCode", Barcode) }); if (dt.Rows.Count > 0) { string TaskType = dt.Rows[0]["TaskType"].ToString(); string TaskNo = dt.Rows[0]["TaskNo"].ToString(); if (TaskType == "12" || TaskType == "15" || TaskType == "14") //出库,托盘出库,盘点 { DataParameter[] param = new DataParameter[] { new DataParameter("@TaskNo", TaskNo) }; bll.ExecNonQueryTran("WCS.Sp_TaskProcess", param); Logger.Info("出库任务完成,任务号:" + TaskNo + " 条码号:" + Barcode); string strValue = ""; string[] str = new string[3]; if (TaskType == "12" || TaskType == "14")//显示拣货信息. { str[0] = "1"; if (TaskType == "14") { str[0] = "2"; } while ((strValue = FormDialog.ShowDialog(str, dt)) != "") { break; } } } } } } catch (Exception ex) { Logger.Error("到达出库口,错误讯息:" + ex.Message); } } }
/// <summary> /// 盘点 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnCheckScan_Click(object sender, EventArgs e) { object obj = ObjectUtil.GetObject(Context.ProcessDispatcher.WriteToService("StockPLC_01", "01_1_195")); if (obj == null || obj.ToString() == "0") { return; } string strTaskNo = obj.ToString().PadLeft(4, '0'); if (int.Parse(obj.ToString()) >= 9800 && int.Parse(obj.ToString()) < 9999) //盘点 { string[] str = new string[3]; str[0] = "6"; str[1] = ""; str[2] = ""; TaskDal dal = new TaskDal(); //更具任务号,获取TaskID及BILL_NO string[] strInfo = dal.GetTaskInfo(strTaskNo); DataTable dt = dal.TaskInfo(string.Format("TASK_ID='{0}'", strInfo[0])); DataTable dtProductInfo = dal.GetProductInfoByTaskID(strInfo[0]); //线程停止 string strValue = ""; while ((strValue = FormDialog.ShowDialog(str, dtProductInfo)) != "") { dal.UpdateTaskDetailState(string.Format("TASK_ID='{0}' AND ITEM_NO=2", strInfo[0]), "2"); string writeItem = "01_2_195_"; DataTable dtTask = dal.TaskInfo(string.Format("TASK_ID='{0}'", strInfo[0])); DataRow dr = dtTask.Rows[0]; SysStationDal sysdal = new SysStationDal(); DataTable dtstation = sysdal.GetSationInfo(dr["CELL_CODE"].ToString(), "11", "3"); if (strValue != "1") { CellDal celldal = new CellDal(); celldal.UpdateCellErrFlag(dr["CELL_CODE"].ToString(), "条码扫描不一致"); } int[] ServiceW = new int[3]; ServiceW[0] = int.Parse(strInfo[1]); //任务号 ServiceW[1] = int.Parse(dtstation.Rows[0]["STATION_NO"].ToString()); //目的地址 ServiceW[2] = 1; Context.ProcessDispatcher.WriteToService("StockPLC_01", writeItem + "1", ServiceW); //PLC写入任务 Context.ProcessDispatcher.WriteToService("StockPLC_01", writeItem + "3", 1); //PLC写入任务 dal.UpdateTaskDetailStation("195", dtstation.Rows[0]["STATION_NO"].ToString(), "1", string.Format("TASK_ID='{0}' AND ITEM_NO=3", strInfo[0])); //更新货位到达入库站台, dal.UpdateTaskDetailCrane(dtstation.Rows[0]["STATION_NO"].ToString(), dr["CELL_CODE"].ToString(), "0", dtstation.Rows[0]["CRANE_NO"].ToString(), string.Format("TASK_ID='{0}' AND ITEM_NO=4", strInfo[0])); //更新调度堆垛机的其实位置及目标地址。 break; } } }
private void btAddOrders_Click(object sender, EventArgs e) { int Ref; this.ordersBindingSource.EndEdit(); MDataSet.OrdersRow ordrow = (this.ordersBindingSource.Current as DataRowView).Row as MDataSet.OrdersRow; if (ordrow != null) { Ref = ordrow.TradePupletRef; } else { Ref = 1; } this.btSave_Click(sender, e); this.grid.EmbeddedNavigator.Buttons.Append.DoClick(); MDataSet.OrdersRow row = (this.ordersBindingSource.Current as DataRowView).Row as MDataSet.OrdersRow; row.TradePupletRef = Ref; row.Reserved = 0; FormDialog formDialog = new FormDialog(); formDialog.Text = "Добавить новый заказ "; formDialog.AcceptButton = null; OrderAdd orderAdd = new OrderAdd(row, this.ParentForm as MainForm); formDialog.panel.Controls.Add(orderAdd); if (formDialog.ShowDialog(this) == DialogResult.OK) { this.grid.EmbeddedNavigator.Buttons.EndEdit.DoClick(); this.ordersBindingSource.EndEdit(); this.btSave_Click(sender, e); } else { this.ordersBindingSource.CancelEdit(); this.mDataSet.Orders.RejectChanges(); } this.grid.Refresh(); }
protected override void StateChanged(StateItem stateItem, IProcessDispatcher dispatcher) { /* 处理事项: * 一楼入库烟包处理 */ try { object obj = ObjectUtil.GetObject(stateItem.State); if (obj == null || obj.ToString() == "0") { return; } string strBadFlag = ""; //其他情况电控报警处理 switch (obj.ToString()) { case "1": strBadFlag = "左边条码无法读取"; break; case "2": strBadFlag = "右边条码无法读取"; break; case "3": strBadFlag = "两边条码无法读取"; break; case "4": strBadFlag = "两边条码不一致"; break; } string strBarCode; string[] strMessage = new string[3]; strMessage[0] = "3"; strMessage[1] = strBadFlag; while ((strBarCode = FormDialog.ShowDialog(strMessage, null)) != "") { byte[] b = Common.ConvertStringChar.stringToByte(strBarCode, 80); WriteToService("StockPLC_01", "01_2_124_1", b); //写入条码 WriteToService("StockPLC_01", "01_2_124_2", 1); //写入标识。 break; } } catch (Exception e) { Logger.Error("THOK.XC.Process.Process_01.NotReadBarcodeProcess:" + e.Message); } }
public string RunTests(ref int failCount, ref int testCount) { //RichTextBox control = new RichTextBox(); //form.Control = control; form.Text = "Test single form"; DialogResult res = form.ShowDialog(); Console.WriteLine("" + res); form.Show(); res = form.DialogResult; Console.WriteLine("" + res); return("done"); }
private void gridControl1_DoubleClick(object sender, EventArgs e) { try { int focused = this.gridViewInvRem.FocusedRowHandle; MDataSet.RemainsRow _rem = this.gridViewInvRem.GetDataRow(this.gridViewInvRem.FocusedRowHandle) as MDataSet.RemainsRow; _mainForm.RefreshData(_rem); if (_rem != null) { MDataSet.InvoiceDetailRow _newRow = (this.invoiceDetailBindingSource.AddNew() as DataRowView).Row as MDataSet.InvoiceDetailRow; InvoiceDetailAdd _invoceDetailAdd = new InvoiceDetailAdd(_newRow, _rem, _mainForm); FormDialog formDialog = new FormDialog(); formDialog.Text = "Добавить строку"; formDialog.panel.Controls.Add(_invoceDetailAdd); if (DialogResult.OK == formDialog.ShowDialog(this)) { this.invoiceDetailBindingSource.EndEdit(); this.SaleInvoiceDetail(_newRow); _mainForm.RefreshData(_newRow); } else { this.gridViewInvRem.BeginDataUpdate(); this.invoiceDetailBindingSource.CancelEdit(); _rem.RejectChanges(); this.gridViewInvRem.EndDataUpdate(); this.gridRem.Focus(); this.gridViewInvRem.FocusedRowHandle = focused; return; } _invoceDetailAdd.Dispose(); GC.Collect(); } } catch (Exception err) { MessageBox.Show(err.Message); MainForm.Log("gridControl1_DoubleClick " + err.Message); } }
private void btSetExtr_Click(object sender, EventArgs e) { this.invoiceDetailBindingSource.EndEdit(); this.invoiceMasterBindingSource.EndEdit(); // if (this._curentMasterRow.GetInvoiceDetailRows().Length == 0) return; FormDialog _FormDialog = new FormDialog(); _FormDialog.Text = "Установить наценку "; _FormDialog.btCancel.Visible = false; NumericUpDown _num = new NumericUpDown(); Label _lab = new Label(); _lab.Text = "Процент (%): "; _num.Value = 30; _num.Increment = 5; _FormDialog.panel.Controls.Add(_lab); _FormDialog.panel.Controls.Add(_num); _lab.Dock = DockStyle.Bottom; if (_FormDialog.ShowDialog(this.ParentForm) == DialogResult.OK) { try { int ext = Convert.ToInt16(_num.Value); this.invoiceMasterTableAdapter.InvoiceMasterSetExtrById(ext, _curentMasterRow.ID); (this.ParentForm as MainForm).RefreshData(_curentMasterRow, true); } catch (Exception err) { MessageBox.Show(err.Message); } /* foreach (DataRow _Row in _curentMasterRow.GetInvoiceDetailRows()) * { * MDataSet.InvoiceDetailRow _DetailRow = _Row as MDataSet.InvoiceDetailRow; * * _DetailRow.PriceRetailNDS = Decimal.Round(_DetailRow.PricePurchase * (1 + _num.Value / 100),2); * * } */ } }
private static List <Tuple <string, int, int> > execDialog(Tuple <string, int, int> wrong, Form parent) { FormDialog dlg = new FormDialog(wrong.Item1 + " " + wrong.Item2 + " " + wrong.Item3, false); DialogResult result = dlg.ShowDialog(parent); List <Tuple <string, int, int> > list = new List <Tuple <string, int, int> >(); if (dlg.radioButton1.Checked) { if (result == DialogResult.OK) { list.Add(new Tuple <string, int, int>(dlg.GetGoodName(), dlg.GetGoodType(), dlg.GetGoodDesc())); return(list); } else if (result == DialogResult.Cancel) { throw new Exception("Przerwano przez użytkownika."); } else { return(null); } } else if (dlg.radioButton2.Checked) { if (result == DialogResult.OK) { string s = dlg.getGoodString(); string[] sarr = s.Split(';'); foreach (string elem in sarr) { string[] elemArr = elem.Split(':'); list.Add(new Tuple <string, int, int>(elemArr[0], int.Parse(elemArr[2]), int.Parse(elemArr[1]))); } return(list); } else if (result == DialogResult.Cancel) { throw new Exception("Przerwano przez użytkownika."); } else { return(null); } } else { return(null); } }
private void btReturnDoc_Click(object sender, EventArgs e) { _mainForm.RefreshData(_invmasterRow); if (_invmasterRow.GetInvoiceDetailRows().Length == 0) { return; } FormDialog _fdlg = new FormDialog(); TextBox _tb = new TextBox(); _fdlg.Text = "Закрытие чека: "; _tb.Text = "Возврат : ..."; _tb.Width = _fdlg.panel.Width; // _tb.Dock = DockStyle.Fill; _tb.SelectAll(); _fdlg.panel.Controls.Add(_tb); if (DialogResult.OK == _fdlg.ShowDialog(this)) { _invmasterRow.Note = _tb.Text; if (!_mainForm.SaveToBase(_invmasterRow)) { MessageBox.Show("Ошибка обновления!"); return; } this._mainForm.MakeToReturn(_invmasterRow); _invmasterRow.SetModified(); if (!_mainForm.SaveToBase(_invmasterRow)) { MessageBox.Show("Ошибка обновления!"); return; } this.Close(); } }
/// <summary> /// 条码故障 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnBarcodeScan_Click(object sender, EventArgs e) { try { object obj = ObjectUtil.GetObject(Context.ProcessDispatcher.WriteToService("StockPLC_01", "01_1_124")); if (obj == null || obj.ToString() == "0") { return; } string strBadFlag = ""; switch (obj.ToString()) { case "1": strBadFlag = "左边条码无法读取"; break; case "2": strBadFlag = "右边条码无法读取"; break; case "3": strBadFlag = "两边条码无法读取"; break; case "4": strBadFlag = "两边条码不一致"; break; } string strBarCode; string[] strMessage = new string[3]; strMessage[0] = "3"; strMessage[1] = strBadFlag; while ((strBarCode = FormDialog.ShowDialog(strMessage, null)) != "") { byte[] b = THOK.XC.Process.Common.ConvertStringChar.stringToByte(strBarCode, 40); Context.ProcessDispatcher.WriteToService("StockPLC_01", "01_2_124_1", b); //写入条码 Context.ProcessDispatcher.WriteToService("StockPLC_01", "01_2_124_2", 1); //写入标识。 Context.Processes["NotReadBarcodeProcess"].Resume(); break; } } catch (Exception ex) { Logger.Error("THOK.XC.Process.Process_01.NotReadBarcodeProcess:" + ex.Message); } }
private void InvoiceDetailDatecs_FormClosing(object sender, FormClosingEventArgs e) { _mainForm.RefreshData(_invmasterRow); //проверить если выход по ошибке if ((_invmasterRow.NumCheck == 0) & (_invmasterRow.GetInvoiceDetailRows().Length > 0)) { FormDialog _fdlg = new FormDialog(); TextBox _tb = new TextBox(); _fdlg.Text = "Аннуляция чека: "; if (this.causeError == null) { _tb.Text = "Ошибочный чек ..."; } else { _tb.Text = this.causeError; } _tb.Width = _fdlg.panel.Width; // _tb.Dock = DockStyle.Fill; _tb.SelectAll(); _fdlg.panel.Controls.Add(_tb); if (DialogResult.OK == _fdlg.ShowDialog(this)) { _invmasterRow.Note = _tb.Text; if (!_mainForm.SaveToBase(_invmasterRow)) { MessageBox.Show("Ошибка обновления!"); return; } _printer.CancelCheck("ОТМЕНА:" + _tb.Text); } else { e.Cancel = true; } } }
/* 处理事项: * 倒库烟包 122 */ protected override void StateChanged(StateItem stateItem, IProcessDispatcher dispatcher) { try { object sta = ObjectUtil.GetObject(stateItem.State); if (sta == null || sta.ToString() == "0") { return; } string[] str = new string[3]; str[0] = "4"; str[1] = ""; str[2] = ""; TaskDal dal = new TaskDal(); //更具任务号,获取TaskID及BILL_NO string[] strInfo = dal.GetTaskInfo(sta.ToString().PadLeft(4, '0')); DataTable dt = dal.TaskInfo(string.Format("TASK_ID='{0}'", strInfo[0])); DataTable dtProductInfo = dal.GetProductInfoByTaskID(strInfo[0]); //线程停止 while (FormDialog.ShowDialog(str, dtProductInfo) != "") { dal.UpdateTaskDetailState(string.Format("TASK_ID='{0}' AND ITEM_NO=2", strInfo[0]), "2"); dal.UpdateTaskState(strInfo[0], "2"); BillDal billdal = new BillDal(); billdal.UpdateInBillMasterFinished(strInfo[1], "1"); string writeItem = "01_2_122_"; int[] ServiceW = new int[3]; ServiceW[0] = int.Parse(strInfo[1]); //任务号 ServiceW[1] = 131; //目的地址 ServiceW[2] = 4; WriteToService("StockPLC_01", writeItem + "1", ServiceW); //PLC写入任务 WriteToService("StockPLC_01", writeItem + "2", 1); //PLC写入任务 break; } ;//线程继续。 } catch (Exception ex) { Logger.Error("THOK.XC.Process.Process_01.MoveOutToStationProcess:" + ex.Message); } }
/// <summary> /// 抽检,补料托盘入库; /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnSpotCheck_Click(object sender, EventArgs e) { object obj = ObjectUtil.GetObject(Context.ProcessDispatcher.WriteToService("StockPLC_01", "01_1_195")); if (obj == null || obj.ToString() == "0") { return; } string strTaskNo = obj.ToString().PadLeft(4, '0'); string[] str = new string[3]; if (int.Parse(strTaskNo) >= 9000 && int.Parse(strTaskNo) <= 9299) //补料 { str[0] = "1"; } else if (int.Parse(strTaskNo) >= 9300 && int.Parse(strTaskNo) <= 9499)//抽检 { str[0] = "2"; } str[1] = ""; str[2] = ""; TaskDal dal = new TaskDal(); //更具任务号,获取TaskID及BILL_NO string[] strInfo = dal.GetTaskInfo(strTaskNo); DataTable dt = dal.TaskInfo(string.Format("TASK_ID='{0}'", strInfo[0])); DataTable dtProductInfo = dal.GetProductInfoByTaskID(strInfo[0]); //线程停止 string strValue = ""; while ((strValue = FormDialog.ShowDialog(str, dtProductInfo)) != "") { dal.UpdateTaskDetailState(string.Format("TASK_ID='{0}' AND ITEM_NO=2", strInfo[0]), "2"); string writeItem = "01_2_195_"; if (str[0] == "1" || str[0] == "2") //抽检,补料 { dal.UpdateTaskState(strInfo[0], "2"); BillDal billdal = new BillDal(); billdal.UpdateInBillMasterFinished(strInfo[1], "1"); Context.ProcessDispatcher.WriteToService("StockPLC_01", writeItem + "1", 1); //PLC写入任务 } break; } }
public void ShowDialog() { using (var dialogForm = new FormDialog()) { if (dialogForm.ShowDialog() == System.Windows.Forms.DialogResult.OK) { if (DialogConfirmed != null) { DialogConfirmed(this, new EventArgs()); } } else { if (DialogCanceled != null) { DialogCanceled(this, new EventArgs()); } } } }
/// <summary> /// 倒库出库 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnMoveOut_Click(object sender, EventArgs e) { object obj = ObjectUtil.GetObject(Context.ProcessDispatcher.WriteToService("StockPLC_01", "01_1_122")); if (obj == null || obj.ToString() == "0") { return; } string[] str = new string[3]; str[0] = "4"; str[1] = ""; str[2] = ""; TaskDal dal = new TaskDal(); //更具任务号,获取TaskID及BILL_NO string[] strInfo = dal.GetTaskInfo(obj.ToString().PadLeft(4, '0')); DataTable dt = dal.TaskInfo(string.Format("TASK_ID='{0}'", strInfo[0])); DataTable dtProductInfo = dal.GetProductInfoByTaskID(strInfo[0]); ; //线程停止 while (FormDialog.ShowDialog(str, dtProductInfo) != "") { dal.UpdateTaskDetailState(string.Format("TASK_ID='{0}' AND ITEM_NO=2", strInfo[0]), "2"); dal.UpdateTaskState(strInfo[0], "2"); BillDal billdal = new BillDal(); billdal.UpdateInBillMasterFinished(strInfo[1], "1"); string writeItem = "01_2_122_"; int[] ServiceW = new int[3]; ServiceW[0] = int.Parse(strInfo[1]); //任务号 ServiceW[1] = 131; //目的地址 ServiceW[2] = 4; Context.ProcessDispatcher.WriteToService("StockPLC_01", writeItem + "1", ServiceW); //PLC写入任务 Context.ProcessDispatcher.WriteToService("StockPLC_01", writeItem + "2", 1); //PLC写入任务 break; } }
private void btAdd_Click(object sender, EventArgs e) { /*создать новую строку, указатель на нее в дл¤ редактировани¤*/ MDataSet.RemainsRow _rems = this.gridViewRemainsInvDetEdt.GetDataRow(this.gridViewRemainsInvDetEdt.FocusedRowHandle) as MDataSet.RemainsRow; if (_rems == null) { return; } FormDialog _formDialog = new FormDialog(); _formDialog.AcceptButton = _formDialog.btOk; _formDialog.Text = "ƒобавить строку"; MDataSet.InvoiceDetailRow sourceRow = ((this.invoiceDetailBindingSource.AddNew() as DataRowView).Row as MDataSet.InvoiceDetailRow); MDataSet.RemainsRow remainsRow = ((this.RemainsBindingSource.CurrencyManager.Current as DataRowView).Row as MDataSet.RemainsRow); MDataSet.ProductRow _productRow = (this.productBindingSource.DataSource as MDataSet.ProductDataTable).FindByID(remainsRow.ProductRef); if ((sourceRow != null) & (remainsRow != null)) { InvoiceDetailRowAdd _invoiceDetailRowAdd = new InvoiceDetailRowAdd(sourceRow, remainsRow, _productRow); _formDialog.panel.Controls.Add(_invoiceDetailRowAdd); if (DialogResult.OK == _formDialog.ShowDialog(this)) { remainsRow.AcceptChanges(); this.invoiceDetailBindingSource.EndEdit(); } else { this.invoiceDetailBindingSource.CancelEdit(); remainsRow.RejectChanges(); } } }
private void btEdit_Click(object sender, EventArgs e) { this.invoiceMasterBindingSource.EndEdit(); this.Save(); this.mainDataset.InvoiceDetail.Merge(this.mDataSet.InvoiceDetail); if (this.ValidateChildren()) { FormDialog _formDialog = new FormDialog(); _formDialog.Text = this.Tag.ToString(); // _formDialog.WindowState = FormWindowState.Maximized; _formDialog.AcceptButton = null; InvoiceDetailEdit _invoiceDetail = new InvoiceDetailEdit(_curentMasterRow, this.mainDataset.Product, (this.ParentForm as MainForm)); // _invoiceDetail.Dock = DockStyle.Fill; _formDialog.panel.Controls.Add(_invoiceDetail); if (DialogResult.OK == _formDialog.ShowDialog(this)) { this.invoiceMasterBindingSource.EndEdit(); btRefresh_Click(sender, e); this.mDataSet.Remains.Merge(this.mainDataset.Remains); } else { this.invoiceMasterBindingSource.CurrencyManager.CancelCurrentEdit(); btRefresh_Click(sender, e); } } }
private void btAdd_Click(object sender, EventArgs e) { /*создать новую строку, указатель на нее в дл¤ редактировани¤*/ MDataSet.RemainsRow _rems = this.gridViewRemainsInvDetEdt.GetDataRow(this.gridViewRemainsInvDetEdt.FocusedRowHandle) as MDataSet.RemainsRow; if (_rems == null) return; FormDialog _formDialog = new FormDialog(); _formDialog.AcceptButton = _formDialog.btOk; _formDialog.Text = "ƒобавить строку"; MDataSet.InvoiceDetailRow sourceRow = ((this.invoiceDetailBindingSource.AddNew() as DataRowView).Row as MDataSet.InvoiceDetailRow); MDataSet.RemainsRow remainsRow = ((this.RemainsBindingSource.CurrencyManager.Current as DataRowView).Row as MDataSet.RemainsRow); MDataSet.ProductRow _productRow = (this.productBindingSource.DataSource as MDataSet.ProductDataTable).FindByID(remainsRow.ProductRef); if ((sourceRow != null) & (remainsRow != null)) { InvoiceDetailRowAdd _invoiceDetailRowAdd = new InvoiceDetailRowAdd(sourceRow, remainsRow,_productRow); _formDialog.panel.Controls.Add(_invoiceDetailRowAdd); if (DialogResult.OK == _formDialog.ShowDialog(this)) { remainsRow.AcceptChanges(); this.invoiceDetailBindingSource.EndEdit(); } else { this.invoiceDetailBindingSource.CancelEdit(); remainsRow.RejectChanges(); } } }
protected override void StateChanged(StateItem stateItem, IProcessDispatcher dispatcher) { /* 处理事项: * * stateItem.ItemName : * Init - 初始化。 * FirstBatch - 生成第一批入库请求任务。 * StockInRequest - 根据请求,生成入库任务。 * * stateItem.State :参数 - 请求的卷烟编码。 */ //烟包托盘到达出库站台,根据返回的任务号,判断是否正常烟包: // 1、正常烟包,更新原有CranProcess的datatable将状态更改为3,并更改数据库状态。调用WriteToProcess(穿梭车Process). // 2、错误烟包,写入移库单,产生任务,调用调用WriteToProcess(穿梭车Process)。写入出库单,产生任务,并下达出库任务。 object[] obj = ObjectUtil.GetObjects(stateItem.State); if (obj[0] == null || obj[0].ToString() == "0") { return; } try { string ToStation = ""; string FromStation = ""; string ReadItem2 = ""; switch (stateItem.ItemName) { case "02_1_304_1": FromStation = "303"; ToStation = "304"; ReadItem2 = "02_1_304_2"; break; case "02_1_308_1": FromStation = "307"; ToStation = "308"; ReadItem2 = "02_1_308_2"; break; case "02_1_312_1": FromStation = "311"; ToStation = "313"; ReadItem2 = "02_1_312_2"; break; case "02_1_316_1": FromStation = "315"; ToStation = "316"; ReadItem2 = "02_1_316_2"; break; case "02_1_320_1": FromStation = "319"; ToStation = "320"; ReadItem2 = "02_1_320_2"; break; case "02_1_322_1": FromStation = "321"; ToStation = "322"; ReadItem2 = "02_1_322_2"; break; } string StationState = ""; TaskDal dal = new TaskDal(); string[] strTask = dal.GetTaskInfo(obj[0].ToString().PadLeft(4, '0')); if (!string.IsNullOrEmpty(strTask[0])) { //更新 dal.UpdateTaskDetailState(string.Format("TASK_ID='{0}' AND ITEM_NO=2", strTask[0]), "2"); DataTable dtTask = dal.TaskInfo(string.Format("TASK_ID='{0}'", strTask[0])); string CellCode = dtTask.Rows[0]["CELL_CODE"].ToString(); CellDal Celldal = new CellDal(); //TaskID StationState = strTask[0]; //校验正确烟包 if (obj[1].ToString() == "1") { WriteToProcess("CraneProcess", "StockOutToCarStation", StationState); //解除货位锁定 Celldal.UpdateCellOutFinishUnLock(CellCode); ProductStateDal psdal = new ProductStateDal(); psdal.UpdateOutBillNo(strTask[0]); //更新出库单 //获取任务记录 DataTable dt = dal.TaskCarDetail(string.Format("WCS_TASK.TASK_ID='{0}' AND ITEM_NO=3 AND DETAIL.STATE=0 ", strTask[0])); //调度小车; WriteToProcess("CarProcess", "CarOutRequest", dt); } else //校验错误烟包 { //返回读取到的RFID string NewPalletCode = Common.ConvertStringChar.BytesToString((object[])ObjectUtil.GetObjects(WriteToService("StockPLC_02", ReadItem2))); DataTable dtProductInfo = dal.GetProductInfoByTaskID(strTask[0]); string strBillNo = ""; string[] strMessage = new string[3]; //strMessage[0] 弹出窗口类别,5是校验窗口 strMessage[0] = "5"; strMessage[1] = strTask[0]; strMessage[2] = NewPalletCode; //弹出校验不合格窗口,人工选择处理方式 //strBillNo返回1 继续出库,否则返回替代的入库批次 while ((strBillNo = FormDialog.ShowDialog(strMessage, dtProductInfo)) != "") { string strNewBillNo = strBillNo; if (string.IsNullOrEmpty(strNewBillNo)) { if (strNewBillNo == "1") { WriteToProcess("CraneProcess", "StockOutToCarStation", StationState); //更新堆垛机任务明细为完成状态。 Celldal.UpdateCellOutFinishUnLock(CellCode); //解除货位锁定 ProductStateDal psdal = new ProductStateDal(); psdal.UpdateOutBillNo(strTask[0]); //更新出库单 DataTable dtCar = dal.TaskCarDetail(string.Format("WCS_TASK.TASK_ID='{0}' AND ITEM_NO=3 AND DETAIL.STATE=0 ", strTask[0])); //获取任务ID WriteToProcess("CarProcess", "CarOutRequest", dtCar); //调度小车; } else { //生成二楼退库单 BillDal bdal = new BillDal(); //产生WMS退库单以及WCS任务,并生成TaskDetail。 string CancelTaskID = bdal.CreateCancelBillInTask(strTask[0], strTask[1]); //更新货位错误标志。 Celldal.UpdateCellNewPalletCode(CellCode, NewPalletCode); //更新退库申请货位完成。 dal.UpdateTaskDetailStation(FromStation, ToStation, "2", string.Format("TASK_ID='{0}' AND ITEM_NO=1", CancelTaskID)); //更新出库任务完成 dal.UpdateTaskState(strTask[0], "2"); string strWhere = string.Format("WCS_TASK.TASK_ID='{0}' AND ITEM_NO=2 AND DETAIL.STATE=0 ", CancelTaskID); DataTable dt = dal.TaskCarDetail(strWhere); //写入调小车的源地址目标地址 if (dt.Rows.Count > 0) { SysStationDal sysdal = new SysStationDal(); DataTable dtCarStation = sysdal.GetCarSationInfo(CellCode, "22"); dt.Rows[0].BeginEdit(); dt.Rows[0]["IN_STATION_ADDRESS"] = dtCarStation.Rows[0]["IN_STATION_ADDRESS"]; dt.Rows[0]["IN_STATION"] = dtCarStation.Rows[0]["IN_STATION"]; dt.Rows[0].EndEdit(); } //调度穿梭车入库。 WriteToProcess("CarProcess", "CarInRequest", dt); //创建替代入库批次的WMS单据,WCS出库任务 string strOutTaskID = bdal.CreateCancelBillOutTask(strTask[0], strTask[1], strNewBillNo); DataTable dtOutTask = dal.CraneTaskOut(string.Format("TASK_ID='{0}'", strOutTaskID)); //调度穿梭车出库 WriteToProcess("CraneProcess", "CraneInRequest", dtOutTask); //延迟 int i = 0; while (i < 100) { i++; } //StationState:原任务TASKID,更新堆垛机Process 状态为2. WriteToProcess("CraneProcess", "StockOutToCarStation", StationState); //插入替换批次记录 DataTable dtNewProductInfo = dal.GetProductInfoByTaskID(strOutTaskID); dal.InsertChangeProduct(dtProductInfo.Rows[0]["PRODUCT_BARCODE"].ToString(), dtProductInfo.Rows[0]["PRODUCT_CODE"].ToString(), dtNewProductInfo.Rows[0]["PRODUCT_BARCODE"].ToString(), dtNewProductInfo.Rows[0]["PRODUCT_CODE"].ToString()); } } break; } } } } catch (Exception e) { Logger.Error("THOK.XC.Process.Process_02.StockOutToCarStationProcess:" + e.Message); } }
private void gridViewInvRem_DoubleClick(object sender, EventArgs e) { MDataSet.RemainsRow _rem = this.gridViewInvRem.GetDataRow(this.gridViewInvRem.FocusedRowHandle) as MDataSet.RemainsRow; if (_rem != null) { MDataSet.InvoiceDetailRow _newRow = (this.invoiceDetailBindingSource.AddNew() as DataRowView).Row as MDataSet.InvoiceDetailRow; InvoiceDetailAdd _invoceDetailAdd = new InvoiceDetailAdd(_newRow, _rem,_mainForm); FormDialog formDialog = new FormDialog(); formDialog.Text = "Добавить строку"; formDialog.AcceptButton = null; formDialog.panel.Controls.Add(_invoceDetailAdd); if (DialogResult.OK == formDialog.ShowDialog(this)) { this.invoiceDetailBindingSource.EndEdit(); this.SaleInvoiceDetail(_newRow); } else { this.invoiceDetailBindingSource.CancelEdit(); this.mDataSet.ReceiptRemains.RejectChanges(); } } }
private void btReturnDoc_Click(object sender, EventArgs e) { _mainForm.RefreshData(_invmasterRow); if (_invmasterRow.GetInvoiceDetailRows().Length==0) return; FormDialog _fdlg = new FormDialog(); TextBox _tb = new TextBox(); _fdlg.Text = "Закрытие чека: "; _tb.Text = "Возврат : ..."; _tb.Width = _fdlg.panel.Width; // _tb.Dock = DockStyle.Fill; _tb.SelectAll(); _fdlg.panel.Controls.Add(_tb); if (DialogResult.OK == _fdlg.ShowDialog(this)) { _invmasterRow.Note = _tb.Text; if (!_mainForm.SaveToBase(_invmasterRow)) { MessageBox.Show("Ошибка обновления!"); return; } this._mainForm.MakeToReturn(_invmasterRow); _invmasterRow.SetModified(); if (!_mainForm.SaveToBase(_invmasterRow)) { MessageBox.Show("Ошибка обновления!"); return; } this.Close(); } }
private void InvoiceDetailDatecs_FormClosing(object sender, FormClosingEventArgs e) { _mainForm.RefreshData(_invmasterRow); //проверить если выход по ошибке if ((_invmasterRow.NumCheck == 0) & (_invmasterRow.GetInvoiceDetailRows().Length > 0)) { FormDialog _fdlg = new FormDialog(); TextBox _tb = new TextBox(); _fdlg.Text = "Аннуляция чека: "; if (this.causeError == null) _tb.Text = "Ошибочный чек ..."; else _tb.Text = this.causeError; _tb.Width = _fdlg.panel.Width; // _tb.Dock = DockStyle.Fill; _tb.SelectAll(); _fdlg.panel.Controls.Add(_tb); if (DialogResult.OK == _fdlg.ShowDialog(this)) { _invmasterRow.Note = _tb.Text; if (!_mainForm.SaveToBase(_invmasterRow)) { MessageBox.Show("Ошибка обновления!"); return; } _printer.CancelCheck("ОТМЕНА:" + _tb.Text); } else e.Cancel = true; } }
private void btEdit_Click(object sender, EventArgs e) { this.invoiceMasterBindingSource.EndEdit(); this.Save(); this.mainDataset.InvoiceDetail.Merge(this.mDataSet.InvoiceDetail); if (this.ValidateChildren()) { FormDialog _formDialog = new FormDialog(); _formDialog.Text = this.Tag.ToString(); // _formDialog.WindowState = FormWindowState.Maximized; _formDialog.AcceptButton = null; InvoiceDetailEdit _invoiceDetail = new InvoiceDetailEdit(_curentMasterRow, this.mainDataset.Product,(this.ParentForm as MainForm)); // _invoiceDetail.Dock = DockStyle.Fill; _formDialog.panel.Controls.Add(_invoiceDetail); if (DialogResult.OK == _formDialog.ShowDialog(this)) { this.invoiceMasterBindingSource.EndEdit(); btRefresh_Click(sender, e); this.mDataSet.Remains.Merge(this.mainDataset.Remains); } else { this.invoiceMasterBindingSource.CurrencyManager.CancelCurrentEdit(); btRefresh_Click(sender, e); } } }
/* 处理事项: * 抽检,补料,盘点 烟包到达,195 */ protected override void StateChanged(StateItem stateItem, IProcessDispatcher dispatcher) { try { object sta = ObjectUtil.GetObject(stateItem.State); if (sta == null || sta.ToString() == "0") { return; } string[] str = new string[3]; if (((short)sta) >= 9000 && ((short)sta) <= 9299) //补料 { str[0] = "1"; } else if (((short)sta) >= 9300 && ((short)sta) <= 9499)//抽检 { str[0] = "2"; } else if (((short)sta) >= 9800 && ((short)sta) < 9999) //盘点 { str[0] = "6"; } str[1] = ""; str[2] = ""; //根据任务号,获取TaskID及BILL_NO TaskDal dal = new TaskDal(); string[] strInfo = dal.GetTaskInfo(sta.ToString().PadLeft(4, '0')); DataTable dt = dal.TaskInfo(string.Format("TASK_ID='{0}'", strInfo[0])); DataTable dtProductInfo = dal.GetProductInfoByTaskID(strInfo[0]); //线程停止 string strValue = ""; while ((strValue = FormDialog.ShowDialog(str, dtProductInfo)) != "") { dal.UpdateTaskDetailState(string.Format("TASK_ID='{0}' AND ITEM_NO=2", strInfo[0]), "2"); string writeItem = "01_2_195_"; if (str[0] == "1" || str[0] == "2") //抽检,补料 { dal.UpdateTaskState(strInfo[0], "2"); BillDal billdal = new BillDal(); billdal.UpdateInBillMasterFinished(strInfo[1], "1"); int[] ServiceW = new int[3]; ServiceW[0] = int.Parse(strInfo[1]); //任务号 ServiceW[1] = 131; //目的地址 ServiceW[2] = 4; WriteToService("StockPLC_01", writeItem + "1", ServiceW); //PLC写入任务 WriteToService("StockPLC_01", writeItem + "2", 1); //PLC写入任务 } else //盘点 { DataTable dtTask = dal.TaskInfo(string.Format("TASK_ID='{0}'", strInfo[0])); DataRow dr = dtTask.Rows[0]; SysStationDal sysdal = new SysStationDal(); DataTable dtstation = sysdal.GetSationInfo(dr["CELL_CODE"].ToString(), "11", "3"); if (strValue != "1") { CellDal celldal = new CellDal(); celldal.UpdateCellErrFlag(dr["CELL_CODE"].ToString(), "条码扫描不一致"); } int[] ServiceW = new int[3]; ServiceW[0] = int.Parse(strInfo[1]); //任务号 ServiceW[1] = int.Parse(dtstation.Rows[0]["STATION_NO"].ToString()); //目的地址 ServiceW[2] = 1; WriteToService("StockPLC_01", writeItem + "1", ServiceW); //PLC写入任务 WriteToService("StockPLC_01", writeItem + "2", 1); //PLC写入任务 dal.UpdateTaskDetailStation("195", dtstation.Rows[0]["STATION_NO"].ToString(), "1", string.Format("TASK_ID='{0}' AND ITEM_NO=3", strInfo[0])); //更新货位到达入库站台, } //线程继续。 break; } } catch (Exception ex) { Logger.Error("THOK.XC.Process.Process_01.CheckOutToStationProcess:" + ex.Message); } }
/// <summary> /// 堆垛机状态。 /// </summary> /// <param name="state"></param> private void CSR(object state) { Dictionary <string, string> msg = (Dictionary <string, string>)state; if (!dCraneState.ContainsKey(msg["CraneNo"])) { dCraneState.Add(msg["CraneNo"], ""); } if (msg["ReturnCode"] == "000") { lock (dCraneState) { if (msg["AssignmenID"] == "00000000" && msg["CraneMode"] == "1") { dCraneState[msg["CraneNo"]] = "0"; if (dCraneWait[msg["CraneNo"]] != null) { SendTelegram(msg["CraneNo"], dCraneWait[msg["CraneNo"]]); } else { SendTelegram(msg["CraneNo"], null); } } else { dCraneState[msg["CraneNo"]] = "1"; } } } else { lock (dCraneState) { dCraneState[msg["CraneNo"]] = "1"; } Logger.Error(string.Format("堆垛机{0}返回错误代码{1}{2}", msg["CraneNo"], msg["ReturnCode"], "")); #region 堆垛机错误而停止,重新选择出库批次 if (msg["ReturnCode"] == "000") { DataRow dr = null; TaskDal dal = new TaskDal(); if (dtCrane != null) { DataRow[] drs = dtCrane.Select(string.Format("SQUENCE_NO='{0}'", msg["SequenceNo"])); if (drs.Length > 0) { dr = drs[0]; } } if (dr == null) { //根据流水号,获取资料 DataTable dt = dal.CraneTaskIn(string.Format("DETAIL.SQUENCE_NO='{0}' AND DETAIL.CRANE_NO IS NOT NULL", msg["SequenceNo"])); if (dt.Rows.Count > 0) { dr = dt.Rows[0]; } } if (dr != null) { string ErrMsg = ""; DataRow[] drMsgs = dtErrMesage.Select(string.Format("CODE='{0}'", dr["ERR_CODE"].ToString())); if (drMsgs.Length > 0) { ErrMsg = drMsgs[0]["DESCRIPTION"].ToString(); } string strBillNo = ""; string[] strMessage = new string[4]; strMessage[0] = "9"; strMessage[1] = dr["TASK_ID"].ToString(); strMessage[2] = "错误代码:" + dr["ERR_CODE"] + ",错误内容:" + ErrMsg; strMessage[3] = msg["CraneNo"]; DataTable dtProductInfo = dal.GetProductInfoByTaskID(dr["TASK_ID"].ToString()); while ((strBillNo = FormDialog.ShowDialog(strMessage, dtProductInfo)) != "") { if (strBillNo != "1") { BillDal bdal = new BillDal(); string strNewBillNo = strBillNo; //产生新的出库单 string strOutTaskID = bdal.CreateCancelBillOutTask(dr["TASK_ID"].ToString(), dr["BILL_NO"].ToString(), strNewBillNo, msg["CraneNo"]); DataTable dtOutTask = dal.CraneTaskOut(string.Format("TASK_ID='{0}'", strOutTaskID)); WriteToProcess("CraneProcess", "CraneInRequest", dtOutTask); //取消当前单据的出货记录 CellDal cdal = new CellDal(); cdal.UpdateCellUnLock(dr["CELL_CODE"].ToString()); dal.UpdateTaskState(dr["TASK_ID"].ToString(), "3"); break; } else { break; } } } if (msg["AssignmenID"] == "00000000") { lock (dCraneState) { dCraneState[msg["CraneNo"]] = "0"; } } } #endregion } SendACK(msg); CraneErrWriteToPLC(msg["CraneNo"], int.Parse(msg["ReturnCode"])); }
protected override void StateChanged(StateItem stateItem, IProcessDispatcher dispatcher) { //object obj = ObjectUtil.GetObject(stateItem.State); //if (obj == null) // return; switch (stateItem.ItemName) { case "CraneTaskFinished": try { object obj = ObjectUtil.GetObject(stateItem.State); string TaskFinish = obj.ToString(); if (TaskFinish.Equals("True") || TaskFinish.Equals("1")) { string TaskNo = Util.ConvertStringChar.BytesToString(ObjectUtil.GetObjects(Context.ProcessDispatcher.WriteToService(stateItem.Name, "CraneTaskNo"))); if (TaskNo.Length <= 0) { return; } sbyte[] taskNo = new sbyte[10]; object[] objRow = ObjectUtil.GetObjects(Context.ProcessDispatcher.WriteToService("CranePLC1", "CraneAlarmCode")); int Column = int.Parse(objRow[2].ToString()); int Height = int.Parse(objRow[3].ToString()); int Row = int.Parse(objRow[4].ToString()); //更新任务状态 DataParameter[] param = new DataParameter[] { new DataParameter("@TaskNo", TaskNo) }; //bll.ExecNonQueryTran("WCS.Sp_TaskProcess", param); DataTable dtXml = bll.FillDataTable("WCS.Sp_TaskProcess", param); //判断任务号是什么类型,如果是盘点另外处理 param = new DataParameter[] { new DataParameter("{0}", string.Format("WCS_Task.TaskNo='{0}'", TaskNo)) }; DataTable dt = bll.FillDataTable("WCS.SelectTask", param); string Flag = "BatchInStock"; string TaskType = ""; string CellCode = ""; string strState = ""; if (dt.Rows.Count > 0) { TaskType = dt.Rows[0]["TaskType"].ToString(); CellCode = dt.Rows[0]["CellCode"].ToString(); strState = dt.Rows[0]["State"].ToString(); if (TaskType == "12") { Flag = "BatchOutStock"; } else if (TaskType == "14") { Flag = "BatchCheckStock"; } } if (dtXml.Rows.Count > 0) { string BillNo = dtXml.Rows[0][0].ToString(); if (BillNo.Trim().Length > 0) { string xml = Util.ConvertObj.ConvertDataTableToXmlOperation(dtXml, Flag); WriteToService("ERP", "ACK", xml); Logger.Info("单号" + dtXml.Rows[0][0].ToString() + "已完成,开始上报ERP系统"); } } string[] str = new string[3]; str[0] = "6"; string strValue = ""; if (TaskType == "14" && strState == "4") { while ((strValue = FormDialog.ShowDialog(str, dt)) != "") { if (strValue != "1") { //更新货位信息 bll.ExecNonQuery("WCS.UpdateErrCell", new DataParameter[] { new DataParameter("@CellCode", CellCode) }); } bll.ExecNonQuery("WCS.UpdateTaskStateByTaskNo", new DataParameter[] { new DataParameter("@State", 5), new DataParameter("@TaskNo", TaskNo) }); //线程继续。 break; } } //清除堆垛机任务号 if (Column == 1 && Height == 1) { int[] cellAddr = new int[9]; cellAddr[0] = 0; cellAddr[1] = 0; cellAddr[2] = 0; cellAddr[3] = 1; cellAddr[4] = 1; cellAddr[5] = Row * 2 - 1; cellAddr[6] = 1; cellAddr[7] = 2; cellAddr[8] = Row * 2 - 1; Util.ConvertStringChar.stringToBytes("", 10).CopyTo(taskNo, 0); Context.ProcessDispatcher.WriteToService("CranePLC1", "TaskAddress", cellAddr); Context.ProcessDispatcher.WriteToService("CranePLC1", "TaskNo", taskNo); Context.ProcessDispatcher.WriteToService("CranePLC1", "WriteFinished", 2); Logger.Info(stateItem.ItemName + "完成标志,任务号:" + TaskNo); return; } else { Util.ConvertStringChar.stringToBytes("", 10).CopyTo(taskNo, 0); WriteToService(stateItem.Name, "TaskNo", taskNo); Logger.Info(stateItem.ItemName + "完成标志,任务号:" + TaskNo); } } } catch (Exception ex1) { Logger.Info("CraneProcess中CraneTaskFinished出错:" + ex1.Message); } break; case "Run": blRun = (int)stateItem.State == 1; if (blRun) { tmWorkTimer.Start(); Logger.Info("堆垛机联机"); } else { tmWorkTimer.Stop(); Logger.Info("堆垛机脱机"); } break; default: break; } return; }
/// <summary> /// 校验处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnVerficate_Click(object sender, EventArgs e) { string ServiceName = "StockPLC_02"; string[] ItemName = new string[6]; ItemName[0] = "02_1_304_1"; ItemName[1] = "02_1_308_1"; ItemName[2] = "02_1_312_1"; ItemName[3] = "02_1_316_1"; ItemName[4] = "02_1_320_1"; ItemName[5] = "02_1_322_1"; for (int i = 0; i < ItemName.Length; i++) { object[] obj = ObjectUtil.GetObjects(Context.ProcessDispatcher.WriteToService(ServiceName, ItemName[i])); if (obj[0] == null || obj[0].ToString() == "0") { continue; } if (obj[1].ToString() == "1") { continue; } string ToStation = ""; string FromStation = ""; string ReadItem2 = ""; switch (ItemName[i]) { case "02_1_304_1": FromStation = "303"; ToStation = "304"; ReadItem2 = "02_1_304_2"; break; case "02_1_308_1": FromStation = "307"; ToStation = "308"; ReadItem2 = "02_1_308_2"; break; case "02_1_312_1": FromStation = "311"; ToStation = "313"; ReadItem2 = "02_1_312_2"; break; case "02_1_316_1": FromStation = "315"; ToStation = "316"; ReadItem2 = "02_1_316_2"; break; case "02_1_320_1": FromStation = "319"; ToStation = "320"; ReadItem2 = "02_1_320_2"; break; case "02_1_322_1": FromStation = "321"; ToStation = "322"; ReadItem2 = "02_1_322_2"; break; } TaskDal dal = new TaskDal(); string[] strTask = dal.GetTaskInfo(obj[0].ToString().PadLeft(4, '0')); if (!string.IsNullOrEmpty(strTask[0])) { string NewPalletCode = THOK.XC.Process.Common.ConvertStringChar.BytesToString((object[])ObjectUtil.GetObjects(Context.ProcessDispatcher.WriteToService("StockPLC_02", ReadItem2))); string[] StationState = new string[2]; CellDal Celldal = new CellDal(); //更新货位,新托盘RFID,错误标志。 DataTable dtProductInfo = dal.GetProductInfoByTaskID(strTask[0]); DataTable dtTask = dal.TaskInfo(string.Format("TASK_ID='{0}'", strTask[0])); string CellCode = dtTask.Rows[0]["CELL_CODE"].ToString(); string strBillNo = ""; string[] strMessage = new string[3]; strMessage[0] = "5"; strMessage[1] = strTask[0]; strMessage[2] = NewPalletCode; ProductStateDal psdal = new ProductStateDal(); if (psdal.ExistsPalletCode(dtTask.Rows[0]["PALLET_CODE"].ToString())) //已经产生替代单号 { continue; } while ((strBillNo = FormDialog.ShowDialog(strMessage, dtProductInfo)) != "") { string strNewBillNo = strBillNo; if (string.IsNullOrEmpty(strNewBillNo)) { if (strNewBillNo == "1") { StationState[0] = obj[0].ToString();//任务号; StationState[1] = "3"; //this.Context.Processes["CraneProcess"].Start(); Context.ProcessDispatcher.WriteToProcess("CraneProcess", "StockOutToCarStation", StationState); //更新堆垛机Process 状态为3. Celldal.UpdateCellOutFinishUnLock(CellCode); //解除货位锁定 psdal.UpdateOutBillNo(strTask[0]); //更新出库单 DataTable dtCar = dal.TaskCarDetail(string.Format("WCS_TASK.TASK_ID='{0}' AND ITEM_NO=3 AND DETAIL.STATE=0 ", strTask[0])); //获取任务ID Context.ProcessDispatcher.WriteToProcess("CarProcess", "CarOutRequest", dtCar); //调度小车; } else { //生成二楼退库单 BillDal bdal = new BillDal(); string CancelTaskID = bdal.CreateCancelBillInTask(strTask[0], strTask[1]); //产生退库单,并生成明细。 Celldal.UpdateCellNewPalletCode(CellCode, NewPalletCode); //更新货位错误标志。 dal.UpdateTaskDetailStation(FromStation, ToStation, "2", string.Format("TASK_ID='{0}' AND ITEM_NO=1", CancelTaskID)); //更新申请货位完成。 dal.UpdateTaskState(strTask[0], "2"); //更新出库任务完成 string strWhere = string.Format("WCS_TASK.TASK_ID='{0}' AND ITEM_NO=2 AND DETAIL.STATE=0 ", CancelTaskID); DataTable dt = dal.TaskCarDetail(strWhere); Context.ProcessDispatcher.WriteToProcess("CarProcess", "CarInRequest", dt);//调度穿梭车入库。 string strOutTaskID = bdal.CreateCancelBillOutTask(strTask[0], strTask[1], strNewBillNo); DataTable dtOutTask = dal.CraneTaskOut(string.Format("TASK_ID='{0}'", strOutTaskID)); Context.ProcessDispatcher.WriteToProcess("CraneProcess", "CraneInRequest", dtOutTask); int jj = 0; while (jj < 100) //延迟 { jj++; } StationState[0] = strTask[0]; //TaskID; StationState[1] = "4"; Context.ProcessDispatcher.WriteToProcess("CraneProcess", "StockOutToCarStation", StationState); //更新堆垛机Process 状态为4. DataTable dtNewProductInfo = dal.GetProductInfoByTaskID(strOutTaskID); dal.InsertChangeProduct(dtProductInfo.Rows[0]["PRODUCT_BARCODE"].ToString(), dtProductInfo.Rows[0]["PRODUCT_CODE"].ToString(), dtNewProductInfo.Rows[0]["PRODUCT_BARCODE"].ToString(), dtNewProductInfo.Rows[0]["PRODUCT_CODE"].ToString()); } } break; } } } }
private void gridViewinvDet_DoubleClick(object sender, EventArgs e) { if (this.gridViewinvDet.IsValidRowHandle(this.gridViewinvDet.FocusedRowHandle) & this.gridViewinvDet.State == GridState.Normal & !this.gridViewinvDet.IsFilterRow(this.gridViewinvDet.FocusedRowHandle)) { FormDialog _formDialog = new FormDialog(); _formDialog.AcceptButton = null; _formDialog.Text = "»зменить строку"; MDataSet.InvoiceDetailRow sourceRow = ((this.invoiceDetailBindingSource.CurrencyManager.Current as DataRowView).Row as MDataSet.InvoiceDetailRow); if ((sourceRow != null) ) { MDataSet.ProductRow productRow = (this.productBindingSource.DataSource as MDataSet.ProductDataTable).FindByID(sourceRow.ProductRef); if (productRow == null) { MessageBox.Show("ќшибка поиска товара"); return; } InvoiceDetailRowAdd _invoiceDetailRowAdd = new InvoiceDetailRowAdd(sourceRow, sourceRow.RemainsRow,productRow); _formDialog.panel.Controls.Add(_invoiceDetailRowAdd); if (DialogResult.OK == _formDialog.ShowDialog(this)) this.invoiceDetailBindingSource.EndEdit(); else this.invoiceDetailBindingSource.CancelEdit(); } } }
protected override void StateChanged(StateItem stateItem, IProcessDispatcher dispatcher) { object[] obj = ObjectUtil.GetObjects(stateItem.State); if (obj == null) { return; } string TaskNo = obj[0].ToString() + obj[1].ToString().PadLeft(4, '0') + obj[2].ToString().PadLeft(4, '0'); if (TaskNo.Length > 0) { try { DataTable dt = bll.FillDataTable("WCS.SelectTask", new DataParameter[] { new DataParameter("{0}", string.Format("WCS.TaskNo='{0}'", TaskNo)) }); if (dt.Rows.Count > 0) { string TaskType = dt.Rows[0]["TaskType"].ToString(); string PalletBarcode = dt.Rows[0]["PalletCode"].ToString(); string StationNo = stateItem.ItemName.Substring(0, 3); string NextState = "10"; if (TaskType == "15") { NextState = "7"; } if (TaskType == "14") { NextState = "8"; } DataParameter[] param = new DataParameter[] { new DataParameter("{0}", string.Format("State='{0}',Covey_FinishDate=getdate()", NextState)), new DataParameter("{1}", string.Format("TaskNo='{0}'", TaskNo)) }; bll.ExecNonQueryTran("WCS.UpdateTaskState", param); Logger.Info("任务号:" + TaskNo + " 料箱号:" + PalletBarcode + " 到达出库口:" + StationNo); if (TaskType == "14") { string strValue = ""; string[] str = new string[1]; str[0] = "2"; while ((strValue = FormDialog.ShowDialog(str, dt)) != "") { //写入盘点入库 //DataParameter[] parameter = new DataParameter[] { new DataParameter("{0}", string.Format("WCS_Task.TaskNo='{0}'", TaskNo)) }; //DataTable dtTask = bll.FillDataTable("WCS.SelectTask", parameter); //if (dt.Rows.Count > 0) //{ // string ConveyServer = ""; // string ConveyID = dtTask.Rows[0]["ConveyFromStation"].ToString(); // string PalletCode = dtTask.Rows[0]["PalletCode"].ToString(); // string Destination = dtTask.Rows[0]["ConveyToStation"].ToString(); // sbyte[] sTaskNo = new sbyte[20]; // Util.ConvertStringChar.stringToBytes(TaskNo, 20).CopyTo(sTaskNo, 0); // WriteToService(ConveyServer, ConveyID + "_WTaskNo", sTaskNo); // WriteToService(ConveyServer, ConveyID + "_WPalletCode", PalletCode); // WriteToService(ConveyServer, ConveyID + "_Destination", Destination); //目的地 // if (WriteToService(ConveyServer, ConveyID + "_WriteFinished", 1)) // { // bll.ExecNonQuery("WCS.UpdateTaskState", new DataParameter[] { new DataParameter("{0}", "State=1,Convey_StartDate=getdate()"), new DataParameter("{1}", string.Format("TaskNo='{0}'", TaskNo)) }); // Logger.Info("任务号:" + TaskNo + " 料箱号:" + PalletCode + " 已下输送线:" + ConveyID + " 目的地址:" + Destination); // } //} break; } } } } catch (Exception ex) { Logger.Error("OutStockFinishProcess出错,原因:" + ex.Message); } } }
private void buttonEneter_Click(object sender, EventArgs e) { try { bool dataread = false; foreach (workload_of_teachersDataSet.SpecialnostRow specialnost in workload_of_teachersDataSet.Specialnost) { if (DataRowState.Added == specialnost.RowState) { specialnostTableAdapter.Insert(specialnost.Nazvanie, specialnost.NazvaniePolnoe, specialnost.Code); dataread = true; } if (DataRowState.Modified == specialnost.RowState) { specialnostTableAdapter.Update(specialnost.Nazvanie, specialnost.NazvaniePolnoe, specialnost.Code, (int)specialnost["IdSpecialnost", DataRowVersion.Original], (string)specialnost["Nazvanie", DataRowVersion.Original], (string)specialnost["NazvaniePolnoe", DataRowVersion.Original], (string)specialnost["Code", DataRowVersion.Original]); dataread = true; } if (DataRowState.Deleted == specialnost.RowState) { //=================== [ Каскадное удаление ] ================= int idspecialnost = (int)specialnost["IdSpecialnost", DataRowVersion.Original]; string specialnostnazvanie = (string)specialnost["Nazvanie", DataRowVersion.Original]; //Predmet workload_of_teachersDataSetTableAdapters.PredmetTableAdapter predmettableadapter = new workload_of_teachersDataSetTableAdapters.PredmetTableAdapter(); workload_of_teachersDataSetTableAdapters.Predmet_CourseTableAdapter predmet_coursetableadapter = new workload_of_teachersDataSetTableAdapters.Predmet_CourseTableAdapter(); workload_of_teachersDataSetTableAdapters.Predmet_SemesterTableAdapter predmet_semestertableadapter = new workload_of_teachersDataSetTableAdapters.Predmet_SemesterTableAdapter(); predmettableadapter.FillByCascading(workload_of_teachersDataSet.Predmet, idspecialnost, -1); foreach (workload_of_teachersDataSet.PredmetRow predmet in workload_of_teachersDataSet.Predmet) { workload_of_teachersDataSet workload_Of_TeachersDataSetTemp = new workload_of_teachersDataSet(); predmet_coursetableadapter.FillByIDPredmet(workload_Of_TeachersDataSetTemp.Predmet_Course, predmet.IdPredmet); workload_of_teachersDataSet.Predmet_Course.Merge(workload_Of_TeachersDataSetTemp.Predmet_Course); } //Practice workload_of_teachersDataSetTableAdapters.PracticeTableAdapter practicetableadapter = new workload_of_teachersDataSetTableAdapters.PracticeTableAdapter(); workload_of_teachersDataSetTableAdapters.Practice_SemesterTableAdapter practice_semestertableadapter = new workload_of_teachersDataSetTableAdapters.Practice_SemesterTableAdapter(); practicetableadapter.FillByCascading(workload_of_teachersDataSet.Practice, idspecialnost, -1, -1, -1); //Gryppa workload_of_teachersDataSetTableAdapters.GryppaTableAdapter gryppatableadapter = new workload_of_teachersDataSetTableAdapters.GryppaTableAdapter(); gryppatableadapter.FillByCascading(workload_of_teachersDataSet.Gryppa, idspecialnost, -1, -1, -1); if (workload_of_teachersDataSet.Predmet.Count > 0 || workload_of_teachersDataSet.Practice.Count > 0 || workload_of_teachersDataSet.Gryppa.Count > 0) { workload_of_teachersDataSetTableAdapters.Load_PrepodTableAdapter load_prepodtableadapter = new workload_of_teachersDataSetTableAdapters.Load_PrepodTableAdapter(); foreach (workload_of_teachersDataSet.Predmet_CourseRow predmet_course in workload_of_teachersDataSet.Predmet_Course) { workload_of_teachersDataSet workload_Of_TeachersDataSetTemp = new workload_of_teachersDataSet(); load_prepodtableadapter.FillByCascading(workload_Of_TeachersDataSetTemp.Load_Prepod, -1, predmet_course.IdPredmet_Course, -1); workload_of_teachersDataSet.Load_Prepod.Merge(workload_Of_TeachersDataSetTemp.Load_Prepod); } foreach (workload_of_teachersDataSet.PracticeRow practice in workload_of_teachersDataSet.Practice) { workload_of_teachersDataSet workload_Of_TeachersDataSetTemp = new workload_of_teachersDataSet(); load_prepodtableadapter.FillByCascading(workload_Of_TeachersDataSetTemp.Load_Prepod, -1, -1, practice.IdPractice); workload_of_teachersDataSet.Load_Prepod.Merge(workload_Of_TeachersDataSetTemp.Load_Prepod); } foreach (workload_of_teachersDataSet.GryppaRow gryppa in workload_of_teachersDataSet.Gryppa) { workload_of_teachersDataSet workload_Of_TeachersDataSetTemp = new workload_of_teachersDataSet(); load_prepodtableadapter.FillByCascading(workload_Of_TeachersDataSetTemp.Load_Prepod, gryppa.IdGryppa, -1, -1); workload_of_teachersDataSet.Load_Prepod.Merge(workload_Of_TeachersDataSetTemp.Load_Prepod); } FormDialog form = new FormDialog("Каскадное удаление специальности", String.Format("Удаление специальности {0} приведёт к удалению {1} предметов(а), {2} практик(и) и {3} групп(ы) принадлежащей этой специальности. Также будут удалены {4} педагогических(ая) нагрузок(а) преподавателей(я).", specialnostnazvanie, workload_of_teachersDataSet.Predmet.Count, workload_of_teachersDataSet.Practice.Count, workload_of_teachersDataSet.Gryppa.Count, workload_of_teachersDataSet.Load_Prepod.Count), 5); if (form.ShowDialog() == DialogResult.OK) { //Load_Prepod Delete foreach (workload_of_teachersDataSet.Load_PrepodRow load_prepod in workload_of_teachersDataSet.Load_Prepod) { load_prepodtableadapter.DeleteQuery(load_prepod.IdLoad_Prepod); } //Predmet Delete foreach (workload_of_teachersDataSet.PredmetRow predmet in workload_of_teachersDataSet.Predmet) { predmet_semestertableadapter.DeleteQueryPredmet(predmet.IdPredmet); predmet_coursetableadapter.DeleteQueryPredmet(predmet.IdPredmet); predmettableadapter.DeleteQuery(predmet.IdPredmet); } //Practice Delete foreach (workload_of_teachersDataSet.PracticeRow practice in workload_of_teachersDataSet.Practice) { practice_semestertableadapter.DeleteQueryPractice(practice.IdPractice); practicetableadapter.DeleteQuery(practice.IdPractice); } //Gryppa Delete foreach (workload_of_teachersDataSet.GryppaRow gryppa in workload_of_teachersDataSet.Gryppa) { gryppatableadapter.DeleteQuery(gryppa.IdGryppa); } specialnostTableAdapter.Delete((int)specialnost["IdSpecialnost", DataRowVersion.Original], (string)specialnost["Nazvanie", DataRowVersion.Original], (string)specialnost["NazvaniePolnoe", DataRowVersion.Original], (string)specialnost["Code", DataRowVersion.Original]); dataread = true; } } else { specialnostTableAdapter.Delete((int)specialnost["IdSpecialnost", DataRowVersion.Original], (string)specialnost["Nazvanie", DataRowVersion.Original], (string)specialnost["NazvaniePolnoe", DataRowVersion.Original], (string)specialnost["Code", DataRowVersion.Original]); dataread = true; } } } if (dataread == true) { this.DialogResult = DialogResult.OK; //Есть изменения } else { this.DialogResult = DialogResult.Ignore; //Нету изменений } this.Close(); //specialnostTableAdapter.Update(this.workload_of_teachersDataSet.Specialnost); } catch (Exception error) { MessageBox.Show("Сообщение об ошибке: " + error.Message + "\nПроверьте корректность вводимых данных, а также наличие соединения с базой данных. Если ошибка продолжает появляться обратитесь к системному администратору или к разработчику данной программы.", "Ошибка при сохранении данных", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> ///接收删除指令返回值 /// </summary> /// <param name="state"></param> private void DEC(object state) { Dictionary <string, string> msg = (Dictionary <string, string>)state; if (msg["ReturnCode"] == "000") //序列号出错,重新发送报文 { TaskDal dal = new TaskDal(); DataTable dt = dal.CraneTaskIn(string.Format("DETAIL.CRANE_NO='{0}' AND ASSIGNMENT_ID='{1}'", msg["CraneNo"], msg["AssignmenID"])); DataRow dr = null; if (dt.Rows.Count > 0) { dr = dt.Rows[0]; } if (dr != null) { #region 错误处理 if (dr["ERR_CODE"].ToString() == "111") //入库,货位有货,重新分配货位 { CellDal cdal = new CellDal(); cdal.UpdateCellErrFlag(dr["CELL_CODE"].ToString(), "货位有货,系统无记录"); string[] strValue = dal.AssignNewCell(string.Format("TASK_ID='{0}'", dr["TASK_ID"].ToString()), dr["CRANE_NO"].ToString()); //货位申请 ProductStateDal StateDal = new ProductStateDal(); StateDal.UpdateProductCellCode(strValue[0], strValue[1]); //更新Product_State 货位 SysStationDal sysdal = new SysStationDal(); DataTable dtstation = sysdal.GetSationInfo(strValue[1], dr["TASK_TYPE"].ToString(), dr["ITEM_NO"].ToString()); dal.UpdateTaskDetailCrane(dtstation.Rows[0]["STATION_NO"].ToString(), strValue[1], "1", dtstation.Rows[0]["CRANE_NO"].ToString(), string.Format("TASK_ID='{0}' AND ITEM_NO={1}", strValue[0], dr["ITEM_NO"].ToString()));//更新调度堆垛机的其实位置及目标地址。 dr.BeginEdit(); dr["CELLSTATION"] = "30" + strValue[1] + "01"; dr.EndEdit(); SendTelegramARQ(dr, false); //if (dtCrane != null) //{ // DataRow[] drs = dtCrane.Select(string.Format("ASSIGNMENT_ID='{0}'", msg["AssignmenID"])); // if (drs.Length > 0) // dtCrane.Rows.Remove(drs[0]); //} } else if (dr["ERR_CODE"].ToString() == "113")//出库,货位无货, { string ErrMsg = ""; DataRow[] drMsgs = dtErrMesage.Select(string.Format("CODE='{0}'", dr["ERR_CODE"].ToString())); if (drMsgs.Length > 0) { ErrMsg = drMsgs[0]["DESCRIPTION"].ToString(); } string strBillNo = ""; string[] strMessage = new string[3]; strMessage[0] = "8"; strMessage[1] = dr["TASK_ID"].ToString(); strMessage[2] = "错误代码:" + dr["ERR_CODE"] + ",错误内容:" + ErrMsg; DataTable dtProductInfo = dal.GetProductInfoByTaskID(dr["TASK_ID"].ToString()); while ((strBillNo = FormDialog.ShowDialog(strMessage, dtProductInfo)) != "") { BillDal bdal = new BillDal(); string strNewBillNo = strBillNo; string strOutTaskID = bdal.CreateCancelBillOutTask(dr["TASK_ID"].ToString(), dr["BILL_NO"].ToString(), strNewBillNo); DataTable dtOutTask = dal.CraneTaskOut(string.Format("TASK_ID='{0}'", strOutTaskID)); WriteToProcess("CraneProcess", "CraneInRequest", dtOutTask); CellDal cdal = new CellDal(); cdal.UpdateCellErrFlag(dr["CELL_CODE"].ToString(), "货位无货,系统有记录"); break; } } } #endregion } }
private void btAddOrders_Click(object sender, EventArgs e) { int Ref; this.ordersBindingSource.EndEdit(); MDataSet.OrdersRow ordrow =(this.ordersBindingSource.Current as DataRowView).Row as MDataSet.OrdersRow; if (ordrow != null) Ref = ordrow.TradePupletRef; else Ref = 1; this.btSave_Click(sender, e); this.grid.EmbeddedNavigator.Buttons.Append.DoClick(); MDataSet.OrdersRow row = (this.ordersBindingSource.Current as DataRowView).Row as MDataSet.OrdersRow; row.TradePupletRef = Ref; row.Reserved = 0; FormDialog formDialog = new FormDialog(); formDialog.Text = "Добавить новый заказ "; formDialog.AcceptButton = null; OrderAdd orderAdd = new OrderAdd(row, this.ParentForm as MainForm); formDialog.panel.Controls.Add(orderAdd); if (formDialog.ShowDialog(this) == DialogResult.OK) { this.grid.EmbeddedNavigator.Buttons.EndEdit.DoClick(); this.ordersBindingSource.EndEdit(); this.btSave_Click(sender, e); } else { this.ordersBindingSource.CancelEdit(); this.mDataSet.Orders.RejectChanges(); } this.grid.Refresh(); }
protected override void StateChanged(StateItem stateItem, IProcessDispatcher dispatcher) { object obj = ObjectUtil.GetObject(stateItem.State); if (obj == null) { return; } switch (stateItem.ItemName) { case "ReadFinished": try { object o = ObjectUtil.GetObject(stateItem.State); string TaskFinish = o.ToString(); if (TaskFinish.Equals("True") || TaskFinish.Equals("1")) { string BarCode = Util.ConvertStringChar.BytesToString(ObjectUtil.GetObjects(Context.ProcessDispatcher.WriteToService(stateItem.Name, "BarCode"))); if (BarCode.Length <= 0 || BarCode == "?") { return; } bool blnInnver = false; bool blnHasOutTask = false; int Count = bll.GetRowCount("WCS_TASK", string.Format("TaskType='11' and State in (0,3) and PalletCode!='{0}'", BarCode)); if (Count > 0) { WriteToService(stateItem.Name, "WriteFinished", 2); Logger.Error("还有其他入库任务未完成,不能入库!"); return; } Count = bll.GetRowCount("WCS_TASK", string.Format("TaskType='11' and State in (0,3) and PalletCode='{0}'", BarCode)); if (Count == 0) { Count = bll.GetRowCount("WCS_TASK", "TaskType='12' and State=0"); if (Count > 0) { blnHasOutTask = true; } else { if (bll.GetRowCount("WCS_TASK", string.Format("TaskType='14' and State<7 and PalletCode='{0}'", BarCode)) > 0) { blnInnver = true; } } } if (blnHasOutTask) { WriteToService(stateItem.Name, "WriteFinished", 2); Logger.Error("堆垛机正在执行出库任务,不能入库!"); return; } //判断货位表中是否含有该条码的货位. int i = bll.GetRowCount("CMD_CELL", string.Format("CellName='{0}' and IsTurnover=0", BarCode)); if (i == 0 && !blnInnver) { WriteToService(stateItem.Name, "WriteFinished", 4); Logger.Error("条码不正确,不存在货位名称为 " + BarCode + " 的货位!"); return; } if (i > 0) { //判断该货位是否含有货,托盘条码是否重复 int k = bll.GetRowCount("CMD_CELL", string.Format("CellName='{0}' and PalletCode='{1}' and InDate is not Null ", BarCode, BarCode)); if (k == 1 && !blnInnver) { WriteToService(stateItem.Name, "WriteFinished", 3); Logger.Error("条码重复,货位名称为 " + BarCode + " 的货位已经入库!"); return; } } bll.ExecNonQuery("WCS.SpCreateInTaskByPallet", new DataParameter[] { new DataParameter("@PalletCode", BarCode) }); string strValue = ""; //入库时输入冲程数 DataTable dtTask = bll.FillDataTable("WCS.SelectTask", new DataParameter[] { new DataParameter("{0}", string.Format("WCS_Task.TaskType='11' and WCS_Task.State in (0,3) and WCS_Task.PalletCode='{0}'", BarCode)) }); if (dtTask.Rows.Count > 0) { string[] str = new string[3]; str[0] = "1"; while ((strValue = FormDialog.ShowDialog(str, dtTask)) != "") { break; } } WriteToService(stateItem.Name, "WriteFinished", 1); Logger.Info("托盘条码为 " + BarCode + " 开始入库!"); } } catch (Exception ex1) { Logger.Info("CarProcess中ReadFinished出错:" + ex1.Message); } break; case "AlarmCode": object o1 = ObjectUtil.GetObject(stateItem.State); if (o1.ToString() != "0") { Logger.Error(dicCarErr[int.Parse(o1.ToString())]); } break; default: break; } }
private void buttonEneter_Click(object sender, EventArgs e) { try { bool dataread = false; foreach (workload_of_teachersDataSet.VidPracticeRow vidpractice in workload_of_teachersDataSet.VidPractice) { if (DataRowState.Added == vidpractice.RowState) { vidPracticeTableAdapter.Insert(vidpractice.Nazvanie, vidpractice.NazvaniePolnoe, vidpractice.Type); dataread = true; } if (DataRowState.Modified == vidpractice.RowState) { vidPracticeTableAdapter.Update(vidpractice.Nazvanie, vidpractice.NazvaniePolnoe, vidpractice.Type, (int)vidpractice["IdVidPractice", DataRowVersion.Original], (string)vidpractice["Nazvanie", DataRowVersion.Original], (string)vidpractice["NazvaniePolnoe", DataRowVersion.Original], (bool)vidpractice["Type", DataRowVersion.Original]); dataread = true; } if (DataRowState.Deleted == vidpractice.RowState) { //=================== [ Каскадное удаление ] ================= int idvidpractice = (int)vidpractice["IdVidPractice", DataRowVersion.Original]; string vidpracticenazvanie = (string)vidpractice["Nazvanie", DataRowVersion.Original]; //Practice workload_of_teachersDataSetTableAdapters.PracticeTableAdapter practicetableadapter = new workload_of_teachersDataSetTableAdapters.PracticeTableAdapter(); workload_of_teachersDataSetTableAdapters.Practice_SemesterTableAdapter practice_semestertableadapter = new workload_of_teachersDataSetTableAdapters.Practice_SemesterTableAdapter(); practicetableadapter.FillByCascading(workload_of_teachersDataSet.Practice, -1, -1, -1, idvidpractice); if (workload_of_teachersDataSet.Practice.Count > 0) { workload_of_teachersDataSetTableAdapters.Load_PrepodTableAdapter load_prepodtableadapter = new workload_of_teachersDataSetTableAdapters.Load_PrepodTableAdapter(); foreach (workload_of_teachersDataSet.PracticeRow practice in workload_of_teachersDataSet.Practice) { workload_of_teachersDataSet workload_Of_TeachersDataSetTemp = new workload_of_teachersDataSet(); load_prepodtableadapter.FillByCascading(workload_Of_TeachersDataSetTemp.Load_Prepod, -1, -1, practice.IdPractice); workload_of_teachersDataSet.Load_Prepod.Merge(workload_Of_TeachersDataSetTemp.Load_Prepod); } FormDialog form = new FormDialog("Каскадное удаление вида практики", String.Format("Удаление вида практики {0} приведёт к удалению {1} практик(и) принадлежащей этому виду практик. Также будут удалены {2} педагогических(ая) нагрузок(а) преподавателей(я).", vidpracticenazvanie, workload_of_teachersDataSet.Practice.Count, workload_of_teachersDataSet.Load_Prepod.Count), 5); if (form.ShowDialog() == DialogResult.OK) { //Load_Prepod Delete foreach (workload_of_teachersDataSet.Load_PrepodRow load_prepod in workload_of_teachersDataSet.Load_Prepod) { load_prepodtableadapter.DeleteQuery(load_prepod.IdLoad_Prepod); } //Practice Delete foreach (workload_of_teachersDataSet.PracticeRow practice in workload_of_teachersDataSet.Practice) { practice_semestertableadapter.DeleteQueryPractice(practice.IdPractice); practicetableadapter.DeleteQuery(practice.IdPractice); } vidPracticeTableAdapter.Delete((int)vidpractice["IdVidPractice", DataRowVersion.Original], (string)vidpractice["Nazvanie", DataRowVersion.Original], (string)vidpractice["NazvaniePolnoe", DataRowVersion.Original], (bool)vidpractice["Type", DataRowVersion.Original]); dataread = true; } } else { vidPracticeTableAdapter.Delete((int)vidpractice["IdVidPractice", DataRowVersion.Original], (string)vidpractice["Nazvanie", DataRowVersion.Original], (string)vidpractice["NazvaniePolnoe", DataRowVersion.Original], (bool)vidpractice["Type", DataRowVersion.Original]); dataread = true; } } } if (dataread == true) { this.DialogResult = DialogResult.OK; //Есть изменения } else { this.DialogResult = DialogResult.Ignore; //Нету изменений } this.Close(); //vidPracticeTableAdapter.Update(this.workload_of_teachersDataSet.VidPractice); } catch (Exception error) { MessageBox.Show("Сообщение об ошибке: " + error.Message + "\nПроверьте корректность вводимых данных, а также наличие соединения с базой данных. Если ошибка продолжает появляться обратитесь к системному администратору или к разработчику данной программы.", "Ошибка при сохранении данных", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void btCloseByOrganization_Click(object sender, EventArgs e) { //***/ this.invoiceMasterBindingSource.EndEdit(); if (!this.Save()) return; if (_curentMasterRow.Sum == 0) return; foreach (DataRow detrow in this._curentMasterRow.GetInvoiceDetailRows()) { if ((detrow as MDataSet.InvoiceDetailRow).PriceRetailNDS == 0) { MessageBox.Show("Есть не установленные цены!!!"); return; } } SelectTradePutlet _selectTradePutlet = new SelectTradePutlet(); _selectTradePutlet.organizationBindingSource.DataSource = this.mainDataset.Organization; _selectTradePutlet.organizationBindingSource.ResetBindings(false); _selectTradePutlet.lookUpEdit.Properties.DataSource = _selectTradePutlet.organizationBindingSource; FormDialog _formDialog = new FormDialog(); _formDialog.panel.Controls.Add(_selectTradePutlet); try { int _OrganizationRef ; if (_formDialog.ShowDialog(this) == DialogResult.OK) { if (Convert.ToInt32(_selectTradePutlet.lookUpEdit.EditValue) == 0) return; _OrganizationRef = Convert.ToInt32(_selectTradePutlet.lookUpEdit.EditValue); (this.ParentForm as MainForm).invoiceMasterTableAdapter.InvoiceMasterMoveToOrg(_curentMasterRow.ID, _OrganizationRef); (this.ParentForm as MainForm).RefreshData(_curentMasterRow, false); } } catch { MessageBox.Show("Ошибка внутреннего перемещения!"); } finally { this.btClose.PerformClick(); } }
private void btCloseByOrganization_Click(object sender, EventArgs e) { //***/ this.invoiceMasterBindingSource.EndEdit(); if (!this.Save()) { return; } if (_curentMasterRow.Sum == 0) { return; } foreach (DataRow detrow in this._curentMasterRow.GetInvoiceDetailRows()) { if ((detrow as MDataSet.InvoiceDetailRow).PriceRetailNDS == 0) { MessageBox.Show("Есть не установленные цены!!!"); return; } } SelectTradePutlet _selectTradePutlet = new SelectTradePutlet(); _selectTradePutlet.organizationBindingSource.DataSource = this.mainDataset.Organization; _selectTradePutlet.organizationBindingSource.ResetBindings(false); _selectTradePutlet.lookUpEdit.Properties.DataSource = _selectTradePutlet.organizationBindingSource; FormDialog _formDialog = new FormDialog(); _formDialog.panel.Controls.Add(_selectTradePutlet); try { int _OrganizationRef; if (_formDialog.ShowDialog(this) == DialogResult.OK) { if (Convert.ToInt32(_selectTradePutlet.lookUpEdit.EditValue) == 0) { return; } _OrganizationRef = Convert.ToInt32(_selectTradePutlet.lookUpEdit.EditValue); (this.ParentForm as MainForm).invoiceMasterTableAdapter.InvoiceMasterMoveToOrg(_curentMasterRow.ID, _OrganizationRef); (this.ParentForm as MainForm).RefreshData(_curentMasterRow, false); } } catch { MessageBox.Show("Ошибка внутреннего перемещения!"); } finally { this.btClose.PerformClick(); } }
private void btSetExtr_Click(object sender, EventArgs e) { this.invoiceDetailBindingSource.EndEdit(); this.invoiceMasterBindingSource.EndEdit(); // if (this._curentMasterRow.GetInvoiceDetailRows().Length == 0) return; FormDialog _FormDialog = new FormDialog(); _FormDialog.Text = "Установить наценку "; _FormDialog.btCancel.Visible = false; NumericUpDown _num = new NumericUpDown (); Label _lab = new Label(); _lab.Text = "Процент (%): "; _num.Value = 30; _num.Increment = 5; _FormDialog.panel.Controls.Add(_lab); _FormDialog.panel.Controls.Add(_num); _lab.Dock = DockStyle.Bottom; if (_FormDialog.ShowDialog(this.ParentForm) == DialogResult.OK) { try { int ext = Convert.ToInt16(_num.Value); this.invoiceMasterTableAdapter.InvoiceMasterSetExtrById(ext,_curentMasterRow.ID); (this.ParentForm as MainForm).RefreshData(_curentMasterRow,true); } catch (Exception err) { MessageBox.Show(err.Message); } /* foreach (DataRow _Row in _curentMasterRow.GetInvoiceDetailRows()) { MDataSet.InvoiceDetailRow _DetailRow = _Row as MDataSet.InvoiceDetailRow; _DetailRow.PriceRetailNDS = Decimal.Round(_DetailRow.PricePurchase * (1 + _num.Value / 100),2); } */ } }