📄 bfiledlg.cpp
字号:
// BfileDlg.cpp : implementation file
//
#include "stdafx.h"
#include "MyLib.h"
#include "BfileDlg.h"
#include "EditDlg.h"
#include "DeleteDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CBfileDlg dialog
CBfileDlg::CBfileDlg(CWnd* pParent /*=NULL*/)
: CDialog(CBfileDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CBfileDlg)
m_AUTHOR = _T("");
m_FID = _T("");
m_ID = _T("");
m_IO = FALSE;
m_FNAME = _T("");
m_NAME = _T("");
m_OPER = _T("");
m_PRICE = 0.0f;
m_PUB = _T("");
m_TYPEID = _T("");
m_DATE = 0;
//}}AFX_DATA_INIT
}
void CBfileDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CBfileDlg)
DDX_Text(pDX, IDC_AUTHOR, m_AUTHOR);
DDV_MaxChars(pDX, m_AUTHOR, 50);
DDX_Text(pDX, IDC_FID, m_FID);
DDV_MaxChars(pDX, m_FID, 20);
DDX_Text(pDX, IDC_ID, m_ID);
DDV_MaxChars(pDX, m_ID, 20);
DDX_Check(pDX, IDC_IO, m_IO);
DDX_Text(pDX, IDC_FNAME, m_FNAME);
DDV_MaxChars(pDX, m_FNAME, 50);
DDX_Text(pDX, IDC_NAME, m_NAME);
DDV_MaxChars(pDX, m_NAME, 50);
DDX_Text(pDX, IDC_OPER, m_OPER);
DDV_MaxChars(pDX, m_OPER, 20);
DDX_Text(pDX, IDC_PRICE, m_PRICE);
DDV_MinMaxFloat(pDX, m_PRICE, 0.f, 1000.f);
DDX_Text(pDX, IDC_PUB, m_PUB);
DDV_MaxChars(pDX, m_PUB, 50);
DDX_Text(pDX, IDC_TYPEID, m_TYPEID);
DDV_MaxChars(pDX, m_TYPEID, 20);
DDX_Control(pDX, IDC_LIST1, m_List);
DDX_DateTimeCtrl(pDX, IDC_DATE, m_DATE);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CBfileDlg, CDialog)
//{{AFX_MSG_MAP(CBfileDlg)
ON_BN_CLICKED(IDC_EXIT, OnExit)
ON_BN_CLICKED(IDC_FIND, OnFind)
ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList)
ON_BN_CLICKED(IDC_ADD, OnAdd)
ON_BN_CLICKED(IDC_EDIT, OnEdit)
ON_BN_CLICKED(IDC_DELETE, OnDelete)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
BOOL CBfileDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_List.InsertColumn(0,"图书ID");
m_List.InsertColumn(1,"图书名称");
m_List.InsertColumn(2,"作者");
m_List.InsertColumn(3,"类型ID");
RECT rect;
m_List.GetWindowRect(&rect);
int wid=rect.right-rect.left;
m_List.SetColumnWidth(0,wid/4);
m_List.SetColumnWidth(1,wid/4);
m_List.SetColumnWidth(2,wid/4);
m_List.SetColumnWidth(3,wid/4);
m_List.SetExtendedStyle(LVS_EX_FULLROWSELECT);
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CBfileDlg message handlers
bool CBfileDlg::DisplayRecord()
{
UpdateData(true);
int i=0;
while(!bfileset.IsEOF())
{
m_ID = bfileset.m_BOOKID;
m_NAME = bfileset.m_BOOKNAME;
m_AUTHOR = bfileset.m_AUTHOR;
m_TYPEID = bfileset.m_TYPEID;
m_List.InsertItem(i,m_ID);
m_List.SetItemText(i,1,m_NAME);
m_List.SetItemText(i,2,m_AUTHOR);
m_List.SetItemText(i,3,m_TYPEID);
bfileset.MoveNext();
i++;
}
UpdateData(false);
return true;
}
void CBfileDlg::OnExit()
{
if (bfileset.IsOpen())
{
bfileset.Close();
}
CDialog::OnCancel();
}
void CBfileDlg::OnFind()
{
m_List.DeleteAllItems();
UpdateData(true);
CString sqlstr = "SELECT * FROM BOOKINFM WHERE BOOKID='";
sqlstr += m_FID;
sqlstr += "' OR BOOKNAME='";
sqlstr += m_FNAME;
sqlstr += "'";
if(bfileset.IsOpen())
{
bfileset.Close();
}
if(!bfileset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr))
{
MessageBox("图书表打开失败!");
return;
}
if(!bfileset.IsEOF())
{
DisplayRecord();
bfileset.Close();
}
else
{
MessageBox("该书不存在!");
bfileset.Close();
}
}
void CBfileDlg::OnClickList(NMHDR* pNMHDR, LRESULT* pResult)
{
char ID[20];
POSITION pos = m_List.GetFirstSelectedItemPosition();
if (pos != NULL)
{
int n = m_List.GetNextSelectedItem(pos);
m_List.GetItemText(n,0,ID,20);
if (bfileset.IsOpen())
{
bfileset.Close();
}
CString sqlstr = "SELECT * FROM BOOKINFM WHERE BOOKID='";
sqlstr += ID;
sqlstr += "'";
if (!bfileset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr))
{
MessageBox("图书表打开失败!");
return;
}
m_TYPEID = bfileset.m_TYPEID;
m_AUTHOR = bfileset.m_AUTHOR;
m_PUB = bfileset.m_PUB;
m_ID = bfileset.m_BOOKID;
m_PRICE = bfileset.m_PRICE;
m_NAME = bfileset.m_BOOKNAME;
m_OPER = bfileset.m_OPER;
m_DATE = bfileset.m_INTIME;
m_IO = bfileset.m_IO;
bfileset.Close();
UpdateData(FALSE);
}
*pResult = 0;
}
void CBfileDlg::OnAdd()
{
UpdateData(TRUE);
if(m_ID.IsEmpty())
{
MessageBox("图书ID不能为空!");
return;
}
if(bfileset.IsOpen())
{
bfileset.Close();
}
CString sqlstr = "SELECT * FROM BOOKINFM WHERE BOOKID='";
sqlstr += m_ID;
sqlstr += "'";
if(bfileset.IsOpen())
{
bfileset.Close();
}
if(!bfileset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr))
{
MessageBox("图书表打开失败!");
return;
}
if(!bfileset.IsEOF())
{
MessageBox("该ID已存在!");
bfileset.Close();
return;
}
bfileset.AddNew();
bfileset.m_TYPEID = m_TYPEID;
bfileset.m_AUTHOR = m_AUTHOR;
bfileset.m_PUB = m_PUB;
bfileset.m_BOOKID = m_ID;
bfileset.m_PRICE = m_PRICE;
bfileset.m_BOOKNAME = m_NAME;
bfileset.m_OPER = m_OPER;
bfileset.m_INTIME = m_DATE;
bfileset.m_IO = m_IO;
bfileset.Update();
bfileset.Requery();
MessageBox("添加成功!");
bfileset.Close();
}
void CBfileDlg::OnEdit()
{
UpdateData(TRUE);
if(m_ID.IsEmpty())
{
MessageBox("图书ID不能为空!");
return;
}
CString sqlstr = "SELECT * FROM BOOKINFM WHERE BOOKID='";
sqlstr += m_ID;
sqlstr += "'";
if(bfileset.IsOpen())
{
bfileset.Close();
}
if(!bfileset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr))
{
MessageBox("图书表打开失败!");
return;
}
if(bfileset.IsEOF())
{
MessageBox("该ID不存在!");
bfileset.Close();
return;
}
CEditDlg dlg;
if(dlg.DoModal()==IDOK)
{
bfileset.Edit();
bfileset.m_TYPEID = m_TYPEID;
bfileset.m_AUTHOR = m_AUTHOR;
bfileset.m_PUB = m_PUB;
bfileset.m_BOOKID = m_ID;
bfileset.m_PRICE = m_PRICE;
bfileset.m_BOOKNAME = m_NAME;
bfileset.m_OPER = m_OPER;
bfileset.m_INTIME = m_DATE;
bfileset.m_IO = m_IO;
if(bfileset.Update())
{
bfileset.Requery();
MessageBox("修改成功!");
}
bfileset.Close();
}
else bfileset.Close();
}
void CBfileDlg::OnDelete()
{
UpdateData(TRUE);
if(m_ID.IsEmpty())
{
MessageBox("图书ID不能为空!");
return;
}
CString sqlstr = "SELECT * FROM BOOKINFM WHERE BOOKID='";
sqlstr += m_ID;
sqlstr += "'";
if(bfileset.IsOpen())
{
bfileset.Close();
}
if(!bfileset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr))
{
MessageBox("图书表打开失败!");
return;
}
if(bfileset.IsEOF())
{
MessageBox("该ID不存在!");
bfileset.Close();
return;
}
CDeleteDlg dlg;
if(dlg.DoModal()==IDOK)
{
bfileset.Delete();
bfileset.Requery();
MessageBox("删除成功!");
bfileset.Close();
}
else bfileset.Close();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -