实例介绍
【实例简介】PDA程序实例
【实例截图】
【实例截图】
【核心代码】
using System; using System.Linq; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using Symbol.Barcode2; using Newtonsoft.Json; namespace AnodeSlurryMaterialInput { public partial class AnodeSlurryMaterialInput : Form { DataTable m_dt; //打胶机 DataTable m_dt1; //合浆 DataTable m_dt2; //陶瓷 // DataTable m_dt3; // private Barcode2 m_barcode; string IniFileName = ""; public static bool IsSuccess = false; List<MatTargetModel> SaveInfo; PDAService.PDAService PDAObject; public AnodeSlurryMaterialInput() { InitializeComponent(); IniFileName = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.FullyQualifiedName) "\\Config.txt"; if (PDAObject == null) PDAObject = new PDAService.PDAService(); this.PDAObject.Url = GetAddressInfo(); //加载地址 LoadWorkInfo(); //加载工单 LodeDevice(); //加载设备 CNTsLoad();//加载CNTs if (m_dt == null) //打胶投料 { m_dt = new DataTable(); m_dtTable(m_dt, dgMatsFeed); } if (m_dt1 == null) { m_dt1 = new DataTable(); m_dtTable(m_dt1, dataGrid2); //合浆投料 } if (m_dt2 == null) { LoadCERAMICMaterialInfo(); } //摩托罗拉扫描响应事件 需要取消注释 m_barcode = new Barcode2(); m_barcode.Scan(); m_barcode.OnScan = new Barcode2.OnScanHandler(m_barcode_OnScan); } public void m_barcode_OnScan(ScanDataCollection scancollection) { String barcodeData = scancollection.ElementAt(0).Text; m_barcode.Scan(); if (textBox6.Focused) { this.textBox6.Text = ""; this.textBox6.Text = barcodeData; PutIntoSlurry(textBox6.Text, textBox5.Text, "打胶投料"); textBox6.Text = ""; textBox6.Focus(); } if (textBox9.Focused) { this.textBox9.Text = ""; this.textBox9.Text = barcodeData; if (string.IsNullOrEmpty(textBox9.Text.Trim())) { MessageBox.Show("输入的批次号不能为空,谢谢!"); return; } if (textBox9.Text.Length <= 16) { MessageBox.Show("输入的批次号不能少于16位,谢谢!"); this.textBox9.Text = ""; this.textBox9.Focus(); return; } string ResultInfo = PDAObject.GetBatchInfoByBarCode(textBox9.Text.Trim()); ResponseBase<BarCodeLotIdInfo> ResultModel = JsonConvert.DeserializeObject<ResponseBase<BarCodeLotIdInfo>>(ResultInfo); if (ResultModel.ResultCode == 1) { MessageBox.Show(ResultModel.Message); textBox9.Text = ""; textBox9.Focus(); return; } if (ResultModel.Data == null) { MessageBox.Show("当前批次号不存在物料信息,请检查,谢谢!"); textBox9.Text = ""; textBox9.Focus(); return; } this.textBox7.Text = ResultModel.Data.Definition.DEF_ID; //物料ID this.textBox18.Text = ResultModel.Data.Definition.DEF_NAME; //物料名称 this.textBox14.Text = ResultModel.Data.Definition.UOM_ID; //单位 this.textBox15.Text = ResultModel.Data.Definition.MIN_PCK_QTY; //数量 this.textBox16.Text = ResultModel.Data.Definition.MM_SPEC; //规格 this.textBox17.Text = textBox9.Text.Substring(0, 10); //物料批次 //textBox9.Text = ""; textBox9.Focus(); //m_barcode.Scan(); } if (textBox11.Focused) { this.textBox11.Text = ""; this.textBox11.Text = barcodeData; PutIntoSlurry(textBox11.Text, textBox10.Text, "合浆投料"); textBox11.Text = ""; textBox11.Focus(); } if (textBox13.Focused) { this.textBox13.Text = ""; this.textBox13.Text = barcodeData; PutIntoSlurry(textBox13.Text, textBox12.Text, "陶瓷投料"); textBox13.Text = ""; textBox13.Focus(); } //this.ProcurementOrder.Text = barcodeData; //string OrderType = comboBox1.SelectedValue.ToString(); //ExecuteCode(barcodeData, OrderType); } private void AnodeSlurryMaterialInput_Load(object sender, EventArgs e) { //页面加载显示工单信息 } public void LodeDevice() { StringBuilder StrName = new StringBuilder(); StrName.Append(EQPUtils.POSITIVE_GLUE_MACHINE_ID_1 "," EQPUtils.POSITIVE_GLUE_MACHINE_ID_2 ","); //正机打胶机 StrName.Append(EQPUtils.POSITIVE_SLURRY_MACHINE_ID_1 "," EQPUtils.POSITIVE_SLURRY_MACHINE_ID_2 "," EQPUtils.POSITIVE_SLURRY_MACHINE_ID_3 "," EQPUtils.POSITIVE_SLURRY_MACHINE_ID_4 ","); //合浆机 StrName.Append(EQPUtils.POSITIVE_CNTS_BUFFER_TANK_ID_2 ",");//CNTS StrName.Append(EQPUtils.POSITIVE_CERAMIC_MACHINE_ID_1);//陶瓷打胶 string ResObj = PDAObject.GetFeedingDevice(StrName.ToString()); //string ResObj = "{\"ResultCode\":0,\"Message\":\"设备查找成功!\",\"Data\":[{\"EQP_NO\":22567.0,\"EQP_ID\":\"PositiveGlueMachine_1\",\"EQP_NAME\":\"正极打胶1号机\"},{\"EQP_NO\":22568.0,\"EQP_ID\":\"PositiveGlueMachine_2\",\"EQP_NAME\":\"正极打胶2号机\"},{\"EQP_NO\":22563.0,\"EQP_ID\":\"PositiveSlurryMachine_1\",\"EQP_NAME\":\"正极合浆1号机\"},{\"EQP_NO\":22564.0,\"EQP_ID\":\"PositiveSlurryMachine_2\",\"EQP_NAME\":\"正极合浆2号机\"},{\"EQP_NO\":22565.0,\"EQP_ID\":\"PositiveSlurryMachine_3\",\"EQP_NAME\":\"正极合浆3号机\"},{\"EQP_NO\":22566.0,\"EQP_ID\":\"PositiveSlurryMachine_4\",\"EQP_NAME\":\"正极合浆4号机\"},{\"EQP_NO\":22632.0,\"EQP_ID\":\"PositiveCNTsBufferTank\",\"EQP_NAME\":\"正极CNTs暂存罐\"},{\"EQP_NO\":22640.0,\"EQP_ID\":\"PositiveCeramicsMachine_1\",\"EQP_NAME\":\"正极陶瓷合浆1号机\"}]}"; ResponseBase<List<PM_EQUIPMENT>> ResultModel = JsonConvert.DeserializeObject<ResponseBase<List<PM_EQUIPMENT>>>(ResObj); if (ResultModel.ResultCode == 1) { MessageBox.Show(ResultModel.Message ",谢谢!"); return; } List<MyItem> comboBox1List = new List<MyItem> { new MyItem() { Name = "", Value = "" } }; //comboBox1 打胶机设备 comboBox1.ValueMember = "Value"; //设备编号 comboBox1.DisplayMember = "Name"; //设备名称 var comboBox1Rst = ResultModel.Data.Where(p => p.EQP_ID == EQPUtils.POSITIVE_GLUE_MACHINE_ID_1 || p.EQP_ID == EQPUtils.POSITIVE_GLUE_MACHINE_ID_2).ToList(); foreach (var Item in comboBox1Rst) { MyItem comboBox1Obj = new MyItem(); comboBox1Obj.Name = Item.EQP_NAME; comboBox1Obj.Value = Item.EQP_NO.ToString(); comboBox1List.Add(comboBox1Obj); } comboBox1.DataSource = comboBox1List; //textBox7 CNTs设备 List<MyItem> comboBox4List = new List<MyItem>(); comboBox4.ValueMember = "Value"; comboBox4.DisplayMember = "Name"; var comboBox4Rst = ResultModel.Data.Where(p => p.EQP_ID == EQPUtils.POSITIVE_CNTS_BUFFER_TANK_ID_2).ToList(); foreach (var Item in comboBox4Rst) { MyItem comboBox4Obj = new MyItem(); comboBox4Obj.Name = Item.EQP_NAME; comboBox4Obj.Value = Item.EQP_NO.ToString(); comboBox4List.Add(comboBox4Obj); } comboBox4.DataSource = comboBox4List; //comboBox2 合浆设备 List<MyItem> comboBox2List = new List<MyItem> { new MyItem() { Name = "", Value = "" } }; comboBox2.ValueMember = "Value"; comboBox2.DisplayMember = "Name"; var comboBox2Rst = ResultModel.Data.Where(p => p.EQP_ID == EQPUtils.POSITIVE_SLURRY_MACHINE_ID_1 || p.EQP_ID == EQPUtils.POSITIVE_SLURRY_MACHINE_ID_2 || p.EQP_ID == EQPUtils.POSITIVE_SLURRY_MACHINE_ID_3 || p.EQP_ID == EQPUtils.POSITIVE_SLURRY_MACHINE_ID_4).ToList(); foreach (var Item in comboBox2Rst) { MyItem comboBox2Obj = new MyItem(); comboBox2Obj.Name = Item.EQP_NAME; comboBox2Obj.Value = Item.EQP_NO.ToString(); comboBox2List.Add(comboBox2Obj); } comboBox2.DataSource = comboBox2List; //textBox15 陶瓷设备 List<MyItem> comboBox3List = new List<MyItem>(); comboBox3.ValueMember = "Value"; comboBox3.DisplayMember = "Name"; var comboBox3Rst = ResultModel.Data.Where(p => p.EQP_ID == EQPUtils.POSITIVE_CERAMIC_MACHINE_ID_1).ToList(); foreach (var Item in comboBox3Rst) { MyItem comboBox3Obj = new MyItem(); comboBox3Obj.Name = Item.EQP_NAME; comboBox3Obj.Value = Item.EQP_NO.ToString(); comboBox3List.Add(comboBox3Obj); } comboBox3.DataSource = comboBox3List; } public void LoadWorkInfo() { string ResObj = PDAObject.LoadCurrentOrderInfo(); //string ResObj = "{\"ResultCode\":0,\"Message\":\"工单查询成功!\",\"Data\":{\"PO_NO\":\"49837\",\"PO_ID\":\"1662\",\"QUANTITY\":6250.000,\"UOM_ID\":\"EA\",\"PPR_NO\":\"36379\",\"DEF_NAME\":\"43Ah电芯\",\"DEF_ID\":\"2050000015\"}}"; ResponseBase<ActiveOrderInfo> ModelObj = JsonConvert.DeserializeObject<ResponseBase<ActiveOrderInfo>>(ResObj); if (ModelObj.ResultCode == 1) { MessageBox.Show(ModelObj.Message ",谢谢!"); return; } this.textBox1.Text = IsnullToString(ModelObj.Data.PO_ID); this.textBox2.Text = IsnullToString(ModelObj.Data.DEF_NAME); this.textBox3.Text = ModelObj.Data.QUANTITY.ToString(); this.textBox4.Text = IsnullToString(ModelObj.Data.UOM_ID); this.label17.Text = ModelObj.Data.PO_NO; //工单单号 this.label18.Text = ModelObj.Data.PPR_NO; //工艺清单ID this.label19.Text = ModelObj.Data.DEF_ID; //物料ID } public void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { string LOT_ID = ""; string ErrorMessage = ""; string EQPValue = comboBox1.SelectedValue.ToString(); textBox5.Text = ""; textBox6.Text = ""; if (string.IsNullOrEmpty(EQPValue)) return; m_dt = new DataTable(); m_dtTable(m_dt, dgMatsFeed); //清空表格,重新加载 LoadPutMaterialInfo(m_dt, dgMatsFeed, "GLUE", out LOT_ID, EQPValue, out ErrorMessage);//打胶机 if (!string.IsNullOrEmpty(ErrorMessage)) { MessageBox.Show(ErrorMessage); return; } textBox5.Text = LOT_ID; textBox6.Focus(); } public void comboBox2_SelectedIndexChanged(object sender, EventArgs e) { string LOT_ID = ""; string ErrorMessage = ""; string EQPValue = comboBox2.SelectedValue.ToString(); textBox10.Text = ""; textBox11.Text = ""; if (string.IsNullOrEmpty(EQPValue)) return; m_dt1 = new DataTable(); m_dtTable(m_dt1, dataGrid2); //合浆投料 LoadPutMaterialInfo(m_dt1, dataGrid2, "SLURRY", out LOT_ID, EQPValue, out ErrorMessage);//合浆机 if (!string.IsNullOrEmpty(ErrorMessage)) { MessageBox.Show(ErrorMessage); return; } textBox10.Text = LOT_ID; textBox11.Focus(); } #region 创建批次号 private void button1_Click(object sender, EventArgs e) { //打胶 string EQPValue = comboBox1.SelectedValue.ToString().Trim(); CreateLot(EQPValue, "S010110101"); comboBox1_SelectedIndexChanged(null, null);//重新加载 } private void button3_Click(object sender, EventArgs e) { //合浆 string EQPValue = comboBox2.SelectedValue.ToString().Trim(); CreateLot(EQPValue, "S010110100"); comboBox2_SelectedIndexChanged(null, null); } //陶瓷打胶机 private void button4_Click(object sender, EventArgs e) { string EQPValue = comboBox3.SelectedValue.ToString().Trim(); CreateLot(EQPValue, "S010110102"); LoadCERAMICMaterialInfo(); } //加载陶瓷物料信息 public void LoadCERAMICMaterialInfo() { string LOT_ID = ""; string ErrorMessage = ""; m_dt2 = new DataTable(); m_dtTable(m_dt2, dataGrid3); //陶瓷投料 string TxtValue = comboBox3.SelectedValue.ToString(); if (string.IsNullOrEmpty(TxtValue)) return; LoadPutMaterialInfo(m_dt2, dataGrid3, "CERAMIC", out LOT_ID, TxtValue, out ErrorMessage);//陶瓷机器 if (!string.IsNullOrEmpty(ErrorMessage)) { MessageBox.Show(ErrorMessage); return; } textBox12.Text = LOT_ID; } #endregion #region 批次条码扫入 /* //打胶扫描条码 public void textBox6_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar != 13) return; PutIntoSlurry(textBox6.Text, textBox5.Text, "打胶投料"); this.textBox6.Text = ""; this.textBox6.Focus(); } //CNTs扫描条码 public void textBox9_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar != 13) return; if (string.IsNullOrEmpty(textBox9.Text.Trim())) { MessageBox.Show("输入的批次号不能w为空,谢谢!"); return; } if (textBox9.Text.Length <= 16) { MessageBox.Show("输入的批次号不能少于16位,谢谢!"); return; } string ResultInfo = PDAObject.GetBatchInfoByBarCode(textBox9.Text.Trim()); ResponseBase<BarCodeLotIdInfo> ResultModel = JsonConvert.DeserializeObject<ResponseBase<BarCodeLotIdInfo>>(ResultInfo); if (ResultModel.ResultCode == 1) { MessageBox.Show(ResultModel.Message); return; } if (ResultModel.Data == null) { MessageBox.Show("当前批次号不存在物料信息,请检查,谢谢!"); return; } this.textBox7.Text = ResultModel.Data.Definition.DEF_ID; //物料ID this.textBox18.Text = ResultModel.Data.Definition.DEF_NAME; //物料名称 this.textBox14.Text = ResultModel.Data.Definition.UOM_ID; //单位 this.textBox15.Text = ResultModel.Data.Definition.MIN_PCK_QTY; //数量 this.textBox16.Text = ResultModel.Data.Definition.MM_SPEC; //规格 this.textBox17.Text = textBox9.Text.Substring(0, 10); //物料批次 MessageBox.Show("物料加载成功,谢谢!"); } //合浆条码扫描 public void textBox11_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar != 13) return; PutIntoSlurry(textBox11.Text, textBox10.Text, "合浆投料"); this.textBox11.Text = ""; this.textBox11.Focus(); } //陶瓷批次扫描 public void textBox13_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar != 13) return; PutIntoSlurry(textBox13.Text, textBox12.Text, "陶瓷投料"); textBox13.Text = ""; textBox13.Focus(); } * */ //CNTs创建批次 private void button2_Click(object sender, EventArgs e) { string EQPValue = comboBox4.SelectedValue.ToString(); string LOTid = IsnullToString(textBox9.Text); string ResultInfo = PDAObject.UpdateEqpLotValue(EQPValue, "EQP_CONTENT_LOT_ID", LOTid); ResponseBase<string> ResultModel = JsonConvert.DeserializeObject<ResponseBase<string>>(ResultInfo); if (ResultModel.ResultCode == 1) { MessageBox.Show(ResultModel.Message); return; } //textBox8.Text = IsnullToString(textBox9.Text); CNTsLoad();//加载CNTs textBox9.Text = ""; textBox9.Focus(); } public void CNTsLoad() { string EQPValue = comboBox4.SelectedValue.ToString(); string ResultInfo = PDAObject.LoadEqpLot(EQPValue, "EQP_CONTENT_LOT_ID"); ResponseBase<string> ResultModel = JsonConvert.DeserializeObject<ResponseBase<string>>(ResultInfo); if (ResultModel.ResultCode == 1) { MessageBox.Show(ResultModel.Message); return; } textBox8.Text = IsnullToString(ResultModel.Data).Trim(); this.textBox9.Text = ""; this.textBox9.Focus(); } public void PutIntoSlurry(string Lot_NO, string Lot_ID, string PutSlurrType) { try { if (Lot_NO.Length <= 16) { MessageBox.Show("输入的批次号不能少于16位,谢谢!"); return; } var defID = Lot_NO.Substring(0, 10); //获得条码的前10位 string DEF_ID = defID; string LOT_ID = Lot_ID.Trim(); string BarcodeNum = Lot_NO.Trim(); if (string.IsNullOrEmpty(LOT_ID)) { MessageBox.Show("批次ID不能为空!"); return; } ReLoadSet(PutSlurrType); //PC端可能已经投料,重新加载 if (SaveInfo.Where(x => x.mm_definition.DEF_ID == defID).ToList().Count > 0) //系统存在的条码 { var ObjectInfo = SaveInfo.Where(x => x.mm_definition.DEF_ID == defID).FirstOrDefault(); //先确定投料顺序,然后在确定依赖关系 var Objmodel = SaveInfo.Where(p => p.MaterialPos < ObjectInfo.MaterialPos).ToList(); if (Objmodel.Count > 0) //如果等于零,业务场景,就是最先投料 { if (ObjectInfo.dependMaterial.Count <= 0) { LoadWindow(SaveInfo, defID, LOT_ID, BarcodeNum, this, PutSlurrType); //不存在依赖关系,则确认投料! } else { for (int i = 0; i < ObjectInfo.dependMaterial.Count; i ) { string DependType = ObjectInfo.dependMaterial[i].m_Type; //依赖类型 if (!(DependType == "COMPLETE" || DependType == "PART")) { MessageBox.Show("物料配置依赖关系,不存在类型" DependType "请检查,谢谢!"); return; } if (DependType == "COMPLETE") //完全依赖 { string MaterialName = ObjectInfo.dependMaterial[i].m_MaterialID.Trim();//依赖物料名称 var DependName = SaveInfo.Where(p => p.po_pos_material.POS_MAT_ID == MaterialName).ToList(); string aaa = JsonConvert.SerializeObject(SaveInfo); string bbb = JsonConvert.SerializeObject(ObjectInfo); //CommonHelp.WriteString("加载物料信息集合", aaa, null, IniFileName); //CommonHelp.WriteString("加载物料信息列表", bbb, null, IniFileName); //CommonHelp.WriteString("依赖物料名称", MaterialName, null, IniFileName); if (DependName.Count <= 0) { MessageBox.Show("依赖物料在当前设备中不存在,请检查配置,谢谢!"); return; } if ((IsnullTodouble(DependName[0].AlreadyQty) IsnullTodouble(DependName[0].ErrorRange)) < IsnullTodouble(DependName[0].TargetQty)) { MessageBox.Show("物料[" DependName[0].mm_definition.DEF_NAME "],没有完全投料,请先投[" DependName[0].mm_definition.DEF_NAME "]物料,谢谢!"); return; } LoadWindow(SaveInfo, defID, LOT_ID, BarcodeNum, this, PutSlurrType); } if (DependType == "PART") //部分依赖 { string MaterialName = ObjectInfo.dependMaterial[i].m_MaterialID.Trim();//依赖物料名称 var DependName = SaveInfo.Where(p => p.po_pos_material.POS_MAT_ID == MaterialName).ToList(); if (DependName.Count <= 0) { MessageBox.Show("依赖物料在当前设备中不存在,请检查配置,谢谢!"); return; } if (IsnullTodouble(DependName[0].AlreadyQty) == 0) { MessageBox.Show("物料[" DependName[0].mm_definition.DEF_NAME "],还未投料,请先投[" DependName[0].mm_definition.DEF_NAME "]物料,谢谢!"); return; } LoadWindow(SaveInfo, defID, LOT_ID, BarcodeNum, this, PutSlurrType); } } } } else { LoadWindow(SaveInfo, defID, LOT_ID, BarcodeNum, this, PutSlurrType); } } else { MessageBox.Show("该物料,不是系统要求投料,请重新输入,谢谢!"); return; } } catch (Exception ex) { MessageBox.Show(ex.Message); return; } } /// <summary> /// 加载窗体 /// </summary> public void LoadWindow(List<MatTargetModel> objModel, string defID, string lotid, string BarcodeNum, AnodeSlurryMaterialInput This, string PutSlurrType) { PutMaterialInfo Window = new PutMaterialInfo(SaveInfo, defID, lotid, BarcodeNum, this, PutSlurrType); //Window.Owner = this; //Window.ShowDialog(); //if (Window.DialogResult == DialogResult.OK) //{ //this.Show(); //Window.Dispose(); //} Window.Show(); //Window.textBox8.Focus(); this.Hide();//当前隐藏 } public void ReLoadSet(string PutSlurrType) { if (PutSlurrType == "打胶投料") { comboBox1_SelectedIndexChanged(null, null); } if (PutSlurrType == "合浆投料") { comboBox2_SelectedIndexChanged(null, null); } if (PutSlurrType == "陶瓷投料") { LoadCERAMICMaterialInfo(); textBox13.Focus(); } } #endregion public void LoadPutMaterialInfo(DataTable m_dt, DataGrid dataGrid, string TargetDevice, out string LOT_ID, string EQP_NO, out string ErrorMessage) { string OrderID = this.textBox1.Text.Trim(); ErrorMessage = ""; //PO_ID 订单id /** * 1.加载占用设备的批次物料信息 ,EQP_CONTENT_LOT_ID 设备扩展属性,表示当前设备上的物料批次,若批次为空,则不加载投料相关信息! * 2.若不为空,加载投料需求信息 * */ string ResultInfo = PDAObject.DeviceOccupyMaterialInfo("EQP_CONTENT_LOT_ID", EQP_NO.Trim());//加载占用设备的批次物料信息 // string ResultInfo= "{\"ResultCode\":0,\"Message\":null,\"Data\":{\"LOT_NO\":97707.0,\"LOT_ID\":\"EBP1828008\",\"LOT_NAME\":\"EBP1828008\",\"PRD_TYPE\":\"-\",\"DEF_NO\":33867.0,\"INIT_QTY\":1.000,\"QTY\":1.000,\"UOM_ID\":\"KG\",\"REMARK\":null,\"GRADE\":null}}"; ResponseBase<MM_LOT> ResultModel = JsonConvert.DeserializeObject<ResponseBase<MM_LOT>>(ResultInfo); LOT_ID = ""; if (ResultModel.ResultCode == 1) { ErrorMessage = ResultModel.Message; return; } LOT_ID = ResultModel.Data.LOT_ID; string ResultMsg = PDAObject.LoadMatInfo(ResultModel.Data.LOT_ID, this.label18.Text, "配料合浆_正", this.label17.Text, ResultModel.Data.LOT_NO.ToString(), TargetDevice); //加载待投物料信息,投入目标的设备 //string ResultMsg = "{\"ResultCode\":0,\"Message\":null,\"Data\":[{\"mm_definition\":{\"DEF_NO\":12742.0,\"DEF_ID\":\"1020100003\",\"DEF_NAME\":\"PVDF\",\"MM_SPEC\":null,\"V_MAJOR\":0,\"V_MINOR\":0,\"CLS_NO\":12679.0,\"MM_TYPE\":\"r\",\"STATUS\":\"4\",\"UOM_ID\":\"KG\",\"REMARK\":null,\"EFFECTIVE_FR\":null,\"EFFECTIVE_TO\":null,\"IS_CURRENT\":null,\"IS_LOCKED\":null},\"po_pos_material\":{\"POS_MAT_NO\":40532.0,\"POS_MAT_ID\":\"PVDF\",\"POS_NO\":39994.0,\"PDM_MAT_NO\":33679.0,\"DIRECTION\":\"I\",\"MAT_DEF_NO\":12742.0,\"BATCH_QTY\":null,\"QUANTITY\":18.460,\"UOM_ID\":\"KG\",\"MAINPRD_YN\":\"N\"},\"m_properties\":[{\"PRP_NO\":40568.0,\"PAR_ID\":\"POSITION\",\"POS_MAT_NO\":40532.0,\"PAR_POS\":1,\"PAR_TYPE\":\"PRD\",\"PRESERVE_YN\":\"Y\",\"DATA_TYPE\":\"T\",\"HIGH_VALUE\":null,\"LOW_VALUE\":\"GLUE\",\"RANGE_TYPE\":\"-\"},{\"PRP_NO\":40569.0,\"PAR_ID\":\"PutInMatQty\",\"POS_MAT_NO\":40532.0,\"PAR_POS\":2,\"PAR_TYPE\":\"PRD\",\"PRESERVE_YN\":\"Y\",\"DATA_TYPE\":\"F\",\"HIGH_VALUE\":null,\"LOW_VALUE\":\"74\",\"RANGE_TYPE\":\"-\"},{\"PRP_NO\":40570.0,\"PAR_ID\":\"ErrorRange\",\"POS_MAT_NO\":40532.0,\"PAR_POS\":3,\"PAR_TYPE\":\"PRD\",\"PRESERVE_YN\":\"Y\",\"DATA_TYPE\":\"F\",\"HIGH_VALUE\":null,\"LOW_VALUE\":\"0.2\",\"RANGE_TYPE\":\"-\"}],\"TargetQty\":74.0,\"ErrorRange\":0.2,\"AlreadyQty\":73.89},{\"mm_definition\":{\"DEF_NO\":12743.0,\"DEF_ID\":\"1020110001\",\"DEF_NAME\":\"N-甲基-2-吡咯烷酮\",\"MM_SPEC\":null,\"V_MAJOR\":0,\"V_MINOR\":0,\"CLS_NO\":12679.0,\"MM_TYPE\":\"r\",\"STATUS\":\"4\",\"UOM_ID\":\"KG\",\"REMARK\":null,\"EFFECTIVE_FR\":null,\"EFFECTIVE_TO\":null,\"IS_CURRENT\":null,\"IS_LOCKED\":null},\"po_pos_material\":{\"POS_MAT_NO\":40533.0,\"POS_MAT_ID\":\"NMP\",\"POS_NO\":39994.0,\"PDM_MAT_NO\":33680.0,\"DIRECTION\":\"I\",\"MAT_DEF_NO\":12743.0,\"BATCH_QTY\":null,\"QUANTITY\":212.300,\"UOM_ID\":\"KG\",\"MAINPRD_YN\":\"N\"},\"m_properties\":[{\"PRP_NO\":40571.0,\"PAR_ID\":\"POSITION\",\"POS_MAT_NO\":40533.0,\"PAR_POS\":1,\"PAR_TYPE\":\"PRD\",\"PRESERVE_YN\":\"Y\",\"DATA_TYPE\":\"T\",\"HIGH_VALUE\":null,\"LOW_VALUE\":\"GLUE\",\"RANGE_TYPE\":\"-\"},{\"PRP_NO\":40572.0,\"PAR_ID\":\"PutInMatQty\",\"POS_MAT_NO\":40533.0,\"PAR_POS\":2,\"PAR_TYPE\":\"PRD\",\"PRESERVE_YN\":\"Y\",\"DATA_TYPE\":\"F\",\"HIGH_VALUE\":null,\"LOW_VALUE\":\"851\",\"RANGE_TYPE\":\"-\"},{\"PRP_NO\":40573.0,\"PAR_ID\":\"ErrorRange\",\"POS_MAT_NO\":40533.0,\"PAR_POS\":3,\"PAR_TYPE\":\"PRD\",\"PRESERVE_YN\":\"Y\",\"DATA_TYPE\":\"F\",\"HIGH_VALUE\":null,\"LOW_VALUE\":\"4.23\",\"RANGE_TYPE\":\"-\"}],\"TargetQty\":851.0,\"ErrorRange\":4.23,\"AlreadyQty\":851.05}]}"; ResponseBase<List<MatTargetModel>> ResultValue = JsonConvert.DeserializeObject<ResponseBase<List<MatTargetModel>>>(ResultMsg); if (ResultValue.ResultCode == 1) { ErrorMessage = ResultValue.Message; return; } SaveInfo = new List<MatTargetModel>(); //保存信息 SaveInfo = ResultValue.Data.OrderBy(p => p.MaterialPos).ToList(); for (int i = 0; i < SaveInfo.Count; i ) { DataRow dr = m_dt.NewRow(); string MaterialName = SaveInfo[i].mm_definition.DEF_NAME.ToString().Trim(); double WaitPut = Math.Round(IsnullTodouble(SaveInfo[i].TargetQty) - IsnullTodouble(SaveInfo[i].AlreadyQty), 3); dr["MaterialName"] = MaterialName;//物料名称 dr["InputTotalQty"] = IsnullTodouble(SaveInfo[i].TargetQty); //投入总量 dr["PutQty"] = IsnullTodouble(SaveInfo[i].AlreadyQty); //已投数量 dr["WaitPut"] = WaitPut;//待确认 dr["Unit"] = SaveInfo[i].mm_definition.UOM_ID; //单位 m_dt.Rows.Add(dr); } dataGrid.DataSource = m_dt; } //新建批次号 public void CreateLot(string EQP_NO, string DefinitionID) { string ResultInfo = PDAObject.DeviceToLot_ID(EQP_NO, "EQP_CONTENT_LOT_ID", this.textBox1.Text.Trim(), "配料合浆_正", DefinitionID.Trim(), "1"); ResponseBase<string> ResultObj = JsonConvert.DeserializeObject<ResponseBase<string>>(ResultInfo); if (ResultObj.ResultCode == 1) { MessageBox.Show(ResultObj.Message); return; } } #region 初始化表格 public void m_dtTable(DataTable m_dt, DataGrid dataGrid) { m_dt.Columns.Add("MaterialName"); //物料名称 m_dt.Columns.Add("InputTotalQty"); //投入总数量 m_dt.Columns.Add("PutQty");//已投总数 m_dt.Columns.Add("WaitPut");//待投入数 m_dt.Columns.Add("Unit");//单位 DataGridTextBoxColumn col1 = new DataGridTextBoxColumn(); col1.MappingName = "MaterialName"; col1.HeaderText = "物料名称"; col1.Width = 100; DataGridTextBoxColumn col2 = new DataGridTextBoxColumn(); col2.MappingName = "InputTotalQty"; col2.HeaderText = "投料总数"; col2.Width = 50; DataGridTextBoxColumn col3 = new DataGridTextBoxColumn(); col3.MappingName = "PutQty"; col3.HeaderText = "已投数量"; col3.Width = 45; DataGridTextBoxColumn col4 = new DataGridTextBoxColumn(); col4.MappingName = "WaitPut"; col4.HeaderText = "待投数量"; col4.Width = 50; DataGridTextBoxColumn col5 = new DataGridTextBoxColumn(); col5.MappingName = "Unit"; col5.HeaderText = "单位"; col5.Width = 30; DataGridTableStyle myts = new DataGridTableStyle(); myts.GridColumnStyles.Add(col1); myts.GridColumnStyles.Add(col2); myts.GridColumnStyles.Add(col3); myts.GridColumnStyles.Add(col4); myts.GridColumnStyles.Add(col5); dataGrid.TableStyles.Clear(); dataGrid.TableStyles.Add(myts); dataGrid.DataSource = m_dt; } #endregion #region 给表格添加光标 public void dgMatsFeed_GotFocus(object sender, EventArgs e) { AddSelect(sender); } public void dgMatsFeed_Click(object sender, EventArgs e) { AddSelect(sender); } private void dataGrid2_GotFocus(object sender, EventArgs e) { AddSelect(sender); } private void dataGrid2_Click(object sender, EventArgs e) { AddSelect(sender); } private void dataGrid3_Click(object sender, EventArgs e) { AddSelect(sender); } private void dataGrid3_GotFocus(object sender, EventArgs e) { AddSelect(sender); } public void AddSelect(object sender) { DataGrid dataGrid1 = sender as DataGrid; int index = ((DataGrid)sender).CurrentCell.RowNumber; if (((DataTable)(dataGrid1.DataSource)).Rows.Count > 0) { ((DataGrid)sender).Select(index); } } #endregion #region 公共方法 public string GetAddressInfo() { return CommonHelp.ReadString("HttpAddress", "AddressInfo", null, IniFileName); //return "http://172.16.18.141:8101/Services/PDAService.asmx"; } public string IsnullToString(object ResValue) { return ResValue == null ? "" : ResValue.ToString(); } public double IsnullTodouble(object ResValue) { return ResValue == null ? 0 : Convert.ToDouble(ResValue); } #endregion #region 重新加载物料信息 private void button5_Click(object sender, EventArgs e) //陶瓷 { LoadCERAMICMaterialInfo(); } private void button6_Click(object sender, EventArgs e) //合浆 { comboBox2_SelectedIndexChanged(null, null); } private void button7_Click(object sender, EventArgs e) //打胶 { comboBox1_SelectedIndexChanged(null, null); } private void textBox6_GotFocus(object sender, EventArgs e) //打胶 { comboBox1_SelectedIndexChanged(null, null); } private void textBox11_GotFocus(object sender, EventArgs e) //合浆 { comboBox2_SelectedIndexChanged(null, null); } private void textBox13_KeyPress(object sender, KeyPressEventArgs e) { LoadCERAMICMaterialInfo(); } #endregion protected override void OnClosing(CancelEventArgs e) { base.OnClosing(e); m_barcode.ScanCancel(); m_barcode.Dispose(); } } }
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论