实例介绍
【实例简介】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小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明


网友评论
我要评论