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

📄 rtypedlg.cpp

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

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

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

/////////////////////////////////////////////////////////////////////////////
// CRtypeDlg dialog


CRtypeDlg::CRtypeDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CRtypeDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CRtypeDlg)
	m_FTYPE = _T("");
	m_TYPE = _T("");
	m_SUM = 0;
	//}}AFX_DATA_INIT
}


void CRtypeDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CRtypeDlg)
	DDX_Text(pDX, IDC_FTYPE, m_FTYPE);
	DDV_MaxChars(pDX, m_FTYPE, 20);
	DDX_Text(pDX, IDC_TYPE, m_TYPE);
	DDV_MaxChars(pDX, m_TYPE, 20);
	DDX_Text(pDX, IDC_SUM, m_SUM);
	DDV_MinMaxInt(pDX, m_SUM, 0, 99);
	DDX_Control(pDX, IDC_LIST1, m_List);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CRtypeDlg, CDialog)
	//{{AFX_MSG_MAP(CRtypeDlg)
	ON_BN_CLICKED(IDC_FIND, OnFind)
	ON_BN_CLICKED(IDC_EDIT, OnEdit)
	ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList)
	ON_BN_CLICKED(IDC_DELETE, OnDelete)
	ON_BN_CLICKED(IDC_EXIT, OnExit)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

BOOL CRtypeDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	m_List.InsertColumn(0,"类型");
	m_List.InsertColumn(1,"可借册数");
	RECT rect;
	m_List.GetWindowRect(&rect);
	int wid=rect.right-rect.left;
	m_List.SetColumnWidth(0,wid/2);
	m_List.SetColumnWidth(1,wid/2);
	m_List.SetExtendedStyle(LVS_EX_FULLROWSELECT);
	return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CRtypeDlg message handlers
bool CRtypeDlg::DisplayRecord()
{
	UpdateData(true);
	int i=0;
	
	while(!rtypeset.IsEOF())
	{
		m_TYPE = rtypeset.m_TYPE;
		m_SUM = rtypeset.m_SUM;
		char s[3];
		if(m_SUM>=10)
		{
			s[1] = '0'+m_SUM%10;
			s[0] = '0'+m_SUM/10;
			s[2] = '\0';
		}
		else
		{
			s[0] = '0'+m_SUM%10;
			s[1] = '\0';
			s[2] = '\0';
		}
		m_List.InsertItem(i,m_TYPE);
		m_List.SetItemText(i,1,s);
		rtypeset.MoveNext();
		i++;
	}
	UpdateData(false);
	return true;
}

void CRtypeDlg::OnFind() 
{
	m_List.DeleteAllItems();
	UpdateData(TRUE);
	CString sqlstr = "SELECT * FROM READERTYPE WHERE TYPE='";
	sqlstr += m_FTYPE;
	sqlstr += "'";
	if(rtypeset.IsOpen())
	{
		rtypeset.Close();
	}
	if(!rtypeset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr))
	{
		MessageBox("读者类型表打开失败!");
		return;	
	}
	
	if(!rtypeset.IsEOF())
	{
		DisplayRecord();
		rtypeset.Close();
	}
	else
	{
		MessageBox("该类型不存在!");
		rtypeset.Close();
	}
}

void CRtypeDlg::OnEdit() 
{
	UpdateData(TRUE);
	if(m_TYPE.IsEmpty())
	{
		MessageBox("类型不能为空!");
		return;
	}
	CString sqlstr = "SELECT * FROM READERTYPE WHERE TYPE='";
	sqlstr += m_TYPE;
	sqlstr += "'";
	if(rtypeset.IsOpen())
	{
		rtypeset.Close();
	}
	if(!rtypeset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr))
	{
		MessageBox("读者类型表打开失败!");
		return;	
	}
	if(rtypeset.IsEOF())
	{
		MessageBox("该类型不存在!");
		rtypeset.Close();
		return;
	}
	CEditDlg dlg;
	if(dlg.DoModal()==IDOK)
	{
		rtypeset.Edit();
		rtypeset.m_TYPE = m_TYPE;
		rtypeset.m_SUM = m_SUM;
		if(rtypeset.Update())
		{
			rtypeset.Requery();
			MessageBox("修改成功!");
		}
		rtypeset.Close();
	}
	else rtypeset.Close();
	
}

void CRtypeDlg::OnClickList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	UpdateData(TRUE);
	char TYPE[20];
	POSITION pos = m_List.GetFirstSelectedItemPosition();
	if (pos != NULL)
	{
		int n = m_List.GetNextSelectedItem(pos);  
		m_List.GetItemText(n,0,TYPE,20);
		if (rtypeset.IsOpen())
		{
			rtypeset.Close();
		}
		CString sqlstr = "SELECT * FROM READERTYPE WHERE TYPE='";
		sqlstr += TYPE;
		sqlstr += "'";
		if (!rtypeset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr))
		{
			MessageBox("读者类型表打开失败!");
			return;
		}
		m_TYPE = rtypeset.m_TYPE;
		m_SUM = rtypeset.m_SUM;
		UpdateData(FALSE);
	}
	*pResult = 0;
}

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

void CRtypeDlg::OnExit() 
{
	if (rtypeset.IsOpen())
	{
		rtypeset.Close();
	}
	CDialog::OnCancel();	
}

⌨️ 快捷键说明

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