📄 incomechart.cpp
字号:
// IncomeChart.cpp : implementation file
//
#include "stdafx.h"
#include "resource.h"
#include "IncomeChart.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CIncomeChart dialog
static int RunInfor[32];
static int check = RunInfor[0];
CIncomeChart::CIncomeChart(CWnd* pParent /*=NULL*/)
: CDialog(CIncomeChart::IDD, pParent)
{
//{{AFX_DATA_INIT(CIncomeChart)
//}}AFX_DATA_INIT
}
void CIncomeChart::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CIncomeChart)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CIncomeChart, CDialog)
//{{AFX_MSG_MAP(CIncomeChart)
ON_WM_PAINT()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CIncomeChart message handlers
BOOL CIncomeChart::OnInitDialog()
{
CDialog::OnInitDialog();
for(int j = 0; j < 30; j++)
RunInfor[j] = 0;
OnRefreshData();
return TRUE;
}
void CIncomeChart::OnRefreshData()
{
SHOP::_RecordsetPtr pRst;
CString _sql;
int i = 1;
for(i = 1; i < 31; i ++)
{
_sql.Format("select * from BUSINESSINFO where DATES = trunc(SYSDATE - %d)",i);
_bstr_t sql = _sql;
try
{
pRst = pConn->Execute(sql,NULL,SHOP::adCmdText);
while(!pRst->End)
{
_variant_t vIncome = pRst->Fields->GetItem(long(1))->Value;
_variant_t vPayout = pRst->Fields->GetItem(long(2))->Value;
RunInfor[i-1] += vIncome.iVal - vPayout.iVal;
pRst->MoveNext();
}
for(int j = 0; j< 30; j++)
{
if(RunInfor[j] < RunInfor[j+1])
check = RunInfor[j+1];
}
}
catch(_com_error& e)
{
AfxMessageBox(e.Description());
}
}
pRst->Close();
pRst.Release();
}
void CIncomeChart::OnPaint()
{
CPaintDC dc(this); // device context for painting
CBrush brush;
brush.CreateSolidBrush(RGB(240,240,240));
CBrush *pOldBrush = dc.SelectObject(&brush);
//绘制坐标系
dc.SetBkColor(RGB(214,215,206));
dc.MoveTo(50,20);
dc.LineTo(50,350);
dc.MoveTo(50,350);
dc.LineTo(700,350);
//绘制两个箭头
dc.MoveTo(40,40);
dc.LineTo(50,20);
dc.MoveTo(60,40);
dc.LineTo(50,20);
dc.MoveTo(685,340);
dc.LineTo(700,350);
dc.MoveTo(685,360);
dc.LineTo(700,350);
dc.TextOut(25,30,"N");
//绘制刻度线
CString day;
if(check)
{
for(int i = 0; i < 31; i++)
{
day.Format("%d",i+1);
dc.MoveTo(70+i*20,350);
dc.LineTo(70+i*20,345);
dc.TextOut(55+i*20,355,day);
CString strnum;
strnum.Format("%d",RunInfor[i]);
dc.Rectangle(50+i*20,350-300*RunInfor[i]/check,70+i*20,350);
dc.TextOut(55+i*20,330-300*RunInfor[i]/check,strnum);
}
}
CDialog::OnPaint();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -