📄 dsell.cpp
字号:
this->m_EdtCliect.GetWindowText(sCliectName);
sCliectID=ado.FieldToOtherField("客户信息表","名称",sCliectName,"编号",1);
this->m_EdtDealMan.GetWindowText(sDeal);
this->m_ComStyle.GetWindowText(sStyle);
this->m_ComRID.GetWindowText(sRID);
this->m_StaSmallSum.GetWindowText(sSumMoney);
this->m_StaSumNumber.GetWindowText(sSumNumber);
OPID=ado.FieldToOtherField("操作员信息表","名称",OP,"编号",1);
if(sStyle=="订货销售")
{
//更新订货信息表
sSQL.Format("UPDATE 订货信息表 SET 结款否=1 WHERE 票号='%s'",sRID);
rst.Open(sSQL,adCmdText);
//添加销售信息表
sSQL.Format("INSERT INTO 销售信息表 values('%s','%s','%s',%s,%s,%s,'%s',1,%s,%s,%s)",sCID,sDate,sCliectID,sSumNumber,sSumMoney,OPID,sDeal,sPay,sNotPay,sGiveChange);
}
else
sSQL.Format("INSERT INTO 销售信息表 values('%s','%s','%s',%s,%s,%s,'%s',0,%s,%s,%s)",sCID,sDate,sCliectID,sSumNumber,sSumMoney,OPID,sDeal,sPay,sNotPay,sGiveChange);
rst.Open(sSQL,adCmdText);
//添加销售明细表
for(int i=0;i<m_Grid.GetItemCount();i++)
{
//名称、规格、产地三个字段才能指定唯一的商品
sWare=this->m_Grid.GetItemText(i,0);
sSpec=this->m_Grid.GetItemText(i,1);
sAddr=this->m_Grid.GetItemText(i,2);
sPrice=this->m_Grid.GetItemText(i,5);
sNumber=this->m_Grid.GetItemText(i,4);
if(sWare.IsEmpty())
break;
sSQL.Format("SELECT * FROM 商品信息表 WHERE 名称='%s' AND 规格='%s' AND 产地='%s'",sWare,sSpec,sAddr);
rst.Open(sSQL,adCmdText);
rst.MoveFirst();
sWareID=rst.GetFieldValue("编号");
sSQL.Format("INSERT INTO 销售明细表 VALUES('%s','%s',%s,%s)",sCID,sWareID,sPrice,sNumber);
rst.Open(sSQL,adCmdText);
//更新库存信息表
sSQL.Format("SELECT * FROM 库存信息表 WHERE 商品编号='%s'",sWareID);
rst.Open(sSQL,adCmdText);
if(rst.GetRecordCount()<1)//没有此种商品的库存信息
sSQL.Format("INSERT INTO 库存信息表 VALUES('%s',-%s)",sWareID,sNumber);
else
{
sStoreNUM=rst.GetFieldValue("库存数量");
sSQL.Format("UPDATE 库存信息表 SET 库存数量=%d WHERE 商品编号='%s'",atoi(sStoreNUM)-atoi(sNumber),sWareID);
}
rst.Open(sSQL,adCmdText);
}
this->Enabled(false);
this->m_ButPrint.SetFocus();
}
void CDSell::OnSetfocusComrid()
{
CString sCliectID,sCliect,sSQL;
m_EdtCliect.GetWindowText(sCliect);
sCliectID=ado.FieldToOtherField("客户信息表","名称",sCliect,"编号",1);
sSQL.Format("SELECT * FROM 订货信息表 WHERE 客户编号='%s' AND 结款否=0",sCliectID);
rst.Open(sSQL,adCmdText);
m_ComRID.SetRecordset(rst,"票号");
}
void CDSell::OnKillfocusComstyle()
{
CString sText;
this->m_ComStyle.GetWindowText(sText);
if(sText=="零售")
{
this->m_ComRID.EnableWindow(false);
m_Grid.SetRow(0);
m_Grid.SetCol(0);
m_Grid.InsertItem(0,"");
m_Grid.BeginEdit(0,0);
rst.Open("SELECT DISTINCT 名称,简称 from 商品信息表",adCmdText);
m_Grid.m_Edit.StartUpAssciation=true;
m_Grid.m_Edit.SetRecordset(rst);
m_Grid.m_Edit.SetSelectField("名称");
m_Grid.m_Edit.SetFocus();
}
else
{
this->m_ComRID.EnableWindow(true);
this->m_ComRID.SetFocus();
}
}
void CDSell::OnCellKillFocus()
{
CString sNumber,sPrice,sTotal;
float fTotal;
if(m_Grid.GetCol()==5)
{
sNumber=m_Grid.GetItemText(m_Grid.GetRow(),4);
sPrice=m_Grid.GetItemText(m_Grid.GetRow(),5);
fTotal=atof(sNumber)*atof(sPrice);
sTotal.Format("%f",fTotal);
m_Grid.SetItemText(m_Grid.GetRow(),6,sTotal);
int nRecordCount,nSumNumber=0;
float fSumTotal=0.00;
nRecordCount=m_Grid.GetItemCount();
for(int m=0;m<nRecordCount;m++)
{
sNumber=m_Grid.GetItemText(m,4);
sPrice=m_Grid.GetItemText(m,5);
fTotal=atof(sNumber)*atof(sPrice);
nSumNumber=nSumNumber+atoi(sNumber);
fSumTotal=fSumTotal+fTotal;
}
sNumber.Format("%d",nSumNumber);
sTotal.Format("%f",fSumTotal);
this->m_StaSumNumber.SetWindowText(sNumber);
this->m_StaSmallSum.SetWindowText(sTotal);
this->m_StaNotPay.SetWindowText(sTotal);
CString BigTotal;
BigTotal=MoneyToChineseCode(sTotal);
this->m_StaBigSum.SetWindowText(BigTotal);
}
if(m_Grid.GetCol()==6)
{
rst.Open("SELECT DISTINCT 名称,简称 from 商品信息表",adCmdText);
m_Grid.m_Edit.StartUpAssciation=true;
m_Grid.m_Edit.SetRecordset(rst);
m_Grid.m_Edit.SetSelectField("名称");
m_Grid.m_Edit.NumberOnly(false);
}
}
void CDSell::OnCellSetFocus()
{
CString sSQL,sName,sSpec,sUnit;
if(m_Grid.GetCol()==1)
{
sName=m_Grid.GetItemText(m_Grid.GetRow(),0);
m_Grid.m_Edit.ClearAll();
sSQL.Format("SELECT DISTINCT 名称,规格 from 商品信息表 WHERE 名称='%s'",sName);
rst.Close();
rst.Open(sSQL,adCmdText);
m_Grid.m_Edit.SetRecordset(rst);
m_Grid.m_Edit.SetSelectField("规格");
m_Grid.m_Edit.StartUpAssciation=false;
m_Grid.m_Edit.PopHide=false;
m_Grid.m_Edit.AutoPosition();
}
if(m_Grid.GetCol()==2)
{
m_Grid.m_Edit.ClearAll();
sName=m_Grid.GetItemText(m_Grid.GetRow(),0);
sSpec=m_Grid.GetItemText(m_Grid.GetRow(),1);
sSQL.Format("SELECT DISTINCT 名称,产地 from 商品信息表 WHERE 名称='%s' and 规格='%s'",sName,sSpec);
rst.Close();
rst.Open(sSQL,adCmdText);
m_Grid.m_Edit.SetRecordset(rst);
m_Grid.m_Edit.SetSelectField("产地");
m_Grid.m_Edit.PopHide=false;
m_Grid.m_Edit.StartUpAssciation=false;
m_Grid.m_Edit.AutoPosition();
}
if(m_Grid.GetCol()==3)
{
m_Grid.m_Edit.ClearAll();
sName=m_Grid.GetItemText(m_Grid.GetRow(),0);
sSpec=m_Grid.GetItemText(m_Grid.GetRow(),1);
sUnit=m_Grid.GetItemText(m_Grid.GetRow(),2);
sSQL.Format("SELECT DISTINCT 名称,计量单位 from 商品信息表 WHERE 名称='%s' and 规格='%s'and 产地='%s'",sName,sSpec,sUnit);
rst.Close();
rst.Open(sSQL,adCmdText);
m_Grid.m_Edit.SetRecordset(rst);
m_Grid.m_Edit.SetSelectField("计量单位");
m_Grid.m_Edit.StartUpAssciation=false;
m_Grid.m_Edit.AutoPosition();
m_Grid.m_Edit.PopHide=true;
m_Grid.m_Edit.EnterNumber=0;
}
if(m_Grid.GetCol()==4)
{
m_Grid.m_Edit.EnterNumber=0;
m_Grid.m_Edit.PopHide=true;
m_Grid.m_Edit.NumberOnly(true);
}
if(m_Grid.GetCol()==5)
{
m_Grid.m_Edit.ClearAll();
sName=m_Grid.GetItemText(m_Grid.GetRow(),0);
sSpec=m_Grid.GetItemText(m_Grid.GetRow(),1);
sUnit=m_Grid.GetItemText(m_Grid.GetRow(),2);
sSQL.Format("SELECT DISTINCT 名称,销售价格 as 单价 from 商品信息表 WHERE 名称='%s' and 规格='%s'and 产地='%s'",sName,sSpec,sUnit);
rst.Close();
rst.Open(sSQL,adCmdText);
m_Grid.m_Edit.SetRecordset(rst);
m_Grid.m_Edit.SetSelectField("单价");
m_Grid.m_Edit.StartUpAssciation=false;
m_Grid.m_Edit.PopHide=false;
m_Grid.m_Edit.AutoPosition();
}
}
void CDSell::OnBUTUndo()
{
if(MessageBox("确定要撤消操作吗?","系统提示",MB_OKCANCEL|MB_ICONQUESTION)==1)
{
m_StaID.SetWindowText("DH040403-000001");
m_StaDate.SetWindowText("2004-04-03");
this->Enabled(false);
m_ButCleck.SetFocus();
this->clear();
}
}
void CDSell::OnBUTExit()
{
this->OnCancel();
}
HBRUSH CDSell::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(pWnd==&m_StaBigSum ||pWnd==&m_StaSmallSum||pWnd==&m_StaSumNumber)
pDC->SetTextColor(RGB(255,0,0));
// TODO: Return a different brush if the default is not desired
return hbr;
}
void CDSell::OnChangeEdtpay()
{
CString sSmallSum,sPay,sMoney;
int fMoney;
m_EdtPay.GetWindowText(sPay);
this->m_StaSmallSum.GetWindowText(sSmallSum);
if(atof(sPay)>=atof(sSmallSum))
{
this->m_StaNotPay.SetWindowText("0");
fMoney=atof(sPay)-atof(sSmallSum);
sMoney.Format("%f",fMoney);
this->m_StaGiveChange.SetWindowText(sMoney);
}
else
{
this->m_StaGiveChange.SetWindowText("0");
fMoney=atof(sSmallSum)-atof(sPay);
sMoney.Format("%f",fMoney);
this->m_StaNotPay.SetWindowText(sMoney);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -