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

📄 custom.cpp

📁 偶作的毕业设计程序
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	CString sql_,str1,str2,sql1_;
	sql_.Format("SELECT * FROM ChatInfo WHERE 用户名='%s' AND 交易类别='借'" ,PublicUserName);
	_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;
	
	while(!Myset->adoEOF ){
		Holder=Myset->GetCollect ("用户名");
		if(Holder.vt!=VT_NULL)
		{str1=(char*)(_bstr_t)Holder;
		str1.TrimRight (" ");
		m_List.InsertItem(i,str1);}
		else
			m_List.InsertItem(i,"未知]用户名");
		Holder=Myset->GetCollect ("软件名称");
		if(Holder.vt!=VT_NULL)
		{str1=(char*)(_bstr_t)Holder;
		str1.TrimRight (" ");
		m_List.SetItemText(i,1,str1);}
		else
			m_List.SetItemText(i,1,"未知]软件名");
		Holder=Myset->GetCollect ("格式");
		if(Holder.vt!=VT_NULL)
		{str1=(char*)(_bstr_t)Holder;
		str1.TrimRight (" ");
		m_List.SetItemText(i,2,str1);}
		else
			m_List.SetItemText(i,2,"未知格式");
		Holder=Myset->GetCollect ("交易类别");
		if(Holder.vt!=VT_NULL)
		{str1=(char*)(_bstr_t)Holder;
		str1.TrimRight (" ");
		m_List.SetItemText(i,3,str1);}
		else
			m_List.SetItemText(i,3,"未知交易类");
		Holder=Myset->GetCollect ("软件编号");
		if(Holder.vt!=VT_NULL)
		{str1=(char*)(_bstr_t)Holder;
		str1.TrimRight (" ");
		m_List.SetItemText(i,4,str1);}
		else
			m_List.SetItemText(i,4,"未知]软件号");
		Holder=Myset->GetCollect ("交易时间");
		if(Holder.vt!=VT_NULL)
		{str1=(char*)(_bstr_t)Holder;
		str1.TrimRight (" ");
		m_List.SetItemText(i,5,str1);}
		else
			m_List.SetItemText(i,5,"未知时间");
		
		Myset->MoveNext();
		i++;}
	Myset->Close();
	m_List.SetRedraw (true);
}

void CCustom::OnNotReturn() 
{
	// TODO: Add your control notification handler code here
		CString geshi[6];
	geshi[1]="软盘";
	geshi[2]="光盘";
	geshi[4]="文本";
	geshi[3]="硬盘";
	geshi[5]="其他";
	InitList();
if(m_DelSum>0)DeleteRemain();
	m_PreType=3;
	m_List.SetRedraw (false);
	CString softName,softNumber,softgeshi,softtype,softdate,Borrowdate;
	CString sql_,sql1_,mystr;
	sql_.Format("SELECT * FROM SoftDocInfo WHERE 软盘='%s' or 光盘='%s' or 硬盘='%s' or 文本='%s' or 其他='%s'",PublicUserName,PublicUserName,PublicUserName,PublicUserName,PublicUserName);
	_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 i,j=0;
	while(!Myset->adoEOF ){
		Holder=Myset->GetCollect ("软件名称");
		if(Holder.vt!=VT_NULL)
		{softName=(char*)(_bstr_t)Holder;
		softName.TrimRight (" ");}
		else
			softName="未知软件名";
		Holder=Myset->GetCollect ("软件类型");
		if(Holder.vt!=VT_NULL)
		{softtype=(char*)(_bstr_t)Holder;
		softtype.TrimRight (" ");}
		else
			softtype="未知类型";
		Holder=Myset->GetCollect ("软件编号");
		if(Holder.vt!=VT_NULL)
		{softNumber=(char*)(_bstr_t)Holder;
		softNumber.TrimRight (" ");}
				else
		softNumber="未知软件号";
		for(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==PublicUserName){//如果借者是用户
			CString myDate;
			myDate=geshi[i]+"时间";
_variant_t strmyDate=myDate;
	Holder=Myset->GetCollect (strmyDate);
		if(Holder.vt!=VT_NULL)
		{Borrowdate=(char*)(_bstr_t)Holder;
		Borrowdate.TrimRight (" ");}
		else
			Borrowdate=_T("未知时间");
			m_List.InsertItem (j,softName);
	        m_List.SetItemText (j,1,softtype);
			m_List.SetItemText (j,2,geshi[i]);
	        m_List.SetItemText (j,3,PublicUserName);
			m_List.SetItemText (j,4,softNumber);
	m_List.SetItemText (j,5,Borrowdate);

			j++;}
		}}//处理格式完
		
		Myset->MoveNext();
	}
	Myset->Close();
	m_List.SetRedraw (true);
}

void CCustom::OnChatRecord() 
{
	// TODO: Add your control notification handler code here
InitList();
if(m_DelSum>0)DeleteRemain();
	m_PreType=4;
	CString mysql;
	mysql.Format("SELECT * FROM ChatInfo 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;
	_variant_t Holder;
int	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 CCustom::OnPrivateInfo() 
{
	// TODO: Add your control notification handler code here
		UpdateData();
      if(m_DelSum>0)DeleteRemain();
	   m_PreType=5;
		//用消息框显示用户数据
		CString strUser,strDepartment,strRealname,strTel,strCheckDate,strInfo;
		CString SortNumber;
		CString mysql,mystr;
		mysql.Format("SELECT * FROM UserInfo 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;
		}
		_variant_t Holder;
		strUser=SortNumber;
		Holder=Myset->GetCollect ("姓名");
		if(Holder.vt!=VT_NULL)
		{strRealname=(char*)(_bstr_t)Holder;
		strRealname.TrimRight (" ");}
		else
			strRealname="未知姓名";
		Holder=Myset->GetCollect ("部门");
		if(Holder.vt!=VT_NULL)
		{strDepartment=(char*)(_bstr_t)Holder;
		strDepartment.TrimRight (" ");}
		else
			strDepartment="未知部门";
		Holder=Myset->GetCollect ("联系电话");
		if(Holder.vt!=VT_NULL)
		{strTel=(char*)(_bstr_t)Holder;
		strTel.TrimRight (" ");}
		else
			strTel="未知电话";
		Holder=Myset->GetCollect ("登记时间");
		if(Holder.vt!=VT_NULL)
		{strCheckDate=(char*)(_bstr_t)Holder;
		strCheckDate.TrimRight (" ");}
		else
			strCheckDate="不明时间";
		Holder=Myset->GetCollect ("详细信息");
		if(Holder.vt!=VT_NULL)
		{strInfo=(char*)(_bstr_t)Holder;
		strInfo.TrimRight (" ");}
		else
			strInfo="没有信息";
		Myset->Close();
		mystr="用户名:" +SortNumber+"\n"+"真实姓名:"+strRealname+"\n"+"所在部门:"+strDepartment+"\n"
			+"详细信息:"+strInfo;
		//输出消息框
		AfxMessageBox(mystr);
}

void CCustom::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;

	//检索各列的信息,确定列标题的内容长度。
	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 CCustom::OnViewNotify() 
{
	// TODO: Add your control notification handler code here
	m_Content=_T("");
	if(m_DelSum>0)DeleteRemain();
	m_PreType=10;
	GetDlgItem(IDC_BUTTON5)->EnableWindow(true);
  CString mysql,mystr1,mystr2,mystr3,mystr4,laststr;
   mysql.Format("SELECT * FROM MessageMap WHERE 消息类别 = '通知' OR 消息类别 = '回复通知' 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;
	}
	_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);

}

void CCustom::OnDestroy() 
{

	CDialog::OnDestroy();
	if(m_DelSum>0)DeleteRemain();
	// TODO: Add your message handler code here
		if(m_DBCnt->GetState()==adStateOpen)
		m_DBCnt->Close();
}

⌨️ 快捷键说明

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