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

📄 manipulate.cpp

📁 这是我给一个做射频卡的公司做的小程序
💻 CPP
📖 第 1 页 / 共 3 页
字号:

	//生成序列号
	CString temp;
	CString strtype,strtypecode,strpartscode,stryear,strmanth;

	int shujuliang=0;			//数据库中的总的数据量
	
	int num=1;				//数据库中的重复的数据量
//	CRecordset rs(&db); // 数据集
//	CString str;
	// 设置部门下拉框所取的值为DEPARTMENT表中的值
	rs.Open(CRecordset::forwardOnly, "select * from 产品表");
	//m_pSet->MoveFirst();
	//rs.MoveFirst();
	while(!rs.IsEOF())
	{
		rs.GetFieldValue("产品类别", strtype);
		rs.GetFieldValue("分类码",strtypecode);
		rs.GetFieldValue("部件类型码",strpartscode);
		rs.GetFieldValue("年",stryear);
		rs.GetFieldValue("月",strmanth);
		str=str.Left(13);
		//AfxMessageBox(str);
		if(strtype==m_ctype&&strtypecode==m_ctypecode&&strpartscode==m_cpartscode&&stryear==m_cyear&&strmanth==m_cmanth)
				num++;

		rs.MoveNext();
		shujuliang++;
	}
	rs.Close();


	if(num<=9)
	{
	temp.Format("00%d",num);
	}
	else if(num<=99)
	{
		temp.Format("0%d%d",num/10,num%10);

	}
	else
	{
		temp.Format("%d%d%d",num/100,(num%10)/10,num%100%10);
	
	}
//	CString str1;
//	str1.Format("请在编号后输入序号%s",temp);
	code.Format("%s%s%s%s%s%s",m_ctype,typecodeID,partscodeID,yearID,monthID,temp);


	m_sequence.Format("%s",temp);
	UpdateData(FALSE);
//AfxMessageBox("dsaf");
		/////////////////////////////////////////////////////////////写入芯片
	//写制造商

	char writedata[4];

	writepro();
	//写产品名称到标签
	writename();
	//写产品编码到标签
	writecode();

	//写生产日期到标签
	for(int i24=0;i24<4;i24++)
	writedata[i24]=date[i24];
	if(!WriteSingleBlock(hCom, 0x00, 0x00,NULL,25, writedata))
	{
		flag=false;
		AfxMessageBox("写入标签第25块失败");
	}

	for(int i25=4;i25<8;i25++)
	writedata[i25-4]=date[i25];
	if(!WriteSingleBlock(hCom, 0x00, 0x00,NULL,26, writedata))
	{
		flag=false;
		AfxMessageBox("写入标签第26块失败");
	}
	//写保修期到标签
	int charnum;
	charnum=strlen(m_crepaire)%4;
	if(strlen(m_crepaire)<4)
	{
		for(int i26=0;i26<charnum;i26++)
		writedata[i26]=m_crepaire[i26];
		if(!WriteSingleBlock(hCom, 0x00, 0x00,NULL,27, writedata))
		{
		flag=false;
		AfxMessageBox("写入标签第27块失败");
		}
	}
	else
	{
		for(int i26=0;i26<4;i26++)
					writedata[i26]=m_crepaire[i26];
		if(!WriteSingleBlock(hCom, 0x00, 0x00,NULL,7, writedata))
		{
		flag=false;
		AfxMessageBox("写入标签第27块失败");
		}
	}
	
	//写用户单位到标签
	writeuser();
	//写维修记录到标签
	writerecord();
	UpdateData(FALSE);
	//读出标签UID

	//////////////////////////////////////////////////////////////////////////写入到数据库
			if(flag==true)
		{
			CString str,strSQL;
			strSQL="insert into 产品表 (芯片号,制造商,产品名称\
			产品类别,分类码,部件类型码,年,月,序列号,\
			出厂日期,保修期,用户单位,维修记录)\
			values('"
			+ m_xinpian + "','" // UID
			+ m_pro + "','" // 制造商
			+ m_name + "','" // 产品名称
			+ m_ctype + "','" // 产品编码
			+ typecodeID + "','" // 产品编码
			+ partscodeID + "','" // 产品编码
			+ yearID + "','" // 产品编码+ m_ctype + "','" // 产品编码
			+ monthID + "','" // 产品编码
			+ temp +"','"//序列号
			+ repaireID + "','" // 产品编码
			+ date + "','" // 出厂日期
			+ m_user + "','" // 用户单位
			+ m_record + "')"; // 维修记录
			db.ExecuteSQL(strSQL); // 执行
			AfxMessageBox("添加成功");
			Manipulate::OnClear() ;
			UpdateData(FALSE);

		}
}

	


void Manipulate::OnClear() 
{
	// TODO: Add your control notification handler code here
	
			m_xinpian=_T("");
 	//	m_date=_T("");	
 		m_name=_T("广汉科峰电子有限责任公司");
 		m_pro=_T("");
 		m_user=_T("");
		m_record=_T("");
		m_type.SetCurSel(-1);
		m_ctype=_T("");
		m_typecode.SetCurSel(-1);
		m_ctypecode=_T("");
		m_partscode.SetCurSel(-1);
		m_cpartscode=_T("");
		m_manth.SetCurSel(-1);
		m_year.SetCurSel(-1);
		m_cyear=_T("");
		m_cmanth=_T("");
		m_repaire.SetCurSel(-1);
		m_crepaire=_T("");
		m_sequence=_T("");
		UpdateData(FALSE);
	
//	return TRUE; 
}

void Manipulate::OnWritecopy() 
{
	// TODO: Add your control notification handler code here
	///读取时间
	int year;
	int month;
	int day;
	COleDateTime dtSel;
	m_date.GetTime(dtSel);
	year=dtSel.GetYear();
	month=dtSel.GetMonth();
	day=dtSel.GetDay();
	if(month<10&&day<10)
	{
		date.Format("%d0%d0%d",year,month,day);
	}
	else if(month<10&&day>=10)
	{
		date.Format("%d0%d%d",year,month,day);
	}
	else if(month>9&day<10)
	{
		date.Format("%d%d0%d",year,month,day);
	}
	else
	date.Format("%d%d%d",year,month,day);
//	AfxMessageBox(date);
	 
	
int k=0;
CString strUID = _T("");

int LableNum = 0;
char UIDBuf[600];

memset(UIDBuf, 0, 600);


if(DetectTagUID(hCom, 0x00,UIDBuf,LableNum))
{
	m_xinpian.Format(UIDBuf);

//	UpdateData(FALSE);

}
else
{
	AfxMessageBox("没有检测到标签%d",LableNum);
}


	CString str,strSQL;
	CRecordset rs(&db); // 数据集
	UpdateData(); // 更新数据
		if(m_pro.IsEmpty()) // 制造商为空则返回
	{
		AfxMessageBox("制造商不能为空!");
		return;
	}
		//UpdateData(TRUE);
			if(m_name.IsEmpty()) // 产品名称为空则返回
	{
		AfxMessageBox("产品名称不能为空!");
		return;
	}


	rs.Open(CRecordset::forwardOnly,
	"select 分类码 from  产品分类表 where 产品名称='" + m_ctypecode +"'");
	rs.GetFieldValue("分类码", typecodeID);
	rs.Close();



	rs.Open(CRecordset::forwardOnly,
	"select 部件类型码 from  部件类型表 where 部件名称='" + m_cpartscode +"'");
	rs.GetFieldValue("部件类型码", partscodeID);
	rs.Close();


	rs.Open(CRecordset::forwardOnly,
	"select 年号 from  年份表 where 年='" + m_cyear +"'");
	rs.GetFieldValue("年号", yearID);
	rs.Close();



	rs.Open(CRecordset::forwardOnly,
	"select 月号 from  月份表 where 月份='" + m_cmanth +"'");
	rs.GetFieldValue("月号", monthID);
	rs.Close();



	rs.Open(CRecordset::forwardOnly,
	"select 保修号 from  保修期 where 时间='" + m_crepaire +"'");
	rs.GetFieldValue("保修号", repaireID);
	rs.Close();

	code.Format("%s%s%s%s%s",m_ctype,typecodeID,partscodeID,yearID,monthID);
	



	//生成序列号
	CString temp;
	CString strtype,strtypecode,strpartscode,stryear,strmanth;

	int shujuliang=0;			//数据库中的总的数据量
	
	int num=1;				//数据库中的重复的数据量
//	CRecordset rs(&db); // 数据集
//	CString str;
	// 设置部门下拉框所取的值为DEPARTMENT表中的值
	rs.Open(CRecordset::forwardOnly, "select * from 产品表");
	//m_pSet->MoveFirst();
	//rs.MoveFirst();
	while(!rs.IsEOF())
	{
		rs.GetFieldValue("产品类别", strtype);
		rs.GetFieldValue("分类码",strtypecode);
		rs.GetFieldValue("部件类型码",strpartscode);
		rs.GetFieldValue("年",stryear);
		rs.GetFieldValue("月",strmanth);
		str=str.Left(13);
		//AfxMessageBox(str);
		if(strtype==m_ctype&&strtypecode==m_ctypecode&&strpartscode==m_cpartscode&&stryear==m_cyear&&strmanth==m_cmanth)
				num++;

		rs.MoveNext();
		shujuliang++;
	}
	rs.Close();


	if(num<=9)
	{
	temp.Format("00%d",num);
	}
	else if(num<=99)
	{
		temp.Format("0%d%d",num/10,num%10);

	}
	else
	{
		temp.Format("%d%d%d",num/100,(num%10)/10,num%100%10);
	
	}
//	CString str1;
//	str1.Format("请在编号后输入序号%s",temp);
	code.Format("%s%s%s%s%s%s",m_ctype,typecodeID,partscodeID,yearID,monthID,temp);


	m_sequence.Format("%s",temp);
	UpdateData(FALSE);
//AfxMessageBox("dsaf");
		/////////////////////////////////////////////////////////////写入芯片
	//写制造商

	char writedata[4];

	writepro();
	//写产品名称到标签
	writename();
	//写产品编码到标签
	writecode();

	//写生产日期到标签
	for(int i24=0;i24<4;i24++)
	writedata[i24]=date[i24];
	if(!WriteSingleBlock(hCom, 0x00, 0x00,NULL,25, writedata))
	{
		flag=false;
		AfxMessageBox("写入标签第25块失败");
	}

	for(int i25=4;i25<8;i25++)
	writedata[i25-4]=date[i25];
	if(!WriteSingleBlock(hCom, 0x00, 0x00,NULL,26, writedata))
	{
		flag=false;
		AfxMessageBox("写入标签第26块失败");
	}
	//写保修期到标签
	int charnum;
	charnum=strlen(m_crepaire)%4;
	if(strlen(m_crepaire)<4)
	{
		for(int i26=0;i26<charnum;i26++)
		writedata[i26]=m_crepaire[i26];
		if(!WriteSingleBlock(hCom, 0x00, 0x00,NULL,27, writedata))
		{
		flag=false;
		AfxMessageBox("写入标签第27块失败");
		}
	}
	else
	{
		for(int i26=0;i26<4;i26++)
					writedata[i26]=m_crepaire[i26];
		if(!WriteSingleBlock(hCom, 0x00, 0x00,NULL,27, writedata))
		{
		flag=false;
		AfxMessageBox("写入标签第27块失败");
		}
	}
	
	//写用户单位到标签
	writeuser();
	//写维修记录到标签
	writerecord();
	UpdateData(FALSE);
	//读出标签UID

	//////////////////////////////////////////////////////////////////////////写入到数据库
			if(flag==true)
		{
			CString str,strSQL;
			strSQL="insert into 产品表 (芯片号,制造商,产品名称\
			产品类别,分类码,部件类型码,年,月,序列号,\
			出厂日期,保修期,用户单位,维修记录)\
			values('"
			+ m_xinpian + "','" // UID
			+ m_pro + "','" // 制造商
			+ m_name + "','" // 产品名称
			+ m_ctype + "','" // 产品编码
			+ typecodeID + "','" // 产品编码
			+ partscodeID + "','" // 产品编码
			+ yearID + "','" // 产品编码+ m_ctype + "','" // 产品编码
			+ monthID + "','" // 产品编码
			+ temp +"','"//序列号
			+ repaireID + "','" // 产品编码
			+ date + "','" // 出厂日期
			+ m_user + "','" // 用户单位
			+ m_record + "')"; // 维修记录
			db.ExecuteSQL(strSQL); // 执行
			AfxMessageBox("添加并复制成功");
			m_name=_T("广汉科峰电子有限责任公司");
 			m_xinpian=_T("");
			m_pro=_T("");
			m_user=_T("");
			m_record=_T("");
			UpdateData(FALSE);
		}

	
	
}

bool Manipulate::writepro()
{

/*	int codlen;
	char writedata[4];
	CString pro;
	CString notice;
	codlen=m_pro.GetLength();
	int charnum;
	for (int tail=codlen;tail<32;tail++)
		pro.SetAt(tail-codlen,'  ');
	int blockth;
	for(blockth=3;blockth<11;blockth++)
	{
		for(charnum=0;charnum<4;charnum++)
			writedata[charnum]=m_pro[charnum+4*(blockth-3)];
			if(!WriteSingleBlock(hCom, 0x00, 0x08,NULL,blockth, writedata))
			{
				flag=false;
				notice.Format("写入标签第%d块失败",blockth);
				AfxMessageBox(notice);
			}
	}
*/
	CString notice;
	char writedata[4];
	int codlen;
	codlen=strlen(m_pro);

⌨️ 快捷键说明

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