// YearForm2.cpp : implementation file // #include "stdafx.h" #include "LYFZIPManage.h" #include "YearForm2.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" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // YearForm2 IMPLEMENT_DYNCREATE(YearForm2, CFormView) YearForm2::YearForm2() : CFormView(YearForm2::IDD) { //{{AFX_DATA_INIT(YearForm2) m_year = CTime::GetCurrentTime ().GetYear (); m_month = CTime::GetCurrentTime ().GetMonth (); m_day = CTime::GetCurrentTime ().GetDay (); m_check1 = 1; m_check2 = 1; m_check3 = 1; m_check4 = 1; m_radio2 = 0; m_radio1 = 0; m_bInit=0; m_timestmap=0; m_check5 = 1; //}}AFX_DATA_INIT //m_date = CTime::GetCurrentTime ().Format ("%Y-%m-%d"); } YearForm2::~YearForm2() { } void YearForm2::DoDataExchange(CDataExchange* pDX) { CFormView::DoDataExchange(pDX); //{{AFX_DATA_MAP(YearForm2) 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_Control(pDX, IDC_MSCHART1, m_Chart); DDX_Check(pDX, IDC_CHECK1, m_check1); DDX_Check(pDX, IDC_CHECK2, m_check2); DDX_Check(pDX, IDC_CHECK3, m_check3); DDX_Check(pDX, IDC_CHECK4, m_check4); DDX_Radio(pDX, IDC_RADIO6, m_radio2); DDX_Radio(pDX, IDC_RADIO3, m_radio1); DDX_Control(pDX, IDC_MSCHART2, m_Chart2); DDX_Control(pDX, IDC_MSCHART3, m_Chart3); DDX_Check(pDX, IDC_CHECK5, m_check5); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(YearForm2, CFormView) //{{AFX_MSG_MAP(YearForm2) 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_RADIO5, OnRadio5) ON_BN_CLICKED(IDC_RADIO6, OnRadio6) ON_BN_CLICKED(IDC_RADIO7, OnRadio7) ON_BN_CLICKED(IDC_CHECK1, OnCheck1) ON_BN_CLICKED(IDC_CHECK2, OnCheck2) ON_BN_CLICKED(IDC_CHECK3, OnCheck3) ON_BN_CLICKED(IDC_CHECK4, OnCheck4) ON_BN_CLICKED(IDC_CHECK5, OnCheck5) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // YearForm2 diagnostics #ifdef _DEBUG void YearForm2::AssertValid() const { CFormView::AssertValid(); } void YearForm2::Dump(CDumpContext& dc) const { CFormView::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // YearForm2 message handlers void YearForm2::OnInitialUpdate() { CFormView::OnInitialUpdate(); // TODO: Add your specialized code here and/or call the base class 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); m_Chart.GetBackdrop().GetFill().SetStyle(1); m_Chart.GetBackdrop().GetFill().GetBrush().GetFillColor().Set(255, 255, 255); m_Chart.SetShowLegend(TRUE); m_Chart.SetColumn(1); m_Chart.SetColumnLabel((LPCTSTR)"总收入"); m_Chart.SetChartType(3); // 栈模式 m_Chart.SetStacking(FALSE); VARIANT var; m_Chart.GetPlot().GetAxis(1,var).GetValueScale().SetAuto(1); // 不自动标注Y轴刻度 m_Chart.GetPlot().GetAxis(0,var).GetCategoryScale().SetAuto(0); // 不自动标注X轴刻度 m_Chart.GetPlot().GetAxis(0,var).GetCategoryScale().SetDivisionsPerLabel(1);// 每刻度一个标注 m_Chart.GetPlot().GetAxis(0,var).GetCategoryScale().SetDivisionsPerTick(1); // 每刻度一个刻度线 m_Chart.SetColumnCount(1); m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints ().GetItem(-1).GetBrush ().GetFillColor ().Set(255, 0, 0); // 线宽(对点线图有效) m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetPen().SetWidth(30); // 数据点类型显示数据值的模式(对柱柱状图和点线图有效) // 0: 不显示 1: 显示在柱状图外 // 2: 显示在柱状图内上方 3: 显示在柱状图内中间 4: 显示在柱状图内下方 m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1); ////////////////////// m_Chart2.GetBackdrop().GetFill().SetStyle(1); m_Chart2.GetBackdrop().GetFill().GetBrush().GetFillColor().Set(255, 255, 255); m_Chart2.SetShowLegend(TRUE); m_Chart2.SetColumn(1); m_Chart2.SetColumnLabel((LPCTSTR)"总支出"); m_Chart2.SetChartType(3); // 栈模式 m_Chart2.SetStacking(FALSE); m_Chart2.GetPlot().GetAxis(1,var).GetValueScale().SetAuto(1); // 不自动标注Y轴刻度 m_Chart2.GetPlot().GetAxis(0,var).GetCategoryScale().SetAuto(0); // 不自动标注X轴刻度 m_Chart2.GetPlot().GetAxis(0,var).GetCategoryScale().SetDivisionsPerLabel(1);// 每刻度一个标注 m_Chart2.GetPlot().GetAxis(0,var).GetCategoryScale().SetDivisionsPerTick(1); // 每刻度一个刻度线 m_Chart2.SetColumnCount(1); m_Chart2.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints ().GetItem(-1).GetBrush ().GetFillColor ().Set(255, 0, 0); // 线宽(对点线图有效) m_Chart2.GetPlot().GetSeriesCollection().GetItem(1).GetPen().SetWidth(30); // 数据点类型显示数据值的模式(对柱柱状图和点线图有效) // 0: 不显示 1: 显示在柱状图外 // 2: 显示在柱状图内上方 3: 显示在柱状图内中间 4: 显示在柱状图内下方 m_Chart2.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1); /////////////////////////// m_Chart3.GetBackdrop().GetFill().SetStyle(1); m_Chart3.GetBackdrop().GetFill().GetBrush().GetFillColor().Set(255, 255, 255); m_Chart3.SetShowLegend(TRUE); m_Chart3.SetColumn(1); m_Chart3.SetColumnLabel((LPCTSTR)"定单数"); m_Chart3.SetChartType(3); // 栈模式 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(1); m_Chart3.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints ().GetItem(-1).GetBrush ().GetFillColor ().Set(255, 0, 0); // 线宽(对点线图有效) m_Chart3.GetPlot().GetSeriesCollection().GetItem(1).GetPen().SetWidth(30); // 数据点类型显示数据值的模式(对柱柱状图和点线图有效) // 0: 不显示 1: 显示在柱状图外 // 2: 显示在柱状图内上方 3: 显示在柱状图内中间 4: 显示在柱状图内下方 m_Chart3.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1); GetDlgItem(IDC_STATIC2)->GetWindowRect(rc2); ScreenToClient(rc2); m_Chart.MoveWindow (rc2); GetDlgItem(IDC_STATIC3)->GetWindowRect(rc2); ScreenToClient(rc2); m_Chart2.MoveWindow (rc2); GetDlgItem(IDC_STATIC12)->GetWindowRect(rc2); ScreenToClient(rc2); m_Chart3.MoveWindow (rc2); m_bInit=1; DateChange(); } void YearForm2::FillGrid() { } void YearForm2::OnBUTclose() { // TODO: Add your control notification handler code here GetParent()->SendMessage(WM_CLOSE); } void YearForm2::OnChangeEDITyear() { // TODO: If this is a RICHEDIT control, the control will not // send this notification unless you override the CFormView::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 YearForm2::OnChangeEDITmonth() { // TODO: If this is a RICHEDIT control, the control will not // send this notification unless you override the CFormView::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 YearForm2::OnChangeEDITday() { // TODO: If this is a RICHEDIT control, the control will not // send this notification unless you override the CFormView::OnInitDialog() // function and call CRichEditCtrl().SetEventMask() // with the ENM_CHANGE flag ORed into the mask. // DateChange(); // TODO: Add your control notification handler code here } int GetYearPos(int year) { for(int i=0; i='"+strdate+"' and dat<='"+strdate2+"';dat>='"+strdate+"' and dat<='"+strdate2+"';date>='"+strdate+"' and date<='"+strdate2+"'"); g_pMainWnd->ProcessChatMessageRequest2(sql); if(g_bSendOK==0) { g_nYearpos=g_nYearposTemp; return; } DataToArray(&List2array,&List3array,&List11array); if(bLastYear)//如果是去年, 则加今年的补款 { g_nYearpos=-1;//今年 g_sendhead.bsql=0; g_sendhead.code[0]=16; g_sendhead.tabcount=1; CString sql,strdate,strdate2; strdate.Format ("%04d-%02d-%02d", m_year, 1, 1); strdate2.Format ("%04d-%02d-%02d", m_year, 12, 31); sql.Format ("date>='"+strdate+"' and date<='"+strdate2+"'"); g_pMainWnd->ProcessChatMessageRequest2(sql); if(g_bSendOK==0) { g_nYearpos=g_nYearposTemp; return; } CArrayThisYearList11array; DataToArray(&ThisYearList11array); int oldsize=List11array.GetSize (); int newsize=ThisYearList11array.GetSize (); List11array.SetSize(oldsize+ThisYearList11array.GetSize ()); for(i=oldsize; i='"+strdate+"' and date<='"+strdate2+"'"); g_pMainWnd->ProcessChatMessageRequest2(sql); if(g_bSendOK==0) { g_nYearpos=g_nYearposTemp; return; } CArrayLastYearList11array; DataToArray(&LastYearList11array); int oldsize=List11array.GetSize (); int newsize=LastYearList11array.GetSize (); List11array.SetSize(oldsize+LastYearList11array.GetSize ()); for(i=oldsize; iEnableWindow(m_radio2==0); GetDlgItem(IDC_CHECK2)->EnableWindow(m_radio2==0); GetDlgItem(IDC_CHECK3)->EnableWindow(m_radio2==0); GetDlgItem(IDC_CHECK4)->EnableWindow(m_radio2==0); GetDlgItem(IDC_CHECK5)->EnableWindow(m_radio2==0); KindChange(); } void YearForm2::OnRadio7() //对比 { // TODO: Add your control notification handler code here OnRadio6(); }