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

📄 nordlg1.cpp

📁 自己 写的 玩下 还有 很多 功能要 大家一起 开发
💻 CPP
字号:
// NorDlg1.cpp : implementation file
//

#include "stdafx.h"
#include "图书管理系统.h"
#include "NorDlg1.h"
#include "图书管理系统Dlg.h"
#include "LaodingDlg1.h"


#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CNorDlg1 dialog

extern CMyApp theApp;

CNorDlg1::CNorDlg1(CWnd* pParent /*=NULL*/)
	: CDialog(CNorDlg1::IDD, pParent)
{
	//{{AFX_DATA_INIT(CNorDlg1)
	m_BkID = _T("");
	m_BkRead = _T("");
	m_BkName = _T("");
	m_ReadID = _T("");
	//}}AFX_DATA_INIT
}


void CNorDlg1::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CNorDlg1)
	DDX_Text(pDX, IDC_BKID, m_BkID);
	DDX_Text(pDX, IDC_BKEDITER, m_BkRead);
	DDX_Text(pDX, IDC_BKNAME, m_BkName);
	DDX_Text(pDX, IDC_ReadID, m_ReadID);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CNorDlg1, CDialog)
	//{{AFX_MSG_MAP(CNorDlg1)
	ON_BN_CLICKED(IDC_BTN_BACK, OnBtnBack)
	ON_BN_CLICKED(IDC_BTN_LOCK, OnBtnLock)
	ON_BN_CLICKED(IDC_BTN_OUT, OnBtnOut)
	ON_BN_CLICKED(IDCANCLE, OnCancle)
	ON_WM_CTLCOLOR()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CNorDlg1 message handlers

void CNorDlg1::OnBtnBack() 
{
	// TODO: Add your control notification handler code here
	CMyDlg dlg;
	dlg.DoModal();
}

void CNorDlg1::OnBtnLock() 
{
	// TODO: Add your control notification handler code here
/*	bFALG=true;
	  if   (bFALG)   
          {   
		      
                  SystemParametersInfo(SPI_SCREENSAVERRUNNING,1,NULL,0);   
                   EnableWindow(FALSE);   
          }   
          else   
        {   
                  SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, NULL,0);   
                  EnableWindow(TRUE);   
        }   */
	CLaodingDlg1 dlg;
	dlg.DoModal();

}

void CNorDlg1::OnBtnOut() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
	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("借阅成功!");/*Read1(m_ReadID)*/;break;
	case 3:AfxMessageBox("没找到图书!");break;
	case 4:AfxMessageBox("已经被借阅!");break;
	case 5:AfxMessageBox("没有该读者");break;
	default:break;
	}
}
 


BOOL CNorDlg1::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
}

int CNorDlg1::Read(CString m_BkID,CString m_ReadID)
{
     int flag;
     flag=0;
	_variant_t var1;
	CString  strBkID,strBkName,strOutTime,strBkRead,strBkFlag;/*图书库*/
	strBkID=strBkName=strOutTime=strBkRead=strBkFlag="";

	_variant_t var;
    CString  strReadID,strReadNum;/*读者库*/
	strReadID=strReadNum="";
	///////////////////////////////////////////////////////////////////////////////////////////
	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(strReadID==m_ReadID && flag==0)
			{		
				flag=1;
				if(strReadNum=="3")
				{	
					return 1;
				}
				if(strReadNum=="2")
				{
					strReadNum='3';
					try
					{
						m_pRecordset2->PutCollect("EdNum", _variant_t(strReadNum));
						m_pRecordset2->Update();
					}
					catch(_com_error *e)
					{
						AfxMessageBox(e->ErrorMessage());
						
					}
				}
				if(strReadNum=="1")
				{
					strReadNum='2';
					try
					{
						
						m_pRecordset2->PutCollect("EdNum", _variant_t(strReadNum));
						m_pRecordset2->Update();
					}
					catch(_com_error *e)
					{
						AfxMessageBox(e->ErrorMessage());
						
					}
				}
				if(strReadNum=="0")
				{
					strReadNum='1';
					try
					{
						m_pRecordset2->PutCollect("EdNum", _variant_t(strReadNum));
						m_pRecordset2->Update();
					}
					catch(_com_error *e)
					{
						AfxMessageBox(e->ErrorMessage());
						
					}
				}
			}	
			
			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);
			}
			var1= m_pRecordset1->GetCollect("BkFlag");
			if(var1.vt != VT_NULL)
			{
			    strBkFlag = (LPCSTR)_bstr_t(var1);
			}
			if(m_BkID==strBkID )
			{
				if(strBkFlag=="")
				{
					strBkFlag=m_ReadID;
					CString strOutTime=time.Format("%Y%m%d");
					try
					{
						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_OutTime,strOutTime);
						return 2;
					}
					catch(_com_error *e)
					{
						AfxMessageBox(e->ErrorMessage());
					}		
				}
				else 
				{ 
					var1= m_pRecordset1->GetCollect("BkData");
					if(var1.vt != VT_NULL)
					{
						strOutTime = (LPCSTR)_bstr_t(var1);
					}
	                SetDlgItemText(IDC_BKEDITER,strBkRead);
					SetDlgItemText(IDC_BKNAME,strBkName);
					SetDlgItemText(IDC_OutTime,strOutTime);
					return 4;
				}
				
			}
			else
				m_pRecordset1->MoveNext();
		}
	}
	catch(_com_error *e)
	{
		AfxMessageBox(e->ErrorMessage());
	}
	return 3;
	
	
}




BOOL CNorDlg1::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 CNorDlg1::OnCancle() 
{
	// TODO: Add your control notification handler code here
	CNorDlg1 dlg1;
	dlg1.OnCancle();
}

HBRUSH CNorDlg1::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 + -