📄 profit.cpp
字号:
// Profit.cpp : implementation file
//
#include "stdafx.h"
#include "medicine.h"
#include "Profit.h"
#include "columns.h"
#include "column.h"
#include "COMDEF.H"
#include "_recordset.h"
#include "ADOConn.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CProfit dialog
CProfit::CProfit(CWnd* pParent /*=NULL*/)
: CDialog(CProfit::IDD, pParent)
{
//{{AFX_DATA_INIT(CProfit)
m_Amout = 0.0f;
m_Begin = 0;
m_End = 0;
m_TrueProfit = 0.0f;
m_Self = 0.0f;
m_AllProfit = 0.0f;
//}}AFX_DATA_INIT
}
void CProfit::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CProfit)
DDX_Control(pDX, IDC_DATAGRID1, m_DataGrid);
DDX_Control(pDX, IDC_ADODC1, m_Adodc);
DDX_Text(pDX, IDC_AMOUT, m_Amout);
DDX_DateTimeCtrl(pDX, IDC_BEGIN, m_Begin);
DDX_DateTimeCtrl(pDX, IDC_END, m_End);
DDX_Text(pDX, IDC_TRUEPROFIT, m_TrueProfit);
DDX_Text(pDX, IDC_SELF, m_Self);
DDX_Text(pDX, IDC_ALLPROFIT, m_AllProfit);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CProfit, CDialog)
//{{AFX_MSG_MAP(CProfit)
ON_BN_CLICKED(IDC_OK, OnOk)
ON_BN_CLICKED(IDC_EXIT, OnExit)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CProfit message handlers
int CProfit::DoModal()
{
// TODO: Add your specialized code here and/or call the base class
return CDialog::DoModal();
}
BOOL CProfit::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 CProfit::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 ";
//m_Adodc.SetRecordSource(cSql);
//m_Adodc.Refresh();
m_Adodc.SetRecordSource((LPCTSTR)(_bstr_t)cSql);
m_Adodc.Refresh();
}
void CProfit::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 ";
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)*SaleInfo.MediAmout) lm,sum(SaleInfo.MediAmout) la,sum((0.01*MediInfo.MediPrice*SaleInfo.VipDisc)*SaleInfo.MediAmout) sf,sum((MediInfo.MediPrice)*SaleInfo.MediAmout) ap from SaleInfo,MediInfo where SaleInfo.MediId=MediInfo.MediId and SaleInfo.SaleDate between '"+beginDate+"' and '"+endDate+"'";
//执行SELETE语句
_RecordsetPtr m_pRecordset;
m_pRecordset = m_AdoConn.GetRecordSet(vSQL);
//返回各列的值
if (m_pRecordset->adoEOF)
CProfit();
else
{
m_TrueProfit = atof((LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("lm"));
m_Amout = atof((LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("la"));
m_Self = atof((LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("sf"));
m_AllProfit = atof((LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("ap"));
}
//断开与数据库的连接
m_AdoConn.ExitConnect();
UpdateData(false);// 将变量的信息及时更新到对应的控件上
RefreshData();
}
void CProfit::OnExit()
{
// TODO: Add your control notification handler code here
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -