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

📄 nordlg2.cpp

📁 自己 写的 玩下 还有 很多 功能要 大家一起 开发
💻 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 + -