SmsManager/DLG_YWY_Analyse.cpp

662 lines
41 KiB
C++
Raw Normal View History

2025-01-14 10:46:18 +08:00
<EFBFBD><EFBFBD>// DLG_YWY_Analyse.cpp: <EFBFBD>[<EFBFBD>s<EFBFBD>e<EFBFBD>N
//
#include "stdafx.h"
#include "SmsManager.h"
#include "DLG_YWY_Analyse.h"
#include "afxdialogex.h"
#include "MainFrm.h"
// DLG_YWY_Analyse <EFBFBD>[݋Fh
IMPLEMENT_DYNAMIC(DLG_YWY_Analyse, CDialogEx)
DLG_YWY_Analyse::DLG_YWY_Analyse(CWnd* pParent /*=nullptr*/)
: CDialogEx(IDD_YWY_ANALYSE, pParent)
, m_bShowValue(FALSE)
{
m_tBegin = COleDateTime::GetCurrentTime()-COleDateTimeSpan(60,0,0,0);
m_tEnd = COleDateTime::GetCurrentTime();
m_lAbility = 0;
m_lDataType = 0;
m_lGap = 0;
m_lGraph = 0;
m_lQueryAll = 0;
m_lYWYID = 0;
m_lType = 0; //0ON <EFBFBD>1<EFBFBD>NtFU
m_lItem = 0;
m_strName=_T("");
m_pMainFrame = NULL;
m_pAnalyse = NULL;
m_pSmsData = NULL;
}
DLG_YWY_Analyse::~DLG_YWY_Analyse()
{
CloseData();
}
void DLG_YWY_Analyse::CloseData()
{
if (m_pAnalyse)
{
delete m_pAnalyse;
m_pAnalyse = NULL;
}
if (m_pSmsData)
{
delete m_pSmsData;
m_pSmsData = NULL;
}
}
void DLG_YWY_Analyse::SetParam(CMainFrame * pFrame, long lYWYID, long lType, long lItem, CString strName)
{
m_lYWYID = lYWYID;
m_lType = lType; //0ON <EFBFBD>1<EFBFBD>NtFU
m_lItem = lItem;
m_strName2 = strName;
m_strName = strName;
m_pMainFrame = pFrame;
}
void DLG_YWY_Analyse::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_CORP_ANALYSE_CHART, m_Chart);
DDX_DateTimeCtrl(pDX, IDC_CORP_ANALYSE_TBEGIN, m_tBegin);
DDX_DateTimeCtrl(pDX, IDC_CORP_ANALYSE_TEND, m_tEnd);
DDX_CBIndex(pDX, IDC_CORP_ANALYSE_SMSTYPE, m_lAbility);
DDX_CBIndex(pDX, IDC_CORP_ANALYSE_DATATYPE, m_lDataType);
DDX_CBIndex(pDX, IDC_CORP_ANALYSE_GAP, m_lGap);
DDX_CBIndex(pDX, IDC_CORP_ANALYSE_GRAPH, m_lGraph);
DDX_CBIndex(pDX, IDC_CORP_ANALYSE_QUERYALL, m_lQueryAll);
DDX_Control(pDX, IDC_CORP_ANALYSE_QUERYALL, m_L_QueryAll);
DDX_Control(pDX, IDC_CORP_ANALYSE_SHOWVALUE, m_B_ShowValue);
DDX_Check(pDX, IDC_CORP_ANALYSE_SHOWVALUE, m_bShowValue);
}
BEGIN_MESSAGE_MAP(DLG_YWY_Analyse, CDialogEx)
ON_BN_CLICKED(IDC_C_PAY_QUERY, &DLG_YWY_Analyse::OnBnClickedCPayQuery)
ON_WM_SIZE()
ON_CBN_SELCHANGE(IDC_CORP_ANALYSE_GRAPH, &DLG_YWY_Analyse::OnCbnSelchangeCorpAnalyseGraph)
ON_CBN_SELCHANGE(IDC_CORP_ANALYSE_DATATYPE, &DLG_YWY_Analyse::OnCbnSelchangeCorpAnalyseDatatype)
ON_BN_CLICKED(IDC_CORP_ANALYSE_SHOWVALUE, &DLG_YWY_Analyse::OnClickedCorpAnalyseShowvalue)
END_MESSAGE_MAP()
// DLG_YWY_Analyse <EFBFBD>mo`Yt z<EFBFBD>^
void DLG_YWY_Analyse::OnBnClickedCPayQuery()
{
UpdateData(true);
if (m_tEnd < m_tBegin)
{
MessageBox(_T("<00>g<EFBFBD><67><EFBFBD>~_g<5F>eg N<EFBFBD><EFBFBD>\<EFBFBD>Nw<EFBFBD><EFBFBD>Y<EFBFBD>eg <EFBFBD><EFBFBD><EFBFBD>9eck!"), _T("<EFBFBD><EFBFBD><EFBFBD>"), MB_ICONWARNING);
GetDlgItem(IDC_CORP_ANALYSE_TBEGIN)->SetFocus();
return;
}
REQ_YWY_Analyse * pAnalyse = new REQ_YWY_Analyse; memset(pAnalyse, 0, sizeof(REQ_YWY_Analyse));
m_tBegin.GetAsSystemTime(pAnalyse->tBegin); //w<EFBFBD><EFBFBD>Y<EFBFBD>e<EFBFBD><EFBFBD>
m_tEnd.GetAsSystemTime(pAnalyse->tEnd); //<EFBFBD>~_g<EFBFBD>e<EFBFBD><EFBFBD>
pAnalyse->lItem = m_lItem; //Rh<EFBFBD><EFBFBD><EFBFBD>U_MOn
pAnalyse->lYWYID = m_lYWYID; //N<EFBFBD>RXT
if (m_lQueryAll > 0) // <EFBFBD><EFBFBD>b<EFBFBD>NvQ<EFBFBD>[<EFBFBD>Q<EFBFBD>[
{
switch (m_lQueryAll)
{
case 1: //<EFBFBD>g<EFBFBD><EFBFBD>@b g
pAnalyse->lYWYID = -1;
break;
}
}
_tcscpy(pAnalyse->szName, m_strName); //ON T<EFBFBD>yb<EFBFBD>NtFU T<EFBFBD>y
pAnalyse->lAbility = m_lAbility; //<EFBFBD><EFBFBD><EFBFBD>R<EFBFBD>0-<EFBFBD>w<EFBFBD>O <EFBFBD>1-i_<EFBFBD>O
pAnalyse->lGap = m_lGap+1; //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0-<EFBFBD>e <EFBFBD>1-g <EFBFBD>2-t^
pAnalyse->lDataType = m_lDataType; //penc{|<EFBFBD>W<EFBFBD>0-EQ<<EFBFBD><EFBFBD> <EFBFBD>1-<EFBFBD>w<EFBFBD> <EFBFBD>2-ё<EFBFBD><EFBFBD>+<EFBFBD>w<EFBFBD>
pAnalyse->lAbility = m_lAbility;
//pAnalyse->lCorpID = -3;
m_pMainFrame->SendFrame(SMSFUNC_YWY_ANALYSE, (BYTE*)pAnalyse, sizeof(REQ_YWY_Analyse));
}
BOOL DLG_YWY_Analyse::OnInitDialog()
{
CDialogEx::OnInitDialog();
// TODO: (Wdk<EFBFBD>m<EFBFBD>R<EFBFBD><EFBFBD>Y<EFBFBD>vR<EFBFBD>YS
if (m_pMainFrame->GetUserPurview(PURVIEW_MANAGER_ADD, false))
{
GetDlgItem(IDC_CORP_ANALYSE_QUERYALL)->ShowWindow(true);
}
return TRUE; // return TRUE unless you set the focus to a control
// _8^: OCX ^\'`u<EFBFBD><EFBFBD>^ԏ<EFBFBD>V FALSE
}
void DLG_YWY_Analyse::OnSize(UINT nType, int cx, int cy)
{
CDialogEx::OnSize(nType, cx, cy);
if (m_Chart.GetSafeHwnd())
{
m_Chart.MoveWindow(12, 150, cx - 12 - 12, cy - 150 - 12);
/*
RECT rect,rect2;
m_Chart.GetWindowRect(&rect);
m_Chart.GetClientRect(&rect2);
RECT rect3, rect4;
this->GetWindowRect(&rect3);
this->GetClientRect(&rect4);
m_Chart.MoveWindow((rect3.left - rect.left), (rect3.top - rect.top), cx-(rect3.right-rect.right), cy-(rect3.bottom - rect.bottom));
int b = 10;
*/
}
}
BOOL DLG_YWY_Analyse::ProcessSocket(Socket_Head_Add *pHead, BYTE *pFrame)
{
//<EFBFBD>g w/e<EFBFBD>N<EFBFBD><EFBFBD>U_
if (pHead->lFuncType == SMSFUNC_YWY_ANALYSE )
{
ANS_YWY_Analyse * pAnalyse = (ANS_YWY_Analyse *)pFrame;
ANS_YWY_Analyse_Data * pSmsData = (ANS_YWY_Analyse_Data *)(pFrame + sizeof(ANS_YWY_Analyse));
if (!pAnalyse->bOK) //CgP<EFBFBD> N<EFBFBD><EFBFBD> <EFBFBD>ԏ<EFBFBD>V<EFBFBD><EFBFBD><EFBFBD>
{
//<EFBFBD>lpencԏ<EFBFBD>V <EFBFBD>nzz<EFBFBD>~<EFBFBD><EFBFBD><EFBFBD>V
return true;
}
CloseData();
m_pAnalyse = new ANS_YWY_Analyse;
*m_pAnalyse = *pAnalyse;
if (m_pAnalyse->lCount > 0)
{
m_pSmsData = new ANS_YWY_Analyse_Data[m_pAnalyse->lCount];
memcpy((BYTE*)m_pSmsData, (BYTE*)pSmsData, sizeof(ANS_YWY_Analyse_Data)*m_pAnalyse->lCount);
}
ReDrawGraph();
}
return false;
}
void DLG_YWY_Analyse::ReDrawGraph()
{
if (m_lGraph == 0)
{
m_Chart.put_chartType(1 | 0); //2D<EFBFBD>g<EFBFBD>r<EFBFBD>V
}
if (m_lGraph == 1)
{
m_Chart.put_chartType(1 | 2); //2D<EFBFBD>~ag<EFBFBD>W
}
GetDlgItem(IDC_CORP_ANALYSE_SHOWDATE)->SetWindowText(_T(""));
CString strTitle;
m_Chart.put_Stacking(FALSE); //<EFBFBD><EFBFBD>nh!j_
m_Chart.put_ColumnCount(1); //nzzpenc
m_Chart.put_RowCount(1); //nzzpenc
if (m_lQueryAll > 0)
m_strName = _T("@b g<>[7b<37>~t");
else
m_strName = m_strName2;
switch (m_lDataType)
{
case 0:
default:
m_Chart.put_ShowLegend(FALSE);
m_Chart.put_ColumnCount(1); //<EFBFBD><EFBFBD>nRpe
m_Chart.put_Column(1);
m_Chart.put_ColumnLabel(_T("N<><><D191>"));
strTitle.Format(_T("%s N<><><D191><EFBFBD>[<5B>k<EFBFBD>V"), m_strName);
break;
case 1:
m_Chart.put_ShowLegend(FALSE);
m_Chart.put_ColumnCount(1); //<EFBFBD><EFBFBD>nRpe
m_Chart.put_Column(1);
m_Chart.put_ColumnLabel(_T("6eeQё<51><D191>"));
strTitle.Format(_T("%s 6eeQё<51><D191><EFBFBD>[<5B>k<EFBFBD>V"), m_strName);
break;
case 2:
m_Chart.put_ShowLegend(FALSE);
m_Chart.put_ColumnCount(1); //<EFBFBD><EFBFBD>nRpe
m_Chart.put_Column(1);
m_Chart.put_ColumnLabel(_T("<00>c<62><D191>"));
strTitle.Format(_T("%s <00>c<62><D191><EFBFBD>[<5B>k<EFBFBD>V"), m_strName);
break;
case 3:
m_Chart.put_ShowLegend(FALSE);
m_Chart.put_ColumnCount(1); //<EFBFBD><EFBFBD>nRpe
m_Chart.put_Column(1);
m_Chart.put_ColumnLabel(_T("<00>]D<>ё<EFBFBD><D191>"));
strTitle.Format(_T("%s <00>]D<>ё<EFBFBD><D191><EFBFBD>[<5B>k<EFBFBD>V"), m_strName);
break;
case 4:
m_Chart.put_ShowLegend(FALSE);
m_Chart.put_ColumnCount(1); //<EFBFBD><EFBFBD>nRpe
m_Chart.put_Column(1);
m_Chart.put_ColumnLabel(_T("<00>e<EFBFBD>X<EFBFBD>[7b"));
strTitle.Format(_T("%s <00>e<EFBFBD>X<EFBFBD>[7b<37>[<5B>k<EFBFBD>V"), m_strName);
break;
case 5:
m_Chart.put_ShowLegend(FALSE);
m_Chart.put_ColumnCount(1); //<EFBFBD><EFBFBD>nRpe
m_Chart.put_Column(1);
m_Chart.put_ColumnLabel(_T("Am1Y<31>[7b"));
strTitle.Format(_T("%s Am1Y<31>[7b<37>[<5B>k<EFBFBD>V"), m_strName);
break;
case 6:
m_Chart.put_ShowLegend(FALSE);
m_Chart.put_ColumnCount(1); //<EFBFBD><EFBFBD>nRpe
m_Chart.put_Column(1);
m_Chart.put_ColumnLabel(_T("<00>]D<>/N<>~<7E>k"));
strTitle.Format(_T("%s <00>]D<>/N<>~<7E>k<EFBFBD>[<5B>k<EFBFBD>V"), m_strName);
break;
case 7:
m_Chart.put_ShowLegend(TRUE);
m_Chart.put_ColumnCount(2); //<EFBFBD><EFBFBD>nRpe
m_Chart.put_Column(1);
m_Chart.put_ColumnLabel(_T("N<><><D191>"));
m_Chart.put_Column(2);
m_Chart.put_ColumnLabel(_T("<00>]D<>ё<EFBFBD><D191>"));
strTitle.Format(_T("%s N<><><D191>+<00>]D<>ё<EFBFBD><D191><EFBFBD>[<5B>k<EFBFBD>V"), m_strName);
break;
}
m_Chart.put_TitleText(strTitle);
if (!m_pAnalyse) //<EFBFBD>l gpenc <EFBFBD> N;u<EFBFBD>V
return;
VARIANT var;
//((CVcFill)((CVcBackdrop)m_Chart.get_Backdrop()).get_Fill()).put_Style(1);
//((CVcColor)((CVcBrush)((CVcFill)((CVcBackdrop)m_Chart.get_Backdrop()).get_Fill()).get_Brush()).get_FillColor()).Set(255, 255, 255);
//((CVcValueScale)((CVcAxis)((CVcPlot)m_Chart.get_Plot()).get_Axis(0, var)).get_ValueScale()).put_Auto(false);// NꁨRh<EFBFBD>lYt<EFBFBD>;R<EFBFBD>^
//((CVcValueScale)((CVcAxis)((CVcPlot)m_Chart.get_Plot()).get_Axis(0, var)).get_ValueScale()).put_Maximum(1000);// Yt<EFBFBD>g'Y;R<EFBFBD>^
//((CVcValueScale)((CVcAxis)((CVcPlot)m_Chart.get_Plot()).get_Axis(0, var)).get_ValueScale()).put_Minimum(0);// Yt<EFBFBD>g\;R<EFBFBD>^
//((CVcValueScale)((CVcAxis)((CVcPlot)m_Chart.get_Plot()).get_Axis(0, var)).get_ValueScale()).put_MajorDivision(0);//Yt<EFBFBD>;R<EFBFBD>^5I{R
//((CVcValueScale)((CVcAxis)((CVcPlot)m_Chart.get_Plot()).get_Axis(0, var)).get_ValueScale()).put_MinorDivision(0);//<EFBFBD>k;R<EFBFBD>^N*N;R<EFBFBD>^<EFBFBD>~
//((CVcAxisTitle)((CVcAxis)((CVcPlot)m_Chart.get_Plot()).get_Axis(0, var)).get_AxisTitle()).put_Text(_T("<00>w<EFBFBD>")); //Yt<EFBFBD> T<EFBFBD>y
// N<EFBFBD><EFBFBD>Nxt<EFBFBD><EFBFBD>W<EFBFBD>v<EFBFBD>vh<EFBFBD><h<EFBFBD>~
((CVcPen)((CVcAxisGrid)((CVcAxis)((CVcPlot)m_Chart.get_Plot()).get_Axis(0, var)).get_AxisGrid()).get_MajorPen()).put_Style(0);
//((CVcPen)((CVcAxisGrid)((CVcAxis)((CVcPlot)m_Chart.get_Plot()).get_Axis(1, var)).get_AxisGrid()).get_MajorPen()).put_Style(0);
//<EFBFBD><EFBFBD>υ,{<EFBFBD>Nyt<EFBFBD> <EFBFBD>sS<EFBFBD>S<EFBFBD><EFBFBD><EFBFBD>vyt<EFBFBD>
((CVcAxisScale)((CVcAxis)((CVcPlot)m_Chart.get_Plot()).get_Axis(2, var)).get_AxisScale()).put_Hide(TRUE);
//<EFBFBD><EFBFBD>nxt<EFBFBD><EFBFBD>Syt<EFBFBD><EFBFBD>vh<EFBFBD><EFBFBD>0xTitle<EFBFBD>TyTitle:NCString<EFBFBD>W
//m_Chart.GetPlot().GetAxis(0, var).GetAxisTitle().SetText(xTitle); //xt<EFBFBD>
//m_Chart.GetPlot().GetAxis(1, var).GetAxisTitle().SetText(yTitle); //yt<EFBFBD>
//m_Chart.put_RowCount(iRow);//<EFBFBD><EFBFBD>n<EFBFBD>f<EFBFBD>~<EFBFBD>ppe(;u<EFBFBD>f<EFBFBD>~N<EFBFBD>[<EFBFBD><EFBFBD><EFBFBD><EFBFBD>n)
//((CVcColor)((CVcPen)((CVcSeries)((CVcSeriesCollection)((CVcPlot)m_Chart.get_Plot()).get_SeriesCollection()).get_Item(1)).get_Pen()).get_VtColor()).Set(0, 0, 255);
// <EFBFBD>~<EFBFBD>[(<EFBFBD>[<EFBFBD>p<EFBFBD>~<EFBFBD>V gHe)
//((CVcPen)((CVcSeries)((CVcSeriesCollection)((CVcPlot)m_Chart.get_Plot()).get_SeriesCollection()).get_Item(1)).get_Pen()).put_Width(50);
//m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetPen().SetWidth(50);
//m_Chart.GetPlot().GetSeriesCollection().GetItem(2).GetPen().SetWidth(100);
//m_Chart.GetPlot().GetSeriesCollection().GetItem(3).GetPen().SetWidth(2);
// penc<EFBFBD>p{|<EFBFBD>W>f:ypenc<P<EFBFBD>v!j_(<EFBFBD>[<EFBFBD>g<EFBFBD>g<EFBFBD>r<EFBFBD>V<EFBFBD>T<EFBFBD>p<EFBFBD>~<EFBFBD>V gHe)
// 0: N>f:y 1: >f:y(W<EFBFBD>g<EFBFBD>r<EFBFBD>VY
// 2: >f:y(W<EFBFBD>g<EFBFBD>r<EFBFBD>V<EFBFBD>Q
N<EFBFBD>e 3: >f:y(W<EFBFBD>g<EFBFBD>r<EFBFBD>V<EFBFBD>Q-N<EFBFBD><EFBFBD> 4: >f:y(W<EFBFBD>g<EFBFBD>r<EFBFBD>V<EFBFBD>Q N<EFBFBD>e
long lShowType = 0;
if (m_B_ShowValue.GetCheck())
lShowType = 1;
((CVcDataPointLabel)((CVcDataPoint)((CVcDataPoints)((CVcSeries)((CVcSeriesCollection)((CVcPlot)m_Chart.get_Plot()).get_SeriesCollection()).get_Item(1)).get_DataPoints()).get_Item(-1)).get_DataPointLabel()).put_LocationType(lShowType);
((CVcDataPointLabel)((CVcDataPoint)((CVcDataPoints)((CVcSeries)((CVcSeriesCollection)((CVcPlot)m_Chart.get_Plot()).get_SeriesCollection()).get_Item(1)).get_DataPoints()).get_Item(-1)).get_DataPointLabel()).put_ValueFormat(_T("0,0"));
if (m_Chart.get_ColumnCount() >= 2)
{
((CVcDataPointLabel)((CVcDataPoint)((CVcDataPoints)((CVcSeries)((CVcSeriesCollection)((CVcPlot)m_Chart.get_Plot()).get_SeriesCollection()).get_Item(2)).get_DataPoints()).get_Item(-1)).get_DataPointLabel()).put_LocationType(lShowType);
((CVcDataPointLabel)((CVcDataPoint)((CVcDataPoints)((CVcSeries)((CVcSeriesCollection)((CVcPlot)m_Chart.get_Plot()).get_SeriesCollection()).get_Item(2)).get_DataPoints()).get_Item(-1)).get_DataPointLabel()).put_ValueFormat(_T("0,0"));
}
//<EFBFBD>Vb_
Npe<P<EFBFBD>v>f:y<EFBFBD><EFBFBD>n
//MSChart1.Plot.SeriesCollection(AIndex).DataPoints(-1).DataPointLabel.Component = 2 '1 nf<EFBFBD>pe<P 2 ~vR<EFBFBD>k
//MSChart1.Plot.SeriesCollection(AIndex).DataPoints(-1).DataPointLabel.PercentFormat = "0%" '~vR<EFBFBD>k>f:y<h_
//nf<EFBFBD>pe<P>f:y<h_ :Nzz<EFBFBD>e\<EFBFBD>N<EFBFBD>yf[<EFBFBD><EFBFBD>pe<EFBFBD>l>f:y <EFBFBD>:N0<EFBFBD>e c<EFBFBD>[E<EFBFBD>>f:y
//MSChart1.Plot.SeriesCollection(AIndex).DataPoints(-1).DataPointLabel.ValueFormat = "0"
int nRowCount = 1;
switch (m_pAnalyse->lGap)
{
case 0: //<EFBFBD>e
default:
nRowCount = (m_tEnd - m_tBegin).GetTotalDays()+1;
break;
case 1: //g
{
long lYear = m_tEnd.GetYear() - m_tBegin.GetYear();
long lMon = m_tEnd.GetMonth() - m_tBegin.GetMonth()+1;
if (lMon <= 0)
{
lMon = 12 + lMon;
lYear = lYear - 1;
}
nRowCount = lYear * 12 + lMon;
}
break;
case 2: //t^
nRowCount = m_tEnd.GetYear() - m_tBegin.GetYear()+1;
break;
case 3: //JSt^
nRowCount = (m_tEnd.GetYear() - m_tBegin.GetYear() + 1)*2;
break;
case 4: // T<EFBFBD>k-
NJSt^
case 5: // T<EFBFBD>k- NJSt^
case 6: // T<EFBFBD>k-1c[<EFBFBD>^
case 7: // T<EFBFBD>k-2c[<EFBFBD>^
case 8: // T<EFBFBD>k-3c[<EFBFBD>^
case 9: // T<EFBFBD>k-4c[<EFBFBD>^
case 10: // T<EFBFBD>k-1g<EFBFBD>N
case 11: // T<EFBFBD>k-2g<EFBFBD>N
case 12: // T<EFBFBD>k-3g<EFBFBD>N
case 13: // T<EFBFBD>k-4g<EFBFBD>N
case 14: // T<EFBFBD>k-5g<EFBFBD>N
case 15: // T<EFBFBD>k-6g<EFBFBD>N
case 16: // T<EFBFBD>k-7g<EFBFBD>N
case 17: // T<EFBFBD>k-8g<EFBFBD>N
case 18: // T<EFBFBD>k-9g<EFBFBD>N
case 19: // T<EFBFBD>k-10g<EFBFBD>N
case 20: // T<EFBFBD>k-11g<EFBFBD>N
case 21: // T<EFBFBD>k-12g<EFBFBD>N
nRowCount = m_tEnd.GetYear() - m_tBegin.GetYear() + 1;
break;
}
if (nRowCount < 1) nRowCount = 1;
if (nRowCount > 500) nRowCount = 500;
m_Chart.put_RowCount(nRowCount);
//VARIANT var;
//((CVcCategoryScale)((CVcAxis)((CVcPlot)m_Chart.get_Plot()).get_Axis(0, var)).get_CategoryScale()).put_Auto(FALSE);// NꁨRh<EFBFBD>lXt<EFBFBD>;R<EFBFBD>^
//((CVcCategoryScale)((CVcAxis)((CVcPlot)m_Chart.get_Plot()).get_Axis(0, var)).get_CategoryScale()).put_DivisionsPerLabel(0);//<EFBFBD>k;R<EFBFBD>^N*Nh<EFBFBD>l
//((CVcCategoryScale)((CVcAxis)((CVcPlot)m_Chart.get_Plot()).get_Axis(0, var)).get_CategoryScale()).put_DivisionsPerTick(0);//<EFBFBD>k;R<EFBFBD>^N*N;R<EFBFBD>^<EFBFBD>~
//((CVcAxisTitle)((CVcAxis)((CVcPlot)m_Chart.get_Plot()).get_Axis(0, var)).get_AxisTitle()).put_Text(_T("<00>eg")); // Xt<EFBFBD> T<EFBFBD>y
CString strRow;
srand((unsigned)time(NULL));
int iSmsDataIndex = 0;
COleDateTime tDrawDate = m_tBegin;
int iDarwYear = m_tBegin.GetYear();
int iDrawMon = m_tBegin.GetMonth();
for (int row = 1; row <= nRowCount; ++row)
{
CString strDate; //;u<EFBFBD>eg
ANS_YWY_Analyse_Data smsData = { 0 };
switch (m_pAnalyse->lGap)
{
case 0: //<EFBFBD>e
default:
{
}
break;
case 1: //g
strDate.Format(_T("%04d.%02d"), iDarwYear, iDrawMon);
if (iSmsDataIndex < m_pAnalyse->lCount)
{
if (iDarwYear == m_pSmsData[iSmsDataIndex].tDate.wYear && //<EFBFBD>e<EFBFBD><EFBFBD><EFBFBD>v T <EFBFBD><EFBFBD>Spenc
iDrawMon == m_pSmsData[iSmsDataIndex].tDate.wMonth)
{
smsData = m_pSmsData[iSmsDataIndex];
iSmsDataIndex++;
}
}
iDrawMon = iDrawMon + 1; //g<EFBFBD>R1
if (iDrawMon > 12)
{
iDrawMon = 1;
iDarwYear += 1;
}
break;
case 2: //t^
strDate.Format(_T("%04dt^"), iDarwYear);
if (iSmsDataIndex < m_pAnalyse->lCount)
{
if (iDarwYear == m_pSmsData[iSmsDataIndex].tDate.wYear )
{
smsData = m_pSmsData[iSmsDataIndex];
iSmsDataIndex++;
}
}
iDarwYear = iDarwYear + 1; //g<EFBFBD>R1
break;
case 3: //JSt^
if (row % 2 == 1)
{
strDate.Format(_T("%04dt^
NJSt^"), iDarwYear);
for (int i=0; i<6 && iSmsDataIndex < m_pAnalyse->lCount; i++)
{
if (iDarwYear == m_pSmsData[iSmsDataIndex].tDate.wYear && m_pSmsData[iSmsDataIndex].tDate.wMonth<=6)
{
smsData.fYZ = smsData.fYZ + m_pSmsData[iSmsDataIndex].fYZ;
smsData.fSR = smsData.fSR + m_pSmsData[iSmsDataIndex].fSR;
smsData.fTC = smsData.fTC + m_pSmsData[iSmsDataIndex].fTC;
smsData.fGZ = smsData.fGZ + m_pSmsData[iSmsDataIndex].fGZ;
smsData.lNewKH = smsData.lNewKH + m_pSmsData[iSmsDataIndex].lNewKH;
smsData.lLSKH = smsData.lLSKH + m_pSmsData[iSmsDataIndex].lLSKH;
//smsData.fGZYZBL = smsData.fGZYZBL + m_pSmsData[iSmsDataIndex].fGZYZBL;
iSmsDataIndex++;
}
else
{
break;
}
}
}
else
{
strDate.Format(_T("%04dt^ NJSt^"), iDarwYear);
for (int i = 0; i < 6 && iSmsDataIndex < m_pAnalyse->lCount; i++)
{
if (iDarwYear == m_pSmsData[iSmsDataIndex].tDate.wYear && m_pSmsData[iSmsDataIndex].tDate.wMonth > 6)
{
smsData.fYZ = smsData.fYZ + m_pSmsData[iSmsDataIndex].fYZ;
smsData.fSR = smsData.fSR + m_pSmsData[iSmsDataIndex].fSR;
smsData.fTC = smsData.fTC + m_pSmsData[iSmsDataIndex].fTC;
smsData.fGZ = smsData.fGZ + m_pSmsData[iSmsDataIndex].fGZ;
smsData.lNewKH = smsData.lNewKH + m_pSmsData[iSmsDataIndex].lNewKH;
smsData.lLSKH = smsData.lLSKH + m_pSmsData[iSmsDataIndex].lLSKH;
iSmsDataIndex++;
}
else
{
break;
}
}
iDarwYear = iDarwYear + 1; //g<EFBFBD>R1
}
break;
case 4: // T<EFBFBD>k-
NJSt^
case 5: // T<EFBFBD>k- NJSt^
case 6: // T<EFBFBD>k-1c[<EFBFBD>^
case 7: // T<EFBFBD>k-2c[<EFBFBD>^
case 8: // T<EFBFBD>k-3c[<EFBFBD>^
case 9: // T<EFBFBD>k-4c[<EFBFBD>^
case 10: // T<EFBFBD>k-1g<EFBFBD>N
case 11: // T<EFBFBD>k-2g<EFBFBD>N
case 12: // T<EFBFBD>k-3g<EFBFBD>N
case 13: // T<EFBFBD>k-4g<EFBFBD>N
case 14: // T<EFBFBD>k-5g<EFBFBD>N
case 15: // T<EFBFBD>k-6g<EFBFBD>N
case 16: // T<EFBFBD>k-7g<EFBFBD>N
case 17: // T<EFBFBD>k-8g<EFBFBD>N
case 18: // T<EFBFBD>k-9g<EFBFBD>N
case 19: // T<EFBFBD>k-10g<EFBFBD>N
case 20: // T<EFBFBD>k-11g<EFBFBD>N
case 21: // T<EFBFBD>k-12g<EFBFBD>N
if (m_pAnalyse->lGap==4) strDate.Format(_T("%04dt^
NJSt^"), iDarwYear);
if (m_pAnalyse->lGap == 5) strDate.Format(_T("%04dt^ NJSt^"), iDarwYear);
if (m_pAnalyse->lGap == 6) strDate.Format(_T("%04dt^1c[<5B>^"), iDarwYear);
if (m_pAnalyse->lGap == 7) strDate.Format(_T("%04dt^2c[<5B>^"), iDarwYear);
if (m_pAnalyse->lGap == 8) strDate.Format(_T("%04dt^3c[<5B>^"), iDarwYear);
if (m_pAnalyse->lGap == 9) strDate.Format(_T("%04dt^4c[<5B>^"), iDarwYear);
if (m_pAnalyse->lGap >= 10 && m_pAnalyse->lGap <= 21 ) strDate.Format(_T("%04dt^%dg"), iDarwYear, m_pAnalyse->lGap-9);
for (int i = 0; i < 12 && iSmsDataIndex < m_pAnalyse->lCount; i++)
{
if (iDarwYear == m_pSmsData[iSmsDataIndex].tDate.wYear && m_pSmsData[iSmsDataIndex].tDate.wMonth <= 12)
{
BOOL bGetData = false;
if (m_pAnalyse->lGap == 4 && m_pSmsData[iSmsDataIndex].tDate.wMonth <= 6) // T<EFBFBD>k-
NJSt^
bGetData = true;
if (m_pAnalyse->lGap == 5 && m_pSmsData[iSmsDataIndex].tDate.wMonth > 6 && m_pSmsData[iSmsDataIndex].tDate.wMonth<=12) // T<EFBFBD>k- NJSt^
bGetData = true;
if (m_pAnalyse->lGap == 6 && m_pSmsData[iSmsDataIndex].tDate.wMonth >=1 && m_pSmsData[iSmsDataIndex].tDate.wMonth <= 3) // T<EFBFBD>k-1c[<EFBFBD>^
bGetData = true;
if (m_pAnalyse->lGap == 7 && m_pSmsData[iSmsDataIndex].tDate.wMonth >= 4 && m_pSmsData[iSmsDataIndex].tDate.wMonth <= 6) // T<EFBFBD>k-2c[<EFBFBD>^
bGetData = true;
if (m_pAnalyse->lGap == 8 && m_pSmsData[iSmsDataIndex].tDate.wMonth >= 7 && m_pSmsData[iSmsDataIndex].tDate.wMonth <= 9) // T<EFBFBD>k-3c[<EFBFBD>^
bGetData = true;
if (m_pAnalyse->lGap == 9 && m_pSmsData[iSmsDataIndex].tDate.wMonth >= 10 && m_pSmsData[iSmsDataIndex].tDate.wMonth <= 12) // T<EFBFBD>k-4c[<EFBFBD>^
bGetData = true;
if (m_pAnalyse->lGap >= 10 && m_pAnalyse->lGap <= 21 && m_pSmsData[iSmsDataIndex].tDate.wMonth == m_pAnalyse->lGap - 9) // T<EFBFBD>k-g<EFBFBD>N
bGetData = true;
if (bGetData)
{
smsData.fYZ = smsData.fYZ + m_pSmsData[iSmsDataIndex].fYZ;
smsData.fSR = smsData.fSR + m_pSmsData[iSmsDataIndex].fSR;
smsData.fTC = smsData.fTC + m_pSmsData[iSmsDataIndex].fTC;
smsData.fGZ = smsData.fGZ + m_pSmsData[iSmsDataIndex].fGZ;
smsData.lNewKH = smsData.lNewKH + m_pSmsData[iSmsDataIndex].lNewKH;
smsData.lLSKH = smsData.lLSKH + m_pSmsData[iSmsDataIndex].lLSKH;
//smsData.fGZYZBL = smsData.fGZYZBL + m_pSmsData[iSmsDataIndex].fGZYZBL;
}
iSmsDataIndex++;
}
else
{
break;
}
}
iDarwYear = iDarwYear + 1; //g<EFBFBD>R1
break;
}
m_Chart.put_Row(row);
m_Chart.put_RowLabel(strDate);
switch (m_lDataType)
{
case 0: //N<EFBFBD>~
default:
((CVcDataGrid)m_Chart.get_DataGrid()).SetData(row, 1, smsData.fYZ, 0); //N<EFBFBD>~
break;
case 1: //6eeQ
((CVcDataGrid)m_Chart.get_DataGrid()).SetData(row, 1, smsData.fSR, 0); //6eeQ
break;
case 2: //<EFBFBD>cb
((CVcDataGrid)m_Chart.get_DataGrid()).SetData(row, 1, smsData.fTC, 0); //<EFBFBD>cb
break;
case 3: //<EFBFBD>]D<EFBFBD>
((CVcDataGrid)m_Chart.get_DataGrid()).SetData(row, 1, smsData.fGZ, 0); //<EFBFBD>]D<EFBFBD>
break;
case 4: //<EFBFBD>e<EFBFBD>X<EFBFBD>[7b
((CVcDataGrid)m_Chart.get_DataGrid()).SetData(row, 1, smsData.lNewKH, 0); //<EFBFBD>e<EFBFBD>X<EFBFBD>[7b
break;
case 5: //Am1Y<EFBFBD>[7b
((CVcDataGrid)m_Chart.get_DataGrid()).SetData(row, 1, smsData.lLSKH, 0); //Am1Y<EFBFBD>[7b
break;
case 6: //<EFBFBD>]D<EFBFBD>/N<EFBFBD>~<EFBFBD>k
((CVcDataGrid)m_Chart.get_DataGrid()).SetData(row, 1, smsData.fGZYZBL*10, 0); //<EFBFBD>]D<EFBFBD>/N<EFBFBD>~<EFBFBD>k
break;
case 7: //N<EFBFBD>~ + <EFBFBD>]D<EFBFBD>
((CVcDataGrid)m_Chart.get_DataGrid()).SetData(row, 1, smsData.fYZ/10.0f, 0); //N<EFBFBD>~
((CVcDataGrid)m_Chart.get_DataGrid()).SetData(row, 2, smsData.fGZ, 0); //<EFBFBD>]D<EFBFBD>
break;
}
}
m_Chart.Refresh();
}BEGIN_EVENTSINK_MAP(DLG_YWY_Analyse, CDialogEx)
ON_EVENT(DLG_YWY_Analyse, IDC_CORP_ANALYSE_CHART, 9, DLG_YWY_Analyse::PointSelectedCorpAnalyseChart, VTS_PI2 VTS_PI2 VTS_PI2 VTS_PI2)
END_EVENTSINK_MAP()
void DLG_YWY_Analyse::PointSelectedCorpAnalyseChart(short* Series, short* DataPoint, short* MouseFlags, short* Cancel)
{
CString strOut;
long lCol = *Series;
long lRow = *DataPoint;
double dData=0;
short sr = 0;
((CVcDataGrid)m_Chart.get_DataGrid()).GetData(lRow, lCol, &dData, &sr);
CString strRowLable = ((CVcDataGrid)m_Chart.get_DataGrid()).get_RowLabel(lRow, 1);
CString strColLable = ((CVcDataGrid)m_Chart.get_DataGrid()).get_ColumnLabel(lCol, 1);
long sData = (long)dData;
strOut.Format(_T("penc<1A>%s,%s : %d"), strRowLable, strColLable, sData);
//AfxMessageBox(strOut);
GetDlgItem(IDC_CORP_ANALYSE_SHOWDATE)->SetWindowText(strOut);
}
void DLG_YWY_Analyse::OnCbnSelchangeCorpAnalyseGraph()
{
UpdateData(true);
ReDrawGraph();
}
void DLG_YWY_Analyse::OnCbnSelchangeCorpAnalyseDatatype()
{
UpdateData(true);
ReDrawGraph();
}
void DLG_YWY_Analyse::OnClickedCorpAnalyseShowvalue()
{
ReDrawGraph();
}