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

📄 managedlg.cpp

📁 图书管理系统,数据结构思想,用 C++编写,经测试,可用
💻 CPP
字号:
// ManageDlg.cpp : implementation file
//

#include "stdafx.h"
#include "library.h"
#include "ManageDlg.h"
#include "ManagerAdd.h"

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

/////////////////////////////////////////////////////////////////////////////
// CManageDlg dialog


CManageDlg::CManageDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CManageDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CManageDlg)
	m_Password = _T("");
	m_ManagerID = _T("");
	m_ManagerName = _T("");
	//}}AFX_DATA_INIT
}


void CManageDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CManageDlg)
	DDX_Control(pDX, IDC_MANAGER_VIEW, m_ManagerView);
	DDX_Text(pDX, IDC_PASSWORD, m_Password);
	DDX_Text(pDX, IDC_MANAGERID, m_ManagerID);
	DDX_Text(pDX, IDC_MANAGER_NAME, m_ManagerName);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CManageDlg, CDialog)
	//{{AFX_MSG_MAP(CManageDlg)
	ON_NOTIFY(NM_CLICK, IDC_MANAGER_VIEW, OnClickManagerView)
	ON_BN_CLICKED(IDC_RECORD_ADD, OnRecordAdd)
	ON_BN_CLICKED(IDC_RECORD_DEL, OnRecordDel)
	ON_BN_CLICKED(IDC_RECORD_EDIT, OnRecordEdit)
	ON_BN_CLICKED(IDC_REFRESH, OnRefresh)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CManageDlg message handlers

void CManageDlg::TextShow()
{
	if(!m_ManagerSet.IsOpen())
	{
		m_ManagerSet.Open();
		m_ManagerSet.MoveFirst();
	}
	
	//显示基本数据
	m_ManagerID=m_ManagerSet.m_managerid;
	m_ManagerName=m_ManagerSet.m_managername;
	m_Password=m_ManagerSet.m_password;

	m_ManagerSet.Close();
	UpdateData(false);

}

void CManageDlg::InitListView()
{
	//初始化浏览列表
	m_ManagerView.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	m_ManagerView.InsertColumn(0,"管理员号");
	m_ManagerView.InsertColumn(1,"姓名");
	m_ManagerView.InsertColumn(2,"密码");
	m_ManagerView.InsertColumn(3,"登陆时间");
	m_ManagerView.InsertColumn(4,"退出时间");

	m_ManagerView.SetColumnWidth(0,80);
	m_ManagerView.SetColumnWidth(1,80);
	m_ManagerView.SetColumnWidth(2,100);
	m_ManagerView.SetColumnWidth(3,150);
	m_ManagerView.SetColumnWidth(4,150);

}

void CManageDlg::ListShow()
{
	//在列表中显示管理员的信息
	int i=0;
	
	if(!m_ManagerSet.IsOpen())
	{
		m_ManagerSet.m_strSort="managerid";
		m_ManagerSet.Open();
		m_ManagerSet.MoveFirst();
	}
	
	m_ManagerView.DeleteAllItems();
	while(!m_ManagerSet.IsEOF())
	{
		m_ManagerView.InsertItem(i,m_ManagerSet.m_managerid);
		m_ManagerView.SetItemText(i,1,m_ManagerSet.m_managername);
		m_ManagerView.SetItemText(i,2,m_ManagerSet.m_password);
		m_ManagerView.SetItemText(i,3,m_ManagerSet.m_logintime.Format("%Y-%m-%d %H:%M:%S"));
		m_ManagerView.SetItemText(i,4,m_ManagerSet.m_logouttime.Format("%Y-%m-%d %H:%M:%S"));
		
		m_ManagerSet.MoveNext();
		i++;
	}

	if(m_ManagerView.GetItemCount()!=0)
		m_ManagerView.SetHotItem(0);

	m_ManagerSet.Close();

}

void CManageDlg::OnClickManagerView(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	//当鼠标单击列表中的记录时,在基本数据区中显示相应数据
	POSITION pos;
	pos=m_ManagerView.GetFirstSelectedItemPosition();
	if(pos!=NULL)
	{
		int nItem=m_ManagerView.GetNextSelectedItem(pos);
		m_ManagerSet.Open();
		m_ManagerSet.Move(nItem);
		TextShow();
		m_ManagerSet.Close();
		m_ManagerView.SetHotItem(nItem);

		UpdateData(false);
	}
	
	*pResult = 0;
}

BOOL CManageDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	TextShow();
	InitListView();
	ListShow();
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CManageDlg::OnRecordAdd() 
{
	// TODO: Add your control notification handler code here
	//添加新纪录
	CManagerAdd m_ManagerAdd;
	m_ManagerAdd.DoModal();
	
}

void CManageDlg::OnRecordDel() 
{
	// TODO: Add your control notification handler code here
	//删除所选择的纪录
	if(AfxMessageBox("您确定要删除此纪录吗?",MB_OKCANCEL)==IDCANCEL)
		return;

	UpdateData();

	m_ManagerSet.Open();
	m_ManagerSet.m_strFilter="managerid='"+m_ManagerID+"'";
	m_ManagerSet.Requery();
	m_ManagerSet.Delete();
	m_ManagerSet.Close();

	m_ManagerSet.Open();
	m_ManagerSet.m_strFilter="";
	m_ManagerSet.Requery();
	
	ListShow();
	TextShow();
	
	UpdateData(false);
	
}

void CManageDlg::OnRecordEdit() 
{
	// TODO: Add your control notification handler code here
	//对数据纪录进行修改操作
	//先找到所要修改的纪录,然后再进行数据的更新
	m_ManagerSet.Open();
	m_ManagerSet.m_strFilter="managerid='"+m_ManagerID+"'";
	m_ManagerSet.Requery();

	UpdateData();

	//保存数据到数据库
	m_ManagerSet.Edit();
	m_ManagerSet.m_managerid=m_ManagerID;
	m_ManagerSet.m_managername=m_ManagerName;
	m_ManagerSet.m_password=m_Password;
	
	m_ManagerSet.Update();
	m_ManagerSet.m_strFilter="";
	m_ManagerSet.Requery();
	m_ManagerSet.Close();

	int nItem=m_ManagerView.GetSelectionMark();

	ListShow();

	//把纪录重新定位到所修改的纪录上
	m_ManagerView.SetSelectionMark(nItem);
	m_ManagerView.SetHotItem(nItem);
	m_ManagerSet.Open();
	m_ManagerSet.Move(nItem);
	TextShow();

	UpdateData(false);
	
}

void CManageDlg::OnRefresh() 
{
	// TODO: Add your control notification handler code here
	//刷新基本数据区和列表中的数据
	m_ManagerSet.Open();
	m_ManagerSet.m_strFilter="";
	m_ManagerSet.Requery();

	ListShow();
	TextShow();

	UpdateData(false);
	
}

⌨️ 快捷键说明

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