📄 user.cpp
字号:
// User.cpp : implementation file
//
#include "stdafx.h"
#include "yhgl.h"
#include "User.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#define Max 999
extern CYhglApp theApp;
int u[Max];int j=0;int a=0;
int idtemp=0;
int pidtemp=0;
CString nametemp=_T("");
CString codetemp=_T("");
CString fnametemp=_T("");
CString destemp=_T("");
/////////////////////////////////////////////////////////////////////////////
// CUser dialog
CUser::CUser(CWnd* pParent /*=NULL*/)
: CDialog(CUser::IDD, pParent)
{
//{{AFX_DATA_INIT(CUser)
m_code = _T("");
m_id = 0;
m_name = _T("");
m_pid = 0;
m_fname = _T("");
m_des = _T("");
//}}AFX_DATA_INIT
m_nCurrentSel = -1;
Success = FALSE;
m_bAutoSave = TRUE;
}
void CUser::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CUser)
DDX_Control(pDX, IDC_LIST8, m_userlist);
DDX_Control(pDX, IDC_BUTTON3, m_Add);
DDX_Control(pDX, IDC_BUTTON2, m_Del);
DDX_Control(pDX, IDC_BUTTON1, m_Edit);
DDX_Text(pDX, IDC_EDIT4, m_code);
DDX_Text(pDX, IDC_EDIT2, m_id);
DDX_Text(pDX, IDC_EDIT3, m_name);
DDX_Text(pDX, IDC_EDIT5, m_pid);
DDX_Text(pDX, IDC_EDIT1, m_fname);
DDX_Text(pDX, IDC_EDIT6, m_des);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CUser, CDialog)
//{{AFX_MSG_MAP(CUser)
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST8, OnItemchangedList8)
ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
ON_BN_CLICKED(IDC_BUTTON4, OnButton4)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CUser message handlers
BOOL CUser::OnInitDialog()
{
CDialog::OnInitDialog();
m_Del.EnableWindow(FALSE);
::SendMessage(m_userlist.m_hWnd, LVM_SETEXTENDEDLISTVIEWSTYLE,LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);
//////////为列表控件添加列//////////
m_userlist.InsertColumn(0,"用户ID",LVCFMT_LEFT,60);
m_userlist.InsertColumn(1,"用户全名",LVCFMT_LEFT,100);
m_userlist.InsertColumn(2,"登陆名",LVCFMT_LEFT,80);
m_userlist.InsertColumn(3,"密码",LVCFMT_LEFT,60);
m_userlist.InsertColumn(4,"权限组",LVCFMT_LEFT,60);
m_userlist.InsertColumn(5,"说明",LVCFMT_LEFT,200);
//////////读取数据库中的信息添加到列表控件///////////
int nItem;
_variant_t vUsername,vPID,vID,vUID,vCode,vFullname,vDes;
try
{
m_pRecordset1.CreateInstance("ADODB.Recordset");
m_pRecordset1->Open("SELECT * FROM use",_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
Success = TRUE;
while(!m_pRecordset1->adoEOF)
{
vID=m_pRecordset1->GetCollect("ID");
vUID = m_pRecordset1->GetCollect("UserID");
vUsername = m_pRecordset1->GetCollect("LogName");///取得username字段的值
vCode = m_pRecordset1->GetCollect("LogPassWord");
vPID = m_pRecordset1->GetCollect("RoleGroupID");
vFullname=m_pRecordset1->GetCollect("UserFullName");
vDes=m_pRecordset1->GetCollect("Description");
u[j]=vUID.iVal;
nItem=m_userlist.InsertItem(0xffff,(_bstr_t)vID);
m_userlist.SetItem(nItem,0,1,(_bstr_t)vUID,NULL,0,0,0);
m_userlist.SetItem(nItem,2,1,(_bstr_t)vUsername,NULL,0,0,0);
m_userlist.SetItem(nItem,3,1,(_bstr_t)vCode,NULL,0,0,0);
m_userlist.SetItem(nItem,4,1,(_bstr_t)vPID,NULL,0,0,0);
if(vFullname.vt != VT_NULL)
m_userlist.SetItem(nItem,1,1,(_bstr_t)vFullname,NULL,0,0,0);
else
m_userlist.SetItem(nItem,1,1,_T(""),NULL,0,0,0);
if(vDes.vt != VT_NULL)
m_userlist.SetItem(nItem,5,1,(_bstr_t)vDes,NULL,0,0,0);
else
m_userlist.SetItem(nItem,5,1,_T(""),NULL,0,0,0);
m_pRecordset1->MoveNext();
j++;
}
}
catch(_com_error e)///捕捉异常
{
AfxMessageBox("读取数据库失败!");///显示错误信息
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
//添加用户
void CUser::OnButton1()
{
UpdateData();
int k=0;
while(k<j)
{
if(u[k]==m_id)
{
a=1;
break;
}
k++;
}
if(k==j)
{
a=2;
}
if(m_name.GetLength()>0&&a==2)
{
m_pRecordset1->AddNew();
m_nCurrentSel = m_userlist.InsertItem(0xffff,"");
SaveData();///保存数据
m_userlist.SetItemState(m_nCurrentSel,LVIS_SELECTED|LVIS_FOCUSED,LVIS_SELECTED|LVIS_FOCUSED);
m_userlist.SetHotItem(m_nCurrentSel);
m_userlist.SetFocus();
AfxMessageBox("添加成功!");
a=0;
}
else
AfxMessageBox("用户的ID唯一!请再次输入其他的ID");
}
//删除用户
void CUser::OnButton2()
{
m_bAutoSave = FALSE;
if(m_nCurrentSel >= 0)
{
m_userlist.DeleteItem(m_nCurrentSel);
int count = m_userlist.GetItemCount();
if(count <= m_nCurrentSel)
m_nCurrentSel = count-1;
m_pRecordset1->Delete(adAffectCurrent);
m_pRecordset1->MoveNext();
LoadData();
m_userlist.SetItemState(m_nCurrentSel,LVIS_SELECTED|LVIS_FOCUSED,LVIS_SELECTED|LVIS_FOCUSED);
m_userlist.SetFocus();
}
m_bAutoSave = TRUE;
}
//在选择列表时调用
void CUser::OnItemchangedList8(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
if(pNMListView->uNewState&LVIS_SELECTED)
{
UpdateData();
SaveData();///保存旧数据
m_nCurrentSel = pNMListView->iItem;
LoadData();///加载新数据
m_Del.EnableWindow();
}
*pResult = 0;
}
//////将记录集中的数据加载到编辑框/////
void CUser::LoadData()
{
m_pRecordset1->Move(m_nCurrentSel,_variant_t((long)adBookmarkFirst));
vUSERID = m_pRecordset1->GetCollect("UserID");
vUSERNAME = m_pRecordset1->GetCollect("LogName");
vCODE = m_pRecordset1->GetCollect("LogPassWord");
vPID = m_pRecordset1->GetCollect("RoleGroupID");
vFULLNAME=m_pRecordset1->GetCollect("UserFullName");
vDES=m_pRecordset1->GetCollect("Description");
m_id = vUSERID.lVal;
m_name = (LPCTSTR)(_bstr_t)vUSERNAME;
m_code = (LPCTSTR)(_bstr_t)vCODE;
m_pid = vPID.lVal;
if(vFULLNAME.vt != VT_NULL)
m_fname = (LPCTSTR)(_bstr_t)vFULLNAME;
else
m_fname=_T("");
if(vDES.vt != VT_NULL)
m_des=(LPCTSTR)(_bstr_t)vDES;
else
m_des=_T("");
idtemp=m_id;
pidtemp=m_pid;
nametemp=m_name;
codetemp=m_code;
destemp=m_des;
fnametemp=m_fname;
UpdateData(FALSE);
}
/////将编辑框的数据保存到记录集与列表框
void CUser::SaveData()
{
if(!m_pRecordset1->adoEOF && m_nCurrentSel >= 0 && m_bAutoSave)
{
vUSERID = (long)m_id;
vUSERNAME = m_name;
vCODE = m_code;
vPID= (long)m_pid;
if(strcmp(m_fname,_T(""))==0)
vFULLNAME.vt=VT_NULL;
else
vFULLNAME=m_fname;
if(strcmp(m_des,_T(""))==0)
vDES.vt=VT_NULL;
else
vDES=m_des;
u[j]=m_id;
j++;
m_pRecordset1->PutCollect("UserID",vUSERID);
m_pRecordset1->PutCollect("LogName",vUSERNAME);
m_pRecordset1->PutCollect("LogPassWord",vCODE);
m_pRecordset1->PutCollect("RoleGroupID",vPID);
m_pRecordset1->PutCollect("UserFullName",vFULLNAME);
m_pRecordset1->PutCollect("Description",vDES);
m_userlist.SetItem(m_nCurrentSel,0,LVIF_TEXT,(_bstr_t)vUSERID,NULL,0,0,0);
m_userlist.SetItem(m_nCurrentSel,2,LVIF_TEXT,(_bstr_t)vUSERNAME,NULL,0,0,0);
m_userlist.SetItem(m_nCurrentSel,3,LVIF_TEXT,(_bstr_t)vCODE,NULL,0,0,0);
m_userlist.SetItem(m_nCurrentSel,4,LVIF_TEXT,(_bstr_t)vPID,NULL,0,0,0);
if(vFULLNAME.vt != VT_NULL)
m_userlist.SetItem(m_nCurrentSel,1,LVIF_TEXT,(_bstr_t)vFULLNAME,NULL,0,0,0);
else
m_userlist.SetItem(m_nCurrentSel,1,LVIF_TEXT,_T(""),NULL,0,0,0);
if(vDES.vt != VT_NULL)
m_userlist.SetItem(m_nCurrentSel,5,LVIF_TEXT,(_bstr_t)vDES,NULL,0,0,0);
else
m_userlist.SetItem(m_nCurrentSel,5,LVIF_TEXT,_T(""),NULL,0,0,0);
}
}
void CUser::OnOK()
{
if(Success)
{
m_pRecordset1->Close();
}
CDialog::OnOK();
}
void CUser::OnButton3()
{
UpdateData(); // 更新对话框数据
if(m_userlist.GetItemCount() == 0 || m_name == "" || m_code == ""||m_id==0||m_pid==0)
{
AfxMessageBox("有无效信息,请选取需要修改的用户!");
return;
}
else
{
SaveData();
m_pRecordset1->Update();
if(m_id==idtemp&&m_pid==pidtemp&&strcmp(m_name,nametemp)==0&&strcmp(m_code,codetemp)==0&&strcmp(m_fname,fnametemp)==0&&strcmp(m_des,destemp)==0)
{
AfxMessageBox("您没有进行任何修改操作!");
}
else
AfxMessageBox("修改成功!");
}
}
void CUser::OnButton4()
{
m_id = 0;
m_name = _T("");
m_fname=_T("");
m_code = _T("");
m_pid = 0;
m_des=_T("");
m_nCurrentSel = -1;
Success = FALSE;
m_bAutoSave = TRUE;
UpdateData(FALSE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -