📄 appendoutinfo.cpp
字号:
// AppendOutInfo.cpp : implementation file
//
#include "stdafx.h"
#include "Material_MIS.h"
#include "AppendOutInfo.h"
#include "Material_MISView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAppendOutInfo dialog
CAppendOutInfo::CAppendOutInfo(CWnd* pParent /*=NULL*/)
: CDialog(CAppendOutInfo::IDD, pParent)
{
//{{AFX_DATA_INIT(CAppendOutInfo)
m_sDealPerson = _T("");
m_rkNO = _T("");
m_sMemo = _T("");
m_sMoney = _T("");
m_sQuantity = _T("");
m_sSavePerson = _T("");
m_sStorage = _T("");
m_sTime = COleDateTime::GetCurrentTime();
m_sUnit = _T("");
m_wzID = _T("");
m_wzKind = _T("");
m_wzName = _T("");
m_wzSpec = _T("");
m_wzUnit = _T("");
//}}AFX_DATA_INIT
}
void CAppendOutInfo::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAppendOutInfo)
DDX_Text(pDX, IDC_OUT_DEALPERSON, m_sDealPerson);
DDX_Text(pDX, IDC_OUT_LYNO, m_rkNO);
DDX_Text(pDX, IDC_OUT_MEMO, m_sMemo);
DDX_Text(pDX, IDC_OUT_MONEY, m_sMoney);
DDX_Text(pDX, IDC_OUT_QUANTITY, m_sQuantity);
DDX_Text(pDX, IDC_OUT_SAVEPERSON, m_sSavePerson);
DDX_Text(pDX, IDC_OUT_STORAGE, m_sStorage);
DDX_Text(pDX, IDC_OUT_TIME, m_sTime);
DDX_Text(pDX, IDC_OUT_UNIT, m_sUnit);
DDX_CBString(pDX, IDC_OUT_WZID, m_wzID);
DDX_Text(pDX, IDC_OUT_WZKIND, m_wzKind);
DDX_Text(pDX, IDC_OUT_WZNAME, m_wzName);
DDX_Text(pDX, IDC_OUT_WZSPEC, m_wzSpec);
DDX_Text(pDX, IDC_OUT_WZUNIT, m_wzUnit);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAppendOutInfo, CDialog)
//{{AFX_MSG_MAP(CAppendOutInfo)
ON_CBN_SELCHANGE(IDC_OUT_WZID, OnSelchangeOutWzid)
ON_EN_KILLFOCUS(IDC_OUT_QUANTITY, OnKillfocusOutQuantity)
ON_EN_KILLFOCUS(IDC_OUT_UNIT, OnKillfocusOutUnit)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CAppendOutInfo message handlers
BOOL CAppendOutInfo::OnInitDialog()
{
CDialog::OnInitDialog();
((CEdit*)GetDlgItem(IDC_OUT_QUANTITY))->SetLimitText(50);
((CEdit*)GetDlgItem(IDC_OUT_UNIT))->SetLimitText(50);
((CEdit*)GetDlgItem(IDC_OUT_MONEY))->SetLimitText(50);
((CEdit*)GetDlgItem(IDC_OUT_TIME))->SetLimitText(50);
((CEdit*)GetDlgItem(IDC_OUT_DEALPERSON))->SetLimitText(50);
((CEdit*)GetDlgItem(IDC_OUT_SAVEPERSON))->SetLimitText(50);
((CEdit*)GetDlgItem(IDC_OUT_STORAGE))->SetLimitText(50);
((CEdit*)GetDlgItem(IDC_OUT_MEMO))->SetLimitText(50);
// TODO: Add extra initialization here
_variant_t strQuery, Holder;
if (m_bAppend)
{
// 初始化下拉列表
SetWindowText(_T("添加物资出库信息"));
strQuery = "select distinct fldYeid from tblMsurplus";
theApp.ADOExecute(theApp.m_pADOSet, strQuery);
int count= theApp.m_pADOSet->GetRecordCount();
theApp.m_pADOSet->MoveFirst();
Holder = theApp.m_pADOSet->GetCollect("fldYeid");
CString firstid=Holder.bstrVal;
theApp.m_pADOSet->MoveFirst();
for (int j=0; j<count;j++)
{
Holder = theApp.m_pADOSet->GetCollect("fldYeid");
((CComboBox*)GetDlgItem(IDC_OUT_WZID))->InsertString(j, Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder);
theApp.m_pADOSet->MoveNext();
}
((CComboBox*)GetDlgItem(IDC_OUT_WZID))->SetCurSel(0);
strQuery="select * from tblMaterial where fldWzid='"+firstid+"'";
theApp.ADOExecute(theApp.m_pADOSet, strQuery);
Holder = theApp.m_pADOSet->GetCollect("fldWzname");
m_wzName=Holder.bstrVal;
Holder = theApp.m_pADOSet->GetCollect("fldWzkind");
m_wzKind=Holder.bstrVal;
Holder = theApp.m_pADOSet->GetCollect("fldWzspec");
m_wzSpec=Holder.bstrVal;
Holder = theApp.m_pADOSet->GetCollect("fldWzunit");
m_wzUnit=Holder.bstrVal;
}
else//修改记录
{
SetWindowText(_T("修改物资出库信息"));
m_rkOldNO=m_rkNO;
m_soldaccount=m_sQuantity;
m_soldvalue=m_sMoney;
_variant_t strQuery, Holder;
CString NO;
int iSel = 0;
strQuery = "select * from tblMuse";
theApp.ADOExecute(theApp.m_pADOSet, strQuery);
int iCount = theApp.m_pADOSet->GetRecordCount();
theApp.m_pADOSet->MoveFirst();
for (int i=0; i<iCount; i++)
{
Holder = theApp.m_pADOSet->GetCollect("fldLyno");
NO = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
Holder = theApp.m_pADOSet->GetCollect("fldLyid");
m_wzID = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
((CComboBox*)GetDlgItem(IDC_OUT_WZID))->InsertString(i, Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder);
if (NO==m_rkNO)
{
Holder = theApp.m_pADOSet->GetCollect("fldLyname");
m_wzName = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
Holder = theApp.m_pADOSet->GetCollect("fldLyspec");
m_wzSpec = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
Holder = theApp.m_pADOSet->GetCollect("fldLykind");
m_wzKind = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
Holder = theApp.m_pADOSet->GetCollect("fldLyunit");
m_wzUnit = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
iSel=i;
}
theApp.m_pADOSet->MoveNext();
}
((CComboBox*)GetDlgItem(IDC_OUT_WZID))->SetCurSel(iSel);
}
UpdateData(false);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CAppendOutInfo::OnOK()
{
// TODO: Add extra validation here
UpdateData(true);
m_sDealPerson.TrimRight(" ");
m_sMoney.TrimRight(" ");
m_sQuantity.TrimRight(" ");
m_sSavePerson.TrimRight(" ");
m_sStorage.TrimRight(" ");
m_sUnit.TrimRight(" ");
m_sMemo.TrimRight(" ");
CString sWarning="";
if( ""==m_sQuantity ) sWarning=_T("数量");
else if ( ""==m_sUnit ) sWarning=_T("单价");
else if ( ""==m_sMoney ) sWarning=_T("金额");
else if ( ""==m_sDealPerson ) sWarning=_T("领用人");
else if ( ""==m_sSavePerson ) sWarning=_T("经办人");
else if ( ""==m_sStorage ) sWarning=_T("仓库");
if ( ""!=sWarning )
{
sWarning += _T("不能为空!");
AfxMessageBox(sWarning, MB_ICONEXCLAMATION);
return;
}
double fQuantity=atof(m_sQuantity);
if ( 0==fQuantity )
{
AfxMessageBox(_T("数量请输入非零整数!"), MB_ICONEXCLAMATION);
return;
}
double fUnit=atof(m_sUnit);
if(0==fUnit)
{
AfxMessageBox(_T("单价请输入非零数字!"), MB_ICONEXCLAMATION);
return;
}
m_sUnit.Format("%.2f", fUnit);
double fMoney=atof(m_sMoney);
if(0==fMoney)
{
AfxMessageBox(_T("金额请输入非零数字!"), MB_ICONEXCLAMATION);
return;
}
m_sMoney.Format("%.2f", fMoney);
_variant_t strQuery;
_variant_t strQuery1;
_variant_t strQuery2;
// 删除旧记录
if ( !m_bAppend )
{
strQuery="update tblMsurplus set fldYeaccount=fldYeaccount+"+m_soldaccount+",fldYevalue=fldYevalue+"\
+m_soldvalue+" where fldYeid='"+m_wzID+"'and fldYebase='"+m_sStorage+"'";
theApp.ADOExecute(theApp.m_pADOSet,strQuery);
strQuery = "delete from tblMuse where fldLyno='"+m_rkNO+"'";
theApp.ADOExecute(theApp.m_pADOSet, strQuery);
}
// 产生序列号
CString sSN;
COleDateTime today = COleDateTime::GetCurrentTime();
sSN = today.Format("%y%m%d%H%M%S");
// 获得入库日期
CString sInDate;
sInDate = m_sTime.Format("%Y-%m-%d");
// 插入记录
strQuery = "insert tblMuse (fldLyno, fldLyid, fldLyname, fldLyspec, fldLykind, fldLyunit, fldLyaccount,fldLyprice,\
fldLyvalue,fldLydate,fldLyuse_person,fldLydeal_person,fldLybase,fldLymemo) values ('"+sSN+"', '"\
+m_wzID+"','" +m_wzName+"','"+m_wzSpec+"','"+m_wzKind+"','"\
+m_wzUnit+"',"+m_sQuantity+","+m_sUnit+","+m_sMoney+",'"\
+sInDate+"','"+m_sDealPerson+"','"+m_sSavePerson+"','"\
+m_sStorage+"','"+m_sMemo+"')";
if ( theApp.ADOExecute(theApp.m_pADOSet, strQuery) )
{
if ( m_bAppend )
{
AfxMessageBox(_T("添加记录成功!"), MB_ICONINFORMATION);
strQuery2="update tblMsurplus set fldYeaccount=fldYeaccount-"+m_sQuantity+",fldYevalue=fldYevalue-"\
+m_sMoney+" where fldYeid='"+m_wzID+"'and fldYebase='"+m_sStorage+"'";
theApp.ADOExecute(theApp.m_pADOSet,strQuery2);
// 清除所有输入
m_sQuantity=m_sUnit=m_sMoney=sInDate=m_sDealPerson=m_sSavePerson=\
m_sStorage=m_sMemo="";
UpdateData(false);
}
else
{
strQuery2="update tblMsurplus set fldYeaccount=fldYeaccount-"+m_sQuantity+",fldYevalue=fldYevalue-"\
+m_sMoney+" where fldYeid='"+m_wzID+"'and fldYebase='"+m_sStorage+"'";
theApp.ADOExecute(theApp.m_pADOSet,strQuery2);
AfxMessageBox(_T("修改记录成功!"), MB_ICONINFORMATION);
}
}
else
{
if ( m_bAppend ) AfxMessageBox(_T("添加记录失败!"), MB_ICONEXCLAMATION);
else AfxMessageBox(_T("修改记录失败!"), MB_ICONEXCLAMATION);
}
// 刷新入库信息列表
strQuery = "select * from tblMuse";
CMaterial_MISView* p = (CMaterial_MISView*)(((CMainFrame*)AfxGetMainWnd())->GetActiveView());
p->RefreshOut(strQuery);
if (!m_bAppend) CDialog::OnOK();
}
void CAppendOutInfo::OnSelchangeOutWzid()
{
// TODO: Add your control notification handler code here
UpdateData(true);
_variant_t strQuery, Holder;
//
strQuery = "select * from tblMaterial where fldWzid='"+m_wzID+"'";
theApp.ADOExecute(theApp.m_pADOSet, strQuery);
Holder = theApp.m_pADOSet->GetCollect("fldWzname");
m_wzName = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
CString name=m_wzName;
Holder = theApp.m_pADOSet->GetCollect("fldWzspec");
m_wzSpec = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
Holder = theApp.m_pADOSet->GetCollect("wzKind");
m_wzKind = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
Holder = theApp.m_pADOSet->GetCollect("fldWzunit");
m_wzUnit = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
UpdateData(false);
}
void CAppendOutInfo::OnKillfocusOutQuantity()
{
// TODO: Add your control notification handler code here
CString strQ,strU,strM;
double dMoney;
((CEdit*)GetDlgItem(IDC_OUT_QUANTITY))->GetWindowText(strQ);
if(strQ.GetLength()<=0)
return;
((CEdit*)GetDlgItem(IDC_OUT_UNIT))->GetWindowText(strU);
if(strU.GetLength()<=0)
return;
dMoney = (double)(atof(strQ) * atof(strU));
strM.Format("%.2f",dMoney);
((CEdit*)GetDlgItem(IDC_OUT_MONEY))->SetWindowText(strM);
}
void CAppendOutInfo::OnKillfocusOutUnit()
{
// TODO: Add your control notification handler code here
CString strQ,strU,strM;
double dMoney;
((CEdit*)GetDlgItem(IDC_OUT_QUANTITY))->GetWindowText(strQ);
if(strQ.GetLength()<=0)
return;
((CEdit*)GetDlgItem(IDC_OUT_UNIT))->GetWindowText(strU);
if(strU.GetLength()<=0)
return;
dMoney = (double)(atof(strQ) * atof(strU));
strM.Format("%.2f",dMoney);
((CEdit*)GetDlgItem(IDC_OUT_MONEY))->SetWindowText(strM);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -