www.pudn.com > LoadMachineCode111.rar > Loadmachcode.cpp
// Loadmachcode.cpp : implementation file
//
#include "stdafx.h"
#include "loadmachinecode.h"
#include "Loadmachcode.h"
#include "SetParameter.h"
#include "CDatabaseOperate.h"
#include "ComOperateNew.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CLoadmachcode dialog
CCDatabaseOperate m_database;
CSetParameter setDlg;
CLoadmachcode::CLoadmachcode(CWnd* pParent /*=NULL*/)
: CDialog(CLoadmachcode::IDD, pParent)
{
//{{AFX_DATA_INIT(CLoadmachcode)
m_fullcode = _T("");
m_machinecode = _T("");
//}}AFX_DATA_INIT
m_pView=NULL;
}
CLoadmachcode::CLoadmachcode(CView * pView)
{
m_pView=pView;
}
void CLoadmachcode::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CLoadmachcode)
DDX_Control(pDX, IDC_LIST, m_listMachcode);
DDX_Text(pDX, IDC_FULLCODE, m_fullcode);
DDX_Text(pDX, IDC_MACHINECODE, m_machinecode);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CLoadmachcode, CDialog)
//{{AFX_MSG_MAP(CLoadmachcode)
ON_BN_CLICKED(IDC_LOADMACHINECODE, OnLoadmachinecode)
ON_BN_CLICKED(IDC_SETPARAMETER, OnSetparameter)
ON_BN_CLICKED(IDC_DELRECORD, OnDelrecord)
//ON_BN_CLICKED(IDC_LOADEXCEL, OnLoadexcel)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CLoadmachcode message handlers
BOOL CLoadmachcode::Create()
{
// TODO: Add your specialized code here and/or call the base class
return CDialog::Create(CLoadmachcode::IDD );
}
void CLoadmachcode::OnCancel()
{
// TODO: Add extra cleanup here
CDialog::OnCancel();
DestroyWindow();
}
BOOL CLoadmachcode::OnInitDialog()
{
BOOL result;
CDialog::OnInitDialog();
m_listMachcode.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
m_listMachcode.InsertColumn(0,_T("序号"),LVCFMT_IMAGE|LVCFMT_LEFT,50);
m_listMachcode.InsertColumn(1,_T("机器编号"),LVCFMT_CENTER,100);
m_listMachcode.InsertColumn(2,_T("类型"),LVCFMT_CENTER,60);
m_listMachcode.InsertColumn(3,_T("型号"),LVCFMT_CENTER,60);
m_listMachcode.InsertColumn(4,_T("硬件版本"),LVCFMT_CENTER,80);
m_listMachcode.InsertColumn(5,_T("软件版本"),LVCFMT_CENTER,80);
m_listMachcode.InsertColumn(6,_T("生产编号"),LVCFMT_CENTER,120);
m_listMachcode.InsertColumn(7,_T("操作员编号"),LVCFMT_CENTER,100);
m_listMachcode.InsertColumn(8,_T("操作员姓名"),LVCFMT_CENTER,100);
m_listMachcode.InsertColumn(9,_T("操作时间"),LVCFMT_CENTER,100);
// TODO: Add extra initialization here
result=m_database.OpenDatabase("lijian","lijian","123456","loadmachinecode");
if(result==TRUE)
{
result=m_database.Openrecordset("loadmachinecode");
if(result==TRUE)
{
//_bstr_t strSQL="Select * from loadmachinecode";
//m_database.m_pRecordset=m_database.m_pConnection->Execute(strSQL,&m_database.RecordsAffected,adCmdText);
//CString message;
//message.Format("%s",m_database.m_pRecordset->GetCollect((long)1));
//AfxMessageBox(message);
//CString str1,str2;
int i=0;
if(!m_database.m_pRecordset->adoEOF)
{
m_database.m_pRecordset->MoveFirst();
}
while(!m_database.m_pRecordset->adoEOF)
{
//str1=(char*)(_bstr_t)m_database.m_pRecordset->Fields->GetItem("iNumber")->Value;
//str2=(char *)(_bstr_t)m_database.m_pRecordset->GetCollect("cMachineCode");
//m_listMachcode.InsertItem(i,str2,0);
m_listMachcode.InsertItem(i,(char *)(_bstr_t)m_database.m_pRecordset->GetCollect("iNumber"),0);
m_listMachcode.SetItemText(i,1,(char *)(_bstr_t)m_database.m_pRecordset->GetCollect("cMachineCode"));
m_listMachcode.SetItemText(i,2,(char *)(_bstr_t)m_database.m_pRecordset->GetCollect("cType"));
m_listMachcode.SetItemText(i,3,(char *)(_bstr_t)m_database.m_pRecordset->GetCollect("cModel"));
m_listMachcode.SetItemText(i,4,(char *)(_bstr_t)m_database.m_pRecordset->GetCollect("cHardwareEdition"));
m_listMachcode.SetItemText(i,5,(char *)(_bstr_t)m_database.m_pRecordset->GetCollect("cSoftwareEdition"));
m_listMachcode.SetItemText(i,6,(char *)(_bstr_t)m_database.m_pRecordset->GetCollect("cProduceCode"));
m_listMachcode.SetItemText(i,7,(char *)(_bstr_t)m_database.m_pRecordset->GetCollect("cOperatorCode"));
m_listMachcode.SetItemText(i,8,(char *)(_bstr_t)m_database.m_pRecordset->GetCollect("cOperatorName"));
m_listMachcode.SetItemText(i,9,(char *)(_bstr_t)m_database.m_pRecordset->GetCollect("dDownloadTime"));
m_database.m_pRecordset->MoveNext();
i++;
m_listMachcode.ShowWindow(SW_SHOW);
}
}
else
{
AfxMessageBox("打开数据记录出错");
return FALSE;
}
}
else
{
AfxMessageBox("打开数据库出错");
return FALSE;
}
GetPrivateProfileString("下载机器编号","MODEL","默认型号",setDlg.m_model.GetBuffer(MAXSIZE),MAXSIZE,INIFILEPATH);
setDlg.m_model.ReleaseBuffer();
GetPrivateProfileString("下载机器编号","HARDWAREEDITION","默认版本",setDlg.m_hardware.GetBuffer(MAXSIZE),MAXSIZE,INIFILEPATH);
setDlg.m_hardware.ReleaseBuffer();
GetPrivateProfileString("下载机器编号","SOFTWAREEDITION","默认版本",setDlg.m_software.GetBuffer(MAXSIZE),MAXSIZE,INIFILEPATH);
setDlg.m_software.ReleaseBuffer();
GetPrivateProfileString("下载机器编号","COM","默认端口",setDlg.m_comport.GetBuffer(MAXSIZE),MAXSIZE,INIFILEPATH);
setDlg.m_comport.ReleaseBuffer();
GetPrivateProfileString("下载机器编号","MACHINECODE","默认编号",setDlg.m_machcode.GetBuffer(MAXSIZE),MAXSIZE,INIFILEPATH);
setDlg.m_machcode.ReleaseBuffer();
GetPrivateProfileString("下载机器编号","PRODUCECODE","默认编号",setDlg.m_producecode.GetBuffer(MAXSIZE),MAXSIZE,INIFILEPATH);
setDlg.m_producecode.ReleaseBuffer();
GetPrivateProfileString("下载机器编号","OPERATORCODE","默认编号",setDlg.m_operatorcode.GetBuffer(MAXSIZE),MAXSIZE,INIFILEPATH);
setDlg.m_operatorcode.ReleaseBuffer();
GetPrivateProfileString("下载机器编号","OPERATORNAME","默认姓名",setDlg.m_operatorname.GetBuffer(MAXSIZE),MAXSIZE,INIFILEPATH);
setDlg.m_operatorname.ReleaseBuffer();
return TRUE;
}
void CLoadmachcode::OnLoadmachinecode()
{
// TODO: Add your control notification handler code here
BOOL result=FALSE;
CComOperateNew loadmachDlg;
CString strFullcode;
//序号
CString strNumber;
setDlg.m_number=GetPrivateProfileInt("下载机器编号","NUMBER",1,INIFILEPATH);
strNumber.Format(_T("%d"),setDlg.m_number+1);
WritePrivateProfileString("下载机器编号","NUMBER",strNumber.GetBuffer(MAXSIZE),INIFILEPATH);
//机器编号累加
setDlg.m_machcode.Format(_T("%d"),atoi(setDlg.m_machcode)+1);
WritePrivateProfileString("下载机器编号","MACHINECODE",setDlg.m_machcode.GetBuffer(MAXSIZE),INIFILEPATH);
//类型
//型号
//扩展
int extend=GetPrivateProfileInt("下载机器编号","EXTEND",11,INIFILEPATH);
CString m_extend;
m_extend.Format("%d",extend);
//硬件版本
//软件版本
//生产编号累加
CString nYear,nMonth,nDate,nTime;
CTime time=CTime::GetCurrentTime();//得到系统时间
//取系统时间年,月,日
nYear.Format("%04d",time.GetYear());
nMonth.Format("%02d",time.GetMonth());
nDate.Format("%02d",time.GetDay());
nTime=nYear+nMonth+nDate;
if(atoi(nTime)>atoi(setDlg.m_producecode.Left(8)))
{
setDlg.m_producecode=nTime+"0001";
}
else
{
CString str1,str2;
str2=setDlg.m_producecode.Left(7);
str1.Format(_T("%d"),atoi(setDlg.m_producecode.Right(5))+1);
setDlg.m_producecode=str2+str1;
}
WritePrivateProfileString("下载机器编号","PRODUCECODE",setDlg.m_producecode.GetBuffer(MAXSIZE),INIFILEPATH);
//操作员编号
//操作员姓名
//系统下载时间 nTime
//完整内容表示
strFullcode=setDlg.m_machcode+setDlg.m_hardware+m_extend+setDlg.m_producecode+setDlg.m_software;
m_machinecode=setDlg.m_machcode ;
m_fullcode=strFullcode;
UpdateData(FALSE);
int length=strlen(strFullcode);
result=loadmachDlg.PortRW(LOAD_MACHNO,strFullcode.GetBuffer(length),2);
if(result==TRUE)
{
/*
_bstr_t strSQL="INSERT INTO loadmachinecode( \
[iNumber],[cMachineCode], [cType], [cModel], [cHardwareEdition], \
[cSoftwareEdition], [cProduceCode], [cOperatorCode], [cOperatorName], \
[dDownloadTime])VALUES((_variant_t)((long)strNUmber),setDlg.m_machcode, \
setDlg.m_model,'新机',setDlg.m_hardware,setDlg.m_software,\
setDlg.m_producecode,setDlg.m_operatorcode, \
setDlg.m_operatorname,(_variant_t)nTime)";
*/
if(!m_database.m_pRecordset->adoEOF)
{
m_database.m_pRecordset->MoveLast();
}
//m_database.m_pConnection->Execute (strSQL,&m_database.RecordsAffected,adCmdText);
m_database.m_pRecordset->AddNew();
m_database.m_pRecordset->PutCollect("iNumber",_variant_t(strNumber.GetBuffer(5)));
m_database.m_pRecordset->PutCollect("cMachineCode",setDlg.m_machcode.GetBuffer(10));
m_database.m_pRecordset->PutCollect("cType",setDlg.m_model.GetBuffer(5));
m_database.m_pRecordset->PutCollect("cModel","新机");
m_database.m_pRecordset->PutCollect("cHardwareEdition",setDlg.m_hardware.GetBuffer(4));
m_database.m_pRecordset->PutCollect("cSoftwareEdition",setDlg.m_software.GetBuffer(4));
m_database.m_pRecordset->PutCollect("cProduceCode",setDlg.m_producecode.GetBuffer(12));
m_database.m_pRecordset->PutCollect("cOperatorCode",setDlg.m_operatorcode.GetBuffer(16));
m_database.m_pRecordset->PutCollect("cOperatorName",setDlg.m_operatorname.GetBuffer(10));
m_database.m_pRecordset->PutCollect("dDownloadTime",nTime.GetBuffer(8));
m_database.m_pRecordset->Update();
m_listMachcode.InsertItem(0,(char *)(_bstr_t)strNumber.GetBuffer(5),0);
m_listMachcode.SetItemText(0,1,setDlg.m_machcode);
m_listMachcode.SetItemText(0,2,setDlg.m_model);
m_listMachcode.SetItemText(0,3,"新机");
m_listMachcode.SetItemText(0,4,setDlg.m_hardware );
m_listMachcode.SetItemText(0,5,setDlg.m_software );
m_listMachcode.SetItemText(0,6,setDlg.m_producecode );
m_listMachcode.SetItemText(0,7,setDlg.m_operatorcode );
m_listMachcode.SetItemText(0,8,setDlg.m_operatorname );
m_listMachcode.SetItemText(0,9,nTime);
m_listMachcode.ShowWindow(SW_SHOW);
AfxMessageBox("下载机器编号成功");
return;
}
strFullcode.ReleaseBuffer();
}
void CLoadmachcode::OnSetparameter()
{
// TODO: Add your control notification handler code here
CSetParameter setDlg;
setDlg.DoModal();
}
void CLoadmachcode::OnDelrecord()
{
// TODO: Add your control notification handler code here
if(m_database.m_pRecordset->adoEOF)
{
AfxMessageBox("表中没有记录");
return;
}
else
{
m_database.m_pRecordset->MoveFirst();
while(!m_database.m_pRecordset->adoEOF)
{
m_database.m_pRecordset->Delete(adAffectCurrent);
m_database.m_pRecordset->Update();
m_database.m_pRecordset->MoveNext();
}
m_listMachcode.DeleteAllItems();
m_listMachcode.ShowWindow(SW_SHOW);
AfxMessageBox("记录已清空");
}
}