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

📄 manager.cpp

📁 偶作的毕业设计程序
💻 CPP
📖 第 1 页 / 共 3 页
字号:
			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 CManager::OnUserAllInfo() 
{
	// TODO: Add your control notification handler code here
	//GetDlgItem(IDC_BUTTON6)->EnableWindow(false);
	if(m_DelSum>0)DeleteRemain();
	m_PreType=3;
((CButton*)GetDlgItem(IDC_RADIO5))->SetCheck(false);
InitList();
m_List.SetRedraw (false);
CString mysql;
mysql.Format("SELECT * FROM UserInfo 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
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,"未知信息");
i++;
Myset->MoveNext();
}
Myset->Close();
m_List.SetRedraw (true);
}

void CManager::DeleteFirst()
{
CString sql_,ApplyNumber,ChatType,strGeshi;
if(m_treatType==1){

	ChatType=a[b[1]*10+1];
			ChatType.TrimRight (" ");
			if(ChatType=="借"){
					ApplyNumber=a[b[1]*10+4];
				strGeshi=a[b[1]*10+3];
				sql_.Format ("update SoftDocInfo set %s ='在家' where 软件编号 ='%s'",strGeshi,ApplyNumber);
				_bstr_t sql2=sql_;
				try{m_DBCnt->Execute(sql2,NULL,adCmdText);}
catch(_com_error &e){
	AfxMessageBox(e.ErrorMessage ());return;
	}
				}//删除记录
	ApplyNumber=a[b[1]*10+6];
	sql_.Format ("delete from ApplyTable where 申请号 ='%s'",ApplyNumber);}
else
{	ApplyNumber=a[b[1]*10+7];
	sql_.Format ("delete from StateTable where 状态编号 ='%s'",ApplyNumber);}
_bstr_t sql=sql_;
try{
	m_DBCnt->Execute(sql,NULL,adCmdText);}
catch(_com_error &e){
	AfxMessageBox(e.ErrorMessage ());return;
	}
}

void CManager::DeleteRemain()
{
CString sql_,ApplyNumber,ChatType,strGeshi;
for(int i=1;i<m_DelSum+1;i++){
if(m_PreType==1){
		ChatType=a[b[i]*10+1];
			ChatType.TrimRight (" ");
			if(ChatType=="借"){
					ApplyNumber=a[b[1]*10+4];
				strGeshi=a[b[i]*10+3];
				sql_.Format ("update SoftDocInfo set %s ='在家' where 软件编号 ='%s'",strGeshi,ApplyNumber);
				_bstr_t sql2=sql_;
				try{m_DBCnt->Execute(sql2,NULL,adCmdText);}
catch(_com_error &e){
	AfxMessageBox(e.ErrorMessage ());return;
	}
				}//删除记录
	ApplyNumber=a[b[i]*10+6];
	sql_.Format ("delete from ApplyTable where 申请号 ='%s'",ApplyNumber);}
if(m_PreType==0)
{	ApplyNumber=a[b[i]*10+7];
	sql_.Format ("delete from StateReport where 状态编号 ='%s'",ApplyNumber);}
if(m_PreType==0)
{	ApplyNumber=a[b[i]*10];
	sql_.Format ("delete from UserInfo 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 CManager::OnDestroy() 
{
	CDialog::OnDestroy();
	
	// TODO: Add your message handler code here
		if(m_DelSum>0)DeleteRemain();
	m_PreType=3;
	if(m_DBCnt->GetState()==adStateOpen)m_DBCnt->Close();
}

void CManager::OnClearlog() 
{
	// TODO: Add your control notification handler code here
int choice=AfxMessageBox("你将清楚全部操作日志,日志将不可恢复,确定删除吗?",MB_OKCANCEL|MB_ICONEXCLAMATION);
if(choice==IDOK){//清除操作日志
	_bstr_t strSQL("TRUNCATE TABLE DateLog");
	try{
		m_DBCnt->Execute(strSQL,NULL,adCmdText);
	}
	catch(_com_error &e){
	AfxMessageBox(e.ErrorMessage ());return;
	}
AfxMessageBox("管理员,操作日志已成功删除,请进行下一步操作!");
}	
}

void CManager::OnModify() 
{
	// TODO: Add your command handler code here
	if(m_treatType==1){
	POSITION pos=m_List.GetFirstSelectedItemPosition();//判断是否选中记录
	if(pos==NULL){AfxMessageBox("没有选中记录",MB_ICONEXCLAMATION);return;}
	int i=m_List.GetSelectionMark();
	theApp.mSoftName=m_List.GetItemText(i,2);
	theApp.mSoftNumber=m_List.GetItemText(i,4);
	theApp.mSoftType=m_List.GetItemText(i,1);
	theApp.mSoftGeshi=m_List.GetItemText(i,3);
CChangeApply dlg;
this->ShowWindow(SW_HIDE);
dlg.DoModal();
this->ShowWindow(SW_SHOW);
m_List.SetRedraw(false);//写入修改数据
m_List.SetItemText(i,3,theApp.mSoftGeshi);
m_List.SetRedraw(true);
}}


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

void CManager::PopupMenu(POINT pt)
{
	CMenu myPopupMenu;
	myPopupMenu.LoadMenu (IDR_POPUPMENU);
	CMenu *pPopup=myPopupMenu.GetSubMenu (0);
	switch(m_treatType){
	case 0:{
		pPopup->EnableMenuItem(IDR_ACCEPT, MF_GRAYED/*MF_GRAYED*/);
		pPopup->EnableMenuItem(IDR_MODIFY, MF_GRAYED);
		if(m_DelSum<1) pPopup->EnableMenuItem(IDR_UNDO, MF_GRAYED);
		   break;}
	case 1:
		{		if(m_DelSum<1) pPopup->EnableMenuItem(IDR_UNDO, MF_GRAYED);
		break;}
	case 2:
		{pPopup->EnableMenuItem(IDR_ACCEPT, MF_GRAYED/*MF_GRAYED*/);
		pPopup->EnableMenuItem(IDR_MODIFY, MF_GRAYED);
        pPopup->EnableMenuItem(IDR_DEL, MF_GRAYED);
		pPopup->EnableMenuItem(IDR_UNDO, MF_GRAYED);
	break;	}
	case 4:
		{
			pPopup->EnableMenuItem(IDR_ACCEPT, MF_GRAYED/*MF_GRAYED*/);
			pPopup->EnableMenuItem(IDR_MODIFY, MF_GRAYED);
			pPopup->EnableMenuItem(IDR_DEL, MF_GRAYED);
			pPopup->EnableMenuItem(IDR_UNDO, MF_GRAYED);
		break;}
	case 3:
		{
			pPopup->EnableMenuItem(IDR_ACCEPT, MF_GRAYED/*MF_GRAYED*/);
			pPopup->EnableMenuItem(IDR_MODIFY, MF_GRAYED);
			if(m_DelSum<1) pPopup->EnableMenuItem(IDR_UNDO, MF_GRAYED);
		break;}
	}
	pPopup->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,pt.x,pt.y,this);
}

void CManager::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 CManager::ConnectDataBase()
{

}

void CManager::OnUsercopy() 
{
	// TODO: Add your command handler code here
	
}

void CManager::OnPrint() //打印列表框的记录
{
	// TODO: Add your control notification handler code here
	typedef struct tagColAtt//存储各列信息
	{
		int nColIndex;
		CString strColText;
		int nPrintX;
		int nSubItemIndex;
	}COLATT;
	
	PRINTDLG pd;
	pd.lStructSize = sizeof(PRINTDLG);//初始化打印机
	pd.Flags = PD_RETURNDC;
	pd.hDC = NULL;
	pd.hwndOwner = NULL;
	pd.hInstance = NULL;
	pd.nMaxPage = 1;
	pd.nMinPage = 1;
	pd.nFromPage = 1;
	pd.nToPage  = 1;
	pd.nCopies = 1;
	pd.hDevMode = NULL;
	pd.hDevNames = NULL;
	
	//显示打印对话框,由用户来设定纸张大小等。
	if(!PrintDlg(&pd)) {AfxMessageBox("ERROR");return; }
	ASSERT(pd.hDC!=NULL);
	
	int nHorRes = GetDeviceCaps(pd.hDC, HORZRES);	
	int nVerRes = GetDeviceCaps(pd.hDC, VERTRES);
	int nXMargin = 2;
	int nYMargin = 2;
	TEXTMETRIC tm;
	GetTextMetrics(pd.hDC, &tm);
	int nCharHeight = tm.tmHeight;
	int nCharWidth = tm.tmAveCharWidth;
	
	
	CHeaderCtrl* pHeader = m_List.GetHeaderCtrl();
	
	int nColCount = pHeader->GetItemCount();//获得列的个数
	int nLineCount = m_List.GetItemCount();//获得行的个数
	
	int ColOrderArray[100];
	COLATT ca[100];//定义数组记录打印的文字
	m_List.GetColumnOrderArray(ColOrderArray, nColCount);
	int nColX =nXMargin*nCharWidth;//X方向的移动距离
	
	//检索各列的信息,确定列标题的内容长度。
	for(int i =0 ; i< nColCount; i++)//逐行打印
	{
		ca[i].nColIndex = ColOrderArray[i];
		LVCOLUMN lvc;//取得该列的表头
		char text[100];
		lvc.mask = LVCF_TEXT|LVCF_SUBITEM;
		lvc.pszText = text;
		lvc.cchTextMax = 100;
        m_List.GetColumn(ca[i].nColIndex, &lvc);
		ca[i].strColText = lvc.pszText;//
		ca[i].nSubItemIndex = lvc.iSubItem;
		ca[i].nPrintX = nColX;
		nColX += nCharWidth * strlen(ca[i].strColText);//以表头宽定义打印宽度
		
		if(nColX > nHorRes) //如果如果此时的宽度已大于水平极限宽度
		{
			DeleteDC(pd.hDC);
			AfxMessageBox("字段太多,无法在一行内打印,请试用较大的纸,或横向打印。");
			return;
		}
		
		
	}
	
	DOCINFO di;
	di.cbSize = sizeof(DOCINFO);
	di.lpszDocName = "ListCtrl Data Printing"; 
	di.lpszOutput = (LPTSTR) NULL; 
	di.lpszDatatype = (LPTSTR) NULL; 
	di.fwType = 0; 
	StartDoc(pd.hDC, &di);
	StartPage(pd.hDC);
	
	//调整各列的宽度,以使各列在后面的打印输出时更均匀的打印在纸上。
	int space = (nHorRes-nXMargin*nCharWidth-nColX) / (nColCount -1);
	for(i =1; i<nColCount; i++)
	{
		ca[i].nPrintX += i*space;
	}
	
	//输出列标题
	for(i =0; i<nColCount; i++)
		TextOut(pd.hDC, ca[i].nPrintX, nYMargin, 
		ca[i].strColText, strlen(ca[i].strColText));
	
	int nMaxLinePerPage = nVerRes/nCharHeight -3;
	int nCurPage =1;
	//输出各列的数据
	for(i =0; i<nLineCount; i++)//行
	{
		for(int j =0; j<nColCount; j++)//列
		{
			if(i+1-(nCurPage-1)*nMaxLinePerPage > nMaxLinePerPage)
			{
				//新的一页
				EndPage(pd.hDC);
				StartPage(pd.hDC);
				nCurPage ++;
			}
			CString subitem = m_List.GetItemText(i, j/*ca[j].nSubItemIndex*/);//取出列表框的字段
			TextOut(pd.hDC, ca[j].nPrintX, 
				nYMargin+(i+1-(nCurPage-1)*nMaxLinePerPage)*nCharHeight, 
				subitem, strlen(subitem));
		}
	}
	
	EndPage(pd.hDC);
	EndDoc(pd.hDC);
	//打印结束
	DeleteDC(pd.hDC);
	return;
}

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

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

⌨️ 快捷键说明

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