⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stocktake.cs

📁 Symbol_MC3000_C#.条码扫码范例程序之2
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlServerCe;
using System.Xml;

namespace Fyfjm
{
    public partial class StockTake : Form
    {
        private SymbolScanWood.SymbolScanWood _objScan = new SymbolScanWood.SymbolScanWood("Text");
        private Symbol.Audio.Controller MyAudioController = null;
        private DataSet ds = new DataSet();
        private SqlCeConnection cn = new SqlCeConnection();
        private SqlCeCommand cm = new SqlCeCommand();
        private string StrBarcode = "";//记录条码
        public string _Zone = "";
        private string _Directory = "";
        private int _Time = 1000;

        public StockTake()
        {
            InitializeComponent();
        }

        private void _objScan_OnAfterRead(object sender, EventArgs e)
        {
            StrBarcode = _objScan.BarcodeText;
            BarcodeScan(StrBarcode.Trim());
        }

        private void BarcodeScan(string Barcode)//条码处理
        {
            Symbol.Audio.Device MyDevice = (Symbol.Audio.Device)Symbol.StandardForms.SelectDevice.Select(
                                                        Symbol.Audio.Controller.Title, Symbol.Audio.Device.AvailableDevices);
            switch (MyDevice.AudioType)
            {
                //if standard device
                case Symbol.Audio.AudioType.StandardAudio:
                    MyAudioController = new Symbol.Audio.StandardAudio(MyDevice);
                    break;

                //if simulated device
                case Symbol.Audio.AudioType.SimulatedAudio:
                    MyAudioController = new Symbol.Audio.SimulatedAudio(MyDevice);
                    break;

                default:
                    throw new Symbol.Exceptions.InvalidDataTypeException("Unknown Device Type");

            }
            int Duration = 250;
            int Frequency = 2670;
            MyAudioController.PlayAudio(Duration, Frequency);
            MyAudioController.Dispose();

            try
            {
                tbBarcode.Text = Barcode.Trim();
                
                    cm.CommandText = string.Format("select Count(*) as num from Take where Zone = '{0}'", tbZone.Text.Trim());//统计数量
                    SqlCeDataReader Cdr = cm.ExecuteReader();
                    if (Cdr.Read())
                    {
                        tbTBarcode.Text = Convert.ToString(Convert.ToInt32(SymbolScanWood.WoodConvert.ToString(Convert.ToInt32(Cdr["num"]))) + 1);
                    }
                    Cdr.Close();
                    Cdr.Dispose();

                    tbLBarcode.Text = Barcode.Trim();

                    cm.CommandText = string.Format("insert into Take(SKU,Zone) values('{0}','{1}')", tbBarcode.Text.Trim(), tbZone.Text.Trim());
                    cm.ExecuteNonQuery();
                    tbBarcode.Text = "";

                    //cm.CommandText = string.Format("select Count(*) as num from Take");
                    //SqlCeDataReader Ndr = cm.ExecuteReader();
                    //{
                    //    if (Ndr.Read())
                    //    {
                    //        int _Num = Convert.ToInt32(SymbolScanWood.WoodConvert.ToString(Ndr["Num"]).Trim());
                    //        if ((_Num != 0) && (_Num % _Time == 0))
                    //        {
                    //            cm.CommandText = "delete from Enquiry";
                    //            cm.ExecuteNonQuery();
                    //            if (!System.IO.Directory.Exists(_Directory + @"\DataBase"))
                    //            {
                    //                System.IO.Directory.CreateDirectory(_Directory + @"\DataBase");
                    //            }
                    //            System.IO.File.Copy(Logic.WoodDirectory.GetCurPath() + @"\DataBase\Fyfjm.sdf", _Directory + @"\DataBase\Fyfjm.sdf", true);
                    //        }
                    //    }
                    //}
                    //Ndr.Close();
                    //Ndr.Dispose();

                //}
            }
            catch(SqlCeException ex)
            {
                MessageBox.Show(ex.Message, "Register", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
                tbBarcode.Focus();
            }
            catch (Exception ex1)
            {
                MessageBox.Show(ex1.Message, "Register", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
                tbBarcode.Focus();
            }
        }

        private void StockTake_Load(object sender, EventArgs e)
        {
            Cursor.Current = Cursors.WaitCursor;
            cn = Logic.DataAcess.CreateConnection();//创建连接
            cm = cn.CreateCommand();
            tbBarcode.Focus();
            tbZone.Text = _Zone.Trim();
            _objScan.MyAfterRead += new EventHandler(_objScan_OnAfterRead);//开启扫描
            XmlDocument xd = new XmlDocument();
            xd.Load(Logic.WoodDirectory.GetCurPath() + @"\Setting.xml");
            XmlNode node = xd.SelectSingleNode("/SystemConfig/Directory");
            _Directory = node.InnerText.ToString().Trim();
            node = xd.SelectSingleNode("/SystemConfig/Timer");
            _Time = Convert.ToInt32(node.InnerText.ToString().Trim());
            Cursor.Current = Cursors.Default;
        }

        private void InitForm()//窗口初始化
        {
            tbBarcode.Text = "";
            //tbZone.Text = "";
            tbLBarcode.Text = "";
            tbTBarcode.Text = "";
            tbBarcode.Focus();
        }

        private void StockTake_Closing(object sender, CancelEventArgs e)
        {
            //cm.CommandText = "delete from Enquiry";
            //cm.ExecuteNonQuery();
            cm.CommandText = "Select * from Take";
            SqlCeDataAdapter da = new SqlCeDataAdapter();
            da.SelectCommand = cm;
            SqlCeCommandBuilder cb= new SqlCeCommandBuilder(da);
            DataSet ds = new DataSet();
            da.Fill(ds);

            DataSet _objDs = new DataSet();
            SqlCeConnection _objConn = DataAccess.CreateConnection(@"\Application\DataBase\Fyfjm.sdf");
            SqlCeCommand _objComm = _objConn.CreateCommand();
            _objComm.CommandText = "delete from Take";
            _objComm.ExecuteNonQuery();

            _objComm.CommandText = "SELECT * from Take";
            _objComm.CommandType = CommandType.Text;
            SqlCeDataAdapter _objDa = new SqlCeDataAdapter(_objComm);
            SqlCeCommandBuilder _objCb = new SqlCeCommandBuilder(_objDa);
            _objDa.Fill(_objDs);

            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                DataRow dr1 = _objDs.Tables[0].NewRow();
                dr1[0] = dr[0];
                dr1[1] = dr[1];
                dr1[2] = dr[2];
                dr1[3] = dr[3];
                _objDs.Tables[0].Rows.Add(dr1);
            }

            _objDa.Update(_objDs);

            _objDs.Tables[0].AcceptChanges();


            _objScan.TermReader();
            //Logic.DataAcess.Close();
            //cn.Close();
            //cn.Dispose();
            //cn = null;

            DataAccess.Close();
            _objConn.Close();
            _objConn.Dispose();
            _objConn = null;
            //if (!System.IO.Directory.Exists(_Directory + @"\DataBase"))
            //{
            //    System.IO.Directory.CreateDirectory(_Directory + @"\DataBase");
            //}
            //System.IO.File.Copy(Logic.WoodDirectory.GetCurPath() + @"\DataBase\Fyfjm.sdf", _Directory + @"\DataBase\Fyfjm.sdf", true);
        }

        private void StockTake_Activated(object sender, EventArgs e)
        {
            if (_objScan.InitReader())
            {
                _objScan.StartRead();
            }
            cn = Logic.DataAcess.CreateConnection();//创建连接
            cm = cn.CreateCommand();
        }

        private void StockTake_Deactivate(object sender, EventArgs e)
        {
            _objScan.StopRead();
            _objScan.TermReader();
            cn.Close();
            cn.Dispose();
            cn = null;
            Logic.DataAcess.Close();
        }

        private void tbBarcode_KeyDown(object sender, KeyEventArgs e)
        {
            switch (e.KeyCode)
            {
                case Keys.Enter:
                    if (tbBarcode.Text.Trim() != "")
                    {
                        BarcodeScan(tbBarcode.Text.ToString().Trim());
                    }
                    else
                    {
                        MessageBox.Show("The SKU Barcode is null", "System Message", MessageBoxButtons.OK, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1);
                        tbBarcode.Focus();
                    }
                    break;
                case Keys.Escape:
                    Close();
                    break;
                case Keys.Down:
                    Cursor.Current = Cursors.WaitCursor;
                    string sqlstr = "select Zone,Count(*)as Qty from Take where Take_sign = 0 Group By Zone";
                    SqlCeDataAdapter myDataAdapter = new SqlCeDataAdapter(sqlstr, cn);
                    SqlCeCommandBuilder cb = new SqlCeCommandBuilder(myDataAdapter);
                    myDataAdapter.Fill(ds, "Take");
                    dataGrid1.DataSource = ds.Tables[0].DefaultView;
                    Cursor.Current = Cursors.Default;
                    break;
                case Keys.F5:
                    Close();
                    break;
                default:
                    break;
            }
        }

        private void btEsc_Click(object sender, EventArgs e)
        {
            //Close();
            _objScan.StopRead();
            _objScan.TermReader();
            Zone zone = new Zone();
            if (zone.ShowDialog() == DialogResult.OK)
            {
                tbZone.Text = zone.tbZone.Text.Trim();
                InitForm();
                ds.Clear();
            }
        }

        private void StockTake_KeyDown(object sender, KeyEventArgs e)
        {
            switch (e.KeyCode)
            {
                case Keys.F5:
                    Close();
                    break;
                default:
                    break;
            }
        }

        private void btBackup_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Are you sure to exit and back up?", "System Message", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
            {
                Close();
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -