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

📄 bookadddlg.cpp

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

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


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

/////////////////////////////////////////////////////////////////////////////
// CBookAddDlg dialog


CBookAddDlg::CBookAddDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CBookAddDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CBookAddDlg)
	m_isbn = _T("");
	m_author = _T("");
	m_classify = _T("");
	m_describe = _T("");
	m_name = _T("");
	m_press = _T("");
	m_price = _T("");
	m_seriesname = _T("");
	m_theme = _T("");
	m_id = _T("");
	m_inds = _T("");
	m_tiaoma = _T("");
	//}}AFX_DATA_INIT
	m_brush.CreateSolidBrush(RGB(0, 255, 0)); // 生成一绿色刷子 
}


void CBookAddDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CBookAddDlg)
	DDX_Control(pDX, IDC_LIST1, m_ctrList);
	DDX_Text(pDX, IDC_ISBN, m_isbn);
	DDX_Text(pDX, IDC_AUTHOR, m_author);
	DDX_Text(pDX, IDC_CLASSIFY, m_classify);
	DDX_Text(pDX, IDC_DESCRIBE, m_describe);
	DDX_Text(pDX, IDC_NAME, m_name);
	DDX_Text(pDX, IDC_PRESS, m_press);
	DDX_Text(pDX, IDC_PRICE, m_price);
	DDX_Text(pDX, IDC_SERIESNAME, m_seriesname);
	DDX_Text(pDX, IDC_THEME, m_theme);
	DDX_Text(pDX, IDC_ID, m_id);
	DDX_Text(pDX, IDC_INDS, m_inds);
	DDX_Text(pDX, IDC_TIAOMA, m_tiaoma);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CBookAddDlg, CDialog)
	//{{AFX_MSG_MAP(CBookAddDlg)
	ON_BN_CLICKED(IDC_ADD, OnAdd)
	ON_WM_CTLCOLOR()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CBookAddDlg message handlers
BOOL CBookAddDlg::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);
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}
void CBookAddDlg::OnAdd() 
{
	// TODO: Add your control notification handler code here
   
 	UpdateData();
	m_id.TrimRight();
	m_isbn.TrimRight();
	m_name.TrimRight();
	m_author.TrimRight();
	m_press.TrimRight();
	m_theme.TrimRight();
	m_classify.TrimRight();
	m_inds.TrimRight();
	m_price.TrimRight();
	m_seriesname.TrimRight();
	m_describe.TrimRight();
	m_tiaoma.TrimRight();
	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;
	strSQL.Format("select * from BOOK where Bid='%s'",m_id);
	m_pset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
	//若库中有该图书条码记录
    if(m_pset->GetRecordCount()!=0)
	{  
		MessageBox("库中已有该图书条码记录,请核对!","新书登记入库",MB_OK|MB_ICONINFORMATION);
        m_pset->Close();
		return;
	}  
	else
	{  
		m_pset->Close();
        if(m_id==""||m_isbn==""||m_author==""||m_classify==""||m_describe==""||m_name==""||m_press==""
		   ||m_price==""||m_seriesname==""||m_theme==""||m_inds== ""||m_tiaoma=="")
		{
		    MessageBox("请正确填写要求的数据","新书入库登记");
		    return;
		}	 
	 	strSQL.Format("select * from BOOK");
	    m_pset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
        m_pset->AddNew();
	  
		m_pset->SetFieldNull(&(m_pset->m_Bid),FALSE);
	    m_pset->m_Bid=m_id;
			
		m_pset->SetFieldNull(&(m_pset->m_Bisbn),FALSE);
	    m_pset->m_Bisbn=m_isbn;

		m_pset->SetFieldNull(&(m_pset->m_Bname),FALSE);
	    m_pset->m_Bname=m_name;

		m_pset->SetFieldNull(&(m_pset->m_Bauthor),FALSE);
	    m_pset->m_Bauthor=m_author;

		m_pset->SetFieldNull(&(m_pset->m_Bpress),FALSE);
	    m_pset->m_Bpress=m_press;

		m_pset->SetFieldNull(&(m_pset->m_Btheme),FALSE);
	    m_pset->m_Btheme=m_theme;

		m_pset->SetFieldNull(&(m_pset->m_Bclassify),FALSE);
	    m_pset->m_Bclassify=m_classify;

		m_pset->SetFieldNull(&(m_pset->m_Binds),FALSE);
	    m_pset->m_Binds=m_inds;

		m_pset->SetFieldNull(&(m_pset->m_Bprice),FALSE);
	    m_pset->m_Bprice=m_price;

		m_pset->SetFieldNull(&(m_pset->m_Bseriesname),FALSE);
	    m_pset->m_Bseriesname=m_seriesname;

		m_pset->SetFieldNull(&(m_pset->m_Bdescribe),FALSE);
	    m_pset->m_Bdescribe=m_describe;

		m_pset->SetFieldNull(&(m_pset->m_Btiaoma),FALSE);
	    m_pset->m_Btiaoma=m_tiaoma;

		m_pset->Update();
	    m_pset->Requery();
	
	    m_pset->Close();
	    m_database.Close();
	    MessageBox("Adding new books successfully!","新书入库登记");
        OnButtonNewBooks() ;
		m_id.Empty();
	    m_isbn.Empty();
	    m_name.Empty();
	    m_press.Empty();
	    m_theme.Empty();
	    m_author.Empty();
	    m_classify.Empty();
        m_inds.Empty();
	    m_price.Empty();
	    m_seriesname.Empty();
	    m_describe.Empty();
	     m_tiaoma.Empty();

	   UpdateData(FALSE);  
	   return;

        
	 }
      
	   
	

}
  //--------list ctrl 增加 当前记录项-------------
void CBookAddDlg::OnButtonNewBooks() 
{
	UpdateData();
	
    char buf[50];
	static int i=0;
    CString strTemp;
     
	    // 列表控件插入index
	 	m_ctrList.InsertItem(i,buf);
	
		m_ctrList.SetItemText(i,0,m_id);
       
		m_ctrList.SetItemText(i,1,m_isbn);
	 
		m_ctrList.SetItemText(i,2,m_name);

		m_ctrList.SetItemText(i,3,m_author);

		m_ctrList.SetItemText(i,4,m_press);

		m_ctrList.SetItemText(i,5,m_theme);
	 
		m_ctrList.SetItemText(i,6,m_classify);
        m_ctrList.SetItemText(i,7,m_inds);
		 
		m_ctrList.SetItemText(i,8,m_price);

		m_ctrList.SetItemText(i,9,m_seriesname);

		m_ctrList.SetItemText(i,10,m_describe);
        m_ctrList.SetItemText(i,11,m_tiaoma);

        i++;
		UpdateData(FALSE);  
}
 
void CBookAddDlg::OnCancel() 
{
	// TODO: Add extra cleanup here
		if(m_database.IsOpen())
		m_database.Close();
	CDialog::OnCancel();
}


HBRUSH CBookAddDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
	
	// TODO: Change any attributes of the DC here
	
	// TODO: Return a different brush if the default is not desired
	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)); 
	}
	if(nCtlColor==  CTLCOLOR_LISTBOX) 
	{
       pDC->SetTextColor(RGB(0,0,255));     
		//pDC->SetBkMode(TRANSPARENT); 
	}

	return hbr;
}

⌨️ 快捷键说明

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