📄 inbookdlg.cpp
字号:
// InBookDlg.cpp : implementation file
//
#include "stdafx.h"
#include "book.h"
#include "InBookDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CInBookDlg dialog
CInBookDlg::CInBookDlg(CWnd* pParent /*=NULL*/)
: CDialog(CInBookDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CInBookDlg)
m_Date = _T("");
//}}AFX_DATA_INIT
}
void CInBookDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CInBookDlg)
DDX_Control(pDX, IDC_LIST1, m_ListInBook);
DDX_Control(pDX, IDC_COMBO1, m_InBook);
DDX_Text(pDX, IDC_EDIT1, m_Date);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CInBookDlg, CDialog)
//{{AFX_MSG_MAP(CInBookDlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CInBookDlg message handlers
/*函数功能:选择想知道的内容,连接数据库,得到资料输出*/
void CInBookDlg::OnOK()
{
// TODO: Add extra validation here
CString m_Data; //作为从选择框中得到的数据的临时变量
BOOL flag=0; //作为判断是否输入用户名和密码的标志,用来看是否关闭对话框
BOOL sign=0; //作为判断是否有该用户的标志
int m_num=0; //表的行数
BOOL STOP=0;
this->UpdateData(); //得到对话框中的数据
m_ListInBook.DeleteAllItems(); //删除表的内容
if(m_Date == "") //判断是否输入内容,如果没有输出提示
{
::AfxMessageBox("输入内容为空");
flag=1;
}
m_pBookSet.Open(); //打开书籍数据库
m_pLendSet.Open(); //打开借阅记录数据库
m_pReaderSet.Open(); //打开读者数据库
m_pLend2Set.Open();
if(flag==0)
m_InBook.GetLBText(m_InBook.GetCurSel(),m_Data); //将选择框中的数据读出并放入临时寄存器
if(m_Data == "书号"&&flag==0) //选择书号
{
while(!m_pLendSet.IsEOF()) //如果不是末尾
{
if(m_pLendSet.m_Book_ID == atoi(m_Date)) //如果符合
{
sign=0;
CString m_str;
m_str.Format("%d",m_pLendSet.m_Book_ID);
m_ListInBook.InsertItem(m_num,m_str,0); //图书编号
m_pBookSet.MoveFirst(); //指向开始
while(!m_pBookSet.IsEOF()) //如果不是末尾
{
if(m_pLendSet.m_Book_ID == m_pBookSet.m_Book_ID) //查找书号与之对应的书名
{
sign=0;
CString s;
s=m_pBookSet.m_BookName;
s.Remove(' ');
m_ListInBook.SetItemText(m_num,1,s); //输出书号
break; //退出循环
}
else //不是该书
{
m_pBookSet.MoveNext(); //数据下移
sign=1;
}
}
m_str.Format("%d",m_pLendSet.m_Reader_ID);
m_ListInBook.SetItemText(m_num,2,m_str); //读者编号
m_pReaderSet.MoveFirst(); //读者数据指向开始
while(!m_pReaderSet.IsEOF()) //如果不是末尾
{
if(m_pLendSet.m_Reader_ID == m_pReaderSet.m_Reader_ID) //查找读者号与之对应的读者
{
sign=0;
CString s;
s=m_pReaderSet.m_Name;
s.Remove(' ');
m_ListInBook.SetItemText(m_num,3,s); //输出姓名
break;
}
else
{
m_pReaderSet.MoveNext(); //不是该读者数据下移
sign=1;
}
}
m_str = m_pLendSet.m_L_data;
m_str.Remove(' ');
m_ListInBook.SetItemText(m_num,4,m_str); //借期
m_str = m_pLendSet.m_B_data;
m_str.Remove(' ');
m_ListInBook.SetItemText(m_num,5,m_str); //还期
m_num++;
}
m_pLendSet.MoveNext(); //数据下移
}
}
if(m_Data == "借阅证编号"&&flag==0) //选择借阅者编号
{
while(!m_pLendSet.IsEOF()) //如果不是末尾
{
if(m_pLendSet.m_Reader_ID == atoi(m_Date)) //如果符合
{
sign=0;
CString m_str;
m_str.Format("%d",m_pLendSet.m_Book_ID);
m_ListInBook.InsertItem(m_num,m_str,0); //图书编号
m_pBookSet.MoveFirst(); //指向开始
while(!m_pBookSet.IsEOF()) //如果不是末尾
{
if(m_pLendSet.m_Book_ID == m_pBookSet.m_Book_ID) //查找书号与之对应的书名
{
sign=0;
CString s;
s=m_pBookSet.m_BookName;
s.Remove(' ');
m_ListInBook.SetItemText(m_num,1,s); //输出书号
break; //退出循环
}
else //不是该书
{
m_pBookSet.MoveNext(); //数据下移
sign=1;
}
}
m_str.Format("%d",m_pLendSet.m_Reader_ID);
m_ListInBook.SetItemText(m_num,2,m_str); //读者编号
m_pReaderSet.MoveFirst(); //读者数据指向开始
while(!m_pReaderSet.IsEOF()) //如果不是末尾
{
if(m_pLendSet.m_Reader_ID == m_pReaderSet.m_Reader_ID) //查找读者号与之对应的读者
{
sign=0;
CString s;
s=m_pReaderSet.m_Name;
s.Remove(' ');
m_ListInBook.SetItemText(m_num,3,s); //输出姓名
break;
}
else
{
m_pReaderSet.MoveNext(); //不是该读者数据下移
sign=1;
}
}
m_str = m_pLendSet.m_L_data;
m_str.Remove(' ');
m_ListInBook.SetItemText(m_num,4,m_str); //借期
m_str = m_pLendSet.m_B_data;
m_str.Remove(' ');
m_ListInBook.SetItemText(m_num,5,m_str); //还期
m_num++;
}
m_pLendSet.MoveNext(); //数据下移
}
}
if(sign==1)
::AfxMessageBox("输入资料错误");
m_pBookSet.Close(); //关闭书籍记录数据库
m_pLendSet.Close(); //关闭借阅数据库
m_pReaderSet.Close(); //关闭读者数据库
}
/*函数功能:初始化表头*/
BOOL CInBookDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
int j;
m_ListInBook.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
m_ListInBook.InsertColumn(0,_T("书号"),LVCFMT_IMAGE|LVCFMT_LEFT);
m_ListInBook.InsertColumn(1,_T("书名"));
m_ListInBook.InsertColumn(2,_T("借阅证编号"));
m_ListInBook.InsertColumn(3,_T("借阅者姓名"));
m_ListInBook.InsertColumn(4,_T("借阅日期"));
m_ListInBook.InsertColumn(5,_T("应还日期"));
for(j=0;j<6;j++)
{
m_ListInBook.SetColumnWidth(j ,70);
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -