📄 stocktake.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 + -