// DinDanForm.cpp : implementation file // #include "stdafx.h" #include "ylgl.h" #include "DinDanForm.h" #include "MyMdi.H" #include "VcPlot.h" #include "VcAxis.h" #include "VcValueScale.h" #include "VcSeriesCollection.h" #include "VcSeries.h" #include "VcPen.h" #include "VcCategoryScale.h" #include "VcColor.h" #include "VcDataGrid.h" #include "VcBackdrop.h" #include "VcFill.h" #include "VcBrush.h" #include "VcDataPoints.h" #include "VcDataPoint.h" #include "VcDataPointLabel.h" #include "VcAxisTitle.h" #include "ShowMschart.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // DinDanForm IDC_RADIO25 IMPLEMENT_DYNCREATE(DinDanForm, MyFormView) DinDanForm::DinDanForm() : MyFormView(DinDanForm::IDD) { //{{AFX_DATA_INIT(DinDanForm) m_year = atoi(g_date.Mid(0, 4)); m_month = atoi(g_date.Mid(5, 2)); m_day = atoi(g_date.Mid(8, 2)); m_radio1 = 0; m_radio2 = 1; m_bInit = 0; m_taoxipos = 0; m_check1 = FALSE; m_pchild = NULL; //}}AFX_DATA_INIT } DinDanForm::~DinDanForm() { if (m_pchild) { m_pchild->DestroyWindow(); delete m_pchild; m_pchild = NULL; } } void DinDanForm::DoDataExchange(CDataExchange* pDX) { MyFormView::DoDataExchange(pDX); //{{AFX_DATA_MAP(DinDanForm) DDX_Control(pDX, IDC_COMBO1, m_combo1); DDX_Control(pDX, IDC_SPIN3, m_spinday); DDX_Control(pDX, IDC_SPIN2, m_spinmonth); DDX_Control(pDX, IDC_SPIN1, m_spinyear); DDX_Control(pDX, IDC_STATIC1, m_static1); DDX_Text(pDX, IDC_EDITyear, m_year); DDV_MinMaxUInt(pDX, m_year, 1900, 3000); DDX_Text(pDX, IDC_EDITmonth, m_month); DDV_MinMaxUInt(pDX, m_month, 1, 12); DDX_Text(pDX, IDC_EDITday, m_day); DDV_MinMaxUInt(pDX, m_day, 1, 31); DDX_Radio(pDX, IDC_RADIO3, m_radio1); DDX_Control(pDX, IDC_MSCHART3, m_Chart3); DDX_Radio(pDX, IDC_RADIO6, m_radio2); DDX_Check(pDX, IDC_CHECK1, m_check1); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(DinDanForm, MyFormView) //{{AFX_MSG_MAP(DinDanForm) ON_BN_CLICKED(IDC_BUTclose, OnBUTclose) ON_EN_CHANGE(IDC_EDITyear, OnChangeEDITyear) ON_EN_CHANGE(IDC_EDITmonth, OnChangeEDITmonth) ON_EN_CHANGE(IDC_EDITday, OnChangeEDITday) ON_BN_CLICKED(IDC_RADIO3, OnRadio3) ON_BN_CLICKED(IDC_RADIO4, OnRadio4) ON_BN_CLICKED(IDC_RADIO6, OnRadio6) ON_BN_CLICKED(IDC_RADIO7, OnRadio7) ON_CBN_SELCHANGE(IDC_COMBO1, OnSelchangeCombo1) ON_BN_CLICKED(IDC_RADIO8, OnRadio8) ON_BN_CLICKED(IDC_RADIO10, OnRadio10) ON_BN_CLICKED(IDC_RADIO11, OnRadio11) ON_BN_CLICKED(IDC_RADIO12, OnRadio12) ON_BN_CLICKED(IDC_RADIO13, OnRadio13) ON_BN_CLICKED(IDC_RADIO24, OnRadio24) ON_BN_CLICKED(IDC_RADIO25, OnRadio25) ON_BN_CLICKED(IDC_CHECK1, OnCheck1) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // DinDanForm diagnostics #ifdef _DEBUG void DinDanForm::AssertValid() const { MyFormView::AssertValid(); } void DinDanForm::Dump(CDumpContext& dc) const { MyFormView::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // DinDanForm message handlers void DinDanForm::OnInitialUpdate() { MyFormView::OnInitialUpdate(); // TODO: Add your specialized code here and/or call the base class if (!m_pchild) { m_pchild = new DinDanForm2; m_pchild->m_parent = (DWORD)this; m_pchild->m_pfilterarray = &m_filterarray; m_pchild->m_pfilterarray2 = &m_filterarray2; m_pchild->Create(IDD_DLGDinDanForm2, g_pMainWnd); } CRect rc; rc = g_rc; rc.left = 0; rc.right = g_rc.left; m_pchild->MoveWindow(rc); m_pchild->Init(); m_pchild->ModeChange(m_radio1); // m_pchild->ShowWindow (SW_SHOW); #ifndef LKAY_VERSION GetDlgItem(IDC_RADIO11)->ShowWindow(0); #endif CMyMdi Mdi; Mdi.SetSubView((CWnd*)GetParent(), (CWnd*)this); // Here we create the outbar control using the splitter as its parent // and setting its id to the first pane. CRect rc2; GetWindowRect(rc2); ::MoveWindow(m_hWnd, g_rc.left, g_rc.top, g_rc.Width(), g_rc.Height(), TRUE); EnumChildWindows(m_hWnd, (WNDENUMPROC)EnumChildProc, 0); m_static1.SetFont(&g_titlefont); m_spinyear.SetRange(1900, 3000); m_spinmonth.SetRange(1, 12); m_spinday.SetRange(1, 31); VARIANT var; /////////////////////////// m_Chart3.GetBackdrop().GetFill().SetStyle(1); m_Chart3.GetBackdrop().GetFill().GetBrush().GetFillColor().Set(255, 255, 255); m_Chart3.SetShowLegend(TRUE); m_Chart3.SetChartType(1); // 栈模式 m_Chart3.SetStacking(FALSE); m_Chart3.GetPlot().GetAxis(1, var).GetValueScale().SetAuto(1); // 不自动标注Y轴刻度 m_Chart3.GetPlot().GetAxis(0, var).GetCategoryScale().SetAuto(0); // 不自动标注X轴刻度 m_Chart3.GetPlot().GetAxis(0, var).GetCategoryScale().SetDivisionsPerLabel(1);// 每刻度一个标注 m_Chart3.GetPlot().GetAxis(0, var).GetCategoryScale().SetDivisionsPerTick(1); // 每刻度一个刻度线 m_Chart3.SetColumnCount(6); m_Chart3.SetColumn(1); m_Chart3.SetColumnLabel((LPCTSTR)"全部"); m_Chart3.SetColumn(2); m_Chart3.SetColumnLabel((LPCTSTR)"婚纱照"); m_Chart3.SetColumn(3); m_Chart3.SetColumnLabel((LPCTSTR)"写真照"); m_Chart3.SetColumn(4); m_Chart3.SetColumnLabel((LPCTSTR)"宝宝照"); m_Chart3.SetColumn(5); m_Chart3.SetColumnLabel((LPCTSTR)"全家福"); m_Chart3.SetColumn(6); m_Chart3.SetColumnLabel((LPCTSTR)"情侣照"); m_Chart3.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints().GetItem(-1).GetBrush().GetFillColor().Set(255, 0, 0); m_Chart3.GetPlot().GetSeriesCollection().GetItem(2).GetDataPoints().GetItem(-1).GetBrush().GetFillColor().Set(0, 255, 0); m_Chart3.GetPlot().GetSeriesCollection().GetItem(3).GetDataPoints().GetItem(-1).GetBrush().GetFillColor().Set(0, 0, 255); m_Chart3.GetPlot().GetSeriesCollection().GetItem(4).GetDataPoints().GetItem(-1).GetBrush().GetFillColor().Set(0, 255, 255); m_Chart3.GetPlot().GetSeriesCollection().GetItem(5).GetDataPoints().GetItem(-1).GetBrush().GetFillColor().Set(255, 255, 0); m_Chart3.GetPlot().GetSeriesCollection().GetItem(6).GetDataPoints().GetItem(-1).GetBrush().GetFillColor().Set(255, 0, 255); // 线宽(对点线图有效) m_Chart3.GetPlot().GetSeriesCollection().GetItem(1).GetPen().SetWidth(30); m_Chart3.GetPlot().GetSeriesCollection().GetItem(2).GetPen().SetWidth(30); m_Chart3.GetPlot().GetSeriesCollection().GetItem(3).GetPen().SetWidth(30); m_Chart3.GetPlot().GetSeriesCollection().GetItem(4).GetPen().SetWidth(30); m_Chart3.GetPlot().GetSeriesCollection().GetItem(5).GetPen().SetWidth(30); m_Chart3.GetPlot().GetSeriesCollection().GetItem(6).GetPen().SetWidth(30); // 数据点类型显示数据值的模式(对柱柱状图和点线图有效) // 0: 不显示 1: 显示在柱状图外 // 2: 显示在柱状图内上方 3: 显示在柱状图内中间 4: 显示在柱状图内下方 m_Chart3.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1); m_Chart3.GetPlot().GetSeriesCollection().GetItem(2).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1); m_Chart3.GetPlot().GetSeriesCollection().GetItem(3).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1); m_Chart3.GetPlot().GetSeriesCollection().GetItem(4).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1); m_Chart3.GetPlot().GetSeriesCollection().GetItem(5).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1); m_Chart3.GetPlot().GetSeriesCollection().GetItem(6).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1); //////////////// GetDlgItem(IDC_STATIC2)->GetWindowRect(rc2); ScreenToClient(rc2); m_Chart3.MoveWindow(rc2); m_combo1.GetWindowRect(rc2); ScreenToClient(rc2); rc2.bottom += 300; m_combo1.MoveWindow(rc2); m_bInit = 1; DateChange(); } void DinDanForm::FillGrid() { } void DinDanForm::OnBUTclose() { // TODO: Add your control notification handler code here GetParent()->SendMessage(WM_CLOSE); } void DinDanForm::OnChangeEDITyear() { // TODO: If this is a RICHEDIT control, the control will not // send this notification unless you override the MyFormView::OnInitDialog() // function and call CRichEditCtrl().SetEventMask() // with the ENM_CHANGE flag ORed into the mask. DateChange(); // TODO: Add your control notification handler code here } void DinDanForm::OnChangeEDITmonth() { // TODO: If this is a RICHEDIT control, the control will not // send this notification unless you override the MyFormView::OnInitDialog() // function and call CRichEditCtrl().SetEventMask() // with the ENM_CHANGE flag ORed into the mask. // DateChange(); // TODO: Add your control notification handler code here } void DinDanForm::OnChangeEDITday() { // TODO: If this is a RICHEDIT control, the control will not // send this notification unless you override the MyFormView::OnInitDialog() // function and call CRichEditCtrl().SetEventMask() // with the ENM_CHANGE flag ORed into the mask. // DateChange(); // TODO: Add your control notification handler code here } void DinDanForm::OnRadio3() { // TODO: Add your control notification handler code here m_filterarray.RemoveAll(); KindChange(); // UpdateData(); GetDlgItem(IDC_RADIO6)->ShowWindow(m_radio1 == 0 || m_radio1 == 7 || m_radio1 == 8); GetDlgItem(IDC_RADIO7)->ShowWindow(m_radio1 == 0 || m_radio1 == 7 || m_radio1 == 8); GetDlgItem(IDC_CHECK1)->ShowWindow(m_radio1 == 7 || m_radio1 == 1); GetDlgItem(IDC_RADIO12)->ShowWindow(m_radio1 == 4 || m_radio1 == 5 || m_radio1 == 6); GetDlgItem(IDC_RADIO13)->ShowWindow(m_radio1 == 4 || m_radio1 == 5 || m_radio1 == 6); if (m_radio1 == 4 || m_radio1 == 5 || m_radio1 == 6) GetDlgItem(IDC_COMBO1)->ShowWindow(0); else GetDlgItem(IDC_COMBO1)->ShowWindow(1); m_pchild->ModeChange(m_radio1); } void DinDanForm::OnRadio4() { // TODO: Add your control notification handler code here OnRadio3(); } void DinDanForm::DateChange() { if (m_bInit == 0) return; m_spinyear.EnableWindow(0); m_spinmonth.EnableWindow(0); m_spinday.EnableWindow(0); UpdateData(); int i; int g_nYearposTemp = g_nYearpos; BOOL bLastYear = 0; BOOL bThisYear = 0; #if JEFF_TEST_ON // 2015开始禁用跨年数据; int g_nYearposPre = -1; if (m_year >= 2014 && m_year <= atoi(g_date.Left(4)) && g_hisyeararray.GetSize()) { g_nYearpos = -1; bThisYear = 1; if (m_year == 2014) { g_nYearposPre = GetYearPos(m_year - 1); } } else if (m_year <= 2013 && g_hisyeararray.GetSize()) { g_nYearpos = GetYearPos(m_year); if (g_nYearpos != -1) g_nYearposPre = GetYearPos(m_year - 1); bLastYear = 1; } #else if (m_year == atoi(g_date.Left(4)) && g_hisyeararray.GetSize()) bThisYear = 1; else if (m_year <= atoi(g_date.Left(4)) - 1 && g_hisyeararray.GetSize()) bLastYear = 1; g_nYearpos = GetYearPos(m_year); #endif g_sendhead.bsql = 0; g_sendhead.code[0] = 172; g_sendhead.code[1] = 59; g_sendhead.tabcount = 2; CString sql, strdate, strdate2; strdate.Format("%04d-%02d-%02d", m_year, 1, 1); strdate2.Format("%04d-%02d-%02d", m_year, 12, 31); CRect rc; m_static1.GetWindowRect(rc); ScreenToClient(rc); InvalidateRect(rc); m_static1.SetWindowText(strdate.Left(4) + "订单图表"); sql.Format("time1>='" + strdate + "' and time1<='" + strdate2 + "';[date]>='" + strdate + "' and [date]<='" + strdate2 + "'"); g_pMainWnd->ProcessChatMessageRequest2(sql); if (g_bSendOK == 0) { g_nYearpos = g_nYearposTemp; m_spinyear.EnableWindow(1); m_spinmonth.EnableWindow(1); m_spinday.EnableWindow(1); return; } DataToArray(&m_dindanarray, &m_moneyarray); if (bLastYear)//如果是去年, 则加今年的补款 { g_nYearpos = -1;//今年 g_sendhead.bsql = 0; g_sendhead.code[0] = 172; g_sendhead.code[1] = 59; g_sendhead.tabcount = 2; CString sql, strdate, strdate2; strdate.Format("%04d-%02d-%02d", m_year, 1, 1); strdate2.Format("%04d-%02d-%02d", m_year, 12, 31); sql.Format("time1>='" + strdate + "' and time1<='" + strdate2 + "';[date]>='" + strdate + "' and [date]<='" + strdate2 + "'"); g_pMainWnd->ProcessChatMessageRequest2(sql); if (g_bSendOK == 0) { g_nYearpos = g_nYearposTemp; m_spinyear.EnableWindow(1); m_spinmonth.EnableWindow(1); m_spinday.EnableWindow(1); return; } CArrayThisYearm_dindanarray; CArrayThisYearm_moneyarray; DataToArray(&ThisYearm_dindanarray, &ThisYearm_moneyarray); int oldsize = m_dindanarray.GetSize(); int newsize = ThisYearm_dindanarray.GetSize(); m_dindanarray.SetSize(oldsize + ThisYearm_dindanarray.GetSize()); for (i = oldsize; i < oldsize + ThisYearm_dindanarray.GetSize(); i++) { m_dindanarray.ElementAt(i).Copy(ThisYearm_dindanarray.ElementAt(i - oldsize)); } oldsize = m_moneyarray.GetSize(); newsize = ThisYearm_moneyarray.GetSize(); m_moneyarray.SetSize(oldsize + ThisYearm_moneyarray.GetSize()); for (i = oldsize; i < oldsize + ThisYearm_moneyarray.GetSize(); i++) { m_moneyarray.ElementAt(i).Copy(ThisYearm_moneyarray.ElementAt(i - oldsize)); } } else if (bThisYear)//如果是今年, 则加去年的补款 { g_nYearpos = 0;//去年 g_sendhead.bsql = 0; g_sendhead.code[0] = 172; g_sendhead.code[1] = 59; g_sendhead.tabcount = 2; CString sql, strdate, strdate2; strdate.Format("%04d-%02d-%02d", m_year, 1, 1); strdate2.Format("%04d-%02d-%02d", m_year, 12, 31); sql.Format("time1>='" + strdate + "' and time1<='" + strdate2 + "';[date]>='" + strdate + "' and [date]<='" + strdate2 + "'"); g_pMainWnd->ProcessChatMessageRequest2(sql); if (g_bSendOK == 0) { g_nYearpos = g_nYearposTemp; m_spinyear.EnableWindow(1); m_spinmonth.EnableWindow(1); m_spinday.EnableWindow(1); return; } CArrayThisYearm_dindanarray; CArrayThisYearm_moneyarray; DataToArray(&ThisYearm_dindanarray, &ThisYearm_moneyarray); int oldsize = m_dindanarray.GetSize(); int newsize = ThisYearm_dindanarray.GetSize(); m_dindanarray.SetSize(oldsize + ThisYearm_dindanarray.GetSize()); for (i = oldsize; i < oldsize + ThisYearm_dindanarray.GetSize(); i++) { m_dindanarray.ElementAt(i).Copy(ThisYearm_dindanarray.ElementAt(i - oldsize)); } oldsize = m_moneyarray.GetSize(); newsize = ThisYearm_moneyarray.GetSize(); m_moneyarray.SetSize(oldsize + ThisYearm_moneyarray.GetSize()); for (i = oldsize; i < oldsize + ThisYearm_moneyarray.GetSize(); i++) { m_moneyarray.ElementAt(i).Copy(ThisYearm_moneyarray.ElementAt(i - oldsize)); } } g_nYearpos = g_nYearposTemp; m_filterarray.RemoveAll(); KindChange(); m_spinyear.EnableWindow(1); m_spinmonth.EnableWindow(1); m_spinday.EnableWindow(1); CStringArray m_typearray; CStringArray m_txnamearray; for (i = 0; i < m_dindanarray.GetSize(); i++) { if (::FindArray(&m_typearray, m_dindanarray.ElementAt(i).ElementAt(0)) == -1) m_typearray.Add(m_dindanarray.ElementAt(i).ElementAt(0)); if (::FindArray(&m_txnamearray, m_dindanarray.ElementAt(i).ElementAt(7)) == -1) m_txnamearray.Add(m_dindanarray.ElementAt(i).ElementAt(7)); } m_combo1.ResetContent(); m_combo1.AddString("---全部---"); m_combo1.AddString("---按套系类别---"); for (i = 0; i < m_typearray.GetSize(); i++) { m_combo1.AddString(m_typearray.ElementAt(i)); } m_taoxipos = m_combo1.GetCount(); m_combo1.AddString("---按套系名称---"); for (i = 0; i < m_txnamearray.GetSize(); i++) { m_combo1.AddString(m_txnamearray.ElementAt(i)); } } void DinDanForm::KindChange2() { // UpdateData(); int i; if (m_filterarray.GetSize() == 0) { CStringArray m_typearray; m_typearray.Add("应付"); m_typearray.Add("前期"); m_typearray.Add("后期"); m_typearray.Add("已付"); m_typearray.Add("欠款"); m_pchild->TypeChange(&m_typearray); return; } m_Chart3.SetColumnCount(m_filterarray.GetSize()); VARIANT var; m_Chart3.GetPlot().GetAxis(1, var).GetValueScale().SetAuto(1); COLORREF col[10] = { \ RGB(0, 0, 255), \ RGB(0, 255, 255), \ RGB(255, 0, 255), \ RGB(0, 255, 0), \ RGB(255, 0, 0), \ RGB(255, 255, 0), \ RGB(127, 0, 0), \ RGB(0, 127, 0), \ RGB(0, 0, 127), \ RGB(127, 127, 0) }; for (i = 0; i < m_filterarray.GetSize(); i++) { m_Chart3.SetColumn(i + 1); m_Chart3.SetColumnLabel((LPCTSTR)m_filterarray.ElementAt(i)); m_Chart3.GetPlot().GetSeriesCollection().GetItem(i + 1).GetDataPoints().GetItem(-1).GetBrush().GetFillColor().Set(GetRValue(col[i]), GetGValue(col[i]), GetBValue(col[i])); m_Chart3.GetPlot().GetSeriesCollection().GetItem(i + 1).GetPen().SetWidth(30); m_Chart3.GetPlot().GetSeriesCollection().GetItem(i + 1).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1); } float dindandata1[5][12] = { 0 }; float dindandatacot[12] = { 0 }; for (i = 0; i < 5; i++) { for (int j = 0; j < 12; j++) { dindandata1[i][j] = 0; } } CString stryear[12] = { "1月", \ "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月" }; CString type; int selpos = m_combo1.GetCurSel(); if (selpos != -1) m_combo1.GetLBText(selpos, type); if (selpos == -1 || type.IsEmpty() || type == "---全部---" || type == "---按套系类别---" || type == "---按套系名称---") { for (i = 0; i < m_dindanarray.GetSize(); i++) { dindandatacot[atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] += 1.0; dindandata1[0][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] = dindandata1[0][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] + atof(m_dindanarray.ElementAt(i).ElementAt(2)); dindandata1[1][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] = dindandata1[1][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] + atof(m_dindanarray.ElementAt(i).ElementAt(3)); dindandata1[2][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] = dindandata1[2][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] + atof(m_dindanarray.ElementAt(i).ElementAt(4)); dindandata1[3][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] = dindandata1[3][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] + atof(m_dindanarray.ElementAt(i).ElementAt(5)); dindandata1[4][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] = dindandata1[4][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] + atof(m_dindanarray.ElementAt(i).ElementAt(6)); } } else if (selpos > m_taoxipos) { for (i = 0; i < m_dindanarray.GetSize(); i++) { if (m_dindanarray.ElementAt(i).ElementAt(7) != type)continue; dindandatacot[atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] += 1.0; dindandata1[0][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] = dindandata1[0][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] + atof(m_dindanarray.ElementAt(i).ElementAt(2)); dindandata1[1][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] = dindandata1[1][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] + atof(m_dindanarray.ElementAt(i).ElementAt(3)); dindandata1[2][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] = dindandata1[2][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] + atof(m_dindanarray.ElementAt(i).ElementAt(4)); dindandata1[3][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] = dindandata1[3][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] + atof(m_dindanarray.ElementAt(i).ElementAt(5)); dindandata1[4][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] = dindandata1[4][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] + atof(m_dindanarray.ElementAt(i).ElementAt(6)); } } else { for (i = 0; i < m_dindanarray.GetSize(); i++) { if (m_dindanarray.ElementAt(i).ElementAt(0) != type)continue; dindandatacot[atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] += 1.0; dindandata1[0][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] = dindandata1[0][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] + atof(m_dindanarray.ElementAt(i).ElementAt(2)); dindandata1[1][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] = dindandata1[1][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] + atof(m_dindanarray.ElementAt(i).ElementAt(3)); dindandata1[2][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] = dindandata1[2][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] + atof(m_dindanarray.ElementAt(i).ElementAt(4)); dindandata1[3][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] = dindandata1[3][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] + atof(m_dindanarray.ElementAt(i).ElementAt(5)); dindandata1[4][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] = dindandata1[4][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] + atof(m_dindanarray.ElementAt(i).ElementAt(6)); } } int nRowCount = 12;// VARIANT var; m_Chart3.SetRowCount(nRowCount); float ftemp; for (int row = 1; row <= nRowCount; ++row) { m_Chart3.SetRow(row); m_Chart3.SetRowLabel(stryear[row - 1]); for (int j = 0; j < m_filterarray.GetSize(); j++) { if (m_check1) m_Chart3.GetDataGrid().SetData(row, j + 1, (int)(dindandata1[j][row - 1] / dindandatacot[row - 1]), 0); else m_Chart3.GetDataGrid().SetData(row, j + 1, dindandata1[j][row - 1], 0); } } m_Chart3.Refresh(); } void DinDanForm::KindChange3() { m_Chart3.SetColumnCount(1); m_Chart3.SetColumn(1); m_Chart3.SetColumnLabel((LPCTSTR)"平均折扣"); m_Chart3.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints().GetItem(-1).GetBrush().GetFillColor().Set(255, 0, 0); VARIANT var; m_Chart3.GetPlot().GetAxis(1, var).GetValueScale().SetAuto(0); m_Chart3.GetPlot().GetAxis(1, var).GetValueScale().SetMaximum(10); m_Chart3.GetPlot().GetAxis(1, var).GetValueScale().SetMinimum(0); float dindandata[12] = { 0 }; int count[12] = { 0 }; CString stryear[12] = { "1月", \ "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月" }; CString str; int i; CString type; int selpos = m_combo1.GetCurSel(); if (selpos != -1) m_combo1.GetLBText(selpos, type); if (selpos == -1 || type.IsEmpty() || type == "---全部---" || type == "---按套系类别---" || type == "---按套系名称---") { for (i = 0; i < m_dindanarray.GetSize(); i++) { if (atof(m_dindanarray.ElementAt(i).ElementAt(8)) > 0) { dindandata[atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] += atof(m_dindanarray.ElementAt(i).ElementAt(8)); count[atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1]++; } } } else if (selpos > m_taoxipos) { for (i = 0; i < m_dindanarray.GetSize(); i++) { if (m_dindanarray.ElementAt(i).ElementAt(7) != type)continue; if (atof(m_dindanarray.ElementAt(i).ElementAt(8)) > 0) { dindandata[atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] += atof(m_dindanarray.ElementAt(i).ElementAt(8)); count[atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1]++; } } } else { for (i = 0; i < m_dindanarray.GetSize(); i++) { if (m_dindanarray.ElementAt(i).ElementAt(0) != type)continue; if (atof(m_dindanarray.ElementAt(i).ElementAt(8)) > 0) { dindandata[atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] += atof(m_dindanarray.ElementAt(i).ElementAt(8)); count[atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1]++; } } } /* for(int i=0; i0) { dindandata[atoi(m_dindanarray.ElementAt (i).ElementAt (1).Mid (5, 2))-1]+=atof(m_dindanarray.ElementAt (i).ElementAt (8)); count[atoi(m_dindanarray.ElementAt (i).ElementAt (1).Mid (5, 2))-1]++; } }*/ for (i = 0; i < 12; i++) { if (count[i]) { str.Format("%0.1f", dindandata[i] / count[i]); dindandata[i] = atof(str); } } int nRowCount = 12;// VARIANT var; m_Chart3.SetRowCount(nRowCount); float ftemp; for (int row = 1; row <= nRowCount; ++row) { m_Chart3.SetRow(row); m_Chart3.SetRowLabel(stryear[row - 1]); m_Chart3.GetDataGrid().SetData(row, 1, dindandata[row - 1], 0); } m_Chart3.Refresh(); } void DinDanForm::KindChange4() { m_Chart3.SetColumnCount(2); COLORREF col[10] = { \ RGB(255, 0, 0), \ RGB(0, 255, 0), \ RGB(255, 0, 255), \ RGB(0, 255, 0), \ RGB(255, 0, 0), \ RGB(255, 255, 0), \ RGB(127, 0, 0), \ RGB(0, 127, 0), \ RGB(0, 0, 127), \ RGB(127, 127, 0) }; CStringArray m_typearray; m_typearray.Add("选片率=选片/拍摄"); m_typearray.Add("平均加选(张)"); int i = 0; for ( i = 0; i < 2; i++) { m_Chart3.SetColumn(i + 1); m_Chart3.SetColumnLabel((LPCTSTR)m_typearray.ElementAt(i)); m_Chart3.GetPlot().GetSeriesCollection().GetItem(i + 1).GetDataPoints().GetItem(-1).GetBrush().GetFillColor().Set(GetRValue(col[i]), GetGValue(col[i]), GetBValue(col[i])); m_Chart3.GetPlot().GetSeriesCollection().GetItem(i + 1).GetPen().SetWidth(30); m_Chart3.GetPlot().GetSeriesCollection().GetItem(i + 1).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1); } VARIANT var; m_Chart3.GetPlot().GetAxis(1, var).GetValueScale().SetAuto(0); m_Chart3.GetPlot().GetAxis(1, var).GetValueScale().SetMaximum(100); m_Chart3.GetPlot().GetAxis(1, var).GetValueScale().SetMinimum(0); float dindandata[12] = { 0 }; float dindandata2[12] = { 0 }; float choosezs[12] = { 0 }; int count[12] = { 0 }; CString stryear[12] = { "1月", \ "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月" }; CString str; CString type; int selpos = m_combo1.GetCurSel(); if (selpos != -1) m_combo1.GetLBText(selpos, type); if (selpos == -1 || type.IsEmpty() || type == "---全部---" || type == "---按套系类别---" || type == "---按套系名称---") { for (i = 0; i < m_dindanarray.GetSize(); i++) { if (m_dindanarray.ElementAt(i).ElementAt(12) == "OK") { if (atof(m_dindanarray.ElementAt(i).ElementAt(10)) > (atof(m_dindanarray.ElementAt(i).ElementAt(9)) + atof(m_dindanarray.ElementAt(i).ElementAt(11)))) { choosezs[atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] += atof(m_dindanarray.ElementAt(i).ElementAt(11)); str.Format("%f", 100.0*(atof(m_dindanarray.ElementAt(i).ElementAt(9)) + atof(m_dindanarray.ElementAt(i).ElementAt(11))) / atof(m_dindanarray.ElementAt(i).ElementAt(10))); dindandata[atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] += atof(str); count[atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1]++; } } } } else if (selpos > m_taoxipos) { for (i = 0; i < m_dindanarray.GetSize(); i++) { if (m_dindanarray.ElementAt(i).ElementAt(7) != type)continue; if (m_dindanarray.ElementAt(i).ElementAt(12) == "OK") { if (atof(m_dindanarray.ElementAt(i).ElementAt(10)) > (atof(m_dindanarray.ElementAt(i).ElementAt(9)) + atof(m_dindanarray.ElementAt(i).ElementAt(11)))) { choosezs[atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] += atof(m_dindanarray.ElementAt(i).ElementAt(11)); str.Format("%f", 100.0*(atof(m_dindanarray.ElementAt(i).ElementAt(9)) + atof(m_dindanarray.ElementAt(i).ElementAt(11))) / atof(m_dindanarray.ElementAt(i).ElementAt(10))); dindandata[atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] += atof(str); count[atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1]++; } } } } else { for (i = 0; i < m_dindanarray.GetSize(); i++) { if (m_dindanarray.ElementAt(i).ElementAt(0) != type)continue; if (m_dindanarray.ElementAt(i).ElementAt(12) == "OK") { if (atof(m_dindanarray.ElementAt(i).ElementAt(10)) > (atof(m_dindanarray.ElementAt(i).ElementAt(9)) + atof(m_dindanarray.ElementAt(i).ElementAt(11)))) { choosezs[atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] += atof(m_dindanarray.ElementAt(i).ElementAt(11)); str.Format("%f", 100.0*(atof(m_dindanarray.ElementAt(i).ElementAt(9)) + atof(m_dindanarray.ElementAt(i).ElementAt(11))) / atof(m_dindanarray.ElementAt(i).ElementAt(10))); dindandata[atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] += atof(str); count[atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1]++; } } } } /* for( i=0; i(atof(m_dindanarray.ElementAt (i).ElementAt (9))+atof(m_dindanarray.ElementAt (i).ElementAt (11)))) { choosezs[atoi(m_dindanarray.ElementAt (i).ElementAt (1).Mid (5, 2))-1]+=atof(m_dindanarray.ElementAt (i).ElementAt (11)); str.Format ("%f", 100.0*(atof(m_dindanarray.ElementAt (i).ElementAt (9))+atof(m_dindanarray.ElementAt (i).ElementAt (11)))/atof(m_dindanarray.ElementAt (i).ElementAt (10)) ); dindandata[atoi(m_dindanarray.ElementAt (i).ElementAt (1).Mid (5, 2))-1]+=atof(str); count[atoi(m_dindanarray.ElementAt (i).ElementAt (1).Mid (5, 2))-1]++; } } }*/ for (i = 0; i < 12; i++) { if (count[i]) { str.Format("%0.1f", dindandata[i] / count[i]); dindandata[i] = atof(str); str.Format("%0.1f", choosezs[i] / count[i]); dindandata2[i] = atof(str); } } int nRowCount = 12;// VARIANT var; m_Chart3.SetRowCount(nRowCount); float ftemp; for (int row = 1; row <= nRowCount; ++row) { m_Chart3.SetRow(row); m_Chart3.SetRowLabel(stryear[row - 1]); m_Chart3.GetDataGrid().SetData(row, 1, dindandata[row - 1], 0); m_Chart3.GetDataGrid().SetData(row, 2, dindandata2[row - 1], 0); } m_Chart3.Refresh(); } extern void SortArray(BOOL bAscending, CStringArray &datearray, CArray&valuearray); void DinDanForm::KindChange() { UpdateData(); if (m_radio1 == 1) { KindChange2(); return; } else if (m_radio1 == 2) { KindChange3(); return; } else if (m_radio1 == 3) { KindChange4(); return; } else if (m_radio1 == 4) { KindChange5(); return; } else if (m_radio1 == 5) { KindChange6(); return; } else if (m_radio1 == 6) { KindChange7(); return; } else if (m_radio1 == 7) {//MessageBox("fd"); KindChange8(); return; } else if (m_radio1 == 8) { //MessageBox("fd2"); KindChange9(); return; } int i = 0; if (m_filterarray.GetSize() == 0) { CStringArray m_typearray; CArraysortarray; for ( i = 0; i < m_dindanarray.GetSize(); i++) { if (::FindArray(&m_typearray, m_dindanarray.ElementAt(i).ElementAt(0)) == -1) { m_typearray.Add(m_dindanarray.ElementAt(i).ElementAt(0)); sortarray.Add(0); } } for (i = 0; i < m_dindanarray.GetSize(); i++) { for (int j = 0; j < m_typearray.GetSize(); j++) { if (m_dindanarray.ElementAt(i).ElementAt(0) == m_typearray.ElementAt(j)) { sortarray.SetAt(j, sortarray.ElementAt(j) + 1); } } } SortArray(1, m_typearray, sortarray); m_pchild->TypeChange(&m_typearray); return; } if (m_filterarray.GetSize() == 0)return; while (m_filterarray.GetSize()>10) m_filterarray.RemoveAt(m_filterarray.GetSize() - 1); int typecount = m_filterarray.GetSize(); if (m_radio2) m_Chart3.SetColumnCount(typecount); else m_Chart3.SetColumnCount(1); VARIANT var; m_Chart3.GetPlot().GetAxis(1, var).GetValueScale().SetAuto(1); COLORREF col[10] = { \ RGB(255, 0, 0), \ RGB(0, 255, 0), \ RGB(0, 0, 255), \ RGB(255, 255, 0), \ RGB(0, 255, 255), \ RGB(255, 0, 255), \ RGB(127, 0, 0), \ RGB(0, 127, 0), \ RGB(0, 0, 127), \ RGB(127, 127, 0) }; if (m_radio2) { for (i = 0; i < m_filterarray.GetSize(); i++) { m_Chart3.SetColumn(i + 1); m_Chart3.SetColumnLabel((LPCTSTR)m_filterarray.ElementAt(i)); m_Chart3.GetPlot().GetSeriesCollection().GetItem(i + 1).GetDataPoints().GetItem(-1).GetBrush().GetFillColor().Set(GetRValue(col[i]), GetGValue(col[i]), GetBValue(col[i])); m_Chart3.GetPlot().GetSeriesCollection().GetItem(i + 1).GetPen().SetWidth(30); m_Chart3.GetPlot().GetSeriesCollection().GetItem(i + 1).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1); } } else { m_Chart3.SetColumn(1); m_Chart3.SetColumnLabel((LPCTSTR)"全部"); } int dindandata[12] = { 0 }; int dindandata1[10][12] = { 0 }; for (i = 0; i < 10; i++) { for (int j = 0; j < 12; j++) { dindandata1[i][j] = 0; } } CString stryear[12] = { "1月", \ "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月" }; //////////// CString type; int selpos = m_combo1.GetCurSel(); if (selpos != -1) m_combo1.GetLBText(selpos, type); if (selpos == -1 || type.IsEmpty() || type == "---全部---" || type == "---按套系类别---" || type == "---按套系名称---") { for (i = 0; i < m_dindanarray.GetSize(); i++) { dindandata[atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1]++; for (int j = 0; j < m_filterarray.GetSize(); j++) { if (m_dindanarray.ElementAt(i).ElementAt(0) == m_filterarray.ElementAt(j)) { dindandata1[j][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] = dindandata1[j][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] + 1; break; } } } } else if (selpos > m_taoxipos) { for (i = 0; i < m_dindanarray.GetSize(); i++) { if (m_dindanarray.ElementAt(i).ElementAt(7) != type)continue; dindandata[atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1]++; for (int j = 0; j < m_filterarray.GetSize(); j++) { if (m_dindanarray.ElementAt(i).ElementAt(0) == m_filterarray.ElementAt(j)) { dindandata1[j][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] = dindandata1[j][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] + 1; break; } } } } else { for (i = 0; i < m_dindanarray.GetSize(); i++) { if (m_dindanarray.ElementAt(i).ElementAt(0) != type)continue; dindandata[atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1]++; for (int j = 0; j < m_filterarray.GetSize(); j++) { if (m_dindanarray.ElementAt(i).ElementAt(0) == m_filterarray.ElementAt(j)) { dindandata1[j][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] = dindandata1[j][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] + 1; break; } } } } ///////////// int nRowCount = 12;// VARIANT var; m_Chart3.SetRowCount(nRowCount); float ftemp; for (int row = 1; row <= nRowCount; ++row) { m_Chart3.SetRow(row); m_Chart3.SetRowLabel(stryear[row - 1]); if (m_radio2) { for (int j = 0; j < m_filterarray.GetSize(); j++) { m_Chart3.GetDataGrid().SetData(row, j + 1, dindandata1[j][row - 1], 0); } } else { m_Chart3.GetDataGrid().SetData(row, 1, dindandata[row - 1], 0); } } m_Chart3.Refresh(); } BEGIN_EVENTSINK_MAP(DinDanForm, MyFormView) //{{AFX_EVENTSINK_MAP(DinDanForm) ON_EVENT(DinDanForm, IDC_MSCHART3, -601 /* DblClick */, OnDblClickMschart3, VTS_NONE) //}}AFX_EVENTSINK_MAP END_EVENTSINK_MAP() extern BOOL g_bShowMsChart; extern HWND g_hShowChartWnd; void DinDanForm::OnDblClickMschart3() { // TODO: Add your control notification handler code here if (g_bShowMsChart) { ::SendMessage(g_hShowChartWnd, WM_CLOSE, 0, 0); return; } g_bShowMsChart = 1; CRect rc; m_Chart3.GetWindowRect(rc); ScreenToClient(rc); ShowMschart dlg; dlg.m_pParent = this; dlg.m_pChart = &m_Chart3; dlg.DoModal(); m_Chart3.MoveWindow(rc); g_bShowMsChart = 0; } void DinDanForm::OnRadio6() { // TODO: Add your control notification handler code here m_filterarray.RemoveAll(); KindChange(); } void DinDanForm::OnRadio7() { // TODO: Add your control notification handler code here OnRadio6(); } void DinDanForm::OnSelchangeCombo1() { // TODO: Add your control notification handler code here OnRadio6(); } void DinDanForm::OnRadio8() { // TODO: Add your control notification handler code here OnRadio3(); } void DinDanForm::OnRadio10() { // TODO: Add your control notification handler code here OnRadio3(); } void DinDanForm::OnRadio11() { // TODO: Add your control notification handler code here OnRadio3(); } void DinDanForm::OnRadio12() { // TODO: Add your control notification handler code here OnRadio3(); } void DinDanForm::OnRadio13() { // TODO: Add your control notification handler code here OnRadio3(); } void DinDanForm::KindChange5() { m_Chart3.SetColumnCount(2); COLORREF col[10] = { \ RGB(255, 0, 0), \ RGB(0, 255, 0), \ RGB(255, 0, 255), \ RGB(0, 255, 0), \ RGB(255, 0, 0), \ RGB(255, 255, 0), \ RGB(127, 0, 0), \ RGB(0, 127, 0), \ RGB(0, 0, 127), \ RGB(127, 127, 0) }; CStringArray m_typearray; m_typearray.Add("订单总数"); m_typearray.Add("正式订单"); int i = 0; for ( i = 0; i < 2; i++) { m_Chart3.SetColumn(i + 1); m_Chart3.SetColumnLabel((LPCTSTR)m_typearray.ElementAt(i)); m_Chart3.GetPlot().GetSeriesCollection().GetItem(i + 1).GetDataPoints().GetItem(-1).GetBrush().GetFillColor().Set(GetRValue(col[i]), GetGValue(col[i]), GetBValue(col[i])); m_Chart3.GetPlot().GetSeriesCollection().GetItem(i + 1).GetPen().SetWidth(30); m_Chart3.GetPlot().GetSeriesCollection().GetItem(i + 1).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1); } VARIANT var; m_Chart3.GetPlot().GetAxis(1, var).GetValueScale().SetAuto(0); m_Chart3.GetPlot().GetAxis(1, var).GetValueScale().SetMaximum(100); m_Chart3.GetPlot().GetAxis(1, var).GetValueScale().SetMinimum(0); float dindandata[12] = { 0 }; float dindandata2[12] = { 0 }; CString stryear[12] = { "1月", \ "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月" }; CString str; for (i = 0; i < m_dindanarray.GetSize(); i++) { dindandata[atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1]++; if (m_dindanarray.ElementAt(i).ElementAt(13) != "意向客户") { dindandata2[atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1]++; } } int nRowCount = 12;// VARIANT var; m_Chart3.SetRowCount(nRowCount); float ftemp; for (int row = 1; row <= nRowCount; ++row) { m_Chart3.SetRow(row); m_Chart3.SetRowLabel(stryear[row - 1]); m_Chart3.GetDataGrid().SetData(row, 1, dindandata[row - 1], 0); m_Chart3.GetDataGrid().SetData(row, 2, dindandata2[row - 1], 0); } m_Chart3.Refresh(); } void DinDanForm::KindChange6() { int i = 0; CStringArray m_typearray; for ( i = 0; i < m_dindanarray.GetSize(); i++) { if (m_dindanarray.ElementAt(i).ElementAt(14) == "")continue; if (::FindArray(&m_typearray, m_dindanarray.ElementAt(i).ElementAt(14)) == -1) m_typearray.Add(m_dindanarray.ElementAt(i).ElementAt(14)); } if (m_typearray.GetSize() == 0)return; while (m_typearray.GetSize()>10) m_typearray.RemoveAt(m_typearray.GetSize() - 1); int typecount = m_typearray.GetSize(); m_Chart3.SetColumnCount(typecount); VARIANT var; m_Chart3.GetPlot().GetAxis(1, var).GetValueScale().SetAuto(1); COLORREF col[10] = { \ RGB(255, 0, 0), \ RGB(0, 255, 0), \ RGB(0, 0, 255), \ RGB(255, 255, 0), \ RGB(0, 255, 255), \ RGB(255, 0, 255), \ RGB(127, 0, 0), \ RGB(0, 127, 0), \ RGB(0, 0, 127), \ RGB(127, 127, 0) }; for (i = 0; i < m_typearray.GetSize(); i++) { m_Chart3.SetColumn(i + 1); m_Chart3.SetColumnLabel((LPCTSTR)m_typearray.ElementAt(i)); m_Chart3.GetPlot().GetSeriesCollection().GetItem(i + 1).GetDataPoints().GetItem(-1).GetBrush().GetFillColor().Set(GetRValue(col[i]), GetGValue(col[i]), GetBValue(col[i])); m_Chart3.GetPlot().GetSeriesCollection().GetItem(i + 1).GetPen().SetWidth(30); m_Chart3.GetPlot().GetSeriesCollection().GetItem(i + 1).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1); } int dindandata1[10][12] = { 0 }; for (i = 0; i < 10; i++) { for (int j = 0; j < 12; j++) { dindandata1[i][j] = 0; } } CString stryear[12] = { "1月", \ "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月" }; for (i = 0; i < m_dindanarray.GetSize(); i++) { for (int j = 0; j < m_typearray.GetSize(); j++) { if (m_dindanarray.ElementAt(i).ElementAt(14) == m_typearray.ElementAt(j)) { dindandata1[j][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] = dindandata1[j][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] + 1; break; } } } ///////////// int nRowCount = 12;// VARIANT var; m_Chart3.SetRowCount(nRowCount); float ftemp; for (int row = 1; row <= nRowCount; ++row) { m_Chart3.SetRow(row); m_Chart3.SetRowLabel(stryear[row - 1]); for (int j = 0; j < m_typearray.GetSize(); j++) { m_Chart3.GetDataGrid().SetData(row, j + 1, dindandata1[j][row - 1], 0); } } m_Chart3.Refresh(); } void DinDanForm::KindChange7() { int i = 0; CStringArray m_typearray; for ( i = 0; i < m_dindanarray.GetSize(); i++) { if (m_dindanarray.ElementAt(i).ElementAt(15) == "")continue; if (::FindArray(&m_typearray, m_dindanarray.ElementAt(i).ElementAt(15)) == -1) m_typearray.Add(m_dindanarray.ElementAt(i).ElementAt(15)); } if (m_typearray.GetSize() == 0)return; while (m_typearray.GetSize()>10) m_typearray.RemoveAt(m_typearray.GetSize() - 1); int typecount = m_typearray.GetSize(); m_Chart3.SetColumnCount(typecount); VARIANT var; m_Chart3.GetPlot().GetAxis(1, var).GetValueScale().SetAuto(1); COLORREF col[10] = { \ RGB(255, 0, 0), \ RGB(0, 255, 0), \ RGB(0, 0, 255), \ RGB(255, 255, 0), \ RGB(0, 255, 255), \ RGB(255, 0, 255), \ RGB(127, 0, 0), \ RGB(0, 127, 0), \ RGB(0, 0, 127), \ RGB(127, 127, 0) }; for (i = 0; i < m_typearray.GetSize(); i++) { m_Chart3.SetColumn(i + 1); m_Chart3.SetColumnLabel((LPCTSTR)m_typearray.ElementAt(i)); m_Chart3.GetPlot().GetSeriesCollection().GetItem(i + 1).GetDataPoints().GetItem(-1).GetBrush().GetFillColor().Set(GetRValue(col[i]), GetGValue(col[i]), GetBValue(col[i])); m_Chart3.GetPlot().GetSeriesCollection().GetItem(i + 1).GetPen().SetWidth(30); m_Chart3.GetPlot().GetSeriesCollection().GetItem(i + 1).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1); } int dindandata1[10][12] = { 0 }; for (i = 0; i < 10; i++) { for (int j = 0; j < 12; j++) { dindandata1[i][j] = 0; } } CString stryear[12] = { "1月", \ "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月" }; for (i = 0; i < m_dindanarray.GetSize(); i++) { for (int j = 0; j < m_typearray.GetSize(); j++) { if (m_dindanarray.ElementAt(i).ElementAt(15) == m_typearray.ElementAt(j)) { dindandata1[j][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] = dindandata1[j][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] + 1; break; } } } ///////////// int nRowCount = 12;// VARIANT var; m_Chart3.SetRowCount(nRowCount); float ftemp; for (int row = 1; row <= nRowCount; ++row) { m_Chart3.SetRow(row); m_Chart3.SetRowLabel(stryear[row - 1]); for (int j = 0; j < m_typearray.GetSize(); j++) { m_Chart3.GetDataGrid().SetData(row, j + 1, dindandata1[j][row - 1], 0); } } m_Chart3.Refresh(); } void DinDanForm::OnRadio24() { // TODO: Add your control notification handler code here OnRadio3(); } void DinDanForm::OnRadio25() { // TODO: Add your control notification handler code here OnRadio3(); } void DinDanForm::KindChange8() { int i = 0; int j = 0; if (m_pchild->m_List2.GetCount() == 0) { CStringArray m_typearray; CArraysortarray; for ( i = 0; i < m_moneyarray.GetSize(); i++) { // if(m_moneyarray.ElementAt (i).ElementAt (7)!="选片二销")continue; if (::FindArray(&m_typearray, m_moneyarray.ElementAt(i).ElementAt(7)) == -1) { m_typearray.Add(m_moneyarray.ElementAt(i).ElementAt(7)); sortarray.Add(0); } } for (i = 0; i < m_moneyarray.GetSize(); i++) { // if(m_moneyarray.ElementAt (i).ElementAt (7)!="选片二销")continue; for ( j = 0; j < m_typearray.GetSize(); j++) { if (m_moneyarray.ElementAt(i).ElementAt(7) == m_typearray.ElementAt(j)) { sortarray.SetAt(j, sortarray.ElementAt(j) + atoi(m_moneyarray.ElementAt(i).ElementAt(0))); } } } SortArray(1, m_typearray, sortarray); m_typearray.InsertAt(0, "全部(二销)"); m_typearray.InsertAt(0, "全部(前期)"); m_typearray.InsertAt(0, "全部(前期+二销)"); m_pchild->TypeChange2(&m_typearray); } if (m_filterarray.GetSize() == 0) { CStringArray m_typearray; CArraysortarray; CArraysortarray2; for ( i = 0; i < m_moneyarray.GetSize(); i++) { BOOL bOK = 0; for ( j = 0; j < m_filterarray2.GetSize(); j++) { if (m_moneyarray.ElementAt(i).ElementAt(7) == m_filterarray2.ElementAt(j)) { bOK = 1; break; } if ("全部(前期+二销)" == m_filterarray2.ElementAt(j)) { bOK = 1; break; } if ("全部(前期)" == m_filterarray2.ElementAt(j) && m_moneyarray.ElementAt(i).ElementAt(7) == "预约收款") { bOK = 1; break; } if ("全部(前期)" == m_filterarray2.ElementAt(j) && m_moneyarray.ElementAt(i).ElementAt(7) == "预约补款") { bOK = 1; break; } if ("全部(二销)" == m_filterarray2.ElementAt(j) && m_moneyarray.ElementAt(i).ElementAt(7) != "预约收款" && m_moneyarray.ElementAt(i).ElementAt(7) != "预约补款") { bOK = 1; break; } } if (bOK == 0)continue; if (::FindArray(&m_typearray, m_moneyarray.ElementAt(i).ElementAt(6)) == -1) { m_typearray.Add(m_moneyarray.ElementAt(i).ElementAt(6)); sortarray.Add(0); sortarray2.Add(0); } } for (i = 0; i < m_moneyarray.GetSize(); i++) { BOOL bOK = 0; for ( j = 0; j < m_filterarray2.GetSize(); j++) { if (m_moneyarray.ElementAt(i).ElementAt(7) == m_filterarray2.ElementAt(j)) { bOK = 1; break; } if ("全部(前期+二销)" == m_filterarray2.ElementAt(j)) { bOK = 1; break; } if ("全部(前期)" == m_filterarray2.ElementAt(j) && m_moneyarray.ElementAt(i).ElementAt(7) == "预约收款") { bOK = 1; break; } if ("全部(前期)" == m_filterarray2.ElementAt(j) && m_moneyarray.ElementAt(i).ElementAt(7) == "预约补款") { bOK = 1; break; } if ("全部(二销)" == m_filterarray2.ElementAt(j) && m_moneyarray.ElementAt(i).ElementAt(7) != "预约收款" && m_moneyarray.ElementAt(i).ElementAt(7) != "预约补款") { bOK = 1; break; } } if (bOK == 0)continue; for (j = 0; j < m_typearray.GetSize(); j++) { if (m_moneyarray.ElementAt(i).ElementAt(6) == m_typearray.ElementAt(j)) { sortarray.SetAt(j, sortarray.ElementAt(j) + atoi(m_moneyarray.ElementAt(i).ElementAt(0))); sortarray2.SetAt(j, sortarray2.ElementAt(j) + 1); } } } if (m_check1)//均值 { for ( j = 0; j < sortarray.GetSize(); j++) { if (sortarray2.ElementAt(j)) { sortarray.SetAt(j, sortarray.ElementAt(j) / sortarray2.ElementAt(j)); } } } SortArray(1, m_typearray, sortarray); m_pchild->TypeChange(&m_typearray); return; } if (m_filterarray.GetSize() == 0)return; while (m_filterarray.GetSize()>10) m_filterarray.RemoveAt(m_filterarray.GetSize() - 1); int typecount = m_filterarray.GetSize(); if (m_radio2) m_Chart3.SetColumnCount(typecount); else m_Chart3.SetColumnCount(1); VARIANT var; m_Chart3.GetPlot().GetAxis(1, var).GetValueScale().SetAuto(1); COLORREF col[10] = { \ RGB(255, 0, 0), \ RGB(0, 255, 0), \ RGB(0, 0, 255), \ RGB(255, 255, 0), \ RGB(0, 255, 255), \ RGB(255, 0, 255), \ RGB(127, 0, 0), \ RGB(0, 127, 0), \ RGB(0, 0, 127), \ RGB(127, 127, 0) }; if (m_radio2) { for (i = 0; i < m_filterarray.GetSize(); i++) { m_Chart3.SetColumn(i + 1); m_Chart3.SetColumnLabel((LPCTSTR)m_filterarray.ElementAt(i)); m_Chart3.GetPlot().GetSeriesCollection().GetItem(i + 1).GetDataPoints().GetItem(-1).GetBrush().GetFillColor().Set(GetRValue(col[i]), GetGValue(col[i]), GetBValue(col[i])); m_Chart3.GetPlot().GetSeriesCollection().GetItem(i + 1).GetPen().SetWidth(30); m_Chart3.GetPlot().GetSeriesCollection().GetItem(i + 1).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1); } } else { m_Chart3.SetColumn(1); m_Chart3.SetColumnLabel((LPCTSTR)"全部"); } float dindandata[12] = { 0 }; float dindandatacot[12] = { 0 }; float dindandata1[10][12] = { 0 }; float dindandatacot2[10][12] = { 0 }; for (i = 0; i < 10; i++) { for ( j = 0; j < 12; j++) { dindandata1[i][j] = 0; dindandatacot2[i][j] = 0; } } CString stryear[12] = { "1月", \ "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月" }; //////////// CString type; int selpos = m_combo1.GetCurSel(); if (selpos != -1) m_combo1.GetLBText(selpos, type); if (selpos == -1 || type.IsEmpty() || type == "---全部---" || type == "---按套系类别---" || type == "---按套系名称---") { for (i = 0; i < m_moneyarray.GetSize(); i++) { // if(m_moneyarray.ElementAt (i).ElementAt (7)!="选片二销")continue; BOOL bOK = 0; for ( j = 0; j < m_filterarray2.GetSize(); j++) { if (m_moneyarray.ElementAt(i).ElementAt(7) == m_filterarray2.ElementAt(j)) { bOK = 1; break; } if ("全部(前期+二销)" == m_filterarray2.ElementAt(j)) { bOK = 1; break; } if ("全部(前期)" == m_filterarray2.ElementAt(j) && m_moneyarray.ElementAt(i).ElementAt(7) == "预约收款") { bOK = 1; break; } if ("全部(前期)" == m_filterarray2.ElementAt(j) && m_moneyarray.ElementAt(i).ElementAt(7) == "预约补款") { bOK = 1; break; } if ("全部(二销)" == m_filterarray2.ElementAt(j) && m_moneyarray.ElementAt(i).ElementAt(7) != "预约收款" && m_moneyarray.ElementAt(i).ElementAt(7) != "预约补款") { bOK = 1; break; } } if (bOK == 0)continue; dindandata[atoi(m_moneyarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] += atof(m_moneyarray.ElementAt(i).ElementAt(0)); dindandatacot[atoi(m_moneyarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] += 1.0; for (j = 0; j < m_filterarray.GetSize(); j++) { if (m_moneyarray.ElementAt(i).ElementAt(6) == m_filterarray.ElementAt(j)) { dindandata1[j][atoi(m_moneyarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] = dindandata1[j][atoi(m_moneyarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] + atof(m_moneyarray.ElementAt(i).ElementAt(0)); dindandatacot2[j][atoi(m_moneyarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] = dindandatacot2[j][atoi(m_moneyarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] + 1.0; break; } } } } else if (selpos > m_taoxipos) { for (i = 0; i < m_moneyarray.GetSize(); i++) { // if(m_moneyarray.ElementAt (i).ElementAt (7)!="选片二销")continue; BOOL bOK = 0; for ( j = 0; j < m_filterarray2.GetSize(); j++) { if (m_moneyarray.ElementAt(i).ElementAt(7) == m_filterarray2.ElementAt(j)) { bOK = 1; break; } if ("全部(前期+二销)" == m_filterarray2.ElementAt(j)) { bOK = 1; break; } if ("全部(前期)" == m_filterarray2.ElementAt(j) && m_moneyarray.ElementAt(i).ElementAt(7) == "预约收款") { bOK = 1; break; } if ("全部(前期)" == m_filterarray2.ElementAt(j) && m_moneyarray.ElementAt(i).ElementAt(7) == "预约补款") { bOK = 1; break; } if ("全部(二销)" == m_filterarray2.ElementAt(j) && m_moneyarray.ElementAt(i).ElementAt(7) != "预约收款" && m_moneyarray.ElementAt(i).ElementAt(7) != "预约补款") { bOK = 1; break; } } if (bOK == 0)continue; if (m_moneyarray.ElementAt(i).ElementAt(9) != type)continue; dindandata[atoi(m_moneyarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] += atof(m_moneyarray.ElementAt(i).ElementAt(0)); dindandatacot[atoi(m_moneyarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] += 1.0; for (j = 0; j < m_filterarray.GetSize(); j++) { if (m_moneyarray.ElementAt(i).ElementAt(6) == m_filterarray.ElementAt(j)) { dindandata1[j][atoi(m_moneyarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] = dindandata1[j][atoi(m_moneyarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] + atof(m_moneyarray.ElementAt(i).ElementAt(0)); dindandatacot2[j][atoi(m_moneyarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] = dindandatacot2[j][atoi(m_moneyarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] + 1.0; break; } } } } else { for (i = 0; i < m_moneyarray.GetSize(); i++) { // if(m_moneyarray.ElementAt (i).ElementAt (7)!="选片二销")continue; BOOL bOK = 0; for ( j = 0; j < m_filterarray2.GetSize(); j++) { if (m_moneyarray.ElementAt(i).ElementAt(7) == m_filterarray2.ElementAt(j)) { bOK = 1; break; } if ("全部(前期+二销)" == m_filterarray2.ElementAt(j)) { bOK = 1; break; } if ("全部(前期)" == m_filterarray2.ElementAt(j) && m_moneyarray.ElementAt(i).ElementAt(7) == "预约收款") { bOK = 1; break; } if ("全部(前期)" == m_filterarray2.ElementAt(j) && m_moneyarray.ElementAt(i).ElementAt(7) == "预约补款") { bOK = 1; break; } if ("全部(二销)" == m_filterarray2.ElementAt(j) && m_moneyarray.ElementAt(i).ElementAt(7) != "预约收款" && m_moneyarray.ElementAt(i).ElementAt(7) != "预约补款") { bOK = 1; break; } } if (bOK == 0)continue; if (m_moneyarray.ElementAt(i).ElementAt(8) != type)continue; dindandata[atoi(m_moneyarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] += atof(m_moneyarray.ElementAt(i).ElementAt(0)); dindandatacot[atoi(m_moneyarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] += 1.0; for (j = 0; j < m_filterarray.GetSize(); j++) { if (m_moneyarray.ElementAt(i).ElementAt(6) == m_filterarray.ElementAt(j)) { dindandata1[j][atoi(m_moneyarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] = dindandata1[j][atoi(m_moneyarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] + atof(m_moneyarray.ElementAt(i).ElementAt(0)); dindandatacot2[j][atoi(m_moneyarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] = dindandatacot2[j][atoi(m_moneyarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] + 1.0; break; } } } } ///////////// int nRowCount = 12;// VARIANT var; m_Chart3.SetRowCount(nRowCount); float ftemp; for (int row = 1; row <= nRowCount; ++row) { m_Chart3.SetRow(row); m_Chart3.SetRowLabel(stryear[row - 1]); if (m_check1)//均值 { if (m_radio2) { for ( j = 0; j < m_filterarray.GetSize(); j++) { if (dindandatacot2[j][row - 1] < 1.0) m_Chart3.GetDataGrid().SetData(row, j + 1, 0, 0); else m_Chart3.GetDataGrid().SetData(row, j + 1, dindandata1[j][row - 1] / dindandatacot2[j][row - 1], 0); } } else { if (dindandatacot[row - 1] < 1.0) m_Chart3.GetDataGrid().SetData(row, 1, 0, 0); else m_Chart3.GetDataGrid().SetData(row, 1, dindandata[row - 1] / dindandatacot[row - 1], 0); } } else { if (m_radio2) { for (int j = 0; j < m_filterarray.GetSize(); j++) { m_Chart3.GetDataGrid().SetData(row, j + 1, dindandata1[j][row - 1], 0); } } else { m_Chart3.GetDataGrid().SetData(row, 1, dindandata[row - 1], 0); } } } m_Chart3.Refresh(); } /* void DinDanForm::KindChange8() { int i; if(m_filterarray.GetSize ()==0) { CStringArray m_typearray; CArraysortarray; for(int i=0; iTypeChange(&m_typearray); return; } if(m_filterarray.GetSize ()==0)return; while(m_filterarray.GetSize ()>10) m_filterarray.RemoveAt (m_filterarray.GetSize ()-1); int typecount=m_filterarray.GetSize (); if(m_radio2) m_Chart3.SetColumnCount(typecount); else m_Chart3.SetColumnCount(1); VARIANT var; m_Chart3.GetPlot().GetAxis(1,var).GetValueScale().SetAuto(1); COLORREF col[10]={\ RGB(255,0,0),\ RGB(0,255,0),\ RGB(0,0,255),\ RGB(255,255,0),\ RGB(0,255,255),\ RGB(255,0,255),\ RGB(127,0,0),\ RGB(0,127,0),\ RGB(0,0,127),\ RGB(127,127,0) }; if(m_radio2) { for( i=0; im_taoxipos) { for( i=0; isortarray; for ( i = 0; i < m_dindanarray.GetSize(); i++) { if (::FindArray(&m_typearray, m_dindanarray.ElementAt(i).ElementAt(14)) == -1) { m_typearray.Add(m_dindanarray.ElementAt(i).ElementAt(14)); sortarray.Add(0); } } for (i = 0; i < m_dindanarray.GetSize(); i++) { for (int j = 0; j < m_typearray.GetSize(); j++) { if (m_dindanarray.ElementAt(i).ElementAt(14) == m_typearray.ElementAt(j)) { sortarray.SetAt(j, sortarray.ElementAt(j) + 1); } } } SortArray(1, m_typearray, sortarray); m_pchild->TypeChange(&m_typearray); return; } if (m_filterarray.GetSize() == 0)return; while (m_filterarray.GetSize()>10) m_filterarray.RemoveAt(m_filterarray.GetSize() - 1); int typecount = m_filterarray.GetSize(); if (m_radio2) m_Chart3.SetColumnCount(typecount); else m_Chart3.SetColumnCount(1); VARIANT var; m_Chart3.GetPlot().GetAxis(1, var).GetValueScale().SetAuto(1); COLORREF col[10] = { \ RGB(255, 0, 0), \ RGB(0, 255, 0), \ RGB(0, 0, 255), \ RGB(255, 255, 0), \ RGB(0, 255, 255), \ RGB(255, 0, 255), \ RGB(127, 0, 0), \ RGB(0, 127, 0), \ RGB(0, 0, 127), \ RGB(127, 127, 0) }; if (m_radio2) { for (i = 0; i < m_filterarray.GetSize(); i++) { m_Chart3.SetColumn(i + 1); m_Chart3.SetColumnLabel((LPCTSTR)m_filterarray.ElementAt(i)); m_Chart3.GetPlot().GetSeriesCollection().GetItem(i + 1).GetDataPoints().GetItem(-1).GetBrush().GetFillColor().Set(GetRValue(col[i]), GetGValue(col[i]), GetBValue(col[i])); m_Chart3.GetPlot().GetSeriesCollection().GetItem(i + 1).GetPen().SetWidth(30); m_Chart3.GetPlot().GetSeriesCollection().GetItem(i + 1).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1); } } else { m_Chart3.SetColumn(1); m_Chart3.SetColumnLabel((LPCTSTR)"全部"); } int dindandata[12] = { 0 }; int dindandata1[10][12] = { 0 }; for (i = 0; i < 10; i++) { for (int j = 0; j < 12; j++) { dindandata1[i][j] = 0; } } CString stryear[12] = { "1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月" }; //////////// CString type; int selpos = m_combo1.GetCurSel(); if (selpos != -1) m_combo1.GetLBText(selpos, type); if (selpos == -1 || type.IsEmpty() || type == "---全部---" || type == "---按套系类别---" || type == "---按套系名称---") { for (i = 0; i < m_dindanarray.GetSize(); i++) { dindandata[atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1]++; for (int j = 0; j < m_filterarray.GetSize(); j++) { if (m_dindanarray.ElementAt(i).ElementAt(14) == m_filterarray.ElementAt(j)) { dindandata1[j][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] = dindandata1[j][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] + 1; break; } } } } else if (selpos > m_taoxipos) { for (i = 0; i < m_dindanarray.GetSize(); i++) { if (m_dindanarray.ElementAt(i).ElementAt(7) != type)continue; dindandata[atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1]++; for (int j = 0; j < m_filterarray.GetSize(); j++) { if (m_dindanarray.ElementAt(i).ElementAt(14) == m_filterarray.ElementAt(j)) { dindandata1[j][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] = dindandata1[j][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] + 1; break; } } } } else { for (i = 0; i < m_dindanarray.GetSize(); i++) { if (m_dindanarray.ElementAt(i).ElementAt(0) != type)continue; dindandata[atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1]++; for (int j = 0; j < m_filterarray.GetSize(); j++) { if (m_dindanarray.ElementAt(i).ElementAt(14) == m_filterarray.ElementAt(j)) { dindandata1[j][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] = dindandata1[j][atoi(m_dindanarray.ElementAt(i).ElementAt(1).Mid(5, 2)) - 1] + 1; break; } } } } ///////////// int nRowCount = 12;// VARIANT var; m_Chart3.SetRowCount(nRowCount); float ftemp; for (int row = 1; row <= nRowCount; ++row) { m_Chart3.SetRow(row); m_Chart3.SetRowLabel(stryear[row - 1]); if (m_radio2) { for (int j = 0; j < m_filterarray.GetSize(); j++) { m_Chart3.GetDataGrid().SetData(row, j + 1, dindandata1[j][row - 1], 0); } } else { m_Chart3.GetDataGrid().SetData(row, 1, dindandata[row - 1], 0); } } m_Chart3.Refresh(); } void DinDanForm::OnCheck1() { // TODO: Add your control notification handler code here m_filterarray.RemoveAll(); KindChange(); }