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

📄 salemanagerview.cpp

📁 VC+SQL SERVER 2000环境下开发的商品销售管理系统
💻 CPP
字号:
// SaleManagerView.cpp : CSaleManagerView 类的实现
//

#include "stdafx.h"
#include "SaleManager.h"

#include "SaleManagerDoc.h"
#include "SaleManagerView.h"
#include "LoginDlg.h"
#include "UserSetDialog.h"
#include "ChangePassDialog.h"
#include "OperateNoteDialog.h"
#include "PowSetDialog.h"
#include "GoodsManagerDialog.h"
#include "GoodsSetDialog.h"
#include "MerchandiseSetDialog.h"
#include "BuinessQueryDialog.h"
#include "StatisticDialog.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// CSaleManagerView

IMPLEMENT_DYNCREATE(CSaleManagerView, CView)

BEGIN_MESSAGE_MAP(CSaleManagerView, CView)
	// 标准打印命令
	ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
	ON_COMMAND(ID_EXIT, OnExit)
	ON_COMMAND(ID_LOGOUT, OnLogout)
	ON_COMMAND(ID_USE_SET, OnUseSet)
	ON_COMMAND(ID_CHANGEPASS, OnUseChangePass)
	ON_COMMAND(ID_OPERATE_NOTE, OnOperateNote)
	ON_COMMAND(ID_POWER_SET, OnPowerSet)
	ON_COMMAND(ID_GOOD_SET, OnGoodsSet)
	ON_COMMAND(ID_GOOD_MANAGER, OnGoodsManager)
	ON_COMMAND(ID_MERCHANDISE_SET, OnMerchandiseManager)
	ON_COMMAND(ID_BUINESSQUARE, OnBuinessQuery)
	ON_COMMAND(ID_STATISTICS, OnStatistics)
	ON_UPDATE_COMMAND_UI(ID_USE_SET, OnUpdateUseSet)
	ON_UPDATE_COMMAND_UI(ID_POWER_SET, OnUpdatePowerSet)
	ON_UPDATE_COMMAND_UI(ID_GOOD_SET, OnUpdateGoodsSet)
	ON_UPDATE_COMMAND_UI(ID_GOOD_MANAGER, OnUpdateGoodsManager)
	ON_UPDATE_COMMAND_UI(ID_MERCHANDISE_SET, OnUpdateMerchandiseManager)
	ON_UPDATE_COMMAND_UI(ID_BUINESSQUARE, OnUpdateBuinessQuery)
	ON_UPDATE_COMMAND_UI(ID_STATISTICS, OnUpdateStatistics)
END_MESSAGE_MAP()

// CSaleManagerView 构造/析构

CSaleManagerView::CSaleManagerView():m_Login(TRUE), flag(TRUE)
{
	// TODO: 在此处添加构造代码

}

CSaleManagerView::~CSaleManagerView()
{
}

BOOL CSaleManagerView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: 在此处通过修改 CREATESTRUCT cs 来修改窗口类或
	// 样式

	return CView::PreCreateWindow(cs);
}

// CSaleManagerView 绘制
void CSaleManagerView::Login()
{
	CLoginDlg dlg;
	m_Login = FALSE;
	if(dlg.DoModal() == IDCANCEL)
	    PostMessage(WM_QUIT);
	m_RealName = dlg.GetRealName();
	m_AccountName = dlg.GetAccountName();
	m_AccountNum = dlg.GetAccountNum();
	m_ActionName = _T("登陆系统");
	m_PowerName = dlg.GetPowerName();
	OperateNote();
	ManagerModule();
	AfxGetMainWnd()->SendMessage(WM_REALNAME,0, (LPARAM)&m_RealName);
}


void CSaleManagerView::OnDraw(CDC* /*pDC*/)
{
	CSaleManagerDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	if (!pDoc)
		return;

	CBitmap bitmap;
	HBITMAP hbitmap;
	
	hbitmap = (HBITMAP)::LoadImage(::AfxGetInstanceHandle(),"1.bmp",IMAGE_BITMAP,
		                              0,0,LR_CREATEDIBSECTION | LR_LOADFROMFILE);
	bitmap.Attach(hbitmap);

	BITMAP bm;

	bitmap.GetBitmap(&bm);

	CDC dcMem;
	dcMem.CreateCompatibleDC(GetDC());
	CBitmap *pOldBitmap = (CBitmap *)dcMem.SelectObject(bitmap);

	CRect rect;
	GetClientRect(&rect);

	AfxGetMainWnd()->GetDC()->StretchBlt(rect.left, rect.top , rect.Width(), rect.Height(), &dcMem, 
		0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
	flag = FALSE;

	
    if(m_Login)
		Login();
}


// CSaleManagerView 打印

BOOL CSaleManagerView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// 默认准备
	return DoPreparePrinting(pInfo);
}

void CSaleManagerView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: 打印前添加额外的初始化
}

void CSaleManagerView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: 打印后添加清除过程
}


// CSaleManagerView 诊断

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

void CSaleManagerView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CSaleManagerDoc* CSaleManagerView::GetDocument() const // 非调试版本是内联的
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CSaleManagerDoc)));
	return (CSaleManagerDoc*)m_pDocument;
}
#endif //_DEBUG


// CSaleManagerView 消息处理程序
void CSaleManagerView::OnExit()
{
    m_ActionName = _T("离开系统");
	OperateNote();
	PostMessage(WM_QUIT);
}

void CSaleManagerView::OnLogout()
{
	m_ActionName = _T("离开系统");
	OperateNote();
	Login();
}

void CSaleManagerView::OnUseSet()
{
	m_ActionName = _T("用户设置");
	OperateNote();
	CUserSetDialog dlg;
	dlg.m_RealName = m_RealName;
	dlg.m_AccountName = m_AccountName;
	dlg.m_AccountNum = m_AccountNum;
	dlg.m_PowerName = m_PowerName;
	dlg.DoModal();
	SendMessage(WM_COMMAND,0,0);
}

void CSaleManagerView::OnUseChangePass()
{
	m_ActionName = _T("更改密码");
	OperateNote();
	CChangePassDialog dlg;
	dlg.m_tempRealName = m_RealName;
	dlg.m_tempAccountName = m_AccountName;
	dlg.DoModal();
}

void CSaleManagerView::OnOperateNote()
{
	COperateNoteDialog dlg;
	dlg.m_tempAccountName = m_AccountName;
	dlg.m_tempRealName = m_RealName;
	dlg.DoModal();
}

void CSaleManagerView::OnStatistics()
{
	m_ActionName = _T("统计查询");
	OperateNote();
	CStatisticDialog dlg;
	dlg.DoModal();
}
	

void CSaleManagerView::OperateNote()
{
	_RecordsetPtr    m_RecordsetAction;
	HRESULT          hrAction;
	HRESULT          hr;
	try
	{
		hr = m_pConnection.CreateInstance (__uuidof(Connection));

		if(SUCCEEDED(hr))
		{
			m_pConnection->ConnectionString = "File Name=SaleManagerdata.udl";
			m_pConnection->ConnectionTimeout = 20;

			hr = m_pConnection->Open ("","","",adConnectUnspecified);

			if(FAILED(hr))
			{
				AfxMessageBox ("打开失败");
				return;
			}
		}
		else
		{
			AfxMessageBox ("创建连接实例失败!");
			return;
		}

		hrAction = m_RecordsetAction.CreateInstance (__uuidof(Recordset));
		if(FAILED(hr))
		{
			AfxMessageBox(_T("创建实例失败!"));
			return;
		}

		hrAction = m_RecordsetAction->Open ("select * from ActionTable",
											m_pConnection.GetInterfacePtr(),
											adOpenDynamic,
											adLockOptimistic,
											adCmdText);
		if(SUCCEEDED(hrAction))
		{
			m_RecordsetAction->AddNew();
			m_RecordsetAction->PutCollect ("OperatorName", _variant_t(m_RealName));
			m_RecordsetAction->PutCollect ("ActionName", _variant_t(m_ActionName));
			    
			CTime Time;
			CTime CurrentTime = Time.GetCurrentTime();
			int Year  = CurrentTime.GetYear();
			int Month = CurrentTime.GetMonth();
			int Day   = CurrentTime.GetDay();
			CString strDate;
			strDate.Format ("%d-%d-%d",Year,Month,Day);
			m_RecordsetAction->PutCollect ("ActionDate",_variant_t(strDate));

			int Hour = CurrentTime.GetHour();
			int Min  = CurrentTime.GetMinute();
			int Sec  = CurrentTime.GetSecond();
			strDate.Empty();
			strDate.Format ("%0.2d:%0.2d:%0.2d",Hour,Min,Sec);
			m_RecordsetAction->PutCollect ("ActionTime",_variant_t(strDate));
			m_RecordsetAction->Update();

		}
			              
		m_RecordsetAction->Close();
		m_pConnection->Close();
		m_RecordsetAction = NULL;
	}
	catch(_com_error &e)
	{
		AfxMessageBox(e.ErrorMessage());
		return;
	}
}

void CSaleManagerView::OnPowerSet()
{
	m_ActionName = _T("权限设置");
	OperateNote();
	CPowSetDialog dlg;
	dlg.DoModal();
	ManagerModule();
}

void CSaleManagerView::OnGoodsSet()
{
	m_ActionName = _T("货品设置");
	OperateNote();
	CGoodsSetDialog dlg;
	dlg.DoModal();
}

void CSaleManagerView::OnGoodsManager()
{
	m_ActionName = _T("存货管理");
	OperateNote();
    CGoodsManagerDialog dlg;
	dlg.OperatorName = m_RealName;
	dlg.DoModal();
}

void CSaleManagerView::OnMerchandiseManager()
{
	m_ActionName = _T("商品设置");
	OperateNote();
    CMerchandiseSetDialog dlg;
	dlg.DoModal();
}

void CSaleManagerView::OnBuinessQuery()
{
	m_ActionName = _T("交易查询");
	OperateNote();
	CBuinessQueryDialog dlg;
	dlg.DoModal();
}


void CSaleManagerView::ManagerModule()
{
	_RecordsetPtr       m_pRecordsetMM;
	HRESULT             hrMM;
	HRESULT             hr;
	try
	{
		 hr = m_pConnection.CreateInstance (__uuidof(Connection));

		if(SUCCEEDED(hr))
		{
			m_pConnection->ConnectionString = "File Name=SaleManagerdata.udl";
			m_pConnection->ConnectionTimeout = 20;

			hr = m_pConnection->Open ("","","",adConnectUnspecified);

			if(FAILED(hr))
			{
				AfxMessageBox ("打开失败");
				return;
			}
		}
		else
		{
			AfxMessageBox ("创建连接实例失败!");
			return;
		}

		hrMM = m_pRecordsetMM.CreateInstance(__uuidof(Recordset));
		if(FAILED(hrMM))
		{
			AfxMessageBox(_T("创建实例失败!"));
			return;
		}

		CString strSQL;
		strSQL.Format("select * from ManagerModuleTable where PowerName = '%s'", m_PowerName);
		hrMM = m_pRecordsetMM->Open(_bstr_t(strSQL),
									m_pConnection.GetInterfacePtr(),
									adOpenDynamic,
									adLockOptimistic,
									adCmdText);

		if(SUCCEEDED(hrMM))
		{
			if(!m_pRecordsetMM->adoEOF)
			{
				_variant_t       var;
				CString          strValue;

				var = m_pRecordsetMM->GetCollect("ManagerModuleNum");
				strValue = (LPCSTR)_bstr_t(var);

				m_AllManagerNum = strValue;

				m_pRecordsetMM->Close();
				m_pRecordsetMM = NULL;
				m_pConnection->Close();
				m_pConnection = NULL;
			}
		}
	}
	catch(_com_error e)
	{
		AfxMessageBox(e.ErrorMessage());
		return;
	}
}

void CSaleManagerView::OnUpdateUseSet(CCmdUI *cmdUI)
{
	int Count = m_AllManagerNum.GetLength();
	BOOL flag = false;
	for( int index = 0; index < Count; index++)
	{
		if(m_AllManagerNum[index] == 'A')
		{
			flag = TRUE;
			break;
		}
	}

	cmdUI->Enable(flag);
}

void CSaleManagerView::OnUpdatePowerSet(CCmdUI *cmdUI)
{
	int Count = m_AllManagerNum.GetLength();
	BOOL flag = false;
	for( int index = 0; index < Count; index++)
	{
		if(m_AllManagerNum[index] == 'B')
		{
			flag = TRUE;
			break;
		}
	}

	cmdUI->Enable(flag);
}

void CSaleManagerView::OnUpdateGoodsSet(CCmdUI *cmdUI)
{
	int Count = m_AllManagerNum.GetLength();
	BOOL flag = false;
	for( int index = 0; index < Count; index++)
	{
		if(m_AllManagerNum[index] == 'C')
		{
			flag = TRUE;
			break;
		}
	}

	cmdUI->Enable(flag);
}

void CSaleManagerView::OnUpdateGoodsManager(CCmdUI *cmdUI)
{
	int Count = m_AllManagerNum.GetLength();
	BOOL flag = false;
	for( int index = 0; index < Count; index++)
	{
		if(m_AllManagerNum[index] == 'D')
		{
			flag = TRUE;
			break;
		}
	}

	cmdUI->Enable(flag);
}

void CSaleManagerView::OnUpdateMerchandiseManager(CCmdUI *cmdUI)
{
	int Count = m_AllManagerNum.GetLength();
	BOOL flag = false;
	for( int index = 0; index < Count; index++)
	{
		if(m_AllManagerNum[index] == 'E')
		{
			flag = TRUE;
			break;
		}
	}

	cmdUI->Enable(flag);
}

void CSaleManagerView::OnUpdateBuinessQuery (CCmdUI *cmdUI)
{
	int Count = m_AllManagerNum.GetLength();
	BOOL flag = false;
	for( int index = 0; index < Count; index++)
	{
		if(m_AllManagerNum[index] == 'F')
		{
			flag = TRUE;
			break;
		}
	}

	cmdUI->Enable(flag);
}

void CSaleManagerView::OnUpdateStatistics (CCmdUI *cmdUI)
{
	int Count = m_AllManagerNum.GetLength();
	BOOL flag = false;
	for( int index = 0; index < Count; index++)
	{
		if(m_AllManagerNum[index] == 'G')
		{
			flag = TRUE;
			break;
		}
	}

	cmdUI->Enable(flag);
}

⌨️ 快捷键说明

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