📄 goodsstockdialog.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 + -