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

📄 factory.cs

📁 WINCE数据库sqlce 通讯stock 代码
💻 CS
📖 第 1 页 / 共 5 页
字号:
		/// <summary>
		/// 检查当前的端口是否正确(端口地址应为 1024 - 65535 之间)
		/// </summary>
		/// <param name="Port">需要检查的端口地址</param>
		/// <returns>true:代表正确,false:代表不正确</returns>
		private bool CheckPort(string Port)
		{
			try
			{
				if(Int32.Parse(Port)<1024 || Int32.Parse(Port)>65535)
					return false;
				else 
					return true;
			}
			catch(Exception)
			{
				return false;
			}
		}
		//--------------------------------------函数区结束------------------------------------------------


		private void Frm_Main_Load(object sender, System.EventArgs e)
		{
			MsgBox(rm.GetString("10001"),MsgTitle,2);
			this.MinimizeBox=false;

			OpenScanner();
			//建立工厂打印所需的文件夹
			if(!Directory.Exists("\\Factory Print"))
			{
				Directory.CreateDirectory("\\Factory Print");
				if(!Directory.Exists("\\Factory Print\\Temp"))
					Directory.CreateDirectory("\\Factory Print\\Temp");
				if(!Directory.Exists("\\Factory Print\\Logs"))
					Directory.CreateDirectory("\\Factory Print\\Logs");
					
			}

			if(!File.Exists("\\Windows\\启动\\Wholesale.lnk"))
			{
				char r='"';
				StreamWriter sw=new StreamWriter("\\Windows\\启动\\Wholesale.lnk");
				sw.WriteLine("100#"+r+"\\Program Files\\Wholesale\\Wholesale.exe"+r);
				sw.Flush();
				sw.Close();		
			}


			g_mi=new GXInput();
			g_mi.RegisterAllHardwareKeys();
			t_thread=new Thread(new ThreadStart(ThreadProc));
			t_thread.Priority=ThreadPriority.Lowest;
			t_thread.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();	
			}
			
			MBID = "OK";//判断是扫描还是手动交易方式
			TBox_ClientID.Items.Clear();
			TBox_ThName.Items.Clear();
			Choose();//选择历史交易信息

			string[] sTemp=new string[2];
			sTemp=ReadFromFile(IniFileName);
			TBox_IP.Text=sTemp[0];
			TBox_Port.Text=sTemp[1];
			
			GoNet();
			
		}

		public void ThreadProc()
		{
			EventHandler eh=new EventHandler(ScanKeys);
			do
			{
				this.Invoke(eh);
				Thread.Sleep(10);

			}while(!CloseThread);

			this.Invoke(new EventHandler(this.CloseMe));

		}
		//---------------------------------------------------通讯部分 add by lml---------------------------
		private void GoNet()
		{
			//MessageBOX.Text="正在更新...";
			if(!IsOnLine())
			{
				return;
			}

			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();
				//发送工厂打印条码数据
				if(status)
				{
					bool send=true;
					for(int i=0;i<4;i++)
					{
						if(i==3)
						{
							//错误,退出
							status=false;
							break;
						}
					
						if(send)
						{
							//发送新文件
							string[] fd=Directory.GetFiles("\\Factory Print\\Temp","*.txt");
							if(fd.Length==0) break;

							FileInfo fii=new FileInfo(fd[0]);
							if(fii.Length==0)
							{
								fii.Delete();
			
								break;
							}

							net.SendCmd("70003"+BC("",59));
							net.SendFile(fd[0],HeaderMsg(PDAID(),fd[0],Pass(),""));
							Thread.Sleep(WaitTime);
						}
						else
						{
							//发送旧文件
							string[] fd=Directory.GetFiles("\\Factory Print\\Logs","*.txt");
							if(fd.Length==0) break;
							net.SendCmd("70003"+BC("",59));
							net.SendFile(fd[0],HeaderMsg(PDAID(),fd[0],Pass(),""));
							Thread.Sleep(WaitTime);
						}

						string sTemp=net.RecCmd();

						if(sTemp.Substring(0,5).CompareTo("Suces")!=0)
						{
							//MessageBox.Show("您发送的文件不完整!");
							send=false;
						}
						else
						{
							try
							{
								//文件完整时
								//清空Logs文件夹下的文件
								DeleteFiles("\\Factory Print\\Logs","*.txt",21);

								string[] fd=Directory.GetFiles("\\Factory Print\\Temp","*.txt");
								//导入TAF
								sf.AddToTAF(fd[0]);
								Thread.Sleep(WaitTime);
								string SoursePath=fd[0];
								string DestPath=fd[0].Replace("Temp","Logs");
								File.Move(SoursePath,DestPath);
								break;
							}
							catch(Exception)
							{
								status=false;
								//MessageBox.Show("文件操作出现错误!");
								break;
							}
						}
					}
				}
				//导出数据库文件
				string sNewFile="";
				if(status)
				{
					Thread.Sleep(WaitTime);
					sNewFile=sf.DB2TXT();
					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("您发送的文件不完整!");

						}
						else
						{
							//文件完整时
							//if(File.Exists(sNewFile)) File.Delete(sNewFile);
							break;
						}
					}
				}
			
				//接收新文件
				string result="";
				if(status)
				{
					for(int i=0;i<4;i++)
					{
						if(i==3)
						{
							//错误,退出
							status=false;
							break;
					
						}

						//接收新文件:Server->PDA
						result=net.DownFile(BC(PDAID(),30));
						Thread.Sleep(WaitTime);

						if(result.Substring(0,5).CompareTo("Empty")==0)
						{
							status=false;
							net.SendCmd(CB("Error",64));         //反馈错误
							break;
						}

						if(result.Substring(0,5).CompareTo("Error")!=0)
						{
							//接收成功
							//net.SendCmd(result+BC("",38));
							net.SendCmd(CB("Suces",64));		//反馈成功
							break;
						}
						else
						{
							status=false;
							net.SendCmd(CB("Error",64));         //反馈错误
							break;
						}
						

					}
				}
			
				//文本导入数据库
				if(status)
				{
				
					for(int i=0;i<4;i++)
					{
						if(i==3)
						{
							//导入不成功,退出
							status=false;
							break;
						}
						bool Dciku=false;
						//如果不需要更新词库
						if(result.Length<21)
						{
							status=false;
							break;
						}
						if(result.Substring(21,5)=="76514") 
							Dciku=true;
						//导入成功
						Thread.Sleep(WaitTime);
						if(sf.TXT2DB(result.Substring(0,21),Dciku))
						{
							if(File.Exists(result.Substring(0,21)))
								File.Delete(result.Substring(0,21));

							break;
						}
					}
				}

				if(status)
				{
					//断开网络
					net.Close();
					//MessageBOX.Text="下载完成!";
				}
				else
				{
					net.Close();
					MessageBOX.Text="";
					//MessageBox.Show("网络通讯出现问题,本次通讯取消!");	
				}
			}
			catch(SocketException)
			{
				MessageBOX.Text="";
				//延时1秒
				//Thread.Sleep(8000);
				//MessageBox.Show("配额不足!请联网重试!");
				MsgBox(rm.GetString("10005"),MsgTitle,5);
			}
			
		}
		//-------------------------------------------------通讯结束----------------------------------------
		private void GoFactory()
		{
			if(TBox_IP.Text.Length==0 || TBox_Port.Text.Length==0)
				return;

			if(!IsOnLine())
			{
				return;
			}
			//MessageBOX.Text="正在更新...";
			try
			{
				MsgBox(rm.GetString("10006"),MsgTitle,3);
				//网络初始化
				CENet net=new CENet(TBox_IP.Text,Int32.Parse(TBox_Port.Text));

				//通讯状态
				bool status=true;
			
				string sFileName="";
				if(status)
				{
					for(int i=0;i<4;i++)
					{

						if(i==3)
						{
							//三次失败
							status=false;
							break;
						}
						net.SendCmd("70000"+BC("",59));
						
						sFileName=net.DownFile(BC(PDAID(),30)).Substring(0,21);
						if(sFileName.Substring(0,5).CompareTo("Empty")==0)
						{
							status=false;
							break;
						}
						if(sFileName.Substring(0,5).CompareTo("Error")!=0)
						{
							//下载文件成功

							File.Move(sFileName,"\\Factory Print\\Temp\\"+sFileName);
							sFileName="\\Factory Print\\Temp\\"+sFileName;
							break;
						}
					}
				}
			
				if(!status)
				{
					//MessageBox.Show("条码下载错误!");
					MessageBOX.Text="";
				}

				net.Close();
				//MessageBOX.Text="下载完成";
			}
			catch(SocketException)
			{
				//MessageBOX.Text="";
				//MessageBox.Show("配额不足!请联网重试!");
				MsgBox(rm.GetString("10005"),MsgTitle,3);
			}
			Thread.Sleep(2000);
		}

⌨️ 快捷键说明

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