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

📄 readerdlg.cpp

📁 一个图书管理系统
💻 CPP
字号:
// ReaderDlg.cpp : implementation file
//

#include "stdafx.h"
#include "Library.h"
#include "ReaderDlg.h"
#include "LibrarySet.h"
#include "FindDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CReaderDlg dialog


CReaderDlg::CReaderDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CReaderDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CReaderDlg)
	m_strcount = _T("");
	m_strname = _T("");
	m_strnumberID = _T("");
	m_strproofID = _T("");
	//}}AFX_DATA_INIT
}


void CReaderDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CReaderDlg)
	DDX_Control(pDX, IDC_LIST_READER, m_ctrlist);
	DDX_Text(pDX, IDC_EDIT_COUNT, m_strcount);
	DDX_Text(pDX, IDC_EDIT_NAME, m_strname);
	DDX_Text(pDX, IDC_EDIT_NUMBERID, m_strnumberID);
	DDX_Text(pDX, IDC_EDIT_PROOFID, m_strproofID);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CReaderDlg, CDialog)
	//{{AFX_MSG_MAP(CReaderDlg)
	ON_BN_CLICKED(IDC_BUTTON_DEL, OnButtonDel)
	ON_NOTIFY(NM_CLICK, IDC_LIST_READER, OnClickListReader)
	ON_BN_CLICKED(IDC_BUTTON_RESEARCH, OnButtonResearch)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CReaderDlg message handlers

BOOL CReaderDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
    //设置列表
	m_ctrlist.InsertColumn(0,"图书证号");
    m_ctrlist.InsertColumn(1,"姓名");
	m_ctrlist.InsertColumn(2,"借书数");
	m_ctrlist.InsertColumn(3,"止借标志");
	m_ctrlist.InsertColumn(4,"身份证号");
	m_ctrlist.SetColumnWidth(0,80);
	m_ctrlist.SetColumnWidth(1,80);
	m_ctrlist.SetColumnWidth(2,80);
	m_ctrlist.SetColumnWidth(3,80);
	m_ctrlist.SetColumnWidth(4,120);
	m_ctrlist.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CReaderDlg::RefreshData()
{
	m_ctrlist.SetFocus();
    //清除用户列表
	m_ctrlist.DeleteAllItems();
	m_ctrlist.SetRedraw(FALSE);
	CLibrarySet m_readerset;
	CString strSQL;
	UpdateData(TRUE);
	strSQL.Format("select * from readerinfo");
	if(!m_readerset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
	{
		MessageBox("打开数据库错误!","数据库错误",MB_OK);
		return ;
	}
	//添加用户ID到列表中
	int i=0;
	while(!m_readerset.IsEOF())
	{
		m_ctrlist.InsertItem(i,m_readerset.m_Proof_ID);
        m_ctrlist.SetItemText(i,1,m_readerset.m_Name);
		CString str;
		str.Format("%d",m_readerset.m_Borrow_Amount);
		m_ctrlist.SetItemText(i,2,str);
		m_ctrlist.SetItemText(i,3,m_readerset.m_Flag);
		m_ctrlist.SetItemText(i,4,m_readerset.m_ID_number);
		m_readerset.MoveNext();
		i++;
	}
	m_readerset.Close();
	m_ctrlist.SetRedraw(TRUE);
}

void CReaderDlg::OnOK() 
{
    UpdateData(TRUE);
	//检查是否输入了必填的信息
	if(m_strproofID.IsEmpty())
	{
		AfxMessageBox("请输入图书证号!");
		return ;
	}
	if(m_strname.IsEmpty())
	{
		AfxMessageBox("请输入姓名!");
		return ;
	}
	
	if(GetCheckedRadioButton(IDC_RADIO1,IDC_RADIO2)==0)
	{
		AfxMessageBox("请选择是否止借!");
		return ;
	}
	if(m_strnumberID.IsEmpty())
	{
		AfxMessageBox("请输入身份证号");
		return;
	}
	CLibrarySet m_readerset;
	CString strSQL;
	strSQL.Format("select * from readerinfo where Proof_ID='%s'",m_strproofID);
	if(!m_readerset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
	{
		MessageBox("数据库打开失败!","数据库错误",MB_OK);
		return ;
	}
	if(m_readerset.GetRecordCount()!=0)
	{
		m_readerset.Close();
		AfxMessageBox("此图书编号已存在,请重新填写!");
		return ;
	}
	m_readerset.AddNew();
	m_readerset.m_Proof_ID=m_strproofID;
	m_readerset.m_Name=m_strname;
	UINT nflag=GetCheckedRadioButton(IDC_RADIO1,IDC_RADIO2);
	CString flag;
	switch(nflag){
	case IDC_RADIO1:
		flag="是";
		break;
	case IDC_RADIO2:
		flag="否";
		break;
	}
	m_readerset.m_Flag=flag;
	int count=atoi(m_strcount);
	m_readerset.m_Borrow_Amount=count;
    m_readerset.m_ID_number=m_strnumberID;
	m_readerset.Update();
	m_readerset.Close();
    RefreshData();
	AfxMessageBox("读者添加成功");
	//CDialog::OnOK();
}

void CReaderDlg::OnButtonDel() 
{
    UpdateData(TRUE);
	//判断是否指定用户
	if(m_strproofID=="")
	{
		MessageBox("请选择一个用户");
		return;
	}
	CString strSQL;
	strSQL.Format("select * from readerinfo where Proof_ID='%s'",m_strproofID);
	CLibrarySet m_readerset;
    if(!m_readerset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
	{
		MessageBox("数据库打开失败!","数据库错误",MB_OK);
		return ;
	}
	m_readerset.Delete();
	m_readerset.Close();
	//刷新用户界面
	RefreshData();
	m_strproofID=_T("");
	m_strname=_T("");
	m_strcount=_T("");
	((CButton*)GetDlgItem(IDC_RADIO1))->SetCheck(BST_UNCHECKED);
	((CButton*)GetDlgItem(IDC_RADIO2))->SetCheck(BST_UNCHECKED);
	m_strnumberID=_T("");
	UpdateData(FALSE);
}

void CReaderDlg::OnClickListReader(NMHDR* pNMHDR, LRESULT* pResult) 
{
    CString strSQL;
	UpdateData(TRUE);
	//从数据库中选择所选用户ID的资料
    int i=m_ctrlist.GetSelectionMark();
	m_strproofID=m_ctrlist.GetItemText(i,0);
	strSQL.Format("select * from readerinfo where Proof_ID='%s'",m_strproofID);
	CLibrarySet m_readerset;
	if(!m_readerset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
	{
		MessageBox("打开数据库失败","数据库错误",MB_OK);
		return ;
	}
	m_strname=m_readerset.m_Name;
    CString count,flag;
	count.Format("%d",m_readerset.m_Borrow_Amount);
	m_strcount=count;
	flag=m_readerset.m_Flag;
	m_strnumberID=m_readerset.m_ID_number;
	if(flag=="是")
	{
	    ((CButton*)GetDlgItem(IDC_RADIO1))->SetCheck(BST_CHECKED);
		((CButton*)GetDlgItem(IDC_RADIO2))->SetCheck(BST_UNCHECKED);
	}
	else
	{
		((CButton*)GetDlgItem(IDC_RADIO1))->SetCheck(BST_UNCHECKED);
		((CButton*)GetDlgItem(IDC_RADIO2))->SetCheck(BST_CHECKED);
	}
	m_readerset.Close();
	UpdateData(FALSE);	
	*pResult = 0;
}

void CReaderDlg::OnButtonResearch() 
{
   CFindDlg findlg;
   if(findlg.DoModal()==IDCANCEL)
	   return ;
   UpdateData(TRUE);
   m_strproofID=findlg.m_strbookID;
   CLibrarySet m_readerset;
   CString strSQL;
   strSQL.Format("select * from readerinfo where Proof_ID='%s'",m_strproofID);
   if(!m_readerset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
   {
	   MessageBox("数据库打开失败","数据库错误",MB_OK);
	   return ;
   }
   m_ctrlist.DeleteAllItems();
   m_ctrlist.SetRedraw(FALSE);
   if(m_readerset.GetRecordCount()==0)
   {
	   AfxMessageBox("此图书证号不存在!");
	   return ;
   }
   m_ctrlist.InsertItem(0,m_readerset.m_Proof_ID);
   m_ctrlist.SetItemText(0,1,m_readerset.m_Name);
   CString str;
   str.Format("%d",m_readerset.m_Borrow_Amount);
   m_ctrlist.SetItemText(0,2,str);
   m_ctrlist.SetItemText(0,3,m_readerset.m_Flag);
   m_ctrlist.SetItemText(0,4,m_readerset.m_ID_number);
   m_readerset.Close();
   m_ctrlist.SetRedraw(TRUE);

}

⌨️ 快捷键说明

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