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

📄 usersinfdlg.cpp

📁 一个电视台专用的信息管理软件源代码
💻 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 + -