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

📄 dlgproductquery.cpp

📁 用VC编写的立体仓库的管理软件源程序和设计说明书。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		{
			iStart = 0;
			nTop = 25*yPix;		//第一页最上线
			for(int iTotalPages = 1; iTotalPages<=nMaxPage; iTotalPages++)
			{
				int nCurPage = iTotalPages;
				csRFinality.Format("第 %i 页/共 %i 页", nCurPage, nMaxPage);
				time=CTime::GetCurrentTime();
				csLFinality = time.Format("报表日期:%Y-%m-%d");

				if(nCurPage != 1)
					nTop = 25*yPix-fAdd;	//非第一页最上线
				if(nCurPage == 2)
					iStart = A4_ONELINE;
				if(nCurPage>2)
					iStart = A4_ONELINE+(nCurPage - 2)*A4_OTHERLINE;
				//开始页
				if(memDC.StartPage() < 0)
				{
					::MessageBox(hWnd, _T("打印失败!"), "错误", MB_ICONSTOP);
					memDC.AbortDoc();
					return;
				}
				else
				{
					//打印
					//标题
					oldfont = memDC.SelectObject(&TitleFont);
					int nItem = A4_OTHERLINE;
					if(nCurPage == 1)
					{
						nItem = A4_ONELINE;
						rc.SetRect(0,(int)(yPix*10),(int)(A4_W*xPix),(int)(yPix*20));
						memDC.DrawText(szTitle, &rc, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
					}
					//细节
 					memDC.SelectObject(&DetailFont);
					rc.SetRect((int)(nLeft),(int)(nTop),(int)(nRight),(int)(nTop+fAdd));
					//上横线
					memDC.MoveTo(rc.left, rc.top);
					memDC.LineTo(rc.right, rc.top);

					rt1.SetRect((int)(nLeft),(int)(nTop),(int)(nLeft+14*xPix),(int)(rc.bottom));				//商品编码
					rt2.SetRect((int)(rt1.right),(int)(rt1.top),(int)(rt1.right+20*xPix),(int)(rt1.bottom));	//商品名称
					rt3.SetRect((int)(rt2.right),(int)(rt1.top),(int)(rt2.right+30*xPix),(int)(rt1.bottom));	//商品规格
					rt4.SetRect((int)(rt3.right),(int)(rt1.top),(int)(rt3.right+15*xPix),(int)(rt1.bottom));	//商品颜色
					rt5.SetRect((int)(rt4.right),(int)(rt1.top),(int)(rt4.right+25*xPix),(int)(rt1.bottom));	//商品价格(RMB)
					rt6.SetRect((int)(rt5.right),(int)(rt1.top),(int)(rt5.right+20*xPix),(int)(rt1.bottom));	//商品重量(KG)
					rt7.SetRect((int)(rt6.right),(int)(rt1.top),(int)(rt6.right+15*xPix),(int)(rt1.bottom));	//计量单位
					rt8.SetRect((int)(rt7.right),(int)(rt1.top),(int)(rt7.right+40*xPix),(int)(rt1.bottom));	//供应商名称
					rt9.SetRect((int)(rt8.right),(int)(rt1.top),(int)(rc.right), (int)(rt1.bottom));			//库存数量
					memDC.DrawText("编码", &rt1, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
					memDC.DrawText("名称", &rt2, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
					memDC.DrawText("规格", &rt3, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
					memDC.DrawText("颜色", &rt4, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
					memDC.DrawText("价格(RMB)", &rt5, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
					memDC.DrawText("重量(KG)", &rt6, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
					memDC.DrawText("单位", &rt7, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
					memDC.DrawText("供货商", &rt8, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
					memDC.DrawText("数量", &rt9, DT_CENTER | DT_VCENTER | DT_SINGLELINE);

					memDC.MoveTo(rt1.right, rt1.top);
					memDC.LineTo(rt1.right, rt1.bottom);
					memDC.MoveTo(rt2.right, rt1.top);
					memDC.LineTo(rt2.right, rt1.bottom);
					memDC.MoveTo(rt3.right, rt1.top);
					memDC.LineTo(rt3.right, rt1.bottom);
					memDC.MoveTo(rt4.right, rt1.top);
					memDC.LineTo(rt4.right, rt1.bottom);
					memDC.MoveTo(rt5.right, rt1.top);
					memDC.LineTo(rt5.right, rt1.bottom);
					memDC.MoveTo(rt6.right, rt1.top);
					memDC.LineTo(rt6.right, rt1.bottom);
					memDC.MoveTo(rt7.right, rt1.top);
					memDC.LineTo(rt7.right, rt1.bottom);
					memDC.MoveTo(rt8.right, rt1.top);
					memDC.LineTo(rt8.right, rt1.bottom);
					memDC.MoveTo(rc.left, rt1.bottom);
					memDC.LineTo(rc.right, rt1.bottom);

					TCHAR szID[32]={0},szName[50]={0},szSpec[50]={0},szColor[50]={0},szPrice[10]={0},szWeight[4]={0},szUnit[6]={0},szSupplier[50]={0},szNum[4]={0};
					rc.SetRect((int)(nLeft),(int)(nTop+fAdd),(int)(nRight),(int)(nTop+2*fAdd));
					rt1.SetRect((int)(nLeft+nTextAdd), (int)(rc.top),(int)(nLeft+14*xPix),(int)(rc.bottom));			//编号
					rt2.SetRect((int)(rt1.right+nTextAdd),(int)(rt1.top),(int)(rt1.right+20*xPix),(int)(rt1.bottom));	//名称
					rt3.SetRect((int)(rt2.right+nTextAdd),(int)(rt1.top),(int)(rt2.right+30*xPix),(int)(rt1.bottom));	//规格
					rt4.SetRect((int)(rt3.right+nTextAdd),(int)(rt1.top),(int)(rt3.right+15*xPix),(int)(rt1.bottom));	//颜色
					rt5.SetRect((int)(rt4.right+nTextAdd),(int)(rt1.top),(int)(rt4.right+25*xPix),(int)(rt1.bottom));	//价格
					rt6.SetRect((int)(rt5.right+nTextAdd),(int)(rt1.top),(int)(rt5.right+20*xPix),(int)(rt1.bottom));	//重量
					rt7.SetRect((int)(rt6.right+nTextAdd),(int)(rt1.top),(int)(rt6.right+15*xPix),(int)(rt1.bottom));	//单位
					rt8.SetRect((int)(rt7.right+nTextAdd),(int)(rt1.top),(int)(rt7.right+40*xPix),(int)(rt1.bottom));	//供应商
					rt9.SetRect((int)(rt8.right+nTextAdd),(int)(rt1.top),(int)(rc.right),(int)(rt1.bottom));				//数量
					
					int nCountItem = ListView_GetItemCount(hList);
					for(int i=0;i<nItem; i++)
					{
						ListView_GetItemText(hList, i+iStart, 0, szID, 32);
						ListView_GetItemText(hList, i+iStart, 1, szName, 50);
						ListView_GetItemText(hList, i+iStart, 2, szSpec, 50);
						ListView_GetItemText(hList, i+iStart, 3, szColor,50);
						ListView_GetItemText(hList, i+iStart, 4, szPrice,10);
						ListView_GetItemText(hList, i+iStart, 5, szWeight,4);
						ListView_GetItemText(hList, i+iStart, 6, szUnit,6);
						ListView_GetItemText(hList, i+iStart, 7, szSupplier,50);
						ListView_GetItemText(hList, i+iStart, 8, szNum,4);
						
						memDC.DrawText(szID, &rt1, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
						memDC.DrawText(szName, &rt2, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
						memDC.DrawText(szSpec, &rt3, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
						memDC.DrawText(szColor, &rt4, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
						memDC.DrawText(szPrice, &rt5, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
						memDC.DrawText(szWeight, &rt6, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
						memDC.DrawText(szUnit, &rt7, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
						memDC.DrawText(szSupplier, &rt8, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
						memDC.DrawText(szNum, &rt9, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
						//下横线
						memDC.MoveTo(rc.left, rc.bottom);
						memDC.LineTo(rc.right, rc.bottom);
						memDC.MoveTo(rt1.right, rt1.top);
						memDC.LineTo(rt1.right, rt1.bottom);
						memDC.MoveTo(rt2.right, rt1.top);
						memDC.LineTo(rt2.right, rt1.bottom);
						memDC.MoveTo(rt3.right, rt1.top);
						memDC.LineTo(rt3.right, rt1.bottom);
						memDC.MoveTo(rt4.right, rt1.top);
						memDC.LineTo(rt4.right, rt1.bottom);
						memDC.MoveTo(rt5.right, rt1.top);
						memDC.LineTo(rt5.right, rt1.bottom);
						memDC.MoveTo(rt6.right, rt1.top);
						memDC.LineTo(rt6.right, rt1.bottom);
						memDC.MoveTo(rt7.right, rt1.top);
						memDC.LineTo(rt7.right, rt1.bottom);
						memDC.MoveTo(rt8.right, rt1.top);
						memDC.LineTo(rt8.right, rt1.bottom);
						memDC.MoveTo(rc.left, rt1.bottom);
						memDC.LineTo(rc.right, rt1.bottom);
						
						rc.top += (int)(fAdd);
						rc.bottom += (int)(fAdd);
						rt1.top = rc.top;
						rt1.bottom = rc.bottom;
						rt2.top = rt1.top;
						rt2.bottom = rt1.bottom;
						rt3.top = rt1.top;
						rt3.bottom = rt1.bottom;
						rt4.top = rt1.top;
						rt4.bottom = rt1.bottom;
						rt5.top = rt1.top;
						rt5.bottom = rt1.bottom;
						rt6.top = rt1.top;
						rt6.bottom = rt1.bottom;
						rt7.top = rt1.top;
						rt7.bottom = rt1.bottom;
						rt8.top = rt1.top;
						rt8.bottom = rt1.bottom;
						rt9.top = rt1.top;
						rt9.bottom = rt1.bottom;
						
						if((i+iStart+1)>=nCountItem)
							break;
 					}
					//结尾
					memDC.MoveTo(rc.left,(int)(nTop));
					memDC.LineTo(rc.left,rc.top);
					memDC.MoveTo(rc.right,(int)(nTop));
					memDC.LineTo(rc.right,rc.top);
					memDC.DrawText(csLFinality, &rc, DT_LEFT| DT_VCENTER | DT_SINGLELINE);
					memDC.DrawText(csRFinality, &rc, DT_RIGHT| DT_VCENTER | DT_SINGLELINE);
					memDC.EndPage();
					memDC.SelectObject(oldfont);
				}
			}
			memDC.EndDoc();
		}
	}
	else
	{
		//打印预览
		
		//边框线
		hPenOld = memDC.SelectObject(&cPen);
		rc.SetRect(0, 0, (int)(A4_W*xPix), (int)(A4_H*yPix));
		memDC.Rectangle(&rc);
		memDC.SelectObject(hPenOld);	
		//标题
		oldfont = memDC.SelectObject(&TitleFont);
		int nItem = A4_OTHERLINE;
		if(nCurPage == 1)
		{
			nItem = A4_ONELINE;
			rc.SetRect(0,(int)( yPix*10), (int)(A4_W*xPix), (int)(yPix*20));
			memDC.DrawText(szTitle, &rc, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
		}
		//细节
 		memDC.SelectObject(&DetailFont);
		rc.SetRect((int)(nLeft), (int)(nTop), (int)(nRight), (int)(nTop+fAdd));
		//上横线
		memDC.MoveTo(rc.left, rc.top);
		memDC.LineTo(rc.right, rc.top);

		rt1.SetRect((int)(nLeft), (int)(nTop), (int)(nLeft+14*xPix), (int)(nTop+fAdd));					//商品编码
		rt2.SetRect((int)(rt1.right), (int)(rt1.top), (int)(rt1.right + 20*xPix), (int)(rt1.bottom));	//商品名称
		rt3.SetRect((int)(rt2.right), (int)(rt1.top), (int)(rt2.right + 30*xPix), (int)(rt1.bottom));	//商品规格
		rt4.SetRect((int)(rt3.right), (int)(rt1.top), (int)(rt3.right + 15*xPix), (int)(rt1.bottom));	//商品颜色
		rt5.SetRect((int)(rt4.right), (int)(rt1.top), (int)(rt4.right + 25*xPix), (int)(rt1.bottom));	//商品价格
		rt6.SetRect((int)(rt5.right), (int)(rt1.top), (int)(rt5.right + 20*xPix), (int)(rt1.bottom));	//商品重量
		rt7.SetRect((int)(rt6.right), (int)(rt1.top), (int)(rt6.right + 15*xPix), (int)(rt1.bottom));	//计量单位
		rt8.SetRect((int)(rt7.right), (int)(rt1.top), (int)(rt7.right + 40*xPix), (int)(rt1.bottom));	//供应商名称
		rt9.SetRect((int)(rt8.right), (int)(rt1.top), (int)(rc.right),(int)(rt1.bottom));				//库存数量
		memDC.DrawText("编码", &rt1, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
		memDC.DrawText("名称", &rt2, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
		memDC.DrawText("规格", &rt3, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
		memDC.DrawText("颜色", &rt4, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
		memDC.DrawText("价格(RMB)", &rt5, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
		memDC.DrawText("重量(KG)", &rt6, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
		memDC.DrawText("单位", &rt7, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
		memDC.DrawText("供货商", &rt8, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
		memDC.DrawText("数量", &rt9, DT_CENTER | DT_VCENTER | DT_SINGLELINE);

		memDC.MoveTo(rt1.right, rt1.top);
		memDC.LineTo(rt1.right, rt1.bottom);
		memDC.MoveTo(rt2.right, rt1.top);
		memDC.LineTo(rt2.right, rt1.bottom);
		memDC.MoveTo(rt3.right, rt1.top);
		memDC.LineTo(rt3.right, rt1.bottom);
		memDC.MoveTo(rt4.right, rt1.top);
		memDC.LineTo(rt4.right, rt1.bottom);
		memDC.MoveTo(rt5.right, rt1.top);
		memDC.LineTo(rt5.right, rt1.bottom);
		memDC.MoveTo(rt6.right, rt1.top);
		memDC.LineTo(rt6.right, rt1.bottom);
		memDC.MoveTo(rt7.right, rt1.top);
		memDC.LineTo(rt7.right, rt1.bottom);
		memDC.MoveTo(rt8.right, rt1.top);
		memDC.LineTo(rt8.right, rt1.bottom);
		memDC.MoveTo(rc.left, rt1.bottom);
		memDC.LineTo(rc.right, rt1.bottom);

		TCHAR szID[32]={0},szName[50]={0},szSpec[50]={0},szColor[50]={0},szPrice[10]={0},szWeight[4]={0},szUnit[6]={0},szSupplier[50]={0},szNum[4]={0};
		rc.SetRect((int)(nLeft), (int)(nTop+fAdd), (int)(nRight), (int)(nTop+2*fAdd));
		rt1.SetRect((int)(nLeft+nTextAdd),(int)(rc.top),(int)(nLeft+14*xPix),(int)(rc.bottom));				//编号
		rt2.SetRect((int)(rt1.right+nTextAdd), (int)(rt1.top), (int)(rt1.right + 20*xPix), (int)(rt1.bottom));	//名称
		rt3.SetRect((int)(rt2.right+nTextAdd), (int)(rt1.top), (int)(rt2.right + 30*xPix), (int)(rt1.bottom));	//规格
		rt4.SetRect((int)(rt3.right+nTextAdd), (int)(rt1.top), (int)(rt3.right + 15*xPix), (int)(rt1.bottom));	//颜色
		rt5.SetRect((int)(rt4.right+nTextAdd), (int)(rt1.top), (int)(rt4.right + 25*xPix), (int)(rt1.bottom));	//价格
		rt6.SetRect((int)(rt5.right+nTextAdd), (int)(rt1.top), (int)(rt5.right + 20*xPix), (int)(rt1.bottom));	//重量
		rt7.SetRect((int)(rt6.right+nTextAdd), (int)(rt1.top), (int)(rt6.right + 15*xPix), (int)(rt1.bottom));	//单位
		rt8.SetRect((int)(rt7.right+nTextAdd), (int)(rt1.top), (int)(rt7.right + 40*xPix), (int)(rt1.bottom));	//供应商
		rt9.SetRect((int)(rt8.right+nTextAdd),(int)(rt1.top),(int)(rc.right),(int)(rt1.bottom));				//数量

		int nCountItem = ListView_GetItemCount(hList);
		for(int i=0;i<nItem; i++)
		{
			ListView_GetItemText(hList, i+iStart, 0, szID, 32);
			ListView_GetItemText(hList, i+iStart, 1, szName, 50);
			ListView_GetItemText(hList, i+iStart, 2, szSpec, 50);
			ListView_GetItemText(hList, i+iStart, 3, szColor,50);
			ListView_GetItemText(hList, i+iStart, 4, szPrice,10);
			ListView_GetItemText(hList, i+iStart, 5, szWeight,4);
			ListView_GetItemText(hList, i+iStart, 6, szUnit,6);
			ListView_GetItemText(hList, i+iStart, 7, szSupplier,50);
			ListView_GetItemText(hList, i+iStart, 8, szNum,4);
			
			memDC.DrawText(szID, &rt1, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
			memDC.DrawText(szName, &rt2, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
			memDC.DrawText(szSpec, &rt3, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
			memDC.DrawText(szColor, &rt4, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
			memDC.DrawText(szPrice, &rt5, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
			memDC.DrawText(szWeight, &rt6, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
			memDC.DrawText(szUnit, &rt7, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
			memDC.DrawText(szSupplier, &rt8, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
			memDC.DrawText(szNum, &rt9, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
			//下横线
			memDC.MoveTo(rc.left, rc.bottom);
			memDC.LineTo(rc.right, rc.bottom);
			memDC.MoveTo(rt1.right, rt1.top);
			memDC.LineTo(rt1.right, rt1.bottom);
			memDC.MoveTo(rt2.right, rt1.top);
			memDC.LineTo(rt2.right, rt1.bottom);
			memDC.MoveTo(rt3.right, rt1.top);
			memDC.LineTo(rt3.right, rt1.bottom);
			memDC.MoveTo(rt4.right, rt1.top);
			memDC.LineTo(rt4.right, rt1.bottom);
			memDC.MoveTo(rt5.right, rt1.top);
			memDC.LineTo(rt5.right, rt1.bottom);
			memDC.MoveTo(rt6.right, rt1.top);
			memDC.LineTo(rt6.right, rt1.bottom);
			memDC.MoveTo(rt7.right, rt1.top);
			memDC.LineTo(rt7.right, rt1.bottom);
			memDC.MoveTo(rt8.right, rt1.top);
			memDC.LineTo(rt8.right, rt1.bottom);
			memDC.MoveTo(rc.left, rt1.bottom);
			memDC.LineTo(rc.right, rt1.bottom);
			
			rc.top += (int)(fAdd);
			rc.bottom += (int)(fAdd);
			rt1.top = rc.top;
			rt1.bottom = rc.bottom;
			rt2.top = rt1.top;
			rt2.bottom = rt1.bottom;
			rt3.top = rt1.top;
			rt3.bottom = rt1.bottom;
			rt4.top = rt1.top;
			rt4.bottom = rt1.bottom;
			rt5.top = rt1.top;
			rt5.bottom = rt1.bottom;
			rt6.top = rt1.top;
			rt6.bottom = rt1.bottom;
			rt7.top = rt1.top;
			rt7.bottom = rt1.bottom;
			rt8.top = rt1.top;
			rt8.bottom = rt1.bottom;
			rt9.top = rt1.top;
			rt9.bottom = rt1.bottom;
			
			if((i+iStart+1)>=nCountItem)
				break;
 		}
		//结尾
		memDC.MoveTo(rc.left, (int)(nTop));
		memDC.LineTo(rc.left, rc.top);
		memDC.MoveTo(rc.right, (int)(nTop));
		memDC.LineTo(rc.right, rc.top);
		memDC.DrawText(csLFinality, &rc, DT_LEFT| DT_VCENTER | DT_SINGLELINE);
		memDC.DrawText(csRFinality, &rc, DT_RIGHT| DT_VCENTER | DT_SINGLELINE);

		memDC.SelectObject(oldfont);
		memDC.SelectObject(hPenOld);
	}
	TitleFont.DeleteObject();
	DetailFont.DeleteObject();
	cPen.DeleteObject();
}

⌨️ 快捷键说明

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