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

📄 userdlg.cpp

📁 When the record within form of the mouse list shot row, in the basic data area manifestation corresp
💻 CPP
字号:
// UserDlg.cpp : implementation file
//

#include "stdafx.h"
#include "library.h"
#include "UserDlg.h"
#include "UserAdd.h"
#include "UserFind.h"

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

/////////////////////////////////////////////////////////////////////////////
// CUserDlg dialog


CUserDlg::CUserDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CUserDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CUserDlg)
	m_Address = _T("");
	m_BorrowNum = 0;
	m_Identity = _T("");
	m_Password = _T("");
	m_Sex = _T("");
	m_StartTime = 0;
	m_Type = _T("");
	m_UserID = _T("");
	m_UserName = _T("");
	//}}AFX_DATA_INIT
}


void CUserDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CUserDlg)
	DDX_Control(pDX, IDC_User_View, m_UserView);
	DDX_Text(pDX, IDC_ADDRESS, m_Address);
	DDX_Text(pDX, IDC_BORROW_NUMBER, m_BorrowNum);
	DDX_Text(pDX, IDC_IDENTITY, m_Identity);
	DDX_Text(pDX, IDC_PASSWORD, m_Password);
	DDX_CBString(pDX, IDC_SEX, m_Sex);
	DDX_DateTimeCtrl(pDX, IDC_START_TIME, m_StartTime);
	DDX_CBString(pDX, IDC_TYPE, m_Type);
	DDX_Text(pDX, IDC_USERID, m_UserID);
	DDX_Text(pDX, IDC_USER_NAME, m_UserName);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CUserDlg, CDialog)
	//{{AFX_MSG_MAP(CUserDlg)
	ON_NOTIFY(NM_CLICK, IDC_User_View, OnClickUserView)
	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)
	ON_BN_CLICKED(IDC_USER_FIND, OnUserFind)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CUserDlg message handlers

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

void CUserDlg::OnClickUserView(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	//当鼠标单击列表中的记录时,在基本数据区中显示相应数据
	POSITION pos;
	pos=m_UserView.GetFirstSelectedItemPosition();
	if(pos!=NULL)
	{
		int nItem=m_UserView.GetNextSelectedItem(pos);
		m_UserID=m_UserView.GetItemText(nItem,0);
		m_UserSet.m_strFilter="userid='"+m_UserID+"'";
		m_UserSet.Open();
		TextShow();
		m_UserSet.Close();
		m_UserView.SetHotItem(nItem);
	}
	
	*pResult = 0;
}

void CUserDlg::InitListView()
{
	//初始化浏览列表
	m_UserView.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	m_UserView.InsertColumn(0,"借书证号");
	m_UserView.InsertColumn(1,"身份证号");
	m_UserView.InsertColumn(2,"姓名");
	m_UserView.InsertColumn(3,"密码");
	m_UserView.InsertColumn(4,"性别");
	m_UserView.InsertColumn(5,"用户类型");
	m_UserView.InsertColumn(6,"办证日期");
	m_UserView.InsertColumn(7,"已借本数");
	m_UserView.InsertColumn(8,"家庭住址");

	m_UserView.SetColumnWidth(0,100);
	m_UserView.SetColumnWidth(1,120);
	m_UserView.SetColumnWidth(2,80);
	m_UserView.SetColumnWidth(3,70);
	m_UserView.SetColumnWidth(4,50);
	m_UserView.SetColumnWidth(5,80);
	m_UserView.SetColumnWidth(6,90);
	m_UserView.SetColumnWidth(7,80);
	m_UserView.SetColumnWidth(8,150);

}

void CUserDlg::ListShow()
{
	//在列表中显示用户的信息
	int i=0;
	char buffer[20];         //用于存放格式化后的借书本数
	
	if(!m_UserSet.IsOpen())
	{
		m_UserSet.m_strSort="userid";
		m_UserSet.Open();
		m_UserSet.MoveFirst();
	}
	
	m_UserView.DeleteAllItems();
	while(!m_UserSet.IsEOF())
	{
		m_UserView.InsertItem(i,m_UserSet.m_userid);
		m_UserView.SetItemText(i,1,m_UserSet.m_identity);
		m_UserView.SetItemText(i,2,m_UserSet.m_username);
		m_UserView.SetItemText(i,3,m_UserSet.m_password);
		m_UserView.SetItemText(i,4,m_UserSet.m_sex);
		m_UserView.SetItemText(i,5,m_UserSet.m_type);
		m_UserView.SetItemText(i,6,m_UserSet.m_starttime.Format("%Y-%m-%d"));
		//格式化借书本数
		ltoa(m_UserSet.m_borrownum,buffer,10);
		m_UserView.SetItemText(i,7,buffer);
		m_UserView.SetItemText(i,8,m_UserSet.m_address);
		
		m_UserSet.MoveNext();
		i++;
	}

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

	m_UserSet.Close();
}

void CUserDlg::TextShow()
{
	if(!m_UserSet.IsOpen())
	{
		m_UserSet.Open();
		m_UserSet.MoveFirst();
	}
	//显示基本数据
	m_UserID=m_UserSet.m_userid;
	m_Identity=m_UserSet.m_identity;
	m_UserName=m_UserSet.m_username;
	m_Password=m_UserSet.m_password;
	m_Sex=m_UserSet.m_sex;
	m_Type=m_UserSet.m_type;
	m_StartTime=m_UserSet.m_starttime;
	m_Address=m_UserSet.m_address;
	m_BorrowNum=m_UserSet.m_borrownum;

	m_UserSet.Close();
	UpdateData(false);
}

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

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

	UpdateData();

	m_UserSet.Open();
	m_UserSet.m_strFilter="userid='"+m_UserID+"'";
	m_UserSet.Requery();
	m_UserSet.Delete();
	m_UserSet.Close();

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

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

	UpdateData();

	//保存数据到数据库
	m_UserSet.Edit();
	m_UserSet.m_userid=m_UserID;
	m_UserSet.m_identity=m_Identity;
	m_UserSet.m_username=m_UserName;
	m_UserSet.m_password=m_Password;
	m_UserSet.m_sex=m_Sex;
	m_UserSet.m_type=m_Type;

	nYear=m_StartTime.GetYear();
	nMonth=m_StartTime.GetMonth();
	nDay=m_StartTime.GetDay();
	CTime startTime(nYear,nMonth,nDay,0,0,0);
	m_UserSet.m_starttime=startTime;

	m_UserSet.m_address=m_Address;
	m_UserSet.m_borrownum=m_BorrowNum;

	m_UserSet.Update();
	m_UserSet.m_strFilter="";
	m_UserSet.Requery();
	m_UserSet.Close();

	int nItem=m_UserView.GetSelectionMark();

	ListShow();

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

	UpdateData(false);
	
}

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

	ListShow();
	TextShow();

	UpdateData(false);
	
}

void CUserDlg::OnUserFind() 
{
	// TODO: Add your control notification handler code here
	//完成图书的查询
	CUserFind m_UserFind;
	CString strSql;

	if(m_UserFind.DoModal()!=IDOK)
		return;

	switch(m_UserFind.m_Selection)
	{
	case 0:
		//按借书证号查询
		m_UserSet.Open();
		m_UserSet.m_strFilter="userid"+m_UserFind.m_Condition+"'"+m_UserFind.m_UserID+"'";
		m_UserSet.Requery();

		if(m_UserSet.GetRecordCount()==0)
		{
			AfxMessageBox("没有找到您所要查询的用户!");
			m_UserSet.Close();
		}
		else
		{
			ListShow();
			TextShow();
		}
		break;
	case 1:
		//按用户姓名查询
		strSql.Format("select * from user where username like '%%%s%%'",m_UserFind.m_UserName);
		m_UserSet.Open(AFX_DB_USE_DEFAULT_TYPE,strSql);

		if(m_UserSet.GetRecordCount()==0)
		{
			AfxMessageBox("没有找到您所要查询的用户!");
			m_UserSet.Close();
		}
		else
		{
			ListShow();
			TextShow();
		}
		break;
	case 2:
		//按身份证号查询
		m_UserSet.Open();
		m_UserSet.m_strFilter="identity='"+m_UserFind.m_Identity+"'";
		m_UserSet.Requery();

		if(m_UserSet.GetRecordCount()==0)
		{
			AfxMessageBox("没有找到您所要查询的用户!");
			m_UserSet.Close();
		}
		else
		{
			ListShow();
			TextShow();
		}
		break;
	case 3:
		//按办证日期查询
		nYear=m_UserFind.m_StartTime.GetYear();
		nMonth=m_UserFind.m_StartTime.GetMonth();
		nDay=m_UserFind.m_StartTime.GetDay();
		CTime m_Time(nYear,nMonth,nDay);
		strSql.Format("select * from user where publishtime=m_Time");
		m_UserSet.Open(AFX_DB_USE_DEFAULT_TYPE,strSql);
		
		if(m_UserSet.GetRecordCount()==0)
		{
			AfxMessageBox("没有找到您所要查询的用户!");
			m_UserSet.Close();
		}
		else
		{
			ListShow();
			TextShow();
		}
		break;	
		
	}  //end switch

	UpdateData(false);
	m_UserSet.Open();
	m_UserSet.m_strFilter="";
	m_UserSet.Requery();
	m_UserSet.Close();
	
	
}

⌨️ 快捷键说明

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