?? dwriteic.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"); //驗(yàn)證密碼
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("寫入失敗!","系統(tǒng)提示",MB_OK|MB_ICONSTOP);
else
{
MessageBox("寫入成功!","系統(tǒng)提示",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卡,請確認(rèn)!","系統(tǒng)提示",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); //設(shè)置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);
//驗(yàn)證
OnKillfocusEdtid();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CDWriteIC::OnKillfocusEdtid()
{
//驗(yàn)證
CString sText;
this->GetDlgItemText(IDC_EDTID,sText);
CString sSQL;
sSQL.Format("SELECT b.主車牌照,a.配送票號 FROM 配送審核表 a INNER JOIN 車輛信息表 b ON a.車輛編號=b.編號 WHERE 司機(jī)編號=%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();
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -