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

📄 usersdlg.cpp

📁 一个电视台专用的信息管理软件源代码
💻 CPP
字号:
// UsersDlg.cpp : implementation file
//

#include "stdafx.h"
#include "tvnews.h"
#include "UsersDlg.h"
#include "Users.h"
#include "UsersInfDlg.h"
#include "Channel.h"
#include "Column.h"
#include "Role.h"
#include "UserSerch.h"

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

/////////////////////////////////////////////////////////////////////////////
// CUsersDlg dialog


CUsersDlg::CUsersDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CUsersDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CUsersDlg)
	m_strBJ = _T("");
	m_strREP = _T("");
	m_strTZ = _T("");
	m_strZJ = _T("");
	//}}AFX_DATA_INIT
}


void CUsersDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CUsersDlg)
	DDX_Control(pDX, IDC_TREE1, m_Tree);
	DDX_Control(pDX, IDC_LIST1, m_userList);
	DDX_Text(pDX, IDC_STATIC_BJ, m_strBJ);
	DDX_Text(pDX, IDC_STATIC_REP, m_strREP);
	DDX_Text(pDX, IDC_STATIC_TZ, m_strTZ);
	DDX_Text(pDX, IDC_STATIC_ZJ, m_strZJ);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CUsersDlg, CDialog)
	//{{AFX_MSG_MAP(CUsersDlg)
	ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
	ON_BN_CLICKED(IDC_BTNUPDATE_RINFO, OnBtnupdateEdt)
	ON_BN_CLICKED(IDC_BTNUPDATE_RINFO2, OnBtnupdateIns)
	ON_WM_SHOWWINDOW()
	ON_BN_CLICKED(IDC_BTNUPDATE_RINFO3, OnBtnupdateRinfo3)
	ON_BN_CLICKED(IDC_BUTTON_QUERY, OnButtonQuery)
	ON_NOTIFY(NM_DBLCLK, IDC_LIST1, OnDblclkList1)
	ON_NOTIFY(TVN_SELCHANGED, IDC_TREE1, OnSelchangedTree1)
	ON_WM_TIMER()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CUsersDlg message handlers

BOOL CUsersDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_userList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	m_userList.InsertColumn(0,_T("ID"));
	m_userList.SetColumnWidth(0,0);
	m_userList.InsertColumn(1,_T("登录名称"));
	m_userList.SetColumnWidth(1,150);
	m_userList.InsertColumn(2,_T("登录口令"));
	m_userList.SetColumnWidth(2,150);
	m_userList.InsertColumn(3,_T("真实姓名"));
	m_userList.SetColumnWidth(3,150);
	m_userList.InsertColumn(4,_T("性别"));
	m_userList.SetColumnWidth(4,100);
	m_userList.InsertColumn(5,_T("角色"));
	m_userList.SetColumnWidth(5,150);
	m_userList.InsertColumn(6,_T("频道"));
	m_userList.SetColumnWidth(6,150);
	m_userList.InsertColumn(7,_T("栏目"));
	m_userList.SetColumnWidth(7,150);
	
	SetTimer(1,1000,NULL); 

	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CUsersDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	//-- Get the number of selected rows
	int nSelRows = m_userList.GetSelectedCount();

	if(!nSelRows) //-- If there are no rows selected,jump out here
		return;

	//-- Get the position of the first selected row
	POSITION pos =m_userList.GetFirstSelectedItemPosition();

	//-- Get the index of next selected row
	int i = m_userList.GetNextSelectedItem(pos);

	if (i != -1) //-- Execute this loop as long as GetNextSelectedItem() returns -1
	{
		selectID= atoi(m_userList.GetItemText(i, 0));
	}		

	*pResult = 0;
	return;
}

void CUsersDlg::OnBtnupdateEdt() 
{
	CString strSelItem;
	// TODO: Add your control notification handler code here
	if(m_userList.GetSelectedCount()==0)
	{
		MessageBox("请选择要编辑的行!");
		return;
	}
	CUsersInfDlg UsersInfDlg;
	UsersInfDlg.Type=1;
	UsersInfDlg.iUID=selectID;
	
	UsersInfDlg.DoModal();
	ChannelID=0;
	ColumnID=0;
	RoleID=-1;
	LogName="";
	UserName="";
	Sex="";
	Refresh();
	
}

void CUsersDlg::OnBtnupdateIns() 
{
	// TODO: Add your control notification handler code here
	CUsersInfDlg UsersInfDlg;
	UsersInfDlg.Type=0;

	UsersInfDlg.DoModal();
	ChannelID=0;
	ColumnID=0;
	RoleID=-1;
	LogName="";
	UserName="";
	Sex="";
	Refresh();
	
}

void CUsersDlg::OnShowWindow(BOOL bShow, UINT nStatus) 
{
	CDialog::OnShowWindow(bShow, nStatus);
	
	// TODO: Add your message handler code here

	CUsers Users;
	Users.ShowList(m_userList);

	CColumn Column;
	Column.ShowTree(m_Tree," AND Channel.UID<>0 ");

	CStringArray UserInf;

	Users.GetUsersInf(UserInf);

	m_strREP=_T(UserInf.GetAt(0));
	m_strBJ=_T(UserInf.GetAt(1));
	m_strZJ=_T(UserInf.GetAt(2));
	m_strTZ=_T(UserInf.GetAt(2));

	UpdateData(false);
	
}

void CUsersDlg::Refresh()
{
	CString strSQL="";
	CString strID;
	if(ChannelID==0)
	{
		strSQL=strSQL+" ";
	}
	else
	{
		strID.Format("%d",ChannelID);
		strSQL=strSQL+" and userchannel.ChannelID= "+strID;
	}
	if(ColumnID==0)
	{
		strSQL=strSQL+" ";
	}
	else
	{
		strID.Format("%d",ColumnID);
		strSQL=strSQL+ " and ( userchannel.ColumnID= "+strID + " or  userchannel.ColumnID= 0 ) ";
	}
	if(RoleID==-1)
	{	
		strSQL=strSQL+" ";
	}
	else
	{
		strID.Format("%d",RoleID);
		strSQL=strSQL+ " and userchannel.RoleID= "+strID;
	}
	if(Sex=="")
	{	
		strSQL=strSQL+" ";
	}
	else
	{
		strSQL=strSQL+ " and Sex= '"+Sex + "'";
	}
	if(UserName=="")
	{	
		strSQL=strSQL+" ";
	}
	else
	{
		strSQL=strSQL + " and Users.Name like '%"+UserName + "%'";
	}
	if(LogName=="")
	{	
		strSQL=strSQL+" ";
	}
	else
	{
	
		strSQL=strSQL + " and LoginName like '%" + LogName + "%'";
	}
	CUsers Users;
	Users.ShowList(m_userList,strSQL);

}

void CUsersDlg::OnBtnupdateRinfo3() 
{
	// TODO: Add your control notification handler code here
	
	if(m_userList.GetSelectedCount()==0)
	{
		MessageBox("请选择要删除的行!");
		return;
	}
	if(MessageBox("你确定要删除该用户吗?","询问信息", MB_YESNO ) == IDYES)

	{
		CUsers Users;
		long iFlg;
		CString cMessage;
		Users.sql_delete(selectID,iFlg,cMessage);
		if(1==iFlg)
		{

			Users.ShowList(m_userList,"");
		}
		else
		{
			MessageBox(cMessage);
		}
		
	}
	
}

void CUsersDlg::OnButtonQuery() 
{
	// TODO: Add your control notification handler code here
	CUserSerch UserSerch;
	UserSerch.DoModal();

	ChannelID=UserSerch.ChannelID;
	ColumnID=UserSerch.ColumnID;
	RoleID=UserSerch.RoleID;
	if("男"==UserSerch.m_Sex)
	{
		Sex="0";
	}
	else if("女"==UserSerch.m_Sex)
	{
		Sex="1";
	}
	else
	{
		Sex="";
	}

	UserSerch.m_UserName.TrimRight();
	UserSerch.m_UserName.TrimLeft();

	UserSerch.m_LogName.TrimRight();
	UserSerch.m_LogName.TrimLeft();

	UserName = UserSerch.m_UserName;
	LogName = UserSerch.m_LogName;

	Refresh();

	
}

void CUsersDlg::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
		//-- Get the number of selected rows
	int nSelRows = m_userList.GetSelectedCount();

	if(!nSelRows) //-- If there are no rows selected,jump out here
		return;

	//-- Get the position of the first selected row
	POSITION pos =m_userList.GetFirstSelectedItemPosition();

	//-- Get the index of next selected row
	int i = m_userList.GetNextSelectedItem(pos);

	if (i != -1) //-- Execute this loop as long as GetNextSelectedItem() returns -1
	{
		selectID= atoi(m_userList.GetItemText(i, 0));
	}		

	OnBtnupdateEdt() ;
	
	*pResult = 0;
}

void CUsersDlg::OnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
	// TODO: Add your control notification handler code here

		HTREEITEM SelectItem = m_Tree.GetSelectedItem();
	CString strSelect = m_Tree.GetItemText(SelectItem);
	CChannel Channel;
	CColumn Column;
	HTREEITEM parent1= m_Tree.GetParentItem(SelectItem);

	if(parent1==NULL)
	{
		ChannelID = 0;
		ColumnID=0;		

	}
	else
	{
		HTREEITEM parent2= m_Tree.GetParentItem(parent1);
		if(parent2==NULL)
		{
			ChannelID = Channel.GetIDByName(strSelect);
			ColumnID = 0;	

		}
		else
		{
			ColumnID = Column.GetIDByName(strSelect);

			HTREEITEM ParentItem = m_Tree.GetParentItem(SelectItem);
			CString strParent = m_Tree.GetItemText(ParentItem);
			ChannelID = Channel.GetIDByName(strParent);
		}
	}
	
	RoleID=-1;
	Sex="";
	UserName="";
	LogName="";

	Refresh();
	
	*pResult = 0;
}

void CUsersDlg::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	CUsers Users;

	CStringArray UserInf;

	Users.GetUsersInf(UserInf);

	m_strREP=_T(UserInf.GetAt(0));
	m_strBJ=_T(UserInf.GetAt(1));
	m_strZJ=_T(UserInf.GetAt(2));
	m_strTZ=_T(UserInf.GetAt(3));

	UpdateData(false);
	
	CDialog::OnTimer(nIDEvent);
}

⌨️ 快捷键说明

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