📄 managedlg.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 + -