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

📄 chat.cpp

📁 偶作的毕业设计程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	m_List1.SetColumnWidth(1,wid);
	m_List1.SetExtendedStyle (LVS_EX_FULLROWSELECT);
	//Second
	m_List2.InsertColumn (0,"软件名称");
	m_List2.InsertColumn (1,"软件格式");
	m_List2.InsertColumn (2,"软件编号");
	m_List2.GetWindowRect(& rect);
	wid=3*(rect.right -rect.left )/8;
	m_List2.SetColumnWidth(0,wid);
	m_List2.SetColumnWidth(1,wid);
	m_List2.SetExtendedStyle (LVS_EX_FULLROWSELECT);
	//Databaxe Initialled
	 CSoftDocSystemApp* myApp=(CSoftDocSystemApp*)AfxGetApp();
	 CString source_;
	 source_.Format ("driver={SQL Server};server=%s;database=SoftDocument",myApp->ConnectServer);
	_bstr_t source=source_;
	_bstr_t pwd=myApp->ConnectPwd;
	_bstr_t user=myApp->ConnectUser;

	HRESULT hr;
	try{
		hr = m_DBCnt.CreateInstance(_uuidof(Connection));
		if(SUCCEEDED(hr))
			hr = m_DBCnt->Open(source, user, pwd, 16);
		if(SUCCEEDED(hr))
		{m_fConnected = TRUE;
		
		}
		else 
			m_fConnected = FALSE;
	}
	catch (_com_error &e){
		MessageBox(e.ErrorMessage()); 
		m_fConnected = FALSE;
	}
	if(!m_fConnected) MessageBox("ADO数据源初始化失败!");
	else  m_strSource = (char * )source;
	Initiate();
	return TRUE;  // return TRUE unless you set the focus to a control
	// EXCEPTION: OCX Property Pages should return FALSE
}

void CChat::BorrowTotal()
{
	UpdateData();
	m_List1.DeleteAllItems ();
	m_List2.DeleteAllItems ();
	m_List1.SetRedraw (false);
	GetDlgItem(IDC_BUTTON1)->EnableWindow(false);
	GetDlgItem(IDC_BUTTON2)->EnableWindow(false);
	//定义字符串
	CString geshi[6];
	geshi[1]="软盘";
	geshi[2]="光盘";
	geshi[4]="文本";
	geshi[3]="硬盘";
	geshi[5]="其他";
	_variant_t Holder;
	if(m_Chattype==0)
	{
		CString sql_;
		sql_.Format ("SELECT * FROM SoftDocInfo WHERE 软盘 = '在家' or 光盘= '在家' or 硬盘 = '在家' or 文本 = '在家' or 其他= '在家' ");
		_bstr_t sql=sql_;
		_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;}
		//看是否存在纪录
		int Shumu=0;
		while(!Myset->adoEOF)
		{Shumu+=1;
		Myset->MoveNext ();}
		if(Shumu<1)return;
		Myset->MoveFirst ();
		int i=0;
		int j=0;
		CString mystr,queryStr,chstr;
		CString softnumber,softname;
			GetDlgItem(IDC_LIST1)->EnableWindow(true);
			GetDlgItem(IDC_LIST2)->EnableWindow(true);
		while(!Myset->adoEOF ){		
			//每一入库格式一行
            Holder=Myset->GetCollect ("软件名称");
			if(Holder.vt!=VT_NULL)
			{softname=(char*)(_bstr_t)Holder;
			softname.TrimRight(" ");}
			Holder=Myset->GetCollect ("软件编号");
			if(Holder.vt!=VT_NULL)
			{softnumber=(char*)(_bstr_t)Holder;
			softnumber.TrimRight(" ");}
			//判断格式
			for(int i=1;i<6;i++)
			{	_variant_t strgeshi=geshi[i];
			Holder=Myset->GetCollect (strgeshi);
				if(Holder.vt!=VT_NULL)
				{mystr=(char*)(_bstr_t)Holder;
				mystr.TrimRight(" ");
				if(mystr=="在家"){
					m_List1.InsertItem (j,softname);
					m_List1.SetItemText (j,1,geshi[i]);
					m_List1.SetItemText (j,2,softnumber);
					j++;}
			}
			
		//if
	}Myset->MoveNext();}
}
m_List1.SetRedraw (true);
}

void CChat::BorrowSelect()
{
//条件查询
UpdateData();
CString sql_,str2,str;
int HaveNo;
_RecordsetPtr Myset;
	CString geshi[6];
	geshi[1]="软盘";
	geshi[2]="光盘";
	geshi[4]="文本";
	geshi[3]="硬盘";
	geshi[5]="其他";
	_variant_t Holder;
sql_="select * from SoftDocInfo where";
m_SoftName.TrimRight(" ");
m_Xinghao.TrimRight (" ");
m_SoftType.TrimRight (" ");
HaveNo=0;
str.Format (" 软件类型 ='%s'",m_SoftType);
if(!m_SoftType.IsEmpty ()){sql_+=str;HaveNo=1;}
str.Format (" 软件名称 ='%s'", m_SoftName);
if(!m_SoftName.IsEmpty ()){
	if(HaveNo==1)sql_+=str;
	else
	{	sql_=sql_+" and "+str;
	HaveNo=1;}}
str.Format (" and 所属型号 ='%s'",m_Xinghao);
if(!m_Xinghao.IsEmpty ())

str.Format(" and 作者 ='%s'",m_Author);
if(!m_Author.IsEmpty ())sql_+=str;
str.Format (" or 软件编号 ='%s'",m_Number);
if(!m_Number.IsEmpty ())sql_+=str;
str.Format (" and %s ='在家'",m_GeShi);
if(!m_GeShi.IsEmpty ())sql_+=str;
//查找所需软件稳当
	Myset.CreateInstance (__uuidof(Recordset));
_bstr_t Mysql=sql_;
_bstr_t source=m_strSource;
m_List1.DeleteAllItems ();
try{
	Myset->Open (Mysql,source,adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error &e){
	AfxMessageBox(e.ErrorMessage());return;}
int Shumu=0;
		while(!Myset->adoEOF)//记录数
		{Shumu+=1;
		Myset->MoveNext ();}
		if(Shumu<1)return;
		Myset->MoveFirst ();
		int i=0;
		int j=0;
		CString mystr,queryStr,chstr;
		CString softnumber,softname;
			GetDlgItem(IDC_LIST1)->EnableWindow(true);
			GetDlgItem(IDC_LIST2)->EnableWindow(true);
		while(!Myset->adoEOF ){		
			//每一入库格式一行
            Holder=Myset->GetCollect ("软件名称");
			if(Holder.vt!=VT_NULL)
			{softname=(char*)(_bstr_t)Holder;
			softname.TrimRight(" ");}
			Holder=Myset->GetCollect ("软件编号");
			if(Holder.vt!=VT_NULL)
			{softnumber=(char*)(_bstr_t)Holder;
			softnumber.TrimRight(" ");}
			//判断格式
			for(int i=1;i<6;i++)
			{	_variant_t strgeshi=geshi[i];
			Holder=Myset->GetCollect (strgeshi);
				if(Holder.vt!=VT_NULL)
				{mystr=(char*)(_bstr_t)Holder;
				mystr.TrimRight(" ");
				if(mystr=="在家"){
					m_List1.InsertItem (j,softname);
					m_List1.SetItemText (j,1,geshi[i]);
					m_List1.SetItemText (j,2,softnumber);
					j++;}
			}
			
		//if
	}Myset->MoveNext();}
}

void CChat::ReturnTotal()
{
	UpdateData();
	m_List1.DeleteAllItems ();
	m_List2.DeleteAllItems ();
	m_List1.SetRedraw (false);
	GetDlgItem(IDC_BUTTON1)->EnableWindow(false);
	GetDlgItem(IDC_BUTTON2)->EnableWindow(false);
	CString geshi[6];//格式字符串
	geshi[1]="软盘";
	geshi[2]="光盘";
	geshi[4]="文本";
	geshi[3]="硬盘";
	geshi[5]="其他";
	int i=0;
	int j=0;
	CString mystr,queryStr,chstr;
	CString softnumber,softname;
	_variant_t Holder;
	if(m_Chattype==1){
		CString sql_;
		sql_.Format ("SELECT * FROM SoftDocInfo WHERE 软盘 = '%s' or 光盘 = '%s' or 硬盘 = '%s' or 文本 = '%s' or 其他 = '%s' ",m_UserName,m_UserName,m_UserName,m_UserName,m_UserName);
		_bstr_t sql=sql_;
		_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;
		int Shumu=Myset->GetRecordCount();
		int i=0;
		CString mystr;	
		GetDlgItem(IDC_LIST1)->EnableWindow(true);
		GetDlgItem(IDC_LIST2)->EnableWindow(true);
		while(!Myset->adoEOF ){
			
			Holder=Myset->GetCollect ("软件名称");
			if(Holder.vt!=VT_NULL)
			{softname=(char*)(_bstr_t)Holder;
			softname.TrimRight(" ");}
			Holder=Myset->GetCollect ("软件编号");
			if(Holder.vt!=VT_NULL)
			{softnumber=(char*)(_bstr_t)Holder;
			softnumber.TrimRight(" ");}
			//判断格式
			for(int i=1;i<6;i++)
			{	_variant_t strgeshi=geshi[i];
			Holder=Myset->GetCollect (strgeshi);
			if(Holder.vt!=VT_NULL)
			{mystr=(char*)(_bstr_t)Holder;
			mystr.TrimRight(" ");
			if(mystr==m_UserName){
				m_List1.InsertItem (j,softname);
				m_List1.SetItemText (j,1,geshi[i]);
				m_List1.SetItemText (j,2,softnumber);
				j++;}
			}
			}
			Myset->MoveNext ();
		}
		//if
	}
	m_List1.SetRedraw (true);
}

void CChat::OnSelectAll() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
	if(m_Chattype==1)return;
	int AllNot=((CButton*)GetDlgItem(IDC_CHECK1))->GetCheck();
if(AllNot)
{
	((CButton*)GetDlgItem(IDC_CHECK2))->SetCheck(false);
	((CButton*)GetDlgItem(IDC_CHECK3))->SetCheck(false);
	((CButton*)GetDlgItem(IDC_CHECK4))->SetCheck(false);
	((CButton*)GetDlgItem(IDC_CHECK5))->SetCheck(false);
	((CButton*)GetDlgItem(IDC_CHECK7))->SetCheck(false);
	((CButton*)GetDlgItem(IDC_CHECK6))->SetCheck(false);
	GetDlgItem(IDC_CHECK2)->EnableWindow(false);
	GetDlgItem(IDC_CHECK3)->EnableWindow(false);
	GetDlgItem(IDC_CHECK4)->EnableWindow(false);
	GetDlgItem(IDC_CHECK5)->EnableWindow(false);
	GetDlgItem(IDC_CHECK6)->EnableWindow(false);
	GetDlgItem(IDC_CHECK7)->EnableWindow(false);
}
else
{
	GetDlgItem(IDC_CHECK2)->EnableWindow(true);
	GetDlgItem(IDC_CHECK3)->EnableWindow(true);
	GetDlgItem(IDC_CHECK4)->EnableWindow(true);
	GetDlgItem(IDC_CHECK5)->EnableWindow(true);
	GetDlgItem(IDC_CHECK6)->EnableWindow(true);
	GetDlgItem(IDC_CHECK7)->EnableWindow(true);
}
}

void CChat::OnCheck6() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
	int AllNot=((CButton*)GetDlgItem(IDC_CHECK6))->GetCheck();
if(AllNot)
GetDlgItem(IDC_COMBO5)->EnableWindow(true);
else{
((CComboBox*)GetDlgItem(IDC_COMBO5))->SetWindowText("");
GetDlgItem(IDC_COMBO5)->EnableWindow(false);}

}

void CChat::OnCheck3() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
	int AllNot=((CButton*)GetDlgItem(IDC_CHECK3))->GetCheck();
if(AllNot)	
	GetDlgItem(IDC_COMBO2)->EnableWindow(true);
else{
	((CComboBox*)GetDlgItem(IDC_COMBO2))->SetWindowText("");
	GetDlgItem(IDC_COMBO2)->EnableWindow(false);
	}
}

void CChat::OnCheck4() 
{
	// TODO: Add your control notification handler code here
		UpdateData();
	int AllNot=((CButton*)GetDlgItem(IDC_CHECK4))->GetCheck();
if(AllNot)
{	
	GetDlgItem(IDC_COMBO3)->EnableWindow(true);}
else{
((CComboBox*)GetDlgItem(IDC_COMBO3))->SetWindowText("");
GetDlgItem(IDC_COMBO3)->EnableWindow(false);}

}

void CChat::OnCheck2() 
{
	// TODO: Add your control notification handler code here
		UpdateData();
		int AllNot=((CButton*)GetDlgItem(IDC_CHECK2))->GetCheck();
if(AllNot)	
	GetDlgItem(IDC_COMBO1)->EnableWindow(true);
else{
	((CComboBox*)GetDlgItem(IDC_COMBO1))->SetWindowText("");
	GetDlgItem(IDC_COMBO1)->EnableWindow(false);
	}
}

void CChat::OnCheck5() 
{
	// TODO: Add your control notification handler code here
		int AllNot=((CButton*)GetDlgItem(IDC_CHECK5))->GetCheck();
if(AllNot)	
	GetDlgItem(IDC_COMBO4)->EnableWindow(true);
else{
	((CComboBox*)GetDlgItem(IDC_COMBO4))->SetWindowText("");
	GetDlgItem(IDC_COMBO4)->EnableWindow(false);}

}

void CChat::OnCheck7() 
{
	// TODO: Add your control notification handler code here
	int AllNot=((CButton*)GetDlgItem(IDC_CHECK7))->GetCheck();
if(AllNot)	
	GetDlgItem(IDC_COMBO6)->EnableWindow(true);
else
{((CComboBox*)GetDlgItem(IDC_COMBO6))->SetWindowText("");
GetDlgItem(IDC_COMBO6)->EnableWindow(false);}	
}

void CChat::ManagerControl()
{	int m=m_List2.GetItemCount();
int ShunXu=1;
	CTime tm=CTime::GetCurrentTime ();
	CString str1,str2,str4,str3;
	CString ChatNumber;
	str3.Format ("%d-%d-%d %d:%d",tm.GetYear(),tm.GetMonth (),tm.GetDay(),tm.GetHour(),tm.GetMinute());
	//开始事务
	try{
	m_DBCnt->BeginTrans();
	CString sql2_,sql1_;
	if(m_Chattype==0)str1="借";
	else str1="还";	
	for(int i=0;i<m;i++)
	{CString strNumber=m_List2.GetItemText (i,2);
	CString strName=m_List2.GetItemText (i,0);
	CString strGeshi=m_List2.GetItemText (i,1);//取出列表框中得字段
	str4=m_Chattype==0?m_UserName:"在家";
	ShunXu=ShunXu%10;
	ChatNumber.Format("CH%d%02d%02d%02d%02d%d",tm.GetYear (),tm.GetMonth (),tm.GetDay(),tm.GetHour(),tm.GetMinute(),ShunXu);
	sql2_.Format("INSERT INTO ChatInfo(交易编号,用户名,软件名称,格式,软件编号,交易类别,交易时间) VALUES('%s','%s','%s','%s','%s','%s','%s')",ChatNumber,m_UserName,strName,strGeshi,strNumber,str1,str3);
	_bstr_t sql2=sql2_;
	try{//交易纪录
		m_DBCnt->Execute(sql2,NULL,adCmdText);}
	catch(_com_error &e){
		AfxMessageBox(e.ErrorMessage());return;}
	//写入软件修改信息
CString BorrowDate;
BorrowDate=strGeshi+_T("时间");
    sql1_.Format ("UPDATE SoftDocInfo SET %s = '%s', %s = '%s' WHERE 软件编号 = '%s'",strGeshi,str4,BorrowDate,str3,strNumber);
	_bstr_t sql1=sql1_;
	try{
		m_DBCnt->Execute(sql1,NULL,adCmdText);}
	catch(_com_error &e){
		AfxMessageBox(e.ErrorMessage());return;}

if(m_Log.Setup (m_DBCnt))
		m_Log.Addlog (m_UserName,str1,strName);//操作日志

	ShunXu++;//编号增加1
	}
	m_List2.DeleteAllItems ();
	m_DBCnt->CommitTrans();
	}
		catch(_com_error& e)
	{AfxMessageBox("数据操作失败!");
	m_DBCnt->RollbackTrans();return;}
		CString OutPutString;
		OutPutString.Format ("管理员,用户%s的信息已成功输入!",m_UserName);
		AfxMessageBox(OutPutString);
}

void CChat::UserApply()
{
	int m=m_List2.GetItemCount();
int ShunXu=1;
	CTime tm=CTime::GetCurrentTime ();
	CString str1,str2,str4,str3;
	CString ChatNumber;
	str3.Format ("%d-%d-%d %d:%d",tm.GetYear(),tm.GetMonth (),tm.GetDay(),tm.GetHour(),tm.GetMinute());
	//开始事务
	try{
	m_DBCnt->BeginTrans();
	CString sql2_,sql1_;
	if(m_Chattype==0)str1="借";
	else str1="还";	
	for(int i=0;i<m;i++)
	{CString strNumber=m_List2.GetItemText (i,2);
	CString strName=m_List2.GetItemText (i,0);
	CString strGeshi=m_List2.GetItemText (i,1);//取出列表框中得字段
	ShunXu=ShunXu%10;
	ChatNumber.Format("AP%d%02d%02d%02d%02d%d",tm.GetYear (),tm.GetMonth (),tm.GetDay(),tm.GetHour(),tm.GetMinute(),ShunXu);
	sql2_.Format("INSERT INTO ApplyTable(申请号,用户名,软件名称,格式,软件编号,申请类别,申请日期) VALUES('%s','%s','%s','%s','%s','%s','%s')",ChatNumber,m_UserName,strName,strGeshi,strNumber,str1,str3);
	_bstr_t sql2=sql2_;
	try{//输入申请表
		m_DBCnt->Execute(sql2,NULL,adCmdText);}
	catch(_com_error &e){
		AfxMessageBox(e.ErrorMessage());return;}
	if(m_Chattype==0){
	//写入软件修改信息
     sql1_.Format ("UPDATE SoftDocInfo SET %s = '预订/%s' WHERE 软件编号 = '%s'",strGeshi,m_UserName,strNumber);
	_bstr_t sql1=sql1_;
	try{
		m_DBCnt->Execute(sql1,NULL,adCmdText);}
	catch(_com_error &e){
		AfxMessageBox(e.ErrorMessage());return;}}

	//CString Event;
	//Event.Format ("申请%s",str1);
	//if(m_Log.Setup (m_DBCnt))
	//	m_Log.Addlog (m_UserName,Event,strName);//操作日志

	ShunXu++;//编号增加1
	}
	m_List2.DeleteAllItems ();
	m_DBCnt->CommitTrans();
	}
		catch(_com_error& e)
	{AfxMessageBox("数据操作失败!");
	m_DBCnt->RollbackTrans();return;}
		CString OutPutString;
		OutPutString.Format ("用户%s,你的申请已成功递交!",m_UserName);
		AfxMessageBox(OutPutString);
}

void CChat::OnDestroy() 
{
	CDialog::OnDestroy();
	
	if(m_DBCnt->GetState()==adStateOpen)
		m_DBCnt->Close();
	
}

⌨️ 快捷键说明

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