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

📄 printdbview.cpp

📁 在游戏设计的时候
💻 CPP
📖 第 1 页 / 共 3 页
字号:
			
			dc.MoveTo(15*iCharWidth,(10+2)*iCharHeight);
			dc.LineTo((15+84)*iCharWidth,(10+2)*iCharHeight);
			dc.MoveTo(15*iCharWidth,(10+2*10)*iCharHeight);
			dc.LineTo((15+84)*iCharWidth,(10+2*10)*iCharHeight);
			
			dc.MoveTo(15*iCharWidth,(10+2*21)*iCharHeight);
			dc.LineTo((15+84)*iCharWidth,(10+2*21)*iCharHeight);
			dc.MoveTo(15*iCharWidth,(10+2*31)*iCharHeight);
			dc.LineTo((15+84)*iCharWidth,(10+2*31)*iCharHeight);
			dc.MoveTo(15*iCharWidth,(10+2*34)*iCharHeight);
			dc.LineTo((15+84)*iCharWidth,(10+2*34)*iCharHeight);
			
			//		delete &pen;
			//		delete &titleFont;
			//		delete &dataFont;
			//		delete &tm;
	
			dc.EndPage(); //通知打印机驱动程序页结束
			
			dc.EndDoc();//通知打印机驱动程序打印完毕
			
			DeleteDC(dc.Detach()); 
		}
	}
	else
	{
		return;
	}
	
}

void CPrintDBView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo) 
{
	// TODO: Add your specialized code here and/or call the base class
	if (PrintType==2)
	{
		if (pInfo!=NULL) //if (pInfo!=NULL) 的判断,我们要识别是否是为打印做准备
		{	
			if (circle<=ReturnPrintPages())
			{
				pInfo->m_bContinuePrinting=TRUE; 
			}else
				pInfo->m_bContinuePrinting=FALSE;
		}
		
	}
	CFormView::OnPrepareDC(pDC, pInfo);
//	
//	pDC->SetMapMode(MM_ANISOTROPIC);//转换坐标映射方式
//	
//	CSize size =CSize(1024,768);
//	
//	pDC->SetWindowExt(size);//确定窗口大小
//	
//	//得到实际设备每逻辑英寸的像素数量
//	
//	int xLogPixPerInch =pDC->GetDeviceCaps(LOGPIXELSX);
//	
//	int yLogPixPerInch =pDC->GetDeviceCaps(LOGPIXELSY);
//	
//	//得到设备坐标和逻辑坐标的比例
//	
//	long xExt =(long)0.9*size.cx * xLogPixPerInch/96;
//	
//	long yExt =(long)0.9*size.cy * yLogPixPerInch/96;
//	
//	pDC->SetViewportExt((int)xExt,(int)yExt);//确定视口大小
//	

	

}

void CPrintDBView::OnToday() 
{
	// TODO: Add your command handler code here

	try
	{
		if(!m_pRecordset->BOF)
		{
			m_pRecordset->MoveLast();
		    m_pRecordset->Move(-29);
		}   
		else
		{
			AfxMessageBox("表内数据为空");
			
			return;
		}
	}
	catch(_com_error *e)
	{
		AfxMessageBox(e->ErrorMessage());
	}
	TodayQuery();
	
	
}

void CPrintDBView::TodayQuery()
{
	_variant_t var;
	CString str1,str2;
	CString date,section,cping,czhui,mp,fzhui,fping;
	
	str1=str2="";

	m_List.ResetContent();
	iScreen1=iScreen2=iScreen3=iScreenDayNum=iCone1=iCone2=iCone3=iConeDayNum=0;
				
	CString a,b,c,d,e,f,g;
	a="年/月/日";b="时间段";c="成型玻屏";
	d="成型玻锥";e="磨抛投型";f="封接投锥";g="封接投屏";
	m_List.AddString(FilStrWithNul(a,11)+FilStrWithNul(b,12)+FilStrWithNul(c,12)+FilStrWithNul(d,12)+FilStrWithNul(e,12)+FilStrWithNul(f,12)+FilStrWithNul(g,12));
				
	for (int i=1;i<31;i++)
	{
		var = m_pRecordset->GetCollect("年/月/日");
		if(var.vt != VT_NULL)
			date = (LPCSTR)_bstr_t(var);
		else
			date="";
		var = m_pRecordset->GetCollect("时间段");
		if(var.vt != VT_NULL)
			section = (LPCSTR)_bstr_t(var);
		else
			section="";
		var = m_pRecordset->GetCollect("成型玻屏");
		if(var.vt != VT_NULL)
			cping = (LPCSTR)_bstr_t(var);
		else
			cping="0";
		var = m_pRecordset->GetCollect("成型玻锥");
		if(var.vt != VT_NULL)
			czhui = (LPCSTR)_bstr_t(var);
		else
			czhui="0";
		var = m_pRecordset->GetCollect("磨抛投型");
		if(var.vt != VT_NULL)
			mp = (LPCSTR)_bstr_t(var);
		else
			mp="0";
		var = m_pRecordset->GetCollect("封接投锥");
		if(var.vt != VT_NULL)
			fzhui = (LPCSTR)_bstr_t(var);
		else
			fzhui="0";
		var = m_pRecordset->GetCollect("封接投屏");
		if(var.vt != VT_NULL)
			fping = (LPCSTR)_bstr_t(var);
		else
			fping="0";
		
		if ((i>=1)&&(i<=9))
		{
			iScreen1+=atoi(cping);
			iCone1+=atoi(czhui);
			
		}
		if ((i>=10)&&(i<=20))
		{
			iScreen2+=atoi(cping);
			iCone2+=atoi(czhui);
			
		}
		if ((i>=21)&&(i<=30))
		{
			iScreen3+=atoi(cping);
			iCone3+=atoi(czhui);
			
		}
		
		iScreenDayNum+=atoi(cping);
		iConeDayNum+=atoi(czhui);
		
		
		
		m_List.AddString(FilStrWithNul(date,11)+FilStrWithNul(section,12)+FilStrWithNul(cping,12)+FilStrWithNul(czhui,12)+FilStrWithNul(mp,12)+FilStrWithNul(fzhui,12)+FilStrWithNul(fping,12));
		m_pRecordset->Move(1);
	}
	CanUseTotal=TRUE;
	m_SumList.ResetContent();
	HaveSum=FALSE;
	PrintType=1;
	return;
}

void CPrintDBView::OnUpdateToday(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->Enable(IsLinkTable);
}

void CPrintDBView::OnAdvancedQuery() 
{
    CAdvanceQuery dlg;
	if(dlg.DoModal()==IDOK)
	{
		UpdateData(TRUE);
	//检查数据库是否有数据
		try
		{
			if(!m_pRecordset->BOF)
				m_pRecordset->MoveLast();
			else
			{
				AfxMessageBox("表内数据为空");
				
				return;
			}
		}
		catch(_com_error *e)
		{
			AfxMessageBox(e->ErrorMessage());
		}
		
		//得到数据库中的最新与最初的日期
		_variant_t var,var1;
		CString sdate,sdate1;
		var = m_pRecordset->GetCollect("年/月/日");
		sdate = (LPCSTR)_bstr_t(var);
		m_pRecordset->MoveFirst();
		var1=m_pRecordset->GetCollect("年/月/日");
        sdate1=(LPCSTR)_bstr_t(var1);
		//检查输入的日期是否有误
		if (CStringCompare(dlg.m_DateTo,dlg.m_DateFrom))
		{
			
			
			if (CStringCompare(dlg.m_DateTo,sdate))
			{
				AfxMessageBox("您查询的截止日期晚于数据库中的最新记录,请您更新数据库或者重新核对日期!");
				return;
			}
			
			else if(CStringCompare(sdate1,dlg.m_DateFrom))
			{
				AfxMessageBox("您查询的起始日期早于数据库中的最初记录,请您更新数据库或者重新核对日期!");
				return;
			}
		}else
		{
			AfxMessageBox("输入有误!查询的截止日期早于起始日期,请重新输入!");
			return;
		}
        
		AdvancedQuery(dlg.m_DateFrom,dlg.SecFrom,dlg.m_DateTo,dlg.SecTo);
	}
}

void CPrintDBView::OnUpdateAdvancedQuery(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->Enable(IsLinkTable);
}





void CPrintDBView::AdvancedQuery(CString DateFrom, CString SecFrom, CString DateTo, CString SecTo)
{
	_variant_t var;
	CString str1,str2;
	CString date,section,cping,czhui,mp,fzhui,fping;
	
	str1=str2="";
	m_pRecordset->MoveFirst();

	while (!m_pRecordset->adoEOF)
	{
		
		var = m_pRecordset->GetCollect("年/月/日");
		
		str1 = (LPCSTR)_bstr_t(var);
		////////////////////////////////////////////////////////////////
		if (str1==DateFrom)
		{
			m_List.ResetContent();
			iScreen1=iScreen2=iScreen3=iScreenDayNum=iCone1=iCone2=iCone3=iConeDayNum=0;
			////////////////////////////
			while (str1==DateFrom)
			{
				m_pRecordset->Move(-1);
				var=m_pRecordset->GetCollect("年/月/日");
				str1=(LPCSTR)_bstr_t(var);
			}
			m_pRecordset->Move(1);//找到匹配日期的最初时间段
			//////////////////////////////////////////
			var=m_pRecordset->GetCollect("时间段");
			str1=(LPCSTR)_bstr_t(var);
			while (str1!=SecFrom)
			{
				m_pRecordset->Move(1);
				var=m_pRecordset->GetCollect("时间段");
				str1=(LPCSTR)_bstr_t(var);
			}/////////////////////////找到匹配的时间段
			CString a,b,c,d,e,f,g;
			a="年/月/日";b="时间段";c="成型玻屏";
			d="成型玻锥";e="磨抛投型";f="封接投锥";g="封接投屏";
			m_List.AddString(FilStrWithNul(a,11)+FilStrWithNul(b,12)+FilStrWithNul(c,12)+FilStrWithNul(d,12)+FilStrWithNul(e,12)+FilStrWithNul(f,12)+FilStrWithNul(g,12));
			/////////////写表头/////////////////////////
			while ((LPCSTR)_bstr_t(m_pRecordset->GetCollect("年/月/日"))!=DateTo)
			{
				var = m_pRecordset->GetCollect("年/月/日");
				if(var.vt != VT_NULL)
					date = (LPCSTR)_bstr_t(var);
				else
					date="";
				var = m_pRecordset->GetCollect("时间段");
				if(var.vt != VT_NULL)
					section = (LPCSTR)_bstr_t(var);
				else
					section="";
				var = m_pRecordset->GetCollect("成型玻屏");
				if(var.vt != VT_NULL)
					cping = (LPCSTR)_bstr_t(var);
				else
					cping="0";
				var = m_pRecordset->GetCollect("成型玻锥");
				if(var.vt != VT_NULL)
					czhui = (LPCSTR)_bstr_t(var);
				else
					czhui="0";
				var = m_pRecordset->GetCollect("磨抛投型");
				if(var.vt != VT_NULL)
					mp = (LPCSTR)_bstr_t(var);
				else
					mp="0";
				var = m_pRecordset->GetCollect("封接投锥");
				if(var.vt != VT_NULL)
					fzhui = (LPCSTR)_bstr_t(var);
				else
					fzhui="0";
				var = m_pRecordset->GetCollect("封接投屏");
				if(var.vt != VT_NULL)
					fping = (LPCSTR)_bstr_t(var);
				else
					fping="0";

				iScreenDayNum+=atoi(cping);
				iConeDayNum+=atoi(czhui);

				m_List.AddString(FilStrWithNul(date,11)+FilStrWithNul(section,12)+FilStrWithNul(cping,12)+FilStrWithNul(czhui,12)+FilStrWithNul(mp,12)+FilStrWithNul(fzhui,12)+FilStrWithNul(fping,12));
				m_pRecordset->Move(1);
			}
			while((LPCSTR)_bstr_t(m_pRecordset->GetCollect("时间段"))!=SecTo)
			{
				var = m_pRecordset->GetCollect("年/月/日");
				if(var.vt != VT_NULL)
					date = (LPCSTR)_bstr_t(var);
				else
					date="";
				var = m_pRecordset->GetCollect("时间段");
				if(var.vt != VT_NULL)
					section = (LPCSTR)_bstr_t(var);
				else
					section="";
				var = m_pRecordset->GetCollect("成型玻屏");
				if(var.vt != VT_NULL)
					cping = (LPCSTR)_bstr_t(var);
				else
					cping="0";
				var = m_pRecordset->GetCollect("成型玻锥");
				if(var.vt != VT_NULL)
					czhui = (LPCSTR)_bstr_t(var);
				else
					czhui="0";
				var = m_pRecordset->GetCollect("磨抛投型");
				if(var.vt != VT_NULL)
					mp = (LPCSTR)_bstr_t(var);
				else
					mp="0";
				var = m_pRecordset->GetCollect("封接投锥");
				if(var.vt != VT_NULL)
					fzhui = (LPCSTR)_bstr_t(var);
				else
					fzhui="0";
				var = m_pRecordset->GetCollect("封接投屏");
				if(var.vt != VT_NULL)
					fping = (LPCSTR)_bstr_t(var);
				else
					fping="0";

				iScreenDayNum+=atoi(cping);
				iConeDayNum+=atoi(czhui);

				m_List.AddString(FilStrWithNul(date,11)+FilStrWithNul(section,12)+FilStrWithNul(cping,12)+FilStrWithNul(czhui,12)+FilStrWithNul(mp,12)+FilStrWithNul(fzhui,12)+FilStrWithNul(fping,12));
				m_pRecordset->Move(1);
			}
				var = m_pRecordset->GetCollect("年/月/日");
				if(var.vt != VT_NULL)
					date = (LPCSTR)_bstr_t(var);
				else
					date="";
				var = m_pRecordset->GetCollect("时间段");
				if(var.vt != VT_NULL)
					section = (LPCSTR)_bstr_t(var);
				else
					section="";
				var = m_pRecordset->GetCollect("成型玻屏");
				if(var.vt != VT_NULL)
					cping = (LPCSTR)_bstr_t(var);
				else
					cping="0";
				var = m_pRecordset->GetCollect("成型玻锥");
				if(var.vt != VT_NULL)
					czhui = (LPCSTR)_bstr_t(var);
				else
					czhui="0";
				var = m_pRecordset->GetCollect("磨抛投型");
				if(var.vt != VT_NULL)
					mp = (LPCSTR)_bstr_t(var);
				else
					mp="0";
				var = m_pRecordset->GetCollect("封接投锥");
				if(var.vt != VT_NULL)
					fzhui = (LPCSTR)_bstr_t(var);
				else
					fzhui="0";
				var = m_pRecordset->GetCollect("封接投屏");
				if(var.vt != VT_NULL)
					fping = (LPCSTR)_bstr_t(var);
				else
					fping="0";

				iScreenDayNum+=atoi(cping);
				iConeDayNum+=atoi(czhui);

				m_List.AddString(FilStrWithNul(date,11)+FilStrWithNul(section,12)+FilStrWithNul(cping,12)+FilStrWithNul(czhui,12)+FilStrWithNul(mp,12)+FilStrWithNul(fzhui,12)+FilStrWithNul(fping,12));
			
			CanUseTotal=TRUE;
			m_SumList.ResetContent();
			HaveSum=FALSE;
			PrintType=2;
			return;
		}
		m_pRecordset->Move(30);
	}
	AfxMessageBox("数据库中不存在您检索的数据,请您核对日期后重新查询!");
}

int CPrintDBView::ReturnPrintPages()
{
	int items,pages;
	items=m_List.GetCount();
	if (HaveSum)
	{
		items++;
	}
	pages=items/35;
	if ((pages*35)!=items)
	{
		pages++;
	}
    return pages;
}





















⌨️ 快捷键说明

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