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

📄 manager.cpp

📁 偶作的毕业设计程序
💻 CPP
📖 第 1 页 / 共 3 页
字号:
			m_ListNumber=6;
			RECT rect;
			m_List.GetWindowRect(& rect);
			int wid=(rect.right -rect.left )/5;
			m_List.SetColumnWidth(0,wid);
			m_List.SetColumnWidth(1,wid);
			m_List.SetColumnWidth(2,wid);
			m_List.SetColumnWidth(3,wid);
			m_List.SetColumnWidth(4,wid);
			m_List.SetExtendedStyle (LVS_EX_FULLROWSELECT);
	break;}
	case 3:
		{
			m_List.InsertColumn (0,"用户名");
			m_List.InsertColumn (1,"真实姓名");
			m_List.InsertColumn (2,"部门");	
			m_List.InsertColumn (3,"联系电话");
			m_List.InsertColumn (4,"注册日期");
			m_List.InsertColumn (5,"详细信息");
			m_ListNumber=6;
			RECT rect;
			m_List.GetWindowRect(& rect);
			int wid=(rect.right -rect.left )/5;
			m_List.SetColumnWidth(0,wid);
			m_List.SetColumnWidth(1,wid);
			m_List.SetColumnWidth(2,wid);
			m_List.SetColumnWidth(3,wid);
			m_List.SetColumnWidth(4,wid);
			m_List.SetExtendedStyle (LVS_EX_FULLROWSELECT);
	        m_IndexTo=0;
			m_Indexpoint=0;
break;	}
}
}

void CManager::OnCancel() 
{
	// TODO: Add your control notification handler code here
	if(m_DelSum>0)DeleteRemain();
	m_PreType=3;
	CDialog::OnCancel ();	
}
/*
void CManager::OnContextMenu(CWnd* pWnd, CPoint point) 
{
	//判断鼠标是否在列表框中,是则显示弹处菜单。
	m_ptMsg=point;
	CRect rect;
	GetDlgItem(IDC_LIST1)->GetWindowRect(rect);
	if((point.x<rect.right && point.x>rect.left) &&(point.y<rect.bottom && point.y>rect.top))
	{
		CMenu myPopupMenu;
		myPopupMenu.LoadMenu (IDR_POPUPMENU);
		CMenu *pPopup=myPopupMenu.GetSubMenu (0);
		pPopup->EnableMenuItem(IDR_ACCEPT, MF_DISABLED|MF_BYPOSITION);
	pPopup->EnableMenuItem(IDR_ACCEPT, MF_DISABLED|MF_BYPOSITION);
	pPopup->EnableMenuItem(IDR_DEL, MF_DISABLED|MF_BYPOSITION);

		pPopup->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,this);
	}
	//UpdateData();
}
*/
void CManager::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	
	POSITION pos=m_List.GetFirstSelectedItemPosition();//是否选中记录
	if(pos==NULL){GetDlgItem(IDC_BUTTON6)->EnableWindow(false);
	return;}
	// 显示改状态的相关对话
	m_Content=_T("");
	UpdateData(false);
	if(m_treatType==2 ||m_treatType==4)
	{GetDlgItem(IDC_BUTTON6)->EnableWindow(false);return;}
	GetDlgItem(IDC_BUTTON6)->EnableWindow(true);//是发送信息框使能
	int i=m_List.GetSelectionMark();
	CString SelectMSG=m_List.GetItemText(i,m_Indexpoint);
	SelectMSG.TrimRight (" ");
	CString mysql,mystr1,mystr2,mystr3,mystr4,laststr;
    mysql.Format("SELECT * FROM MessageMap WHERE 征对状态 = '%s' ORDER BY 发出日期",SelectMSG);
	if(m_treatType==3)
   mysql.Format("SELECT * FROM MessageMap WHERE 消息类别 = '通知' OR 消息类别='回复通知' OR 征对状态 = '%s' ORDER BY 发出日期",SelectMSG);
	_bstr_t sql=mysql;
	_bstr_t source=m_strSource;
	_RecordsetPtr Myset;
	Myset.CreateInstance (__uuidof(Recordset));
	try{
		Myset->Open (sql,source,adOpenDynamic,adLockOptimistic,adCmdText);}
	catch(_com_error &e){
		AfxMessageBox(e.ErrorMessage ());return;
	}
	_variant_t Holder;
	while(!Myset->adoEOF ){
		Holder=Myset->GetCollect ("发出用户");
		if(Holder.vt!=VT_NULL)
		{mystr1=(char*)(_bstr_t)Holder;
		mystr1.TrimRight (" ");}
		else
			mystr1="未知姓名";
		Holder=Myset->GetCollect ("征对用户");
		if(Holder.vt!=VT_NULL)
		{mystr2=(char*)(_bstr_t)Holder;
		mystr2.TrimRight (" ");}
		else
			mystr2="未知姓名";
		Holder=Myset->GetCollect ("内容");
		if(Holder.vt!=VT_NULL)
		{mystr3=(char*)(_bstr_t)Holder;
		mystr3.TrimRight (" ");}
		else
			mystr3="未知姓名";
		Holder=Myset->GetCollect ("发出日期");
		if(Holder.vt!=VT_NULL)
		{mystr4=(char*)(_bstr_t)Holder;
		mystr4.TrimRight (" ");}
		else
			mystr4="未知日期";
		laststr.Format ("%s对%s说:%s %s",mystr1,mystr2,mystr3,mystr4);
		//m_Dialog.AddString(laststr);
		m_Content=m_Content+"\n"+laststr;
		Myset->MoveNext ();}
	UpdateData(false);

	*pResult = 0;
}

void CManager::OnReplyUser() 
{
	// TODO: Add your control notification handler code here
		if(m_DelSum>0)DeleteRemain();
	m_PreType=3;
UpdateData();
if(m_ReplyStr.IsEmpty()){AfxMessageBox("你没有输入回复的信息,请确认输入!");return;}
CString MsgNumber,MsgText,MsgFrom,MsgTo,MsgPoint,MsgType,MsgDate;
int i=m_List.GetSelectionMark();
	CTime tm=CTime::GetCurrentTime ();
	MsgDate.Format("%d-%d-%d",tm.GetYear (),tm.GetMonth (),tm.GetDay());
MsgNumber.Format("MSG%d%02d%02d%02d%02d%02d",tm.GetYear (),tm.GetMonth (),tm.GetDay(),tm.GetHour(),tm.GetMinute(),tm.GetSecond ());
	MsgText=m_ReplyStr;
	MsgFrom="管理员";
	MsgTo=m_List.GetItemText(i,m_IndexTo);
	MsgPoint=m_List.GetItemText(i,m_Indexpoint);
	MsgType="回复";
CString sql_;
sql_.Format ("INSERT INTO MessageMap (消息号,消息类别,内容,发出用户,征对用户,征对状态,发出日期) VALUES('%s','%s','%s','%s','%s','%s','%s')",MsgNumber,MsgType,MsgText,MsgFrom,MsgTo,MsgPoint,MsgDate);
_bstr_t sql=sql_;
try{
	m_DBCnt->Execute (sql,NULL,adCmdText);}
catch (_com_error &e){
	   AfxMessageBox(e.ErrorMessage()); return;}
CString str2;
str2.Format ("管理员,你的信息已成功输入!",PublicUserName);
AfxMessageBox(str2);
m_ReplyStr=_T("");
UpdateData(false);
}

void CManager::OnNotify() 
{
	// TODO: Add your control notification handler code here
UpdateData();
if(m_ReplyStr.IsEmpty()){AfxMessageBox("你没有输入通知信息,请确认输入!");return;}
CString MsgNumber,MsgText,MsgFrom,MsgTo,MsgPoint,MsgType,MsgDate;
int i=m_List.GetSelectionMark();
	CTime tm=CTime::GetCurrentTime ();
MsgNumber.Format("MSG%d%02d%02d%02d%02d%02d",tm.GetYear (),tm.GetMonth (),tm.GetDay(),tm.GetHour(),tm.GetMinute(),tm.GetSecond ());
MsgDate.Format ("%d-%02d-%02d-%02d-%02d",tm.GetYear (),tm.GetMonth(),tm.GetDay (),tm.GetHour(),tm.GetMinute());
MsgText=m_ReplyStr;
	MsgFrom="管理员";
	MsgTo="所有用户";
	MsgPoint="无状态";
	MsgType="通知";
CString sql_;
sql_.Format ("INSERT INTO MessageMap (消息号,消息类别,内容,发出用户,征对用户,征对状态,发出日期) VALUES('%s','%s','%s','%s','%s','%s','%s')",MsgNumber,MsgType,MsgText,MsgFrom,MsgTo,MsgPoint,MsgDate);
_bstr_t sql=sql_;
if(m_DBCnt->GetState ()==adStateOpen){
try{
	m_DBCnt->Execute (sql,NULL,adCmdText);}
catch (_com_error &e){
	   AfxMessageBox(e.ErrorMessage()); return;}}
CString str2;
str2.Format ("管理员,你的通知信息已成功输入!",PublicUserName);
GetDlgItem(IDC_EDIT2)->SetWindowText("");
AfxMessageBox(str2);	
}

void CManager::OnBorrowLend() 
{
	// TODO: Add your control notification handler code here
		CChat dlg;
	this->ShowWindow(SW_HIDE);
dlg.DoModal ();
this->ShowWindow (SW_SHOW);
}

void CManager::OnAccept() //批准申请
{
	POSITION pos=m_List.GetFirstSelectedItemPosition();//判断是否选中记录
	if(pos==NULL){AfxMessageBox("没有选中记录",MB_ICONEXCLAMATION);return;}
	CString y[11];
	
	int i=m_List.GetSelectionMark();//写入交易记录
	CTime tm=CTime::GetCurrentTime ();
	CString strDate,strGeshi,strUser,strApplyNumber,strApplyType,strSoftName,strNumber;
	CString InputStr,ChatNumber;//交易编号
	ChatNumber.Format("CH%d%02d%02d%02d%02d1",tm.GetYear (),tm.GetMonth (),tm.GetDay(),tm.GetHour(),tm.GetMinute());
	strDate.Format ("%d-%d-%d %d:%d",tm.GetYear(),tm.GetMonth (),tm.GetDay(),tm.GetHour(),tm.GetMinute());
    strUser=m_List.GetItemText (i,0);
	strApplyType=m_List.GetItemText (i,1);
	strSoftName=m_List.GetItemText (i,2);
	strGeshi=m_List.GetItemText (i,3);
	strNumber=m_List.GetItemText (i,4);
	strApplyNumber=m_List.GetItemText (i,6);
	//开始事务
	try{
		m_DBCnt->BeginTrans();
		CString sql2_,sql1_,sql3_;
		sql2_.Format("INSERT INTO ChatInfo(交易编号,用户名,软件名称,格式,软件编号,交易类别,交易时间) VALUES('%s','%s','%s','%s','%s','%s','%s')",ChatNumber,strUser,strSoftName,strGeshi,strNumber,strApplyType,strDate);
		_bstr_t sql2=sql2_;
		try{//交易纪录
			m_DBCnt->Execute(sql2,NULL,adCmdText);}
		catch(_com_error &e){
			AfxMessageBox(e.ErrorMessage());return;}
		//操作日志
		CString str1;
			str1+="文档";
	if(m_Log.Setup (m_DBCnt))
			m_Log.Addlog (strUser,str1,strSoftName);
		
			//写入软件修改信息
		InputStr=(strApplyType=="借")?strUser:"在家";//软件信息
		sql1_.Format ("UPDATE SoftDocInfo SET %s = '%s' WHERE 软件编号 = '%s'",strGeshi,InputStr,strNumber);
		_bstr_t sql1=sql1_;
		try{
			m_DBCnt->Execute(sql1,NULL,adCmdText);}
		catch(_com_error &e){
			AfxMessageBox(e.ErrorMessage());return;}
		sql3_.Format ("delete from ApplyTable where 申请号 = '%s'",strApplyNumber);
		_bstr_t sql3=sql3_;
		try{
			m_DBCnt->Execute(sql3,NULL,adCmdText);}
		catch(_com_error &e){
			AfxMessageBox(e.ErrorMessage());return;}
	m_DBCnt->CommitTrans();
}
		catch(_com_error& e)
	{AfxMessageBox("数据操作失败!");
	m_DBCnt->RollbackTrans();return;}
		CString OutPutString;
		OutPutString.Format ("管理员,用户%s的信息已成功输入!",strUser);
		AfxMessageBox(OutPutString);
		m_List.DeleteItem (i);
}
void CManager::OnCopy() 
{
	// TODO: Add your command handler code here
	POSITION pos=m_List.GetFirstSelectedItemPosition();//判断是否选中记录
	if(pos==NULL){AfxMessageBox("没有选中记录",MB_ICONEXCLAMATION);return;}
	CString mystr;
int i=m_List.GetSelectionMark();
	for(int j=0;j<m_ListNumber;j++)
	{mystr+=m_List.GetItemText(i,j);
	mystr+="  ";
	}
	::OpenClipboard(this->m_hWnd);
	::EmptyClipboard();
	HGLOBAL h=GlobalAlloc(GHND|GMEM_SHARE,mystr.GetLength()+1);
	strcpy((LPSTR)GlobalLock(h),mystr);
	GlobalUnlock(h);
	::SetClipboardData(CF_TEXT,h);
	::CloseClipboard();

}

void CManager::OnDel() 
{
	// TODO: Add your command handler code here	
	POSITION pos=m_List.GetFirstSelectedItemPosition();//判断是否选中记录
	if(pos==NULL){AfxMessageBox("没有选中记录",MB_ICONEXCLAMATION);return;}
	if(m_treatType==3){
		CString sql_,ApplyNumber;
		int i=m_List.GetSelectionMark ();
		ApplyNumber=m_List.GetItemText (i,0);
		sql_.Format ("delete from UserInfo where 用户名 ='%s'",ApplyNumber);
			_bstr_t sql2=sql_;
		try{m_DBCnt->Execute(sql2,NULL,adCmdText);}
		catch(_com_error &e){
			AfxMessageBox(e.ErrorMessage ());return;
		}
		AfxMessageBox("你已经彻底删除了用户信息,将不可恢复!");
		return;}//删除记录
	
	
	int i,j;
	if(m_DelSum==3)
		DeleteFirst();//删除最先第一个记录
	int n=(m_DelSum==3)?1:m_DelSum+1;
	int m=b[n]*10;//本条记录应该保存的位置
	if(m_treatType==0 || m_treatType==1 ||m_treatType==3){//状态汇报删除管理
		i=m_List.GetSelectionMark ();
		for(j=0;j<m_ListNumber;j++)
			a[m+j]=m_List.GetItemText (i,j);//保存数据
		m_List.DeleteItem (i);
		int NowNumber=m_DelSum;
		m_DelSum=(m_DelSum==3)?3:m_DelSum+1;//保存删除的记录数
		if(NowNumber<3)b[NowNumber+1]=NowNumber;
		else
		{b[m_DelSum]=b[n];
		for(j=1;j<m_DelSum+1;j++)//保存删除的顺序
			b[j-1]=b[j];

}
AfxMessageBox("用户的申请记录已成功删除,如果操作错误,请选择'恢复删除'");
		return;}

}

void CManager::OnUndo() 
{
	// TODO: Add your command handler code here
	int i,j=m_List.GetSelectionMark ();
	if(m_DelSum>0){
		int NowNumber=10*b[m_DelSum];
		m_List.InsertItem (j,a[NowNumber]);
		for(i=0;i<m_ListNumber+1;i++)
			m_List.SetItemText (j,i,a[NowNumber+i]);
		m_DelSum-=1;}

}

void CManager::OnChatRec() 
{
	((CButton*)GetDlgItem(IDC_RADIO1))->SetCheck(false);
	((CButton*)GetDlgItem(IDC_RADIO2))->SetCheck(false);
	((CButton*)GetDlgItem(IDC_RADIO3))->SetCheck(false);
	((CButton*)GetDlgItem(IDC_RADIO4))->SetCheck(false);
	GetDlgItem(IDC_BUTTON6)->EnableWindow(false);
    UpdateData();
	m_treatType=4;
	m_List.DeleteAllItems ();//初始化列表筐
	for (int i=m_ListNumber-1;i>-1;i--)
	m_List.DeleteColumn(i);
m_List.InsertColumn (0,"交易号");
m_List.InsertColumn (1,"用户名");
m_List.InsertColumn (2,"软件名称");
m_List.InsertColumn (3,"格式");
m_List.InsertColumn (4,"交易类别");
m_List.InsertColumn (5,"软件编号");
m_List.InsertColumn (6,"交易时间");
m_ListNumber=7;
RECT rect;
m_List.GetWindowRect(& rect);
int wid=(rect.right -rect.left )/5;
m_List.SetColumnWidth(0,wid);
m_List.SetColumnWidth(1,wid);
m_List.SetColumnWidth(2,wid);
m_List.SetColumnWidth(3,wid);
m_List.SetColumnWidth(4,wid);
m_List.SetExtendedStyle (LVS_EX_FULLROWSELECT);
m_List.SetRedraw (false);
if(m_DelSum>0)DeleteRemain();//删除被删除项
m_PreType=4;
//初始化数据原
CString mysql;
mysql.Format("SELECT * FROM ChatInfo");
_bstr_t sql=mysql;
_bstr_t source=m_strSource;
_RecordsetPtr Myset;
Myset.CreateInstance (__uuidof(Recordset));
try{
	Myset->Open (sql,source,adOpenDynamic,adLockOptimistic,adCmdText);}
catch(_com_error &e){
	AfxMessageBox(e.ErrorMessage ());
	}
CString str1;
_variant_t Holder;
i=0;
while(!Myset->adoEOF ){
Holder=Myset->GetCollect ("交易编号");
if(Holder.vt!=VT_NULL)
m_List.InsertItem (i,(char*)(_bstr_t)Holder);
Holder=Myset->GetCollect ("用户名");
if(Holder.vt!=VT_NULL)
m_List.SetItemText (i,1,(char*)(_bstr_t)Holder);
else
m_List.SetItemText (i,1,"未知用户名");
Holder=Myset->GetCollect ("软件名称");
if(Holder.vt!=VT_NULL)
m_List.SetItemText (i,2,(char*)(_bstr_t)Holder);
else
m_List.SetItemText (i,2,"未知软件");
Holder=Myset->GetCollect ("格式");
if(Holder.vt!=VT_NULL)
m_List.SetItemText (i,3,(char*)(_bstr_t)Holder);
else
m_List.SetItemText (i,3,"未知格式");
Holder=Myset->GetCollect ("交易类别");
if(Holder.vt!=VT_NULL)
m_List.SetItemText (i,4,(char*)(_bstr_t)Holder);
else
m_List.SetItemText (i,4,"未知类别");
Holder=Myset->GetCollect ("软件编号");
if(Holder.vt!=VT_NULL)
m_List.SetItemText (i,5,(char*)(_bstr_t)Holder);
else
m_List.SetItemText (i,5,"未知编号");
Holder=Myset->GetCollect ("交易时间");
if(Holder.vt!=VT_NULL)
m_List.SetItemText (i,6,(char*)(_bstr_t)Holder);
else
m_List.SetItemText (i,6,"未知时间");
i+=1;
Myset->MoveNext ();
}
Myset->Close();
m_List.SetRedraw (true);	
}

void CManager::OnBorrowReturn() 
{
	// TODO: Add your control notification handler code here
	GetDlgItem(IDC_BUTTON6)->EnableWindow(false);
	if(m_DelSum>0)DeleteRemain();
	m_PreType=1;
	((CButton*)GetDlgItem(IDC_RADIO5))->SetCheck(false);
	InitList();
	m_DelSum=0;
	b[1]=b[0]=b[4]=b[5]=b[6]=0;
	b[2]=1;
	b[3]=2;
	m_List.SetRedraw (false);
	CString mysql;
	mysql.Format("SELECT * FROM ApplyTable ORDER BY 申请号");
	_bstr_t sql=mysql;
	_bstr_t source=m_strSource;
	_RecordsetPtr Myset;
	Myset.CreateInstance (__uuidof(Recordset));
	try{
		Myset->Open (sql,source,adOpenDynamic,adLockOptimistic,adCmdText);}
	catch(_com_error &e){
		AfxMessageBox(e.ErrorMessage ());return;
	}
	CString str1,mystr;
	_variant_t Holder;
	int i=0;
	while(!Myset->adoEOF ){
		Holder=Myset->GetCollect ("用户名");//
		if(Holder.vt!=VT_NULL)
		{mystr=(char*)(_bstr_t)Holder;
		mystr.TrimRight(" ");
		m_List.InsertItem (i,mystr);}
		else
			m_List.InsertItem (i,"未知用户名");
		Holder=Myset->GetCollect ("申请类别");//
		if(Holder.vt!=VT_NULL)
		{mystr=(char*)(_bstr_t)Holder;
		mystr.TrimRight(" ");
		m_List.SetItemText (i,1,mystr);}
		else

⌨️ 快捷键说明

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