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

📄 rfiledlg.cpp

📁 图书管理系统,相对全面,ODBC学习的好材料,仅攻学习,谢绝抄袭
💻 CPP
字号:
// RfileDlg.cpp : implementation file
//

#include "stdafx.h"
#include "MyLib.h"
#include "RfileDlg.h"
#include "EditDlg.h"
#include "DeleteDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CRfileDlg dialog


CRfileDlg::CRfileDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CRfileDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CRfileDlg)
	m_ADDI = _T("");
	m_BIRTH = 0;
	m_COUNT = 0;
	m_DATEF = 0;
	m_DATET = 0;
	m_FID = _T("");
	m_FNAME = _T("");
	m_ID = _T("");
	m_NAME = _T("");
	m_OPER = _T("");
	m_SEX = _T("");
	m_TELL = _T("");
	m_TYPE = _T("");
	m_LOSE = FALSE;
	//}}AFX_DATA_INIT
}


void CRfileDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CRfileDlg)
	DDX_Text(pDX, IDC_ADDI, m_ADDI);
	DDV_MaxChars(pDX, m_ADDI, 50);
	DDX_DateTimeCtrl(pDX, IDC_BIRTH, m_BIRTH);
	DDX_Text(pDX, IDC_COUNT, m_COUNT);
	DDV_MinMaxInt(pDX, m_COUNT, 0, 99);
	DDX_DateTimeCtrl(pDX, IDC_DATEF, m_DATEF);
	DDX_DateTimeCtrl(pDX, IDC_DATET, m_DATET);
	DDX_Text(pDX, IDC_FID, m_FID);
	DDV_MaxChars(pDX, m_FID, 20);
	DDX_Text(pDX, IDC_FNAME, m_FNAME);
	DDV_MaxChars(pDX, m_FNAME, 20);
	DDX_Text(pDX, IDC_ID, m_ID);
	DDV_MaxChars(pDX, m_ID, 20);
	DDX_Text(pDX, IDC_NAME, m_NAME);
	DDV_MaxChars(pDX, m_NAME, 20);
	DDX_Text(pDX, IDC_OPER, m_OPER);
	DDV_MaxChars(pDX, m_OPER, 20);
	DDX_Text(pDX, IDC_SEX, m_SEX);
	DDX_Text(pDX, IDC_TELL, m_TELL);
	DDV_MaxChars(pDX, m_TELL, 20);
	DDX_CBString(pDX, IDC_TYPE, m_TYPE);
	DDV_MaxChars(pDX, m_TYPE, 20);
	DDX_Control(pDX, IDC_LIST1, m_List);
	DDX_Check(pDX, IDC_LOSE, m_LOSE);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CRfileDlg, CDialog)
	//{{AFX_MSG_MAP(CRfileDlg)
	ON_BN_CLICKED(IDC_FIND, OnFind)
	ON_BN_CLICKED(IDC_EXIT, OnExit)
	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 CRfileDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	m_List.InsertColumn(0,"ID");
	m_List.InsertColumn(1,"姓名");
	m_List.InsertColumn(2,"性别");
	m_List.InsertColumn(3,"类型");
	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;
}
/////////////////////////////////////////////////////////////////////////////
// CRfileDlg message handlers
bool CRfileDlg::DisplayRecord()
{
	UpdateData(true);
	int i=0;
	while(!rfileset.IsEOF())
	{
		m_ID = rfileset.m_ID;
		m_NAME = rfileset.m_NAME;
		m_SEX = rfileset.m_SEX;
		m_TYPE = rfileset.m_TYPE;
		m_List.InsertItem(i,m_ID);
		m_List.SetItemText(i,1,m_NAME);
		m_List.SetItemText(i,2,m_SEX);
		m_List.SetItemText(i,3,m_TYPE);
		rfileset.MoveNext();
		i++;
	}
	UpdateData(false);
	return true;
}

void CRfileDlg::OnFind() 
{
	m_List.DeleteAllItems();
	UpdateData(true);
	CString sqlstr = "SELECT * FROM READERINFM WHERE ID='";
	sqlstr += m_FID;
	sqlstr += "' OR NAME='";
	sqlstr += m_FNAME;
	sqlstr += "'";
	if(rfileset.IsOpen())
	{
		rfileset.Close();
	}
	if(!rfileset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr))
	{
		MessageBox("读者表打开失败!");
		return;	
	}
	
	if(!rfileset.IsEOF())
	{
		
		DisplayRecord();
		rfileset.Close();
	}
	else
	{
		MessageBox("该读者不存在!");
		rfileset.Close();
	}
	
}

void CRfileDlg::OnExit() 
{
	if(rfileset.IsOpen())
	{
		rfileset.Close();
	}
	CDialog::OnCancel();
}

void CRfileDlg::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 (rfileset.IsOpen())
		{
			rfileset.Close();
		}
		CString sqlstr = "SELECT * FROM READERINFM WHERE ID='";
		sqlstr += ID;
		sqlstr += "'";
		if (!rfileset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr))
		{
			MessageBox("读者表打开失败!");
			return;
		}
		m_ADDI = rfileset.m_ADD;
		m_BIRTH = rfileset.m_BIRTH;
		m_COUNT = rfileset.m_COUNT;
		m_DATEF = rfileset.m_DATEF;
		m_DATET = rfileset.m_DATET;
		m_ID = rfileset.m_ID;
		m_NAME = rfileset.m_NAME;
		m_OPER = rfileset.m_OPER;
		m_SEX = rfileset.m_SEX;
		m_TELL = rfileset.m_TELL;
		m_TYPE = rfileset.m_TYPE;
		m_LOSE = rfileset.m_LOSE;
		rfileset.Close();
		UpdateData(FALSE);
	}
	*pResult = 0;
}

void CRfileDlg::OnAdd() 
{
	UpdateData(TRUE);
	if(m_ID.IsEmpty())
	{
		MessageBox("读者ID不能为空!");
		return;
	}
	if(rfileset.IsOpen())
	{
		rfileset.Close();
	}
	CString sqlstr = "SELECT * FROM READERINFM WHERE ID='";
	sqlstr += m_ID;
	sqlstr += "'";
	if(rfileset.IsOpen())
	{
		rfileset.Close();
	}
	if(!rfileset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr))
	{
		MessageBox("读者表打开失败!");
		return;	
	}
	if(!rfileset.IsEOF())
	{
		MessageBox("该ID已存在!");
		rfileset.Close();
		return;
	}
	rfileset.AddNew();
	rfileset.m_ID = m_ID;
	rfileset.m_NAME = m_NAME;
	rfileset.m_SEX = m_SEX;
	rfileset.m_TYPE = m_TYPE;
	rfileset.m_BIRTH = m_BIRTH;
	rfileset.m_DATEF = m_DATEF;
	rfileset.m_DATET = m_DATET;
	rfileset.m_ADD = m_ADDI;
	rfileset.m_COUNT = m_COUNT;
	rfileset.m_TELL = m_TELL;
	rfileset.m_OPER = m_OPER;
	rfileset.m_LOSE = m_LOSE;
	rfileset.Update();
	rfileset.Requery();
	MessageBox("添加成功!");
	rfileset.Close();
}

void CRfileDlg::OnEdit() 
{
	UpdateData(TRUE);
	if(m_ID.IsEmpty())
	{
		MessageBox("读者ID不能为空!");
		return;
	}
	CString sqlstr = "SELECT * FROM READERINFM WHERE ID='";
	sqlstr += m_ID;
	sqlstr += "'";
	if(rfileset.IsOpen())
	{
		rfileset.Close();
	}
	if(!rfileset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr))
	{
		MessageBox("读者表打开失败!");
		return;	
	}
	if(rfileset.IsEOF())
	{
		MessageBox("该ID不存在!");
		rfileset.Close();
		return;
	}
	CEditDlg dlg;
	if(dlg.DoModal()==IDOK)
	{
		rfileset.Edit();
		rfileset.m_ID = m_ID;
		rfileset.m_NAME = m_NAME;
		rfileset.m_SEX = m_SEX;
		rfileset.m_TYPE = m_TYPE;
		rfileset.m_BIRTH = m_BIRTH;
		rfileset.m_DATEF = m_DATEF;
		rfileset.m_DATET = m_DATET;
		rfileset.m_ADD = m_ADDI;
		rfileset.m_COUNT = m_COUNT;
		rfileset.m_TELL = m_TELL;
		rfileset.m_OPER = m_OPER;
		rfileset.m_LOSE = m_LOSE;
		if(rfileset.Update())
		{
			rfileset.Requery();
			MessageBox("修改成功!");
		}
		rfileset.Close();
	}
	else rfileset.Close();
	
}

void CRfileDlg::OnDelete() 
{
	UpdateData(TRUE);
	if(m_ID.IsEmpty())
	{
		MessageBox("读者ID不能为空!");
		return;
	}
	CString sqlstr = "SELECT * FROM READERINFM WHERE ID='";
	sqlstr += m_ID;
	sqlstr += "'";
	if(rfileset.IsOpen())
	{
		rfileset.Close();
	}
	if(!rfileset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr))
	{
		MessageBox("读者表打开失败!");
		return;	
	}
	if(rfileset.IsEOF())
	{
		MessageBox("该ID不存在!");
		rfileset.Close();
		return;
	}
	CDeleteDlg dlg;
	if(dlg.DoModal()==IDOK)
	{
		rfileset.Delete();
		rfileset.Requery();
		MessageBox("删除成功!");
		rfileset.Close();
	}
	else rfileset.Close();	
}

⌨️ 快捷键说明

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