📄 manipulate.cpp
字号:
//生成序列号
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 + -