📄 retail.cs
字号:
return;
if (LackQuota()==false)//判断事物配额数量是否满足交易 ZJNET EDIT (2005.9.13)
return;
if (Getparms()== false)//解析事物特征码信息(包装层次、生产时间、剩余有限期时间、事物交易批次信息)
{
Singularity();//异常信息的处理
return;
}
else
{
GetPath();
time();
}
if (Repeat()==false)//判断是否重复条码或退货信息 ZJNET ADD 2005.8.5
{
//详查
GoLookp();
CEData lo;
lo=new CEData();
Len = new SubStr();
DateTime Atime = DateTime.Now;
SqlCeConnection conn=lo.conn;
SqlCeTransaction myTrans;
myTrans=conn.BeginTransaction();
SqlCeCommand mycmd=conn.CreateCommand();
mycmd.Connection=conn;
mycmd.Transaction=myTrans;
try
{
//如果交易后配额大于零则向物流关键信息表插入记录的同时更新配额数量
if (NPE>=NLG)
{
try
{
string LJ;
double NUMSL;
NUMSL = NPE-NLG;
if ( Path =="")
{
LJ = HCuppID.ToString();
}
else
{
LJ = Path.ToString() + "^" + HCuppID.ToString();
}
mycmd.CommandText = "insert into taa (TAAAA,TAAAB,TAAAD,TAAAE,TAAAF,TAAAG,TAAAH,TAAAI) values ('"+ProductID.ToString()+"','"+DeviceID+"',"+NLG.ToString()+",'"+Atime+"','"+ LJ +"',0,'"+CharacterID+"','00XXX')";
mycmd.ExecuteNonQuery();
mycmd.CommandText ="UPDATE TAF SET TAFAB = "+NUMSL.ToString()+" WHERE TAFAA = '"+ProductID.ToString()+"'";
mycmd.ExecuteNonQuery();
//MessageBOX.Text=" 交易成功!";
ScanData="";
ScanSize=0;
}
catch
{
//MessageBOX.Text=" 交易失败!";
return;
}
}
/*//如果交易配额为零则向物流关键信息表插入记录的同时更新配额信息表中的该条产品记录
if (NPE==NLG&&NPE!=0.0)
{
try
{
string LJ;
if ( Path =="")
{
LJ = HCuppID.ToString();
}
else
{
LJ = Path.ToString() + "^" + HCuppID.ToString();
}
mycmd.CommandText="insert into taa (TAAAA,TAAAB,TAAAD,TAAAE,TAAAF,TAAAG,TAAAH,TAAAI) values ('"+ProductID.ToString()+"','"+this.TBox_HardwareID.Text+"',"+NLG.ToString()+",'"+Atime+"','"+ LJ +"',0,'"+CharacterID+"','00XXX')";
mycmd.ExecuteNonQuery();
mycmd.CommandText="UPDATE TAF SET TAFAB =0 WHERE TAFAA = '"+ProductID.ToString()+"'";
mycmd.ExecuteNonQuery();
MessageBOX.Text=" 交易成功!";
ScanData="";
ScanSize=0;
}
catch
{
MessageBOX.Text=" 交易失败!";
return;
}
}*/
myTrans.Commit();
conn.Dispose();
ScanData="";
ScanSize=0;
NPE = 0.0;
NLG = 0.0;
MessageBOX.Text="交易成功!";
GoNet(); //联网取配额
//Clear();
//MsgBox(ProductName+"1"+PackName+" "+rm.GetString("10009"),MsgTitle,5);
//MsgBox(rm.GetString("10009"),MsgTitle,30);
}
catch(Exception)
{
myTrans.Rollback();
conn.Dispose();
ScanData="";
ScanSize=0;
NPE = 0.0;
NLG = 0.0;
}
/*
finally
{
conn.Dispose();
ScanData="";
ScanSize=0;
NPE = 0.0;
NLG = 0.0;
}
*/
}
}
//#################################################################### 交易过程结束(ZJNET ADD 2005.8.5) #############################################################
//#################################################################### 执行扫描过程(ZJNET ADD 5005.8.10)################################################################################
private void timer_Tick(object sender, System.EventArgs e)
{
if (!gScanner.ScannerInserted)
return;
gTimerCounter--;
this.Text = "Scan " + Convert.ToString(gTimerCounter);
if (gTimerCounter == 3)
this.Text = "Data Cleared - Rescanning";
else if (gTimerCounter == 0)
{
gTimerCounter = gDemoSecs;
gScanner.TriggerScanner();
}
}
private void OpenScanner()
{
Application.DoEvents();
// If scanner was already created then dispose of it.
if (gScanner != null)
{
gScanner.ScannerEvent -= new ScannerEventHandler(HandleScanEvent);
gScanner.Dispose();
gScanner = null;
}
try
{
if (ScanMode)
{
gScanner = SocketScanner.ViaSocketScan();
gScanner.ScannerEvent += new ScannerEventHandler(HandleScanEvent);
SocketScanner.StartSocketScan(ScanMode);
}
else
{
SocketScanner.StopSocketScan();
while (SocketScanner.IsSocketScanRunning())
Thread.Sleep(1500);
gScanner = SocketScanner.Direct();
gScanner.ScannerEvent += new ScannerEventHandler(HandleScanEvent);
}
}
catch (SocketScannerInUseException)
{
MessageBox.Show("SocketScan API in use by another application");
Application.Exit();
}
}
private void HandleScanEvent(ScannerEventArgs args)
{
switch (args.ScannerEventCode)
{
case ScannerEventCodes.VALIDDATA:
ScanData=ScanData+args.ScannedData;//扫描数据
ScanSize=ScanSize+args.ScannedDataSize;//扫描数据大小
if(ScanSize==40)
{
GetparmInfo();//获取事物交易信息
}
else if(ScanSize>40)
{
Abnormity = ScanData;
//MessageBox.Show("错误的条码");
MsgBox(rm.GetString("10004"),MsgTitle,3);
ScanData="";
ScanSize=0;
}
break;
case ScannerEventCodes.SCANNERINSERTED:
//MessageBOX.Text = " 初始化失败";
Cursor.Current = Cursors.WaitCursor;
this.BringToFront();
break;
case ScannerEventCodes.SCANNERINITIALIZED:
//MessageBOX.Text = " 初始化完毕";
if (gScanner.ScannerType == ScannerTypes.SCANNER_ISC)
{
((EngineSSISymbol) gScanner.Engine).DecodeUPCEANSupplimentals = Supplimentals.AutoDiscriminate;
}
else if ((gScanner.ScannerType == ScannerTypes.SCANNER_ISCIBASIC) ||
(gScanner.ScannerType == ScannerTypes.SCANNER_ISCIFULL))
{
EngineHHP eHHP = (EngineHHP) gScanner.Engine;
eHHP.ScanSendCommand("E13AD21.");
eHHP.ScanSendCommand("E13AD51.");
eHHP.ScanSendCommand("UPAAD21.");
eHHP.ScanSendCommand("UPAAD51.");
}
Cursor.Current = Cursors.Default;
break;
case ScannerEventCodes.SCANNERREMOVED:
//ScanTimer.Enabled = false;
break;
}
}
//#################################################################### 执行扫描过程 结束 ################################################################################
//########################################################################窗体初始化(ZJNET ADD 2005.8.5)##############################################################
private void Frm_Main_Load(object sender, System.EventArgs e)
{
MsgBox(rm.GetString("10001"),MsgTitle,2);
this.MinimizeBox=false;
OpenScanner();//初始化扫描程序
if(!File.Exists("\\Windows\\启动\\Retail.lnk"))
{
char r='"';
StreamWriter sw=new StreamWriter("\\Windows\\启动\\Retail.lnk");
sw.WriteLine("100#"+r+"\\Program Files\\retail\\retail.exe"+r);
sw.Flush();
sw.Close();
}
//初始化全局键值
g_mi=new GXInputLibrary.GXInput();
//注册所有的硬件按钮
g_mi.RegisterAllHardwareKeys();
//启动线程
mythread=new Thread(new ThreadStart(ThreadProc));
//设置优先级
mythread.Priority=ThreadPriority.Lowest;
mythread.Start();
CEData lo;
lo=new CEData();
SqlCeConnection conn=lo.conn;
//初始化终端机隶属客户
try
{
string SqlText=null;
SqlCeDataReader myReader=null;
SqlText = "SELECT TAGAI,TAGAJ,TAGAA,TAGAB,TAGAC,TAGAD FROM TAG";
SqlCeCommand cmd=new SqlCeCommand(SqlText,conn);
myReader=cmd.ExecuteReader();
myReader.Read();
HCuppID =myReader.GetValue(0).ToString(); //读取客户的ID
ServerIP=myReader.GetValue(3).ToString(); //读取通讯服务器的IP地址
ServerPort=Int32.Parse(myReader.GetValue(4).ToString()); //读取通讯服务器的端口
DeviceID=myReader.GetValue(2).ToString(); //读取硬件ID
PassWord=myReader.GetValue(5).ToString(); //读取效验密码
myReader.Close();
}
catch
{
conn.Dispose();
this.Close();
//return;
}
finally
{
conn.Dispose();
}
GoNet();
}
public void ThreadProc()
{
EventHandler eh=new EventHandler(ScanKeys);
do
{
this.Invoke(eh);
Thread.Sleep(10);
}while(!CloseThread);
this.Invoke(new EventHandler(this.CloseMe));
}
//######################################################################## 窗体初始化 结束 ##############################################################
//########################################################## 窗体关闭事件(ZJNET ADD 2005.8.5)##########################################################
private void Frm_Main_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
if(!CloseThread)
e.Cancel=true;
CloseThread=true;
}
private void Frm_Main_Closed(object sender, System.EventArgs e)
{
t.Enabled=false;
Noti.RemoveLast();
g_mi.UnregisterAllHardwareKeys();
if(SocketScanner.IsSocketScanRunning())
{
SocketScanner.StopSocketScan();
}
gScanner.Dispose();
this.Dispose(true);
}
private void CloseMe(object o, EventArgs e)
{
this.Close();
}
//########################################################## 窗体关闭事件 结束 ##############################################################################
//########################################################## 通讯部分 add by lml #########################################################################
private void GoNet()
{
if(!IsOnLine())
{
return;
}
//MessageBOX.Text="正在更新...";
//MessageBOX.Text="请稍等...";
//Thread.Sleep(2000);
MsgBox(rm.GetString("10006"),MsgTitle,3);
//通讯状态
bool status=true;
//网络初始化
try
{
CENet net=new CENet(ServerIP,ServerPort);
//发送硬件ID,效验上次文件完整
if(!net.SendPKID(BC(PDAID(),30)))
status=false;
//重复连接的次数i;
if(status)
{
for(int i=0;i<4;i++)
{
if(i==3)
{
//错误,退出
status=false;
break;
}
string sTemp=net.RecCmd();
string sCmd=sTemp.Substring(0,5);
string sOldFile=sTemp.Substring(5,21);
if(sCmd.CompareTo("Suces")!=0)
{
//MessageBox.Show("您上次的文件不完整");
net.SendFile(sOldFile,HeaderMsg(PDAID(),sOldFile,Pass(),""));
Thread.Sleep(WaitTime);
}
else
{
//完整时
//删除所有的临时文件
DeleteFiles("\\","*.txt",21);
break;
}
}
}
//初始化数据库操作
CEFile sf=new CEFile();
//导出数据库文件
string sNewFile="";
if(status)
{
sNewFile=sf.DB2TXT();
Thread.Sleep(WaitTime);
if(sNewFile.CompareTo("error")==0)
status=false;
}
//发送新文件
if(status)
{
for(int i=0;i<4;i++)
{
if(i==3)
{
//错误,退出
status=false;
break;
}
FileInfo fi=new FileInfo(sNewFile);
//如果导出是空记录
if(fi.Length==14)
{
fi.Delete();
break;
}
//发送新文件(PDA->Server)
net.SendFile(sNewFile,HeaderMsg(PDAID(),sNewFile,Pass(),""));
Thread.Sleep(WaitTime);
string sTemp=net.RecCmd();
if(sTemp.Substring(0,5).CompareTo("Suces")!=0)
{
//MessageBox.Show("您发送的文件不完整!");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -