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

📄 devconnectdlg.cpp

📁 基于指纹技术的学生考勤系统
💻 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 + -