📄 devconnectdlg.cpp
字号:
// DevConnectDlg.cpp : implementation file
//
#include "stdafx.h"
#include "FPSys.h"
#include "DevConnectDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDevConnectDlg dialog
extern CDatabase m_db;
extern m_iConnDes;
extern dwMachineNumbe;
CDevConnectDlg::CDevConnectDlg(CWnd* pParent /*=NULL*/)
: CDialog(CDevConnectDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CDevConnectDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CDevConnectDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDevConnectDlg)
DDX_Control(pDX, IDC_COMBO_BANDRATE, m_cBandRate);
DDX_Control(pDX, IDC_COMBO_COMID, m_cComID);
DDX_Control(pDX, IDC_COMBO_MACHINEID, m_cMachineID);
DDX_Control(pDX, IDC_FK528KMCTRL1, m_cFk528);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDevConnectDlg, CDialog)
//{{AFX_MSG_MAP(CDevConnectDlg)
ON_CBN_SELCHANGE(IDC_COMBO_MACHINEID, OnSelchangeComboMachineid)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDevConnectDlg message handlers
void CDevConnectDlg::OnSelchangeComboMachineid()
{
// TODO: Add your control notification handler code here
}
BOOL CDevConnectDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_cMachineID.AddString("1");
m_cMachineID.AddString("2");
m_cMachineID.AddString("3");
m_cMachineID.AddString("4");
m_cMachineID.AddString("5");
m_cMachineID.SetCurSel(0);
m_cComID.AddString("1");
m_cComID.AddString("2");
m_cComID.AddString("3");
m_cComID.AddString("4");
m_cComID.AddString("5");
m_cComID.SetCurSel(0);
GetDlgItem(IDC_COMBO_COMID)->EnableWindow(FALSE);
m_cBandRate.AddString("9600");
m_cBandRate.AddString("38400");
m_cBandRate.AddString("19200");
m_cBandRate.AddString("115200");
m_cBandRate.AddString("57600");
m_cBandRate.SetCurSel(1);
if(3==m_iConnDes)
GetDlgItem(IDOK)->SetWindowText("读考勤号");
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CDevConnectDlg::OnOK()
{
// TODO: Add extra validation here
CString str;
str.Format("%d",m_iConnDes);
dwMachineNumber=m_cMachineID.GetCurSel()+1;
if(m_cFk528.OpenCommPort(dwMachineNumber))
{
if(1==m_iConnDes)
{
CDialog::OnOK();
CTerminalCtrl dlg;
dlg.DoModal();
}
else if(2==m_iConnDes)
{
CDialog::OnOK();
CTerminalData dlg;
dlg.DoModal();
}
else if(3==m_iConnDes) //读取考勤号
{
ReadEnrollData();
/*long dwTMachineNumber;
long dwEnrollNumber;
long dwEMachineNumber;
long dwVerifyMode;
long dwYear,dwMonth;
long dwDay, dwHour,dwMinute;
CString sql;
TRY{
if(!m_cFk528.ReadAllGLogData(dwMachineNumber))
{
MessageBox("读取用信息失败!");
return;
}
sql.Format("delete from tab_Att");
TRACE(sql);
m_db.ExecuteSQL(sql);
while(m_cFk528.GetAllGLogData(dwMachineNumber,&dwTMachineNumber,
&dwEnrollNumber,&dwEMachineNumber,&dwVerifyMode,&dwYear,&dwMonth,
&dwDay,&dwHour,&dwMinute))
{
sql.Format("insert into tab_Att(Att) values(%d)",dwEnrollNumber);
TRACE(sql);
m_db.ExecuteSQL(sql);
}
m_cFk528.SetReadMark(false);
MessageBox("已成功读取了考勤号!");
CDialog::OnOK();
}
CATCH(CDBException,ex)
{
AfxMessageBox(ex->m_strError);
AfxMessageBox(ex->m_strStateNativeOrigin);
}
AND_CATCH(CMemoryException,pEx)
{
pEx->ReportError();
AfxMessageBox("memory exception");
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox(szError);
}
END_CATCH*/
}
}
else
MessageBox("连接设备失败!");
}
void CDevConnectDlg::ReadEnrollData()
{
long dwTMachineNumber;
long dwEnrollNumber;
long dwEMachineNumber;
long dwVerifyMode;
long dwYear,dwMonth;
long dwDay, dwHour,dwMinute;
if(!m_cFk528.ReadAllGLogData(dwMachineNumber))
{
MessageBox("读取信息失败!");
return;
}
while(m_cFk528.GetAllGLogData(dwMachineNumber,&dwTMachineNumber,&dwEnrollNumber,
&dwEMachineNumber,&dwVerifyMode,&dwYear,&dwMonth,&dwDay,&dwHour,&dwMinute))
{
TRY{
CRecordset rs(&m_db);
CString sql;
sql.Format("select *from tab_Att where Att=%d",dwEnrollNumber);
rs.Open(CRecordset::dynaset,sql);
if(!rs.IsEOF())
continue;
rs.Close();
sql.Format("Insert into tab_Att(att) values(%d)",dwEnrollNumber);
TRACE(sql);
m_db.ExecuteSQL(sql);
}
CATCH(CDBException,ex)
{
AfxMessageBox(ex->m_strError);
AfxMessageBox(ex->m_strStateNativeOrigin);
}
AND_CATCH(CMemoryException,pEx)
{
pEx->ReportError();
AfxMessageBox("memory exception");
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox(szError);
}
END_CATCH
}
MessageBox("已成功读取了终端上的考勤号!");
/* if(!m_cFk528.ReadAllUserID(dwMachineNumber))
{
MessageBox("读用户信息失败!");
return;
}
while(!m_cFk528.GetAllUserID(dwMachineNumber,&dwEnrollNumber,&dwEMachineNumber,
&dwBackupNumber,&dwMachinePrivilege,&dwEnable))
{
CString temp;
temp.Format("%d %d %d \r\n%d %d %d",
dwMachineNumber,dwEnrollNumber,dwEMachineNumber,
dwBackupNumber,dwMachinePrivilege,dwEnable);
MessageBox(temp);
return;
}
MessageBox("没有数据可读");*/
/* if(!m_cFk528.ReadEnrollData(dwMachineNumber))
{
MessageBox("读用户信息失败!");
return;
}*/
/**********************************************************************/
/* int i=0;
struct tagVARIANT dwEnrollData;
while(!m_cFk528.GetEnrollData(dwMachineNumber,dwEnrollNumber,dwEMachineNumber,
dwBackupNumber,&dwMachinePrivilege,&dwEnrollData ,&dwPassWord) && i<3)
{
CString temp;
temp.Format("%d %d %d %d\r\n%d %d %d",
dwMachineNumber,dwEnrollNumber,dwEMachineNumber,dwBackupNumber,
dwMachinePrivilege,dwEnrollData ,dwPassWord);
MessageBox(temp);
i++;
}*/
/***********************************************************************/
/* long dwTMachineNumber;
long dwVerifyMode;
long dwYear,dwMonth,dwDay,dwHour,dwMinute;
if(!m_cFk528.ReadGeneralLogData(dwMachineNumber))
{
MessageBox("读用户信息失败!");
return;
}
if(!m_cFk528.GetGeneralLogData(dwMachineNumber,&dwTMachineNumber, &dwEnrollNumber,
&dwEMachineNumber,&dwVerifyMode,&dwYear, &dwMonth, &dwDay,&dwHour, &dwMinute))
{
CString temp;
temp.Format("%d %d %d %d\r\n%d %d %d",
dwMachineNumber,dwEnrollNumber,dwEMachineNumber,dwBackupNumber,
dwMachinePrivilege,dwEnrollData ,dwPassWord);
MessageBox(temp);
}*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -