📄 lose.cpp
字号:
// Lose.cpp : implementation file
//
#include "stdafx.h"
#include "medicine.h"
#include "Lose.h"
#include "_recordset.h"
#include "columns.h"
#include "column.h"
#include "COMDEF.H"
#include "ADOConn.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CLose dialog
CLose::CLose(CWnd* pParent /*=NULL*/)
: CDialog(CLose::IDD, pParent)
{
//{{AFX_DATA_INIT(CLose)
m_Begin = 0;
m_End = 0;
m_LoseMoney = 0.0f;
m_LoseAmout = 0.0f;
//}}AFX_DATA_INIT
}
void CLose::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CLose)
DDX_Control(pDX, IDC_ADODC1, m_Adodc);
DDX_Control(pDX, IDC_DATAGRID1, m_DataGrid);
DDX_DateTimeCtrl(pDX, IDC_BEGIN, m_Begin);
DDX_DateTimeCtrl(pDX, IDC_END, m_End);
DDX_Text(pDX, IDC_LOSEMONEY, m_LoseMoney);
DDX_Text(pDX, IDC_LOSEAMOUT, m_LoseAmout);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CLose, CDialog)
//{{AFX_MSG_MAP(CLose)
ON_BN_CLICKED(IDC_OK, OnOk)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CLose message handlers
int CLose::DoModal()
{
// TODO: Add your specialized code here and/or call the base class
return CDialog::DoModal();
}
BOOL CLose::OnInitDialog()
{
CDialog::OnInitDialog();
CTime t = CTime::GetCurrentTime();
m_Begin = t;//+24*60*60*2; //设置购入药品日期为当天
m_End=t; //设置药品过期日期为当天
UpdateData(FALSE);//把变量信息及时更新到控件上
RefreshData();
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CLose::OnOk()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);// 将控件上的信息及时更新到对应的变量
if(m_Begin>m_End)
{
MessageBox("请选择正确日期!");
return;
}
CString cSql;
cSql="select SaleInfo.SaleId as'销售编号',MediInfo.MediName as ";
cSql+=" '药品编号',MediInfo.Unit as'药品名称',(0.01*MediInfo.MediPrice*SaleInfo.VipDisc) as ";
cSql+=" '售价', MediInfo.MediPrice as'进价', SaleInfo.MediAmout as'数量'from SaleInfo,MediInfo ";
cSql+=" where SaleInfo.MediId=MediInfo.MediId and MediInfo.MediPrice>(0.01*MediInfo.MediPrice*SaleInfo.VipDisc)";
CString beginDate = m_Begin.Format("%Y-%m-%d");
CString endDate = m_End.Format("%Y-%m-%d");
cSql += " and SaleInfo.SaleDate between '"+beginDate+"' and '"+endDate+"'";
m_Adodc.SetRecordSource((LPCTSTR)(_bstr_t)cSql);
m_Adodc.Refresh();
ADOConn m_AdoConn;
m_AdoConn.OnInitADOConn();
//设置SELECT语句
_bstr_t vSQL;
vSQL = "select sum(MediInfo.MediPrice-0.01*MediInfo.MediPrice*SaleInfo.VipDisc) lm,";
vSQL+="sum(SaleInfo.MediAmout) la from SaleInfo,MediInfo where SaleInfo.MediId=MediInfo.MediId and MediInfo.MediPrice>(0.01*MediInfo.MediPrice*SaleInfo.VipDisc)";
//执行SELETE语句
_RecordsetPtr m_pRecordset;
m_pRecordset = m_AdoConn.GetRecordSet(vSQL);
//返回各列的值
if (m_pRecordset->adoEOF)
CLose();
else
{
m_LoseMoney = atof((LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("lm"));
m_LoseAmout = atof((LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("la"));
}
//断开与数据库的连接
m_AdoConn.ExitConnect();
UpdateData(false);// 将变量的信息及时更新到对应的控件上
RefreshData();
}
void CLose::RefreshData()
{
UpdateData(TRUE);// 将控件上的信息及时更新到对应的变量
/* CString SaleId,SaleDate;
float MediAmout,SalePrice;
int PayType;
//MediId,MediPrice, WorkNo,VipDisc*/
CString cSql;
cSql="select SaleInfo.SaleId as'销售编号',MediInfo.MediName as ";
cSql+=" '药品编号',MediInfo.Unit as'药品名称',(0.01*MediInfo.MediPrice*SaleInfo.VipDisc) as ";
cSql+=" '售价', MediInfo.MediPrice as'进价', SaleInfo.MediAmout as'数量'from SaleInfo,MediInfo ";
cSql+=" where SaleInfo.MediId=MediInfo.MediId and MediInfo.MediPrice>(0.01*MediInfo.MediPrice*SaleInfo.VipDisc)";
//m_Adodc.SetRecordSource(cSql);
//m_Adodc.Refresh();
m_Adodc.SetRecordSource((LPCTSTR)(_bstr_t)cSql);
m_Adodc.Refresh();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -