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

📄 goodsstockdialog.cpp

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

#include "stdafx.h"
#include "SaleManager.h"
#include "GoodsStockDialog.h"
#include ".\goodsstockdialog.h"


// CGoodsStockDialog 对话框
const TCHAR CGoodsStockDialog::m_szFilters[] = 
_T("进货报表(*.xls)|*.xls|All Files(*.*)|*.*||");

IMPLEMENT_DYNAMIC(CGoodsStockDialog, CDialog)
CGoodsStockDialog::CGoodsStockDialog(CWnd* pParent /*=NULL*/)
	: CDialog(CGoodsStockDialog::IDD, pParent)
	, m_StatisticDateFrom(_T(""))
    , m_StatisticDateTo(_T("")) 
{
}

CGoodsStockDialog::~CGoodsStockDialog()
{
}

void CGoodsStockDialog::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_LIST_GOODSSTOCKLIST, m_GoodsStockList);
}


BEGIN_MESSAGE_MAP(CGoodsStockDialog, CDialog)
//	ON_BN_CLICKED(IDC_BUTTON2, OnBnClickedButton2)
	ON_BN_CLICKED(IDC_BUTTON_GOODSSTOCKTOEXCEL, OnBnClickedButtonGoodsstocktoexcel)
	ON_BN_CLICKED(IDC_BUTTON_GOODSSTOCKEXIT, OnBnClickedButtonGoodsstockexit)
END_MESSAGE_MAP()


void CGoodsStockDialog::OnConnection ()
{
	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;
		}
	}
	catch(_com_error &e)
	{
		AfxMessageBox(e.ErrorMessage());
		return;
	}
}

BOOL CGoodsStockDialog::OnInitDialog()
{
	CDialog::OnInitDialog();

	m_GoodsStockList.InsertColumn (0, _T("登记日期"), LVCFMT_LEFT, 90,-1);
	m_GoodsStockList.InsertColumn (1, _T("时间"), LVCFMT_LEFT, 80, -1);
	m_GoodsStockList.InsertColumn (2, _T("操作员"), LVCFMT_LEFT, 80, -1);
	m_GoodsStockList.InsertColumn (3, _T("类型"), LVCFMT_LEFT, 60, -1);
	m_GoodsStockList.InsertColumn (4, _T("货品名称"), LVCFMT_LEFT, 80, -1);
	m_GoodsStockList.InsertColumn (5, _T("记前存量"), LVCFMT_LEFT, 80, -1);
	m_GoodsStockList.InsertColumn (6, _T("记前单价"), LVCFMT_LEFT, 80, -1);
	m_GoodsStockList.InsertColumn (7, _T("登记数量"), LVCFMT_LEFT, 80, -1);
	m_GoodsStockList.InsertColumn (8, _T("登记总价"), LVCFMT_LEFT, 80, -1);
	m_GoodsStockList.InsertColumn (9, _T("登记备注"), LVCFMT_LEFT, 200, -1);

	m_GoodsStockList.SetExtendedStyle ( LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
	OnConnection ();
	OnInitList ();

	return TRUE;  // return TRUE unless you set the focus to a control
	// 异常: OCX 属性页应返回 FALSE
}

void  CGoodsStockDialog::OnInitList ()
{
    HRESULT         hrGM;
	_RecordsetPtr   m_pRecordsetGM;

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

		CString strSQL;
		 
		strSQL.Format ("select * from GoodsManagerTable where ActionData >= '%s' and ActionData <='%s'"
					    , m_StatisticDateFrom, m_StatisticDateTo);

        hrGM = m_pRecordsetGM->Open (_bstr_t(strSQL),
			                        m_pConnection.GetInterfacePtr(),
									adOpenDynamic,
									adLockOptimistic,
									adCmdText);
        

		if(SUCCEEDED(hrGM))
		{
			_variant_t var;
			CString    strValue;
			int m_IndexList = 0;

			while(!m_pRecordsetGM->adoEOF)
			{
				var = m_pRecordsetGM->GetCollect ("ActionData");
				strValue = (LPCSTR)_bstr_t(var);
				m_GoodsStockList.InsertItem (m_IndexList, strValue);

				var = m_pRecordsetGM->GetCollect ("ActimeTime");
				strValue = (LPCSTR)_bstr_t(var);
				m_GoodsStockList.SetItemText (m_IndexList, 1, strValue);

				var = m_pRecordsetGM->GetCollect ("OperatorName");
				strValue = (LPCSTR)_bstr_t(var);
				m_GoodsStockList.SetItemText (m_IndexList, 2, strValue);

				var = m_pRecordsetGM->GetCollect ("Type");
                strValue = (LPCSTR)_bstr_t(var);
				m_GoodsStockList.SetItemText (m_IndexList, 3, strValue);

				var = m_pRecordsetGM->GetCollect ("GoodsName");
				strValue = (LPCSTR)_bstr_t(var);
				m_GoodsStockList.SetItemText (m_IndexList, 4, strValue);

				var = m_pRecordsetGM->GetCollect ("OldStore");
				strValue = (LPCSTR)_bstr_t(var);
                m_GoodsStockList.SetItemText (m_IndexList, 5, strValue);

				var = m_pRecordsetGM->GetCollect ("BuyPrice");
				strValue = (LPCSTR)_bstr_t(var);
                m_GoodsStockList.SetItemText (m_IndexList, 6, strValue);

				var = m_pRecordsetGM->GetCollect ("TotalNum");
				strValue = (LPCSTR)_bstr_t(var);
				m_GoodsStockList.SetItemText (m_IndexList, 7, strValue);;

				var = m_pRecordsetGM->GetCollect ("TotalPrice");
				strValue = (LPCSTR)_bstr_t(var);
                m_GoodsStockList.SetItemText (m_IndexList, 8, strValue);

				var = m_pRecordsetGM->GetCollect ("Remark");
                strValue = (LPCSTR)_bstr_t(var);
                m_GoodsStockList.SetItemText (m_IndexList, 9, strValue);

				m_IndexList++;
				m_pRecordsetGM->MoveNext ();
			}

			m_pRecordsetGM->Close ();
			m_pRecordsetGM = NULL;
		}                         
	}
	catch(_com_error &e)
	{
		AfxMessageBox(e.ErrorMessage ());
		return;
	}
}
//void CGoodsStockDialog::OnBnClickedButton2()
//{
//	m_pConnection->Close ();
//	m_pConnection = NULL;
//	CDialog::OnCancel ();
//}

void CGoodsStockDialog::OnBnClickedButtonGoodsstocktoexcel()
{
	int Count = m_GoodsStockList.GetItemCount ();
	if(Count < 1)
	{
		MessageBox (_T("没有数据,不能导出!"), _T("售货员销售报表"), MB_ICONERROR | MB_OK);
		return;
	}

	char strDirectory[100];
	memset(strDirectory,0,100);
	GetCurrentDirectory(100,strDirectory);

	CFileDialog dlg (FALSE, _T ("xls"), m_strPathName,
    OFN_OVERWRITEPROMPT | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY,
    m_szFilters );

    if (dlg.DoModal () == IDOK)
		if (SaveFile (dlg.GetPathName ()))
		{ m_strPathName = dlg.GetPathName ();
			MessageBox(_T("导出信息成功!"), _T("存货管理"), MB_ICONASTERISK  | MB_OK);
		}
	SetCurrentDirectory(strDirectory);
}

void CGoodsStockDialog::OnBnClickedButtonGoodsstockexit()
{
	m_pConnection->Close ();
	m_pConnection = NULL;
	CDialog::OnCancel ();
}

BOOL CGoodsStockDialog::SaveFile (LPCSTR pszFile)
{
	BOOL  nResult = FALSE;

	try 
	{
        HRESULT         hrGM;
	    _RecordsetPtr   m_pRecordsetGM;

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

		CString strSQL;
	
	    strSQL.Format ("select * from GoodsManagerTable where ActionData >= '%s' and ActionData <='%s'"
			               , m_StatisticDateFrom, m_StatisticDateTo);


		hrGM = m_pRecordsetGM->Open (_bstr_t(strSQL),
			                        m_pConnection.GetInterfacePtr(),
									adOpenDynamic,
									adLockOptimistic,
									adCmdText);

		CStdioFile file (pszFile, CFile::modeWrite | CFile::modeCreate);
		
		if(!m_pRecordsetGM->adoEOF)
		{
			CString string;
			CString tempstring;
			
			string += _T("登记日期");
			string += '\t';
			string += _T("时间");
			string += '\t';
            string += _T("操作员");
			string += '\t';
	        string += _T("类型");
			string += '\t';
            string +=_T("货品名称");
			string += '\t';
            string += _T("当前存量");
			string += '\t';
			string += _T("记前单价");
			string += '\t';
			string += _T("登记数量");
			string += '\t';
			string += _T("登记总价");
			string += '\t';
			string += _T("登记备注");
			string += '\t';
			string += '\n';

			file.WriteString(string);

			_variant_t var;
			CString    strValue;
			int m_IndexList = 0;

			m_GoodsStockList.DeleteAllItems ();
			while(!m_pRecordsetGM->adoEOF)
			{
				string ="";
				var = m_pRecordsetGM->GetCollect ("ActionData");
				strValue = (LPCSTR)_bstr_t(var);
				m_GoodsStockList.InsertItem (m_IndexList, strValue);
				string += strValue;
				string += '\t';

				var = m_pRecordsetGM->GetCollect ("ActimeTime");
				strValue = (LPCSTR)_bstr_t(var);
				m_GoodsStockList.SetItemText (m_IndexList, 1, strValue);
				string += strValue;
				string += '\t';

				var = m_pRecordsetGM->GetCollect ("OperatorName");
				strValue = (LPCSTR)_bstr_t(var);
				m_GoodsStockList.SetItemText (m_IndexList, 2, strValue);
				string += strValue;
				string += '\t';

				var = m_pRecordsetGM->GetCollect ("Type");
                strValue = (LPCSTR)_bstr_t(var);
				m_GoodsStockList.SetItemText (m_IndexList, 3, strValue);
				string += strValue;
				string += '\t';

				var = m_pRecordsetGM->GetCollect ("GoodsName");
				strValue = (LPCSTR)_bstr_t(var);
				m_GoodsStockList.SetItemText (m_IndexList, 4, strValue);
				string += strValue;
				string += '\t';

				var = m_pRecordsetGM->GetCollect ("OldStore");
				strValue = (LPCSTR)_bstr_t(var);
                m_GoodsStockList.SetItemText (m_IndexList, 5, strValue);
				string += strValue;
				string += '\t';

				var = m_pRecordsetGM->GetCollect ("BuyPrice");
				strValue = (LPCSTR)_bstr_t(var);
                m_GoodsStockList.SetItemText (m_IndexList, 6, strValue);
				string += strValue;
				string += '\t';

				var = m_pRecordsetGM->GetCollect ("TotalNum");
				strValue = (LPCSTR)_bstr_t(var);
				m_GoodsStockList.SetItemText (m_IndexList, 7, strValue);
				string += strValue;
				string += '\t';

				var = m_pRecordsetGM->GetCollect ("TotalPrice");
				strValue = (LPCSTR)_bstr_t(var);
                m_GoodsStockList.SetItemText (m_IndexList, 8, strValue);
				string += strValue;
				string += '\t';

				var = m_pRecordsetGM->GetCollect ("Remark");
                strValue = (LPCSTR)_bstr_t(var);
                m_GoodsStockList.SetItemText (m_IndexList, 9, strValue);
				string += strValue;
				string += '\t';

				m_IndexList++;
				string += '\n';
				file.WriteString(string);
				m_pRecordsetGM->MoveNext ();
			}//while

			m_pRecordsetGM->Close ();
			m_pRecordsetGM = NULL;
		}
		nResult = TRUE;
	}
	catch (CFileException* e) 
	{
		e->ReportError ();
		e->Delete ();
		return  nResult;
	}
	catch (_com_error &e)
	{
		AfxMessageBox (e.ErrorMessage());
		return nResult;
	}
    return nResult;

}

⌨️ 快捷键说明

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