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

📄 custom.cpp

📁 偶作的毕业设计程序
💻 CPP
📖 第 1 页 / 共 3 页
字号:
		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_Content=m_Content+laststr+"\n";
		Myset->MoveNext ();}
		UpdateData(false);
	*pResult = 0;
}

void CCustom::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	POSITION pos=m_List.GetFirstSelectedItemPosition();
	if(pos==NULL)return;//判断是否选中记录
	int i=m_List.GetSelectionMark ();
	CString strColText[11];
	CString strItemText[11];
	CString OutPutStr="";
	LVCOLUMN lvc;
		char text[100];
		lvc.mask = LVCF_TEXT|LVCF_SUBITEM;
		lvc.pszText = text;
		lvc.cchTextMax = 100;
		int shumu=m_List.GetItemCount ();
		for(int j=0;j<m_ListNumber;j++)
		{
        m_List.GetColumn(j, &lvc);
		strColText[j] = lvc.pszText;
         strItemText[j]=m_List.GetItemText(i,j);
		 OutPutStr=OutPutStr+strColText[j]+":"+strItemText[j]+_T("\n");
		}

	AfxMessageBox(OutPutStr);
	*pResult = 0;	
}

void CCustom::OnRclickList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	POSITION pos=m_List.GetFirstSelectedItemPosition();
	if(pos==NULL)return;//判断是否选中记录
	MSG msg;
	GetMessage(&msg,NULL,0,0);//获得当前点
    POINT point= msg.pt;
	((CCustom*)(GetDlgItem(IDC_LIST1)->GetParent()))->PopupMenu(point);//先获得父窗口指针,在使用它的函数
	
	*pResult = 0;
}

void CCustom::PopupMenu(POINT pt)
{
	
	CMenu myPopupMenu;
	myPopupMenu.LoadMenu (IDR_USERMENU);
	CMenu *pPopup=myPopupMenu.GetSubMenu (0);
	switch(m_treatType){
	case 3:{
	pPopup->EnableMenuItem(IDR_USERDELETE, MF_GRAYED);
pPopup->EnableMenuItem(IDR_USERUNDO, MF_GRAYED);
//	if(m_DelSum<1) pPopup->EnableMenuItem(IDR_UNDO, MF_GRAYED);
	break;}
	case 0:
	{	
		if(m_DelSum<1) pPopup->EnableMenuItem(IDR_UNDO, MF_GRAYED);
	break;}
	case 2:
	{	pPopup->EnableMenuItem(IDR_USERDELETE, MF_GRAYED);
        pPopup->EnableMenuItem(IDR_USERUNDO, MF_GRAYED);
	break;	}
	case 1:
	{
	pPopup->EnableMenuItem(IDR_USERMODIFY, MF_GRAYED);
    if(m_DelSum<1) pPopup->EnableMenuItem(IDR_UNDO, MF_GRAYED);
	break;}
	case 4:
	{	pPopup->EnableMenuItem(IDR_USERDELETE, MF_GRAYED);
pPopup->EnableMenuItem(IDR_USERUNDO, MF_GRAYED);
	break;	}
	case 5:
		{	pPopup->EnableMenuItem(IDR_USERDELETE, MF_GRAYED);
pPopup->EnableMenuItem(IDR_USERUNDO, MF_GRAYED);break;
	}}
	pPopup->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,pt.x,pt.y,this);
}
void CCustom::DeleteRemain()
{
	if(m_PreType!=0 && m_PreType!=1)return;
	CString sql_,ApplyNumber,strGeshi,ChatType;
	for(int i=1;i<m_DelSum+1;i++)
	{
		if(m_PreType==1){//删除申请记录
			ApplyNumber=a[b[i]*10+6];
			try{
				m_DBCnt->BeginTrans ();
				sql_.Format ("delete from ApplyTable where 申请号 ='%s'",ApplyNumber);
				_bstr_t sql=sql_;
				m_DBCnt->Execute(sql,NULL,adCmdText);//删除记录
				ChatType=a[b[i]*10+1];
				ChatType.TrimRight (" ");
				if(ChatType=="借"){
            	ApplyNumber=a[b[i]*10+4];
					strGeshi=a[b[i]*10+3];
					sql_.Format ("update SoftDocInfo set %s ='在家' where 软件编号 ='%s'",strGeshi,ApplyNumber);
					_bstr_t sql2=sql_;
					m_DBCnt->Execute(sql2,NULL,adCmdText);//删除记录
				}
				m_DBCnt->CommitTrans ();
			}
			catch(_com_error &e){
				AfxMessageBox(e.ErrorMessage ());
				m_DBCnt->RollbackTrans ();
				return;}
		}
		if(m_PreType==0)
		{	ApplyNumber=a[b[i]*10+7];
		sql_.Format ("delete from StateReport where 状态编号 ='%s'",ApplyNumber);
		_bstr_t sql=sql_;
		try{
			m_DBCnt->Execute(sql,NULL,adCmdText);}
		catch(_com_error &e){
			AfxMessageBox(e.ErrorMessage ());return;}
		}

}
m_DelSum=0;
}

	


void CCustom::OnUsercopy() 
{
	// 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 CCustom::OnUserdelete() 
{
	// TODO: Add your command handler code here
	POSITION pos=m_List.GetFirstSelectedItemPosition();//判断是否选中记录
	if(pos==NULL){AfxMessageBox("没有选中记录",MB_ICONEXCLAMATION);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){//状态汇报删除管理
		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 CCustom::OnUserundo() 
{
	// 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 CCustom::DeleteFirst()
{
	//if(m_treatType!=0 && m_treatType!=1)return;
	CString sql_,ApplyNumber,strGeshi,ChatType;
	if(m_treatType==1){//删除申请记录
		ApplyNumber=a[b[1]*10+6];
		try{
			m_DBCnt->BeginTrans ();
			sql_.Format ("delete from ApplyTable where 申请号 ='%s'",ApplyNumber);
			_bstr_t sql=sql_;
			m_DBCnt->Execute(sql,NULL,adCmdText);//删除记录
			ChatType=a[b[1]*10+1];
			ChatType.TrimRight (" ");
			if(ChatType=="借"){
				strGeshi=a[b[1]*10+3];
	ApplyNumber=a[b[1]*10+4];
				sql_.Format ("update SoftDocInfo set %s ='在家' where 软件编号 ='%s'",strGeshi,ApplyNumber);
				_bstr_t sql2=sql_;
				m_DBCnt->Execute(sql2,NULL,adCmdText);//删除记录
			}
			m_DBCnt->CommitTrans ();
		}
		catch(_com_error &e){
			AfxMessageBox(e.ErrorMessage ());
			m_DBCnt->RollbackTrans ();return;}
	}
	if(m_treatType==0)
	{	ApplyNumber=a[b[1]*10+7];
	sql_.Format ("delete from StateReport where 状态编号 ='%s'",ApplyNumber);
	_bstr_t sql=sql_;
	try{
		m_DBCnt->Execute(sql,NULL,adCmdText);}
	catch(_com_error &e){
		AfxMessageBox(e.ErrorMessage ());return;}
	}

}

void CCustom::OnStateReport() 
{
	// TODO: Add your control notification handler code here
InitList();//初始化列表框
	if(m_DelSum>0)DeleteRemain();
	m_PreType=0;
GetDlgItem(IDC_BUTTON5)->EnableWindow(false);
		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,StateString,StateMiaoShu;
		mysql.Format("SELECT * FROM StateReport WHERE 用户名 = '%s'",PublicUserName);
		_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,StateIndex;
		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
				m_List.SetItemText (i,1,"未知软件");
			Holder=Myset->GetCollect ("软件作者");//
			if(Holder.vt!=VT_NULL)
			{mystr=(char*)(_bstr_t)Holder;
			mystr.TrimRight(" ");
			m_List.SetItemText (i,2,mystr);}
			else
				m_List.SetItemText (i,2,"未知作者");
			Holder=Myset->GetCollect ("状态");//根据不同状态判断
			if(Holder.vt!=VT_NULL)
			{mystr=(char*)(_bstr_t)Holder;
			mystr.TrimRight (" ");
			StateIndex=atoi(mystr);
			switch(StateIndex)
			{case 1:
			{mystr="";
			Holder=Myset->GetCollect ("剩余时间");
			if(Holder.vt!=VT_NULL)
			{mystr=(char*)(_bstr_t)Holder;
			mystr.TrimRight (" ");
			StateString.Format("还需%s天完成",mystr);}
			else
				StateString="时间不定";
			Holder=Myset->GetCollect ("状态描述");
			if(Holder.vt!=VT_NULL)
			{mystr=(char*)(_bstr_t)Holder;
			mystr.TrimRight (" ");	
			StateMiaoShu=mystr;}
			else
				StateMiaoShu="状态不定";
			break;
			}
			case 2:
				{
					Holder=Myset->GetCollect ("索取地址");
					if(Holder.vt!=VT_NULL)
					{mystr=(char*)(_bstr_t)Holder;
					mystr.TrimRight (" ");	
					StateMiaoShu.Format("将于%s送管理员",mystr);}
					else
						StateMiaoShu="地址不定";
					StateString="送管理员";
					break;}
			case 3:
				{
					Holder=Myset->GetCollect ("索取地址");
					if(Holder.vt!=VT_NULL)
					{mystr=(char*)(_bstr_t)Holder;
					mystr.TrimRight (" ");}	
					StateMiaoShu.Format("到%s取",mystr);
					StateString="请管理员来取";
					break;	}
			}}
			else
			{StateMiaoShu="不定";
			StateString="状态不定";}
			m_List.SetItemText (i,3,StateString);
			m_List.SetItemText (i,4,StateMiaoShu);
			Holder=Myset->GetCollect ("文档形式");//
			if(Holder.vt!=VT_NULL)
			{mystr=(char*)(_bstr_t)Holder;
			mystr.TrimRight(" ");
			m_List.SetItemText(i,5,mystr);
			}
			else
				m_List.SetItemText(i,5,"未知格式");
			Holder=Myset->GetCollect ("汇报时间");//
			if(Holder.vt!=VT_NULL)
			{mystr=(char*)(_bstr_t)Holder;
			mystr.TrimRight(" ");
			m_List.SetItemText(i,6,"mystr");
			}
			else
				m_List.SetItemText(i,6,"未知时间");
			Holder=Myset->GetCollect ("状态编号");//
			if(Holder.vt!=VT_NULL)
			{mystr=(char*)(_bstr_t)Holder;
			mystr.TrimRight(" ");
			m_List.SetItemText(i,7,mystr);
			}
			else
				m_List.SetItemText(i,7,"未知编号");
			Myset->MoveNext ();
			i++;
		}
		Myset->Close();
		m_List.SetRedraw (true);	
}

void CCustom::OnApplyRecord() 
{
	// TODO: Add your control notification handler code here
		GetDlgItem(IDC_BUTTON5)->EnableWindow(false);
	if(m_DelSum>0)DeleteRemain();
	m_PreType=1;
	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 WHERE 用户名 = '%s' ORDER BY 申请号",PublicUserName);
	_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
			m_List.SetItemText (i,1,"未知类别");
		Holder=Myset->GetCollect ("软件名称");//
		if(Holder.vt!=VT_NULL)
		{mystr=(char*)(_bstr_t)Holder;
		mystr.TrimRight(" ");
		m_List.SetItemText (i,2,mystr);}
		else
			m_List.SetItemText (i,2,"未知名称");
		Holder=Myset->GetCollect ("格式");//
		if(Holder.vt!=VT_NULL)
		{mystr=(char*)(_bstr_t)Holder;
		mystr.TrimRight(" ");
		m_List.SetItemText (i,3,mystr);}
		else
			m_List.SetItemText (i,3,"未知格式");
		Holder=Myset->GetCollect ("软件编号");//
		if(Holder.vt!=VT_NULL)
		{mystr=(char*)(_bstr_t)Holder;
		mystr.TrimRight(" ");
		m_List.SetItemText (i,4,mystr);}
		else
			m_List.SetItemText (i,4,"未知编号");
		Holder=Myset->GetCollect ("申请日期");//
		if(Holder.vt!=VT_NULL)
		{mystr=(char*)(_bstr_t)Holder;
		mystr.TrimRight(" ");
		m_List.SetItemText (i,5,mystr);}
		else
			m_List.SetItemText (i,5,"未知日期");
		Holder=Myset->GetCollect ("申请号");//
		if(Holder.vt!=VT_NULL)
		{mystr=(char*)(_bstr_t)Holder;
		mystr.TrimRight(" ");
		m_List.SetItemText (i,6,mystr);}
		else
			m_List.SetItemText (i,6,"未知号码");
		i++;
		Myset->MoveNext();
	}
	Myset->Close();
	m_List.SetRedraw (true);	
}

void CCustom::OnHaveSeenDoc() 
{
	// TODO: Add your control notification handler code here	
	InitList();
	if(m_DelSum>0)DeleteRemain();
	m_PreType=2;
	m_List.SetRedraw (false);

⌨️ 快捷键说明

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