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

📄 bookcheckdlg.cpp

📁 采用MFC+SQLSERVER 2000的图书管理系统,ODBC方式连接数据库。功能包括 书籍管理
💻 CPP
字号:
// BookCheckDlg.cpp : implementation file
//

#include "stdafx.h"
#include "library.h"
#include "BookCheckDlg.h"
#include "BookSet.h"

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

/////////////////////////////////////////////////////////////////////////////
// CBookCheckDlg dialog


CBookCheckDlg::CBookCheckDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CBookCheckDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CBookCheckDlg)
	m_radio1 = 0;
	m_radio2 = 0;
	m_radio3 = 0;
	m_bookauthor = _T("");
	m_bookname = _T("");
	m_id = _T("");
	m_inds = _T("");
	//}}AFX_DATA_INIT
}


void CBookCheckDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CBookCheckDlg)
	DDX_Control(pDX, IDC_LIST1, m_ctrList);
	DDX_Radio(pDX, IDC_RADIO1, m_radio1);
	DDX_Radio(pDX, IDC_RADIO3, m_radio2);
	DDX_Radio(pDX, IDC_RADIO5, m_radio3);
	DDX_Text(pDX, IDC_BOOKAUTHOR, m_bookauthor);
	DDX_Text(pDX, IDC_BOOKNAME, m_bookname);
	DDX_Text(pDX, IDC_ID, m_id);
	DDX_Text(pDX, IDC_INDS, m_inds);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CBookCheckDlg, CDialog)
	//{{AFX_MSG_MAP(CBookCheckDlg)
	ON_BN_CLICKED(IDC_RADIO1, OnRadio1)
	ON_BN_CLICKED(IDC_RADIO2, OnRadio2)
	ON_BN_CLICKED(IDC_RADIO3, OnRadio3)
	ON_BN_CLICKED(IDC_RADIO4, OnRadio4)
	ON_BN_CLICKED(IDC_RADIO5, OnRadio5)
	ON_BN_CLICKED(IDC_RADIO6, OnRadio6)
	ON_WM_CTLCOLOR()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CBookCheckDlg message handlers

BOOL CBookCheckDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
    	m_ctrList.InsertColumn(0,"图书条码");
	m_ctrList.InsertColumn(1,"isbn号");
	m_ctrList.InsertColumn(2,"书名");
	m_ctrList.InsertColumn(3,"作者");
	m_ctrList.InsertColumn(4,"出版社");
	m_ctrList.InsertColumn(5,"主题词");
	m_ctrList.InsertColumn(6,"分类号");
	m_ctrList.InsertColumn(7,"索引号");

	m_ctrList.InsertColumn(8,"定价");
    m_ctrList.InsertColumn(9,"系列书名");
	m_ctrList.InsertColumn(10,"描述");
	m_ctrList.InsertColumn(11,"出版区条码");
	
	RECT rect;
	m_ctrList.GetWindowRect(&rect);
	int Width=rect.right-rect.left;
	m_ctrList.SetColumnWidth(0,Width/12);
	m_ctrList.SetColumnWidth(1,Width/12);
	m_ctrList.SetColumnWidth(2,Width/12);
	m_ctrList.SetColumnWidth(3,Width/12);
	m_ctrList.SetColumnWidth(4,Width/12);
	m_ctrList.SetColumnWidth(5,Width/12);
	m_ctrList.SetColumnWidth(6,Width/12);
	m_ctrList.SetColumnWidth(7,Width/12);
	m_ctrList.SetColumnWidth(8,Width/12);
	m_ctrList.SetColumnWidth(9,Width/12);
	m_ctrList.SetColumnWidth(10,Width/12);
	m_ctrList.SetColumnWidth(11,Width/12);
 
	m_ctrList.SetExtendedStyle(LVS_EX_FULLROWSELECT);
    
	 GetDlgItem(IDC_BOOKNAME)->EnableWindow(false);
	GetDlgItem(IDC_BOOKAUTHOR)->EnableWindow(false);
	GetDlgItem(IDC_INDS)->EnableWindow(false);

	m_brush.CreateSolidBrush(RGB(0, 255, 0)); // 生成一绿色刷子 
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CBookCheckDlg::OnOK() 
{
	// TODO: Add extra validation here

	UpdateData();
	m_inds.TrimLeft();
	m_inds.TrimRight();
	m_id.TrimLeft();
	m_id.TrimRight();
	m_bookauthor.TrimLeft();
	m_bookauthor.TrimRight();
	m_bookname.TrimLeft();
	m_bookname.TrimRight();
   if(m_inds.IsEmpty()&&m_id.IsEmpty()&&m_bookauthor.IsEmpty()&&m_bookname.IsEmpty())
   {
	   MessageBox("请正确填入查询数据!","图书查询");
	   return ;
   }

   	if(!m_database.IsOpen())
	{
		//连接数据源
		if(!m_database.OpenEx("DSN=MySQL;UID=sa;PWD=123;CDatabase::noOdbcDialog"))
		{
			MessageBox("连接数据库失败!","新书登记入库",MB_OK|MB_ICONINFORMATION);
			return;
		}
	}
 	CBookSet *m_pset=new CBookSet(&m_database);  
	CString strSQL;
	if(m_radio1 ==0)
	{
		if(m_radio2==0)
		{
			 strSQL.Format("select * from BOOK where Bid='%s'",m_id);
		}
		else
		{
            strSQL.Format("select * from BOOK where Binds='%s'",m_inds);
		}
	}
 	else
	{
		if(m_radio3==0)
		{
           strSQL.Format("select * from BOOK where Bname='%s'",m_bookname);
		}
		else
		{
          strSQL.Format("select * from BOOK where Bauthor='%s'",m_bookauthor);
		}
	}
	m_pset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);

	while(!m_pset->IsEOF())
	{
		m_pset->MoveNext();
		m_pset->GetRecordCount();
	}
	if(m_pset->GetRecordCount()==0)
	{
		MessageBox("本馆没有这本书!","图书查询");
		m_pset->Close();
		m_database.Close();
		return;
	}
	//处理表格
	m_ctrList.DeleteAllItems();
	m_pset->MoveFirst();
	char buf[50]={'\0'};
	CDBVariant var;
	int i=0;
    CString strTemp;
	while(!m_pset->IsEOF())
	{  

	 	m_ctrList.InsertItem(i,buf);
        strTemp=m_pset->m_Bid;
        m_ctrList.SetItemText(i,0,strTemp);
		strTemp=m_pset->m_Bisbn;
	    m_ctrList.SetItemText(i,1,strTemp);
        strTemp=m_pset->m_Bname;
	    m_ctrList.SetItemText(i,2,strTemp);
		strTemp=m_pset->m_Bauthor;
	    m_ctrList.SetItemText(i,3,strTemp);
		strTemp=m_pset->m_Bpress;
	    m_ctrList.SetItemText(i,4,strTemp);
		strTemp=m_pset->m_Btheme;
	    m_ctrList.SetItemText(i,5,strTemp);
		strTemp=m_pset->m_Bclassify;
	    m_ctrList.SetItemText(i,6,strTemp);
		strTemp=m_pset->m_Binds;
	    m_ctrList.SetItemText(i,7,strTemp);
		strTemp=m_pset->m_Bprice;
	    m_ctrList.SetItemText(i,8,strTemp);
		strTemp=m_pset->m_Bseriesname;
	    m_ctrList.SetItemText(i,9,strTemp);
		strTemp=m_pset->m_Bdescribe;
	    m_ctrList.SetItemText(i,10,strTemp);
        strTemp=m_pset->m_Btiaoma;
	    m_ctrList.SetItemText(i,11,strTemp);
        
		i++;
		m_pset->MoveNext();
		UpdateData(FALSE);    
}  
	m_pset->Close();
	m_database.Close();	 


}

void CBookCheckDlg::OnRadio1() 
{
	// TODO: Add your control notification handler code here
	m_radio1=0;
    GetDlgItem(IDC_BOOKNAME)->EnableWindow(false);
	GetDlgItem(IDC_BOOKAUTHOR)->EnableWindow(false);

	GetDlgItem(IDC_ID)->EnableWindow(true);
	GetDlgItem(IDC_INDS)->EnableWindow(true);
}

void CBookCheckDlg::OnRadio2() 
{
	// TODO: Add your control notification handler code here
	 m_radio1=1;
	  GetDlgItem(IDC_BOOKNAME)->EnableWindow(true);
	GetDlgItem(IDC_BOOKAUTHOR)->EnableWindow(true);

	GetDlgItem(IDC_ID)->EnableWindow(false);
	GetDlgItem(IDC_INDS)->EnableWindow(false);
}

void CBookCheckDlg::OnRadio3() 
{
	// TODO: Add your control notification handler code here
	m_radio2=0;
	GetDlgItem(IDC_ID)->EnableWindow(true);
	GetDlgItem(IDC_INDS)->EnableWindow(false);

}

void CBookCheckDlg::OnRadio4() 
{
	// TODO: Add your control notification handler code here
	m_radio2=1;
	GetDlgItem(IDC_ID)->EnableWindow(false);
	GetDlgItem(IDC_INDS)->EnableWindow(true);
}

void CBookCheckDlg::OnRadio5() 
{
	// TODO: Add your control notification handler code here
	m_radio3=0;
	GetDlgItem(IDC_BOOKNAME)->EnableWindow(true);
	GetDlgItem(IDC_BOOKAUTHOR)->EnableWindow(false);
}

void CBookCheckDlg::OnRadio6() 
{
	// TODO: Add your control notification handler code here
	m_radio3=1;
	GetDlgItem(IDC_BOOKNAME)->EnableWindow(false);
	GetDlgItem(IDC_BOOKAUTHOR)->EnableWindow(true);
}

void CBookCheckDlg::OnCancel() 
{
	// TODO: Add extra cleanup here
	
	CDialog::OnCancel();
}


HBRUSH CBookCheckDlg::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_DLG)
        return m_brush; //返加绿色刷子
	if(nCtlColor==CTLCOLOR_EDIT) 
	{
        pDC->SetTextColor(RGB(0,0,255));     
		pDC->SetBkMode(TRANSPARENT); 
	}
    if(nCtlColor==CTLCOLOR_STATIC) 
	{   
		pDC->SetBkColor(RGB(0, 255, 0));
        pDC->SetTextColor(RGB(255,0,0)); 
		pDC->SetBkMode(TRANSPARENT); 
	}
	if(nCtlColor==  CTLCOLOR_LISTBOX) 
	{
       pDC->SetTextColor(RGB(0,0,255));     
		//pDC->SetBkMode(TRANSPARENT); 
	}

	
	// TODO: Return a different brush if the default is not desired
	return hbr;
}

⌨️ 快捷键说明

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