某企业生产工厂【防窜货】程序实现过程

方案规划

第一方案A工序 程序界面

第一方案 A工序代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Data.Sql;
using System.Data.SqlClient;

namespace 防窜货系统
{
    public partial class F_Master : Form
    {
        public F_Master()
        {
            InitializeComponent();
        }

        SqlConnection con = new SqlConnection("server = 172.168.0.15;database = factory ;uid= sa ;pwd= 123456789");
        string invcode = "";
        #region 装箱
        private void TsmZX_Click(object sender, EventArgs e)
        {
            panelMaster.Visible = true;
            tbInvcode.Focus();
            tbBoxCode.Enabled = false;
            try
            {
                con.Open();
                if (con.State == ConnectionState.Open)
                {

                    labMessage.Text = "系统准备就绪!";

                }
                else
                {

                    labMessage.Text = "数据库连接错误,请检查网络设置或联系开发人员!";
                    labMessage.ForeColor = Color.Red;



                }

                con.Close();
            }
            catch
            {

                labMessage.Text = "数据库连接错误,请检查网络设置或联系开发人员!";
                labMessage.ForeColor = Color.Red;

            }



        }
        #endregion



        #region 拆箱
        private void tsmCX_Click(object sender, EventArgs e)
        {
            F_Del f = new F_Del(this);
            this.Enabled = false;
            f.ShowDialog(this);
        }


        #endregion


        #region 程序载入
        private void F_Master_Load(object sender, EventArgs e)
        {
            tbMcode.Text = Dns.GetHostName();


        }

        #endregion


        #region  扫入产品码
        private void tbInvcode_KeyDown(object sender, KeyEventArgs e)
        {
            con.Open();
            if (e.KeyCode == Keys.Enter)
            {
               


                if (tbInvcode.Text != "")
                {

                    labBoxcodeMsg.Text = "";
                    labInvcodeMsg.Text = "";
                    labMessage.Text = "";
                    string selectInvcode = "select * from SuporMaster where invcode = '" + tbInvcode.Text.ToString().Trim() + "' ";
                    SqlCommand cmd = new SqlCommand(selectInvcode, con);
                    SqlDataAdapter sda = new SqlDataAdapter(cmd);
                    DataSet ds = new DataSet();
                    sda.Fill(ds);


                    
                    
                    if (ds.Tables[0].Rows.Count==0)
                    {

                       
                        invcode = tbInvcode.Text.ToString();
                        tbBoxCode.Text = "";
                        tbBoxCode.Enabled = true;
                        tbBoxCode.Focus();
                        tbInvcode.Enabled = false;
                    }

                    else
                    {
                        labInvcodeMsg.Text = "产品:" + tbInvcode.Text.ToString();
                        labMessage.Text = "已存在装箱记录,不能重复装箱,请检查!";
                        labMessage.ForeColor = Color.Red;
                        labInvcodeMsg.ForeColor = Color.Red;
                        tbInvcode.Text = "";
                    
                    }
                }

                else
                {
                    labMessage.Text = "产品码不能为空!";
                    labMessage.ForeColor = Color.Red;

                }

               

            }
            con.Close();
        }
        #endregion


        #region 扫入箱码
        private void tbBoxCode_KeyDown(object sender, KeyEventArgs e)
        {
            con.Open();
            if (e.KeyCode == Keys.Enter)
            {
                if (tbBoxCode.Text != "")
                {
                    string selectBoxCode = "select * from SuporMaster where boxnum = '" + tbBoxCode.Text.ToString().Trim() + "'";
                    SqlCommand cmdA = new SqlCommand(selectBoxCode, con);
                    SqlDataAdapter sda = new SqlDataAdapter(cmdA);
                    DataSet ds = new DataSet();
                    sda.Fill(ds);

                    if (ds.Tables[0].Rows.Count==0)
                    {
                        tbInvcode.Enabled = true;
                        tbInvcode.Text = "";
                        tbInvcode.Focus();
                        string productid = tbBoxCode.Text + invcode;
                        string str = " insert into SuporMaster (ProductNum,BoxNum,Invcode,date,Mcode,OutsideBox) values ('" + productid + "','" + tbBoxCode.Text.ToString() + "','" + invcode + "' ,'" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "','" + tbMcode.Text.ToString() + "' ,'1')";

                        try
                        {

                            if (con.State == ConnectionState.Open)
                            {
                                SqlCommand cmd = new SqlCommand(str, con);

                                try
                                {
                                    cmd.ExecuteNonQuery();
                                    labInvcodeMsg.Text = "产品:" + invcode;
                                    labBoxcodeMsg.Text = "彩箱:" + tbBoxCode.Text.ToString();
                                    labMessage.Text = "装箱成功!";
                                    labInvcodeMsg.ForeColor = Color.Green;
                                    labBoxcodeMsg.ForeColor = Color.Green;
                                    labMessage.ForeColor = Color.Green;
                                }
                                catch
                                {
                                    labMessage.Text = "装箱失败!";
                                    labMessage.ForeColor = Color.Red;


                                }

                            }


                            tbBoxCode.Enabled = false;
                            tbBoxCode.Text = "";

                        }
                        catch
                        {

                            labMessage.Text = "数据库连接错误,请检查网络设置或联系开发人员!";
                            labMessage.ForeColor = Color.Red;



                        }

                    }
                    else
                    {

                        labBoxcodeMsg.Text = "彩箱:" + tbBoxCode.Text.ToString();
                        labMessage.Text = "已存在装箱记录,不能重复装箱,请检查!";
                        labMessage.ForeColor = Color.Red;
                        labBoxcodeMsg.ForeColor = Color.Red;
                        tbBoxCode.Text = "";

                    }


                    }
                    else
                    {

                        labMessage.Text = "彩箱码不能为空!";
                        labMessage.ForeColor = Color.Red;


                    }
               
                
            }

            con.Close();

        }

        #endregion







    }
}

第一方案 B工序程序界面

第一方案B工序代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Data.Sql;
using System.Data.SqlClient;

namespace 防窜货系统
{
    public partial class F_Master : Form
    {
        public F_Master()
        {
            InitializeComponent();
        }

        SqlConnection con = new SqlConnection("server = 172.168.0.15;database = factory ;uid= sa ;pwd= 12346789");
        string oldMcode = "";     //存之前的机号
        string boxNum = "";       //存彩箱号
        string strOutsideBox = "";//存数据库中现有的外箱码
        #region 装箱
        private void TsmZX_Click(object sender, EventArgs e)
        {
            panelMaster.Visible = true;
            tbBoxCode.Focus();
            tbOutsideBox.Enabled = false;
            try
            {
                con.Open();
                if (con.State == ConnectionState.Open)
                {

                    labMessage.Text = "系统准备就绪!";

                }
                else
                {

                    labMessage.Text = "数据库连接错误,请检查网络设置或联系开发人员!";
                    labMessage.ForeColor = Color.Red;



                }

                con.Close();
            }
            catch
            {

                labMessage.Text = "数据库连接错误,请检查网络设置或联系开发人员!";
                labMessage.ForeColor = Color.Red;

            }



        }
        #endregion



        #region 拆箱
        private void tsmCX_Click(object sender, EventArgs e)
        {
            F_Del f = new F_Del(this);
            this.Enabled = false;
            f.ShowDialog(this);
        }


        #endregion


        #region 程序载入
        private void F_Master_Load(object sender, EventArgs e)
        {
            tbMcode.Text = Dns.GetHostName();


        }

        #endregion


        #region  扫入彩箱码
        private void tbInvcode_KeyDown(object sender, KeyEventArgs e)
        {
            con.Open();
            if (e.KeyCode == Keys.Enter)
            {



                if (tbBoxCode.Text != "")
                {

                    labOutsideMsg.Text = "";
                    labBoxcodeMsg.Text = "";
                    labMessage.Text = "";
                    string selectBOXcode = "select * from SuporMaster where BoxNum = '" + tbBoxCode.Text.ToString().Trim() + "' ";
                    SqlCommand cmd = new SqlCommand(selectBOXcode, con);
                    SqlDataAdapter sda = new SqlDataAdapter(cmd);
                    DataSet ds = new DataSet();
                    sda.Fill(ds);




                    if (ds.Tables[0].Rows.Count != 0)
                    {

                        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                        {
                            oldMcode = ds.Tables[0].Rows[i]["Mcode"].ToString();
                            strOutsideBox = ds.Tables[0].Rows[i]["OutsideBox"].ToString();
                        }

                        boxNum = tbBoxCode.Text;   //将彩箱码赋于变量boxnum


                        if (strOutsideBox != "1")
                        {

                            labBoxcodeMsg.ForeColor = Color.Red;
                            labOutsideMsg.ForeColor = Color.Red;
                            labMessage.ForeColor = Color.Red;
                            labBoxcodeMsg.Text = "彩箱:<" + boxNum + ">已经与";
                            labOutsideMsg.Text = "外箱:<" + strOutsideBox + ">装过箱";
                            labMessage.Text = "请检查!";
                            // tbOutsideBox.Text = "";
                            tbBoxCode.Text = "";
                            tbBoxCode.Enabled = true;
                            tbBoxCode.Focus();

                        }
                        else
                        {

                            tbOutsideBox.Text = "";    //将外箱码置空
                            tbOutsideBox.Enabled = true;   //外箱码激活
                            tbOutsideBox.Focus();         //外箱码获取焦点
                            tbBoxCode.Enabled = false;     // 彩箱码锁定



                        }



                    }

                    else
                    {
                        labBoxcodeMsg.Text = "彩箱:<" + tbBoxCode.Text.ToString() + ">";
                        labMessage.Text = "不存在产品装箱记录,请检查!";
                        labMessage.ForeColor = Color.Red;
                        labBoxcodeMsg.ForeColor = Color.Red;
                        tbBoxCode.Text = "";

                    }
                }

                else
                {
                    labMessage.Text = "彩箱码不能为空!";
                    labMessage.ForeColor = Color.Red;

                }



            }
            con.Close();
        }
        #endregion


        #region 扫入外箱码
        private void tbBoxCode_KeyDown(object sender, KeyEventArgs e)
        {
            con.Open();
            string strBoxCode = ""; //存数据库中现在有彩箱码

            if (e.KeyCode == Keys.Enter)
            {
                if (tbOutsideBox.Text != "" && tbBoxCode.Text != "")
                {
                    string selectBoxCode = "select * from SuporMaster where   OutsideBox ='" + tbOutsideBox.Text.ToString().Trim() + "'";
                    SqlCommand cmdA = new SqlCommand(selectBoxCode, con);
                    SqlDataAdapter sda = new SqlDataAdapter(cmdA);
                    DataSet ds = new DataSet();
                    sda.Fill(ds);

                    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                    {
                        strBoxCode = ds.Tables[0].Rows[i]["BoxNum"].ToString();
                        strOutsideBox = ds.Tables[0].Rows[i]["OutsideBox"].ToString();

                    }
                    if (strOutsideBox == "1" && tbOutsideBox.Text.ToString() != strOutsideBox)
                    {

                        tbBoxCode.Enabled = true;
                        tbBoxCode.Text = "";
                        tbBoxCode.Focus();
                        string mcode = oldMcode + "|" + Dns.GetHostName(); //拼接原机号和现机号
                        //更新外箱号和机号
                        string str = " update SuporMaster set outsidebox ='" + tbOutsideBox.Text.ToString().Trim() + "', Mcode='" + mcode + "'  where BoxNum='" + boxNum + "'";

                        try
                        {

                            if (con.State == ConnectionState.Open)
                            {
                                SqlCommand cmd = new SqlCommand(str, con);

                                try
                                {
                                    cmd.ExecuteNonQuery();
                                    labBoxcodeMsg.Text = "彩箱:" + boxNum; ;
                                    labOutsideMsg.Text = "外箱:" + tbOutsideBox.Text.ToString();
                                    labMessage.Text = "装箱成功!";
                                    labBoxcodeMsg.ForeColor = Color.Green;
                                    labOutsideMsg.ForeColor = Color.Green;
                                    labMessage.ForeColor = Color.Green;
                                }
                                catch
                                {
                                    labMessage.Text = "装箱失败!";
                                    labMessage.ForeColor = Color.Red;


                                }

                            }


                            tbOutsideBox.Enabled = false;
                            tbOutsideBox.Text = "";

                        }
                        catch
                        {

                            labMessage.Text = "数据库连接错误,请检查网络设置或联系开发人员!";
                            labMessage.ForeColor = Color.Red;



                        }


                    }

                    else
                    {
                        labBoxcodeMsg.ForeColor = Color.Red;
                        labOutsideMsg.ForeColor = Color.Red;
                        labMessage.ForeColor = Color.Red;
                        labBoxcodeMsg.Text = "外箱:<" + strOutsideBox + ">已经与";
                        labOutsideMsg.Text = "彩箱:<" + strBoxCode + ">装过箱";
                        labMessage.Text = "请检查!";
                        // tbOutsideBox.Text = "";
                        tbBoxCode.Text = "";
                        tbBoxCode.Enabled = true;
                        tbBoxCode.Focus();

                    }




                }
                else
                {

                    labMessage.Text = "彩箱码或者外箱码为空,请检查!";
                    labMessage.ForeColor = Color.Red;


                }


            }

            con.Close();

        }

        #endregion







    }
}

第二方案 A工序 程序界面

第二方案 A工序代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Data.Sql;
using System.Data.SqlClient;

namespace 防窜货系统
{
    public partial class F_Master : Form
    {
        public F_Master()
        {
            InitializeComponent();
        }

        SqlConnection con = new SqlConnection("server = 172.168.0.15;database = factory ;uid= sa ;pwd= 123456789");
       

       
        #region 程序载入
        private void F_Master_Load(object sender, EventArgs e)
        {
            tbMcode.Text = Dns.GetHostName();

            try
            {
                con.Open();
                if (con.State == ConnectionState.Open)
                {

                    labMessage.Text = "系统准备就绪!";
                    labMessage.ForeColor = Color.Green;

                }
                else
                {

                    labMessage.Text = "数据库连接错误,请检查网络设置或联系开发人员!";
                    labMessage.ForeColor = Color.Red;



                }

                con.Close();
            }
            catch
            {

                labMessage.Text = "数据库连接错误,请检查网络设置或联系开发人员!";
                labMessage.ForeColor = Color.Red;

            }


        }

        #endregion


        #region  扫入产品码
        private void tbInvcode_KeyDown(object sender, KeyEventArgs e)
        {
            
            if (e.KeyCode == Keys.Enter)
            {
                if (tbInvcode.Text != "")
                {

                    if (falg() == true)
                    {
                        con.Open();
                        string str = "insert into SuporFCH(invcode,McodeA,DateA)values('" + tbInvcode.Text.ToString().Trim() + "','" + tbMcode.Text.ToString().Trim() + "','" + DateTime.Now.ToString() + "') ";

                        try
                        {
                            if (con.State == ConnectionState.Open)
                            {

                                SqlCommand cmd = new SqlCommand(str, con);

                                try
                                {

                                    cmd.ExecuteNonQuery();
                                    labMessage.Text = tbInvcode.Text.ToString().Trim() + "扫码成功!";
                                    labMessage.ForeColor = Color.Green;


                                }
                                catch
                                {

                                    labMessage.Text = "装箱失败!";
                                    labMessage.ForeColor = Color.Red;

                                }


                            }

                        }
                        catch
                        {
                            labMessage.Text = "数据库连接错误,请检查网络连接!";

                        }

                        con.Close();
                    }
                    else
                    {

                        labMessage.Text = tbInvcode.Text.ToString().Trim()+"重复,请检查!";
                        labMessage.ForeColor = Color.Red;
                    
                    }
                    

                }
                else
                {

                    labMessage.Text = "产品码不能为空,请检查!";
                    labMessage.ForeColor = Color.Red;               
                
                
                }


                tbInvcode.Text = "";

            }
       
        }
        #endregion



        //判断产品码是否重复
        private bool falg()
        {
            con.Open();
            string str ="select * from SuporFCH where invcode='"+tbInvcode.Text.ToString().Trim()+"'" ;

            SqlCommand cmd = new SqlCommand(str, con);
            SqlDataAdapter sda = new SqlDataAdapter(cmd);
            DataSet ds = new DataSet();
            sda.Fill(ds);
            con.Close();
            if (ds.Tables[0].Rows.Count == 0)
            {

                return true;

            }
            else
            {
               return false;
            
            }
                      
    
        }

    }
}

第二方案 B工序界面

第二方案 B工序代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Data.Sql;
using System.Data.SqlClient;

namespace 防窜货系统
{
    public partial class F_Master : Form
    {
        public F_Master()
        {
            InitializeComponent();
        }

        SqlConnection con = new SqlConnection("server = 172.168.0.15;database = factory ;uid= sa ;pwd= 123456789");        
      

        #region 程序载入
        private void F_Master_Load(object sender, EventArgs e)
        {
            tbMcode.Text = Dns.GetHostName();
            selectFalg();
            selectAll();

            try
            {
                con.Open();
                if (con.State == ConnectionState.Open)
                {

                    labMessage.Text = "系统准备就绪!";
                    labMessage.ForeColor = Color.Green;

                }
                else
                {

                    labMessage.Text = "数据库连接错误,请检查网络设置或联系开发人员!";
                    labMessage.ForeColor = Color.Red;



                }

                con.Close();
            }
            catch
            {

                labMessage.Text = "数据库连接错误,请检查网络设置或联系开发人员!";
                labMessage.ForeColor = Color.Red;

            }


        }

        #endregion


        #region  扫入外箱码
        private void tbInvcode_KeyDown(object sender, KeyEventArgs e)
        {
            
            if (e.KeyCode == Keys.Enter)
            {
                


                if (tbBoxCode.Text != "")
                {
                    if (flag() == true)
                    {
                        con.Open();
                        string str = " update SuporFCH  set boxcode = '"+tbBoxCode.Text.ToString().Trim()+"',mcodeB='"+tbMcode.Text.ToString().Trim()+"',dateb='"+DateTime.Now.ToString()+"'  where ID=(select MIN(id) as id from SuporFCH where boxcode is null)";
                        SqlCommand cmd = new SqlCommand(str, con);

                        try
                        {
                            cmd.ExecuteNonQuery();
                            labMessage.Text = "<" + tbBoxCode.Text.ToString().Trim() + ">装箱成功,请检查!";
                            labMessage.ForeColor = Color.Green;
                        }
                        catch
                        {
                            labMessage.Text = "<" + tbBoxCode.Text.ToString().Trim() + ">装箱失败,请检查!";
                            labMessage.ForeColor = Color.Red;

                        
                        }
                        con.Close();
                    }

                    else
                    {

                        labMessage.Text = "外箱码<" + tbBoxCode.Text.ToString().Trim() + ">重复,请检查!";
                        labMessage.ForeColor = Color.Red;
                    
                    }
                    
                    
                  
                    selectFalg();

                    selectAll();

                }

                else
                {
                    labMessage.Text = "彩箱码不能为空!";
                    labMessage.ForeColor = Color.Red;

                }

                tbBoxCode.Text = "";

            }
           
        }
        #endregion


        //显示产品码
        private void selectFalg()
        {
            con.Open();
            string str = "  select ID as 流水号,invcode as 产品码 from suporfch where boxcode is null order by id";
            try 
            {
                if (con.State == ConnectionState.Open)
                {
                    SqlDataAdapter sda = new SqlDataAdapter(str, con);
                    DataSet ds = new DataSet();
                    sda.Fill(ds);
                    dataGridView1.DataSource = ds.Tables[0];
                }
                             
                     
            
            }
            catch
            
            {

                labMessage.Text = "数据库连接出错,请检查网络!";
                labMessage.ForeColor = Color.Red;           
            
            
            }

            con.Close();
        
        
        }


        //判断箱码是否重复
        private bool flag()
        {
            con.Open();

            string str = " select * from  SuporFCH where boxcode='" + tbBoxCode.Text.ToString().Trim() + "' ";
            SqlCommand cmd = new SqlCommand(str, con);
            SqlDataAdapter sda = new SqlDataAdapter(cmd);
            DataSet ds = new DataSet();
            sda.Fill(ds);
            con.Close();
            if (ds.Tables[0].Rows.Count == 0)
            {

                return true;


            }
            else
            {

                return false;
            }

            

        }




        //显示扫入的外箱码
        private void selectAll()
        {

            con.Open();
            string str = "select top 100 ID as 流水号,invcode as 产品码,boxcode as 外箱码 from suporfch where boxcode is not null order by ID desc";
            try
            {
                if (con.State == ConnectionState.Open)
                {
                    SqlDataAdapter sda = new SqlDataAdapter(str, con);
                    DataSet ds = new DataSet();
                    sda.Fill(ds);
                    dataGridView2.DataSource = ds.Tables[0];
                }



            }
            catch
            {

                labMessage.Text = "数据库连接出错,请检查网络!";
                labMessage.ForeColor = Color.Red;


            }

            con.Close();
        
        }


        //拆箱
        private void butCX_Click(object sender, EventArgs e)
        {
            F_Del f = new F_Del(this);
            this.Enabled = false;
            f.ShowDialog(this);
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            selectFalg();
        }



    }
}
原文地址:https://www.cnblogs.com/hobe6699/p/5619455.html