在好例子网,分享、交流、成长!
您当前所在位置:首页C# 开发实例C#语言基础 → PDA程序例子

PDA程序例子

C#语言基础

下载此实例
  • 开发语言:C#
  • 实例大小:0.49M
  • 下载次数:41
  • 浏览次数:414
  • 发布时间:2018-10-30
  • 实例类别:C#语言基础
  • 发 布 人:duanshuibo
  • 文件格式:.rar
  • 所需积分:5
 相关标签: PDA 程序

实例介绍

【实例简介】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();
        }
    }
}

标签: PDA 程序

实例下载地址

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警