📄 srecord.cpp
字号:
// SRecord.cpp : implementation file
//
#include "stdafx.h"
#include "ShopManage.h"
#include "SRecord.h"
#include "DataManage.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern _RecordsetPtr Record1;
extern _ConnectionPtr DataConn;
extern _RecordsetPtr DataRecord;
extern _CommandPtr Com;
/////////////////////////////////////////////////////////////////////////////
// SRecord dialog
SRecord::SRecord(CWnd* pParent /*=NULL*/)
: CDialog(SRecord::IDD, pParent)
{
//{{AFX_DATA_INIT(SRecord)
//}}AFX_DATA_INIT
}
void SRecord::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(SRecord)
DDX_Control(pDX, IDC_SpayAcount, m_PayAcount);
DDX_Control(pDX, IDC_SgoodsID, m_GoodsID);
DDX_Control(pDX, IDC_Scount, m_Count);
DDX_Control(pDX, IDC_SRList, m_SRList);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(SRecord, CDialog)
//{{AFX_MSG_MAP(SRecord)
ON_BN_CLICKED(IDC_SsaveButton, OnSsaveButton)
ON_WM_CLOSE()
ON_BN_CLICKED(IDC_SCLOSE, OnSclose)
ON_BN_CLICKED(IDC_Pay, OnPay)
ON_BN_CLICKED(IDC_Update, OnUpdate)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// SRecord message handlers
void SRecord::OnOK()
{
// TODO: Add extra validation here
//CDialog::OnOK();
}
BOOL SRecord::OnInitDialog()
{
CDialog::OnInitDialog();
m_SRList.ModifyStyle(LVS_EDITLABELS,0);
m_SRList.ModifyStyle(0,LVS_REPORT);
m_SRList.ModifyStyle(0,LVS_SHOWSELALWAYS);
m_SRList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_GRIDLINES|LVS_EX_ONECLICKACTIVATE|LVS_EX_FLATSB);
m_SRList.InsertColumn(0,"商品ID");
m_SRList.InsertColumn(1,"数量");
m_SRList.InsertColumn(2,"金额");
//设置列宽度
m_SRList.SetColumnWidth(0,80);
m_SRList.SetColumnWidth(1,73);
m_SRList.SetColumnWidth(2,70);
row = 0;
col = 0;
pay = 0;
return TRUE;
}
void SRecord::OnSsaveButton()
{
// TODO: Add your control notification handler code here
CString SaleID="",GoodsID="2",Price="2",Count="2",Acount="2",StubNumber="",Date="";
CString sql;
int gcount = 0;
float price = 0,acount = 0;
CDataManage dm;
/***********************************************************/
/*GoodsID*/
m_GoodsID.GetWindowText(GoodsID);
if(GoodsID.GetLength() == 0)
{
MessageBox("请输入数据","提示");
return;
}
/*SaleID*/
/**************************************************/
try
{
dm.ConnectDataBase();
Record1->Open(_variant_t("Sale"),
_variant_t((IDispatch *)DataConn,true), adOpenKeyset,
adLockOptimistic, adCmdTable);
}
catch (_com_error& e)
{
MessageBox(e.ErrorMessage(),"提示");
}
/*****************************************/
sql.Format("select SaleID from Sale");
try
{
Record1->raw_Close();
Record1->Open((_variant_t)sql,DataConn.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);
}
catch(_com_error &e)
{
MessageBox(e.ErrorMessage(),"提示");
}
if(Record1->RecordCount > 0)
{
Record1->MoveLast();
SaleID = (TCHAR*)(_bstr_t)Record1->GetFields()->GetItem((long)0)->Value;
int saleid = atoi(SaleID);
saleid+=1;
SaleID.Format("%d",saleid);
}
else
{
SaleID = "20060001";
}
/*Price*/
/**************************************************/
try
{
dm.ConnectDataBase();
Record1->Open(_variant_t("Storage"),
_variant_t((IDispatch *)DataConn,true), adOpenKeyset,
adLockOptimistic, adCmdTable);
}
catch (_com_error& e)
{
MessageBox(e.ErrorMessage(),"提示");
}
/*****************************************/
sql.Format("select GoodsPrice from Storage where GoodsID=%s",GoodsID);
try
{
Record1->raw_Close();
Record1->Open((_variant_t)sql,DataConn.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);
}
catch(_com_error &e)
{
MessageBox(e.ErrorMessage(),"提示");
}
if(Record1->RecordCount > 0)
{
Price = (TCHAR*)(_bstr_t)Record1->GetFields()->GetItem((long)0)->Value;
price = (float)atof(Price);
}
else
{
MessageBox("库存中没有此种商品","提示");
return;
}
/*Count*/
m_Count.GetWindowText(Count);
gcount = atoi(Count);
/*Acount*/
acount = gcount*price;
pay+=acount;
/*StubNumber*/
StubNumber = SaleID;
/*Date*/
int year,month,day;
CString date;
CTime t= CTime::GetCurrentTime();
year = t.GetYear();
month = t.GetMonth();
day = t.GetDay();
Date.Format("%d/%d/%d",year,month,day);
/*********插入到ListControl中*****************************************/
Acount.Format("%f",acount);
m_SRList.InsertItem(100,"");
m_SRList.SetItemText(row,0,GoodsID);
m_SRList.SetItemText(row,1,Count);
m_SRList.SetItemText(row,2,Acount);
row++;
/****************售货记录插入*******************************/
sql.Format("insert into Sale values('%s','%s','%f','%d','%f','%s','%s')",SaleID,GoodsID,price,gcount,acount,StubNumber,Date);
/**************************************************/
try
{
dm.ConnectDataBase();
Record1->Open(_variant_t("Sale"),
_variant_t((IDispatch *)DataConn,true), adOpenKeyset,
adLockOptimistic, adCmdTable);
}
catch (_com_error& e)
{
MessageBox(e.ErrorMessage(),"提示");
}
/*****************************************/
try
{
dm.ExecSQL(sql);
//this->MessageBox("操作成功","提示");
}
catch(_com_error &e)
{
this->MessageBox(e.ErrorMessage(),"出错提示");
}
/****************日盘存记录修改********************/
CString temp1 = "",temp2 = "";
Record1->raw_Close();
sql.Format("select * from DayStorage where GoodsID=%s",GoodsID);
Record1->Open((_variant_t)sql,DataConn.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);
if(Record1->RecordCount > 0)
{
temp1 = (TCHAR*)(_bstr_t)Record1->GetFields()->GetItem((long)2)->Value;
temp2 = (TCHAR*)(_bstr_t)Record1->GetFields()->GetItem((long)3)->Value;
int addcount = atoi(temp1);
float addacount = (float)atof(temp2);
addcount+=gcount;
addacount+=acount;
sql.Format("update DayStorage set GoodsCount=%d,GoodsAcount=%f where GoodsID=%s",addcount,addacount,GoodsID);
try
{
dm.ExecSQL(sql);
}
catch(_com_error &e)
{
this->MessageBox(e.ErrorMessage(),"出错提示");
}
}
else
{
sql.Format("insert into DayStorage values('%s','%f','%d','%f','%s')",GoodsID,price,gcount,acount,Date);
try
{
dm.ExecSQL(sql);
}
catch(_com_error &e)
{
this->MessageBox(e.ErrorMessage(),"出错提示");
}
}
/*****************月盘存记录修改***********************/
Record1->raw_Close();
sql.Format("select * from MonthStorage where GoodsID=%s",GoodsID);
Record1->Open((_variant_t)sql,DataConn.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);
if(Record1->RecordCount > 0)
{
temp1 = (TCHAR*)(_bstr_t)Record1->GetFields()->GetItem((long)2)->Value;
temp2 = (TCHAR*)(_bstr_t)Record1->GetFields()->GetItem((long)3)->Value;
int addcount = atoi(temp1);
float addacount = (float)atof(temp2);
addcount+=gcount;
addacount+=acount;
sql.Format("update MonthStorage set GoodsCount=%d,GoodsAcount=%f where GoodsID=%s",addcount,addacount,GoodsID);
try
{
dm.ExecSQL(sql);
}
catch(_com_error &e)
{
this->MessageBox(e.ErrorMessage(),"出错提示");
}
}
else
{
sql.Format("insert into MonthStorage values('%s','%f','%d','%f')",GoodsID,price,gcount,acount);
try
{
dm.ExecSQL(sql);
}
catch(_com_error &e)
{
this->MessageBox(e.ErrorMessage(),"出错提示");
}
}
/*****************库存修改*****************************/
CString temp = "";
Record1->raw_Close();
sql.Format("select StorageCount from Storage where GoodsID=%s",GoodsID);
Record1->Open((_variant_t)sql,DataConn.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);
temp = (TCHAR*)(_bstr_t)Record1->GetFields()->GetItem((long)0)->Value;
if(temp.GetLength() > 0)
{
Record1->raw_Close();
int tCount=atoi(temp);
tCount-=gcount;
sql.Format("update Storage set StorageCount=%d where GoodsID=%s",tCount,GoodsID);
try
{
dm.ExecSQL(sql);
}
catch(_com_error &e)
{
this->MessageBox(e.ErrorMessage(),"出错提示");
}
}
/**************************************************/
m_GoodsID.SetWindowText("");
m_Count.SetWindowText("");
}
void SRecord::OnClose()
{
// TODO: Add your message handler code here and/or call default
//CDialog::OnClose();
}
void SRecord::OnSclose()
{
// TODO: Add your control notification handler code here
EndDialog(0);
}
void SRecord::OnPay()
{
// TODO: Add your control notification handler code here
CString Pay;
Pay.Format("%f",pay);
m_PayAcount.SetWindowText(Pay);
}
void SRecord::OnUpdate()
{
// TODO: Add your control notification handler code here
int Row;
for(Row=0;Row<row;Row++)
{
for(col=0;col<3;col++)
{
m_SRList.SetItemText(Row,col,"");
}
}
row = 0;
m_Count.SetWindowText("");
m_GoodsID.SetWindowText("");
m_PayAcount.SetWindowText("");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -