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

📄 dwriteic.cpp

📁 物流综合管理系统
💻 CPP
字号:
// DWriteIC.cpp : implementation file
//

#include "stdafx.h"
#include "myproject.h"
#include "DWriteIC.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#include "Lkic32.h"
/////////////////////////////////////////////////////////////////////////////
// CDWriteIC dialog
#define CARDTYPE 32	//AT88SC102

CDWriteIC::CDWriteIC(CWnd* pParent /*=NULL*/)
	: CDialog(CDWriteIC::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDWriteIC)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CDWriteIC::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDWriteIC)
	DDX_Control(pDX, IDC_DTDATE, m_DtDate);
	DDX_Control(pDX, IDC_EDTCARID, m_EdtCarID);
	DDX_Control(pDX, IDC_EDTNUMBER, m_EdtNumber);
	DDX_Control(pDX, IDC_EDTNAME, m_EdtName);
	DDX_Control(pDX, IDC_EDTID, m_EdtID);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDWriteIC, CDialog)
	//{{AFX_MSG_MAP(CDWriteIC)
	ON_BN_CLICKED(IDC_BUTEXIT, OnButexit)
	ON_BN_CLICKED(IDC_BUTWRITE, OnButwrite)
	ON_EN_KILLFOCUS(IDC_EDTID, OnKillfocusEdtid)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDWriteIC message handlers

void CDWriteIC::OnOK() 
{
	// TODO: Add extra validation here
	
	//CDialog::OnOK();
}

void CDWriteIC::OnButexit() 
{
	IC_ExitComm(m_handle); 
	this->OnCancel();	
}

void CDWriteIC::Enabled(bool bEnabled)
{	
	this->GetDlgItem(IDC_EDTID)->EnableWindow(!bEnabled);
	this->GetDlgItem(IDC_EDTCARID)->EnableWindow(bEnabled);
	this->GetDlgItem(IDC_EDTNAME)->EnableWindow(bEnabled);
	this->GetDlgItem(IDC_EDTNUMBER)->EnableWindow(bEnabled);
	this->GetDlgItem(IDC_DTDATE)->EnableWindow(bEnabled);
	this->GetDlgItem(IDC_BUTWRITE)->EnableWindow(bEnabled);
}

void CDWriteIC::OnButwrite() 
{	
	unsigned char* ulpChar;
	int nError=IC_CheckPass_102(m_handle,(unsigned char*)"~R");	//验证密码
	if(nError==0)
	{
		//组成新字符串
		CString sID,sCardID,sBaleName,sBaleNumber,sDate,sText;
		this->GetDlgItemText(IDC_EDTID,sID);
		this->GetDlgItemText(IDC_EDTCARID,sCardID);
		this->GetDlgItemText(IDC_EDTNAME,sBaleName);
		this->GetDlgItemText(IDC_EDTNUMBER,sBaleNumber);
		CTime time;
		m_DtDate.GetTime(time);
		sDate=time.Format("%y-%m-%d");
		sText.Format("ID=%s\nCarID=%s\nBaleName=%s\nBaleNum=%s\nTime=%s",sID,sCardID,sBaleName,sBaleNumber,sDate);
		int n=sText.GetLength();
		strcpy((char*)ulpChar,sText.GetBuffer(n));
		nError=IC_Write(m_handle,6,n,ulpChar);
		if(nError<0)
			MessageBox("写入失败!","系统提示",MB_OK|MB_ICONSTOP);
		else
		{
			MessageBox("写入成功!","系统提示",MB_OK|MB_ICONEXCLAMATION);
			this->SetDlgItemText(IDC_EDTID,"");
			this->SetDlgItemText(IDC_EDTCARID,"");
			this->SetDlgItemText(IDC_EDTNAME,"");
			this->SetDlgItemText(IDC_EDTNUMBER,"");
			this->Enabled(false);
		}
	}
	else
	{
		MessageBox("无法识别该IC卡,请确认!","系统提示",MB_OK|MB_ICONSTOP);
	}
}

BOOL CDWriteIC::OnInitDialog() 
{
	CDialog::OnInitDialog();
	unsigned char* lpID=new unsigned char[5];
	//读取IC卡记录的员工编号
	
	m_handle=IC_InitComm(0);	//打开串口
	IC_InitType(m_handle,CARDTYPE);	//设置IC卡类型

	IC_Read(m_handle,0,5,lpID);
	char* lpTemp=new char[5];
	strcpy(lpTemp,(char*)lpID);
	CString sText;
	sText.Format("%s",lpTemp);
	free(lpID);
	free(lpTemp);
	this->SetDlgItemText(IDC_EDTID,sText);
	//验证

	OnKillfocusEdtid();
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CDWriteIC::OnKillfocusEdtid() 
{
	//验证
	
	CString sText;
	this->GetDlgItemText(IDC_EDTID,sText);
	CString sSQL;
	sSQL.Format("SELECT b.主车牌照,a.配送票号 FROM 配送审核表 a INNER JOIN 车辆信息表 b ON a.车辆编号=b.编号 WHERE 司机编号=%s",sText);
	RxRecordset rst;
	rst.Open(sSQL,adCmdText);
	if(rst.GetRecordCount()<1)
	{
		this->SetDlgItemText(IDC_EDTID,"");
		this->GetDlgItem(IDC_EDTID)->SetFocus();
	}
	else
	{
		this->Enabled(true);
		this->SetDlgItemText(IDC_EDTCARID,rst.GetFieldValue("主车牌照"));
		this->SetDlgItemText(IDC_EDTPSID,rst.GetFieldValue("配送票号"));

		this->GetDlgItem(IDC_EDTCARID)->SetFocus();

	}
		
}

⌨️ 快捷键说明

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