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

📄 goodsview2.cpp

📁 用VC编写的立体仓库的管理软件源程序和设计说明书。
💻 CPP
字号:
// GoodsView2.cpp : implementation file
//

#include "stdafx.h"
#include "Manage_WH.h"
#include "GoodsView2.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CGoodsView2

IMPLEMENT_DYNCREATE(CGoodsView2, CView)

CGoodsView2::CGoodsView2()
{
}

CGoodsView2::~CGoodsView2()
{
}


BEGIN_MESSAGE_MAP(CGoodsView2, CView)
	//{{AFX_MSG_MAP(CGoodsView2)
	ON_WM_ERASEBKGND()
	ON_WM_LBUTTONDBLCLK()
	ON_WM_CREATE()
	ON_WM_TIMER()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CGoodsView2 drawing

void CGoodsView2::OnDraw(CDC* pDC)
{
	CDocument* pDoc = GetDocument();
	// TODO: add draw code here
	if (!gpDoc->m_bTimeDealing2)
	{
		gpDoc->m_bTimeDealing2 = TRUE;

		CRect rc,LGVRect1,LGVRect2;
		GetClientRect(&rc);
		
		gpDoc->m_GoodsFrameArra[1].SetRect(rc);
		gpDoc->m_GoodsFrameArra[1].Draw(pDC,2);

		gpDoc->m_bTimeDealing2 = FALSE;
	}
}

/////////////////////////////////////////////////////////////////////////////
// CGoodsView2 diagnostics

#ifdef _DEBUG
void CGoodsView2::AssertValid() const
{
	CView::AssertValid();
}

void CGoodsView2::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CGoodsView2 message handlers

BOOL CGoodsView2::OnEraseBkgnd(CDC* pDC) 
{
	//填充背景色
	CBrush brush(RGB(193,192,192));
	CBrush* pOldBrush=pDC->SelectObject(&brush);
	CRect rcClip;
	pDC->GetClipBox(&rcClip);
	pDC->PatBlt(rcClip.left,rcClip.top,rcClip.Width(),rcClip.Height(),PATCOPY);

	return TRUE;
}

void CGoodsView2::OnLButtonDblClk(UINT nFlags, CPoint point) 
{
	int row, col, line;
	CString strSite,sText;
	
	line = 1;

	for (row = 0; row < gpDoc->m_GoodsFrameArra[line].m_iRowNum; row++)
	for (col = 0; col < gpDoc->m_GoodsFrameArra[line].m_iColNum; col++)
	{
		if (gpDoc->m_GoodsFrameArra[line].GetMinRect(row, col).PtInRect(point))
		{
			strSite.Format("%d-%.2d-%d",line+1,col+1,row+1);
			if (strSite == "2-05-1" || strSite == "2-06-1")
				sText = "LGV进货一口(立库出入一口)";
			else if (strSite == "2-11-1" || strSite == "2-12-1")
				sText = "LGV进货二口(立库出入二口)";
			else
			{
				CString szStatus;
				switch(gpDoc->m_GoodsFrameArra[line].GetState(row,col))
				{
				case 0:szStatus = "空";		 break;
				case 1:szStatus = "有货";	 break;
				case 2:szStatus = "有货占用";break;
				case 3:szStatus = "无货占用";break;
				case 4:szStatus = "禁用";	 break;
				}
				if (szStatus == "空" || szStatus == "无货占用" || szStatus == "禁用")
					sText = "货位:["+strSite+"]  状态:["+szStatus+"]";
				else 
				{
					int iCount,iGoodsKind;
					CString sCount,sGoodsName;
					CAdoConnection cn;
					CAdoRecordSet  rs;
					cn.OpenUDLFile(gstrConSQLSer);
					rs.SetAdoConnection(&cn);
					rs.Open("select * from T_Goods_Site_Manage where F_SiteIndex='"+strSite+"'",adCmdText);
					rs.GetCollect("F_GoodsKind",iGoodsKind);
					rs.GetCollect("F_GoodsCount",iCount);
					rs.Close();
					cn.Close();
					if (iGoodsKind==100)		sGoodsName="杂色商品";
					else if (iGoodsKind==101)	sGoodsName="空货箱";
					else if (iGoodsKind==102)	sGoodsName="单空托盘";
					else if (iGoodsKind==103)	sGoodsName="托盘垛";
					else sGoodsName = gfGetGoodsName(iGoodsKind);
					sCount.Format("%d",iCount);
					sText = "货位:["+strSite+"]    状态:["+szStatus+"]     商品名称:["+sGoodsName+"]     商品数量:["+sCount+"]";
				} 
			}
			gpDoc->m_pStatusWnd->SetWindowText(sText);
			break;
		}
	}			
	CView::OnLButtonDblClk(nFlags, point);
}

int CGoodsView2::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CView::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	// TODO: Add your specialized creation code here
	SetTimer(1,2000,NULL);
	return 0;
}

void CGoodsView2::OnTimer(UINT nIDEvent) 
{
	if (!gpDoc->m_bTimeDealing2)
	{
		gpDoc->m_bTimeDealing2 = TRUE;

		CAdoConnection cn;
		CAdoRecordSet  rs;
		cn.OpenUDLFile(gstrConSQLSer);
		rs.SetAdoConnection(&cn);
		CString ParamTxtVal,szNumLine,szNumRow,szNumCol;
		int		ParamNumVal;
		int	iNumLine,iNumRow,iNumCol;
			
		rs.Open("select F_SiteIndex,F_SiteState from T_Goods_Site_Manage",adCmdText);
		
		while (!rs.IsEOF())
		{
			rs.GetCollect("F_SiteIndex", ParamTxtVal);
			rs.GetCollect("F_SiteState", ParamNumVal);
			
			szNumLine = ParamTxtVal.Mid(0,1);
			szNumCol  = ParamTxtVal.Mid(2,2);
			szNumRow  = ParamTxtVal.Mid(5,1);
			
			iNumLine = atoi(szNumLine) - 1;
			iNumRow  = atoi(szNumRow)  - 1;
			iNumCol  = atoi(szNumCol)  - 1;
			
			if (iNumLine == 1)
			{
				if (gpDoc->m_GoodsFrameArra[iNumLine].GetState(iNumRow,iNumCol) != ParamNumVal)
				{
					gpDoc->m_GoodsFrameArra[iNumLine].SetState(iNumRow, iNumCol, ParamNumVal);
					InvalidateRect(gpDoc->m_GoodsFrameArra[iNumLine].GetRect(iNumRow, iNumCol),true);
				}
			}			
			rs.MoveNext();
		}		
		rs.Close();
		cn.Close();	

		gpDoc->m_bTimeDealing2 = FALSE;
	}
	CView::OnTimer(nIDEvent);
}

⌨️ 快捷键说明

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