📄 usersinfdlg.cpp
字号:
// UsersInfDlg.cpp : implementation file
//
#include "stdafx.h"
#include "tvnews.h"
#include "UsersInfDlg.h"
#include "Channel.h"
#include "Column.h"
#include "Role.h"
#include "Users.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CUsersInfDlg dialog
CUsersInfDlg::CUsersInfDlg(CWnd* pParent /*=NULL*/)
: CDialog(CUsersInfDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CUsersInfDlg)
m_LogName = _T("");
m_Pwd = _T("");
m_Name = _T("");
m_Channel = _T("");
m_Column = _T("");
m_Sex = _T("");
m_Role = _T("");
//}}AFX_DATA_INIT
}
void CUsersInfDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CUsersInfDlg)
DDX_Control(pDX, IDC_COMBO3, m_cmbSex);
DDX_Control(pDX, IDC_COMBO2, m_cmbColumn);
DDX_Control(pDX, IDC_COMBO1, m_cmbChannel);
DDX_Control(pDX, IDC_COMBO4, m_cmbRole);
DDX_Text(pDX, IDC_EDIT1, m_LogName);
DDX_Text(pDX, IDC_EDIT2, m_Pwd);
DDX_Text(pDX, IDC_EINFONAME, m_Name);
DDX_CBString(pDX, IDC_COMBO1, m_Channel);
DDX_CBString(pDX, IDC_COMBO2, m_Column);
DDX_CBString(pDX, IDC_COMBO3, m_Sex);
DDX_CBString(pDX, IDC_COMBO4, m_Role);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CUsersInfDlg, CDialog)
//{{AFX_MSG_MAP(CUsersInfDlg)
ON_BN_CLICKED(IDC_BTNUPDATE_RINFO, OnBtnupdateRinfo)
ON_CBN_SELCHANGE(IDC_COMBO1, OnSelchangeCombo1)
ON_CBN_SELENDOK(IDC_COMBO1, OnSelendokCombo1)
ON_CBN_SELCHANGE(IDC_COMBO3, OnSelchangeCombo3)
ON_CBN_SELCHANGE(IDC_COMBO4, OnSelchangeCombo4)
ON_WM_CANCELMODE()
ON_WM_CAPTURECHANGED()
ON_BN_CLICKED(IDC_BTNCANCEL_RINFO, OnBtncancelRinfo)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CUsersInfDlg message handlers
BOOL CUsersInfDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
CRole Role;
CChannel Channel;
CColumn Column;
Role.GetAllRole(allRoles);
int i;
for(i=0;i<allRoles.GetSize();i++)
{
m_cmbRole.AddString(_T(allRoles.GetAt(i)));
}
m_cmbRole.SetCurSel(0);
GetRoleList(0);
m_cmbSex.SetCurSel(0);
if(Type==1)
{
CUsers Users;
Users.GetData(iUID);
CString s=Users.GetName();
m_Name=s;
m_LogName=Users.GetLoginName();
m_Pwd=Users.GetPwd();
UpdateData(false);
if(Users.GetSex()=='0')
m_cmbSex.SetCurSel(0);
else
{
m_cmbSex.SetCurSel(1);
}
CString strColumnName,strChannelName,strRoleName;
Channel.GetData(Users.GetChannelID());
Column.GetData(Users.GetColumnID());
Role.GetData(Users.GetRoleID());
strChannelName =_T(Channel.GetName());
strColumnName =_T(Column.GetName());
strRoleName =_T(Role.GetName());
m_cmbRole.SelectString(-1,strRoleName);
GetRoleList(1,strChannelName,strColumnName);
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CUsersInfDlg::OnBtnupdateRinfo()
{
// TODO: Add your control notification handler code here
CUsers Users;
UpdateData();
m_Name.TrimRight();
m_Name.TrimLeft();
m_LogName.TrimRight();
m_LogName.TrimLeft();
m_Pwd.TrimRight();
m_Pwd.TrimLeft();
Users.SetName(m_Name);
Users.SetLoginName(m_LogName);
Users.SetPwd(m_Pwd);
if(m_Sex=="男")
Users.SetSex("0");
else
{
Users.SetSex("1");
}
CChannel Channel;
Users.SetChannelID(Channel.GetIDByName(m_Channel));
CColumn Column;
Users.SetColumnID(Column.GetIDByName(m_Column));
CRole Role;
int iRoleID= Role.GetIDByName(m_Role);
Users.SetRoleID(iRoleID);
long iFlg;
CString cMessage;
if(Type==0)
{
Users.insert(Users.GetLoginName(),Users.GetPwd(),Users.GetName(),Users.GetSex(),Users.GetRoleID(),Users.GetChannelID(),Users.GetColumnID(),iFlg,cMessage);
}
else
{
Users.update(iUID,Users.GetLoginName(),Users.GetPwd(),Users.GetName(),Users.GetSex(),Users.GetRoleID(),Users.GetChannelID(),Users.GetColumnID(),iFlg,cMessage);
}
if(1==iFlg)
{
CDialog::OnOK();
}
else
{
MessageBox(cMessage);
}
}
void CUsersInfDlg::OnSelchangeCombo1()
{
// TODO: Add your control notification handler code here
GetColumnList(0);
}
void CUsersInfDlg::OnSelendokCombo1()
{
// TODO: Add your control notification handler code here
}
void CUsersInfDlg::GetColumnList(int iType ,CString strColumnName)
{
if(2==RoleID)
{
CChannel Channel;
UpdateData(true);
int number = m_cmbChannel.GetCurSel();
CString strName;
m_cmbChannel.GetLBText(number,strName);
ChannelID = Channel.GetIDByName(strName);
CString strSQL,strID;
CColumn Column;
if(ChannelID==-1)
strSQL="";
else
{
strID.Format("%d", ChannelID);
strSQL= " AND ChannelID = " + strID ;
}
CStringArray allColumns;
Column.GetAllColumn(allColumns,strSQL);
int i;
m_cmbColumn.ResetContent();
for(i=0;i<allColumns.GetSize();i++)
{
m_cmbColumn.AddString(_T(allColumns.GetAt(i)));
}
if(1==iType)
{
m_cmbColumn.SelectString(-1,strColumnName);
}
else
{
m_cmbColumn.SetCurSel(0);
}
}
}
void CUsersInfDlg::OnSelchangeCombo3()
{
// TODO: Add your control notification handler code here
}
void CUsersInfDlg::GetRoleList(int iType ,CString strChannelName,CString strColumnName)
{
CChannel Channel;
CColumn Column;
CRole Role;
UpdateData(true);
int number = m_cmbRole.GetCurSel();
CString strName;
m_cmbRole.GetLBText(number,strName);
RoleID = Role.GetIDByName(strName);
if((0==RoleID)||(4==RoleID))
{
m_cmbChannel.ResetContent();
m_cmbChannel.AddString("所有频道");
m_cmbChannel.SelectString(-1,"所有频道");
m_cmbColumn.ResetContent();
m_cmbColumn.AddString("所有栏目");
m_cmbColumn.SelectString(-1,"所有栏目");
}
else if(1==RoleID)
{
m_cmbChannel.ResetContent();
CStringArray allChannels;
Channel.GetAllChannel(allChannels," and UID <>0 ");
for(int i=0;i<allChannels.GetSize();i++)
{
m_cmbChannel.AddString(_T(allChannels.GetAt(i)));
}
if(1==iType)
{
m_cmbChannel.SelectString(-1,strChannelName);
}
else
{
m_cmbChannel.SetCurSel(0);
}
m_cmbColumn.ResetContent();
m_cmbColumn.AddString("所有栏目");
m_cmbColumn.SelectString(-1,"所有栏目");
}
else if(2==RoleID)
{
CStringArray allChannels;
CStringArray allColumns;
m_cmbChannel.ResetContent();
Channel.GetAllChannel(allChannels ," and UID <>0 ");
Column.GetAllColumn(allColumns);
int i;
for(i=0;i<allChannels.GetSize();i++)
{
m_cmbChannel.AddString(_T(allChannels.GetAt(i)));
}
if(1==iType)
{
m_cmbChannel.SelectString(-1,strChannelName);
}
else
{
m_cmbChannel.SetCurSel(0);
}
GetColumnList(iType,strColumnName);
}
else if(3==RoleID)
{
CStringArray allChannels;
CStringArray allColumns;
m_cmbChannel.ResetContent();
Channel.GetAllChannel(allChannels," and UID <>0 ");
Column.GetAllColumn(allColumns);
int i;
for(i=0;i<allChannels.GetSize();i++)
{
m_cmbChannel.AddString(_T(allChannels.GetAt(i)) );
}
if(1==iType)
{
m_cmbChannel.SelectString(-1,strChannelName);
}
else
{
m_cmbChannel.SetCurSel(0);
}
m_cmbColumn.ResetContent();
m_cmbColumn.AddString("所有栏目");
m_cmbColumn.SelectString(-1,"所有栏目");
}
}
void CUsersInfDlg::OnSelchangeCombo4()
{
// TODO: Add your control notification handler code here
GetRoleList(0);
}
void CUsersInfDlg::OnBtncancelRinfo()
{
// TODO: Add your control notification handler code here
CDialog::OnCancel();
}
BOOL CUsersInfDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message == WM_KEYDOWN)
{
if(pMsg->wParam == VK_RETURN)
{
CWnd *pWnd = GetFocus();
if(pWnd->GetDlgCtrlID()==IDC_BTNUPDATE_RINFO)
{
OnBtnupdateRinfo();
}
else if(pWnd->GetDlgCtrlID()==IDC_BTNCANCEL_RINFO)
{
OnBtncancelRinfo();
}
else
{
NextDlgCtrl();
return true;
}
}
}
return CDialog::PreTranslateMessage(pMsg);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -