📄 readerdlg.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 + -