📄 nordlg2.cpp
字号:
// NorDlg2.cpp : implementation file
//
#include "stdafx.h"
#include "图书管理系统.h"
#include "NorDlg2.h"
#include "图书管理系统Dlg.h"
#include "LaodingDlg1.h"
#include "math.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CNorDlg2 dialog
extern CMyApp theApp;
CNorDlg2::CNorDlg2(CWnd* pParent /*=NULL*/)
: CDialog(CNorDlg2::IDD, pParent)
{
//{{AFX_DATA_INIT(CNorDlg2)
m_BkEditer = _T("");
m_BkID = _T("");
m_BkName = _T("");
m_InTime = _T("");
m_Money = _T("");
m_ReadID = _T("");
//}}AFX_DATA_INIT
}
void CNorDlg2::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CNorDlg2)
DDX_Text(pDX, IDC_BKEDITER, m_BkEditer);
DDX_Text(pDX, IDC_BKID, m_BkID);
DDX_Text(pDX, IDC_BKNAME, m_BkName);
DDX_Text(pDX, IDC_INTIME, m_InTime);
DDX_Text(pDX, IDC_MONEY, m_Money);
DDX_Text(pDX, IDC_ReadID, m_ReadID);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CNorDlg2, CDialog)
//{{AFX_MSG_MAP(CNorDlg2)
ON_BN_CLICKED(IDC_BTN_IN, OnBtnIn)
ON_BN_CLICKED(IDC_BTN_BACK, OnBtnBack)
ON_BN_CLICKED(IDC_BTN_LOCK, OnBtnLock)
ON_BN_CLICKED(IDCANCLE, OnCancle)
ON_WM_CTLCOLOR()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CNorDlg2 message handlers
BOOL CNorDlg2::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_pRecordset1.CreateInstance(__uuidof(Recordset));
m_pRecordset2.CreateInstance(__uuidof(Recordset));
try
{
m_pRecordset1->Open("SELECT * FROM DemoTable",theApp.m_pConnection.GetInterfacePtr(),
adOpenDynamic,adLockOptimistic,adCmdText);
m_pRecordset2->Open("SELECT * FROM Reader",theApp.m_pConnection.GetInterfacePtr(),
adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
BOOL CNorDlg2::DestroyWindow()
{
// TODO: Add your specialized code here and/or call the base class
m_pRecordset1->Close();
m_pRecordset1 =NULL;
m_pRecordset2->Close();
m_pRecordset2 =NULL;
return CDialog::DestroyWindow();
}
void CNorDlg2::OnBtnIn()
{
// TODO: Add your control notification handler code here
UpdateData(true);
int flag;
if(m_BkID =="" || m_ReadID=="")
{
AfxMessageBox("没输入图书ID或读者ID");
return;
}
flag=Read(m_BkID , m_ReadID);
switch(flag)
{
case 1:AfxMessageBox("还书成功!");break;
case 2:AfxMessageBox("没借出或读者不存在!");break;
}
}
void CNorDlg2::OnBtnBack()
{
// TODO: Add your control notification handler code here
CMyDlg dlg;
dlg.DoModal();
}
void CNorDlg2::OnBtnLock()
{
// TODO: Add your control notification handler code here
CLaodingDlg1 dlg;
dlg.DoModal();
}
void CNorDlg2::OnCancle()
{
// TODO: Add your control notification handler code here
CNorDlg2 dlg1;
dlg1.OnCancle();
}
int CNorDlg2::Read(CString m_BkID, CString m_ReadID)
{
//////////////////////////////////////////////////////////////////
int flag;
flag=0;
//////////////////////////////////////////////////////////////////
_variant_t var1;
CString strBkID,strBkName,strOutTime,strBkRead,strBkFlag,strInTime,strMoney;/*图书库*/
strBkID=strBkName=strOutTime=strBkRead=strBkFlag="";
_variant_t var;
CString strReadID,strReadNum;/*读者库*/
strReadID=strReadNum="";
////////////////////////////////////////////////////////////////////////////////////
int m_nYear; ///年
int m_nMonth; ///月
int m_nDay ; ///日
char buffer[10];
CTime time=CTime::GetCurrentTime();
//////////////////////////////////////////////////////////////////////////////////
try
{
if(!m_pRecordset2->BOF)
m_pRecordset2->MoveFirst();
else
{
AfxMessageBox("还没有读者存在!");
return 0;
}
while(!m_pRecordset2->adoEOF )
{
var = m_pRecordset2->GetCollect("EdID");
if(var.vt != VT_NULL)
{
strReadID = (LPCSTR)_bstr_t(var);
}
var = m_pRecordset2->GetCollect("EdNum");
if(var.vt != VT_NULL)
{
strReadNum = (LPCSTR)_bstr_t(var);
}
if(m_ReadID==strReadID && flag==0)
{
flag=1;
if(strReadNum=="3")
strReadNum='2';
if(strReadNum=="2")
strReadNum='1';
if(strReadNum=="1")
strReadNum='0';
}
else
m_pRecordset2->MoveNext();
}
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
///////////////////////////////////////////////////////////////////////////////////////
try
{
if(!m_pRecordset1->BOF)
m_pRecordset1->MoveFirst();
else
{
AfxMessageBox("表内数据为空");
return 0;
}
while(!m_pRecordset1->adoEOF )
{
var1 = m_pRecordset1->GetCollect("BkID");
if(var1.vt != VT_NULL)
{
strBkID = (LPCSTR)_bstr_t(var1);
}
var1 = m_pRecordset1->GetCollect("BkName");
if(var1.vt != VT_NULL)
{
strBkName = (LPCSTR)_bstr_t(var1);
}
var1 = m_pRecordset1->GetCollect("BkEditer");
if(var1.vt != VT_NULL)
{
strBkRead = (LPCSTR)_bstr_t(var1);
}
if(m_BkID==strBkID )
{
var1= m_pRecordset1->GetCollect("BkData");
if(var1.vt != VT_NULL)
{
strOutTime = (LPCSTR)_bstr_t(var1);
strInTime=time.Format("%Y%m%d");
int i=Money(strOutTime , strInTime);
strMoney.Format("%d",i);
}
try
{
strOutTime="";
strBkFlag="";
m_pRecordset1->PutCollect("BkData", _variant_t(strOutTime));
m_pRecordset1->PutCollect("BkFlag", _variant_t(strBkFlag));
m_pRecordset1->Update();
SetDlgItemText(IDC_BKEDITER,strBkRead);
SetDlgItemText(IDC_BKNAME,strBkName);
SetDlgItemText(IDC_INTIME,strInTime);
SetDlgItemText(IDC_MONEY,strMoney);
return 1;
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
}
else
m_pRecordset1->MoveNext();
}
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
return 2;
}
int CNorDlg2::Money(CString strOutTime , CString strInTime)
{
char *a,*b ;
int oldy,oldm,oldd,newy,newm,newd;
int s=0;
a=(char*)(LPCSTR)strOutTime;
b=(char*)(LPCSTR)strInTime;
oldy=a[0]*1000+a[1]*100+a[2]*10+a[3];
oldm=a[4]*10+a[5];
oldd=a[6]*10+a[7];
newy=b[0]*1000+b[1]*100+b[2]*10+b[3];
newm=b[4]*10+b[5];
newd=b[6]*10+b[7];
newy=(newy-oldy)*365;
newm=fabs(newm-oldm)*30;
newd=fabs(newd-oldd);
s=newy+newm+newd;
if(s>30)
{
s=(s-30)*0.5;
}
else
s=0;
return s;
}
HBRUSH CNorDlg2::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
if(nCtlColor==CTLCOLOR_LISTBOX)
{
//pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(233,233,220));
HBRUSH b=CreateSolidBrush(RGB(233,233,220));
return b;
}
else if(nCtlColor==CTLCOLOR_SCROLLBAR)
{
//pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(233,233,220));
HBRUSH b=CreateSolidBrush(RGB(233,233,220));
return b;
}
else if(nCtlColor==CTLCOLOR_EDIT)
{
//pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(233,233,220));
HBRUSH b=CreateSolidBrush(RGB(233,233,220));
return b;
}
else if(nCtlColor==CTLCOLOR_STATIC)
{
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(160,180,220));
HBRUSH b=CreateSolidBrush(RGB(160,180,220));
return b;
}
else if(nCtlColor==CTLCOLOR_DLG)
{
pDC->SetTextColor(RGB(0,0,0));
pDC->SetBkColor(RGB(160,180,220));
HBRUSH b=CreateSolidBrush(RGB(160,180,220));
return b;
}
// TODO: Return a different brush if the default is not desired
return hbr;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -