YearFormBranch.cpp 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805
  1. // YearFormBranch.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "ylgl.h"
  5. #include "YearFormBranch.h"
  6. #include "MyMdi.H"
  7. #include "VcPlot.h"
  8. #include "VcAxis.h"
  9. #include "VcValueScale.h"
  10. #include "VcSeriesCollection.h"
  11. #include "VcSeries.h"
  12. #include "VcPen.h"
  13. #include "VcCategoryScale.h"
  14. #include "VcColor.h"
  15. #include "VcDataGrid.h"
  16. #include "VcBackdrop.h"
  17. #include "VcFill.h"
  18. #include "VcBrush.h"
  19. #include "VcDataPoints.h"
  20. #include "VcDataPoint.h"
  21. #include "VcDataPointLabel.h"
  22. #include "VcAxisTitle.h"
  23. #ifdef _DEBUG
  24. #define new DEBUG_NEW
  25. #undef THIS_FILE
  26. static char THIS_FILE[] = __FILE__;
  27. #endif
  28. /////////////////////////////////////////////////////////////////////////////
  29. // YearFormBranch
  30. BOOL g_bDrawLogin=1;
  31. IMPLEMENT_DYNCREATE(YearFormBranch, MyFormView)
  32. YearFormBranch::YearFormBranch()
  33. : MyFormView(YearFormBranch::IDD)
  34. {
  35. //{{AFX_DATA_INIT(YearFormBranch)
  36. m_year = atoi(g_date.Mid (0,4));
  37. m_month = atoi(g_date.Mid (5,2));
  38. m_day = atoi(g_date.Mid (8,2));
  39. m_check1 = 1;
  40. m_check2 = 1;
  41. m_check3 = 1;
  42. m_check4 = 1;
  43. m_radio2 = 0;
  44. m_radio1 = 1;
  45. m_check5 = 1;
  46. m_bInit=0;
  47. m_check6 = 1;
  48. m_check7 = 1;
  49. g_bDrawLogin=0;
  50. //}}AFX_DATA_INIT
  51. }
  52. YearFormBranch::~YearFormBranch()
  53. {
  54. g_bDrawLogin=1;
  55. }
  56. void YearFormBranch::DoDataExchange(CDataExchange* pDX)
  57. {
  58. MyFormView::DoDataExchange(pDX);
  59. //{{AFX_DATA_MAP(YearFormBranch)
  60. DDX_Control(pDX, IDC_COMBO1, m_combomonth);
  61. DDX_Control(pDX, IDC_SPIN3, m_spinday);
  62. DDX_Control(pDX, IDC_SPIN2, m_spinmonth);
  63. DDX_Control(pDX, IDC_SPIN1, m_spinyear);
  64. DDX_Control(pDX, IDC_STATIC1, m_static1);
  65. DDX_Text(pDX, IDC_EDITyear, m_year);
  66. DDV_MinMaxUInt(pDX, m_year, 1900, 3000);
  67. DDX_Text(pDX, IDC_EDITmonth, m_month);
  68. DDV_MinMaxUInt(pDX, m_month, 1, 12);
  69. DDX_Text(pDX, IDC_EDITday, m_day);
  70. DDV_MinMaxUInt(pDX, m_day, 1, 31);
  71. DDX_Control(pDX, IDC_MSCHART1, m_Chart);
  72. DDX_Check(pDX, IDC_CHECK1, m_check1);
  73. DDX_Check(pDX, IDC_CHECK2, m_check2);
  74. DDX_Check(pDX, IDC_CHECK3, m_check3);
  75. DDX_Check(pDX, IDC_CHECK4, m_check4);
  76. DDX_Radio(pDX, IDC_RADIO6, m_radio2);
  77. DDX_Radio(pDX, IDC_RADIO3, m_radio1);
  78. DDX_Control(pDX, IDC_MSCHART2, m_Chart2);
  79. DDX_Check(pDX, IDC_CHECK5, m_check5);
  80. DDX_Check(pDX, IDC_CHECK6, m_check6);
  81. DDX_Check(pDX, IDC_CHECK7, m_check7);
  82. //}}AFX_DATA_MAP
  83. }
  84. BEGIN_MESSAGE_MAP(YearFormBranch, MyFormView)
  85. //{{AFX_MSG_MAP(YearFormBranch)
  86. ON_BN_CLICKED(IDC_BUTclose, OnBUTclose)
  87. ON_EN_CHANGE(IDC_EDITyear, OnChangeEDITyear)
  88. ON_EN_CHANGE(IDC_EDITmonth, OnChangeEDITmonth)
  89. ON_EN_CHANGE(IDC_EDITday, OnChangeEDITday)
  90. ON_BN_CLICKED(IDC_RADIO3, OnRadio3)
  91. ON_BN_CLICKED(IDC_RADIO4, OnRadio4)
  92. ON_BN_CLICKED(IDC_RADIO5, OnRadio5)
  93. ON_BN_CLICKED(IDC_RADIO6, OnRadio6)
  94. ON_BN_CLICKED(IDC_RADIO7, OnRadio7)
  95. ON_BN_CLICKED(IDC_CHECK1, OnCheck1)
  96. ON_BN_CLICKED(IDC_CHECK2, OnCheck2)
  97. ON_BN_CLICKED(IDC_CHECK3, OnCheck3)
  98. ON_BN_CLICKED(IDC_CHECK4, OnCheck4)
  99. ON_BN_CLICKED(IDC_CHECK5, OnCheck5)
  100. ON_BN_CLICKED(IDC_CHECK6, OnCheck6)
  101. ON_BN_CLICKED(IDC_CHECK7, OnCheck7)
  102. ON_CBN_SELCHANGE(IDC_COMBO1, OnSelchangeCombo1)
  103. //}}AFX_MSG_MAP
  104. END_MESSAGE_MAP()
  105. /////////////////////////////////////////////////////////////////////////////
  106. // YearFormBranch diagnostics
  107. #ifdef _DEBUG
  108. void YearFormBranch::AssertValid() const
  109. {
  110. MyFormView::AssertValid();
  111. }
  112. void YearFormBranch::Dump(CDumpContext& dc) const
  113. {
  114. MyFormView::Dump(dc);
  115. }
  116. #endif //_DEBUG
  117. /////////////////////////////////////////////////////////////////////////////
  118. // YearFormBranch message handlers
  119. void YearFormBranch::OnInitialUpdate()
  120. {
  121. MyFormView::OnInitialUpdate();
  122. // TODO: Add your specialized code here and/or call the base class
  123. CMyMdi Mdi;
  124. Mdi.SetSubView((CWnd*)GetParent(), (CWnd*)this);
  125. // Here we create the outbar control using the splitter as its parent
  126. // and setting its id to the first pane.
  127. CRect rc2;
  128. GetWindowRect(rc2);
  129. ::MoveWindow(m_hWnd,g_rc.left,g_rc.top,g_rc.Width(),g_rc.Height(),TRUE);
  130. EnumChildWindows(m_hWnd,(WNDENUMPROC)EnumChildProc,0);
  131. m_static1.SetFont (&g_titlefont);
  132. m_spinyear.SetRange (1900, 3000);
  133. m_spinmonth.SetRange (1, 12);
  134. m_spinday.SetRange (1, 31);
  135. m_Chart.GetBackdrop().GetFill().SetStyle(1);
  136. m_Chart.GetBackdrop().GetFill().GetBrush().GetFillColor().Set(255, 255, 255);
  137. m_Chart.SetShowLegend(TRUE);
  138. m_Chart.SetColumn(1);
  139. m_Chart.SetColumnLabel((LPCTSTR)"总收入");
  140. m_Chart.SetChartType(1);
  141. // 栈模式
  142. m_Chart.SetStacking(FALSE);
  143. VARIANT var;
  144. m_Chart.GetPlot().GetAxis(1,var).GetValueScale().SetAuto(1); // 不自动标注Y轴刻度
  145. m_Chart.GetPlot().GetAxis(0,var).GetCategoryScale().SetAuto(0); // 不自动标注X轴刻度
  146. m_Chart.GetPlot().GetAxis(0,var).GetCategoryScale().SetDivisionsPerLabel(1);// 每刻度一个标注
  147. m_Chart.GetPlot().GetAxis(0,var).GetCategoryScale().SetDivisionsPerTick(1); // 每刻度一个刻度线
  148. m_Chart.SetColumnCount(1);
  149. m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints ().GetItem(-1).GetBrush ().GetFillColor ().Set(255, 0, 0);
  150. // 线宽(对点线图有效)
  151. m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetPen().SetWidth(30);
  152. // 数据点类型显示数据值的模式(对柱柱状图和点线图有效)
  153. // 0: 不显示 1: 显示在柱状图外
  154. // 2: 显示在柱状图内上方 3: 显示在柱状图内中间 4: 显示在柱状图内下方
  155. m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1);
  156. //////////////////////
  157. m_Chart2.GetBackdrop().GetFill().SetStyle(1);
  158. m_Chart2.GetBackdrop().GetFill().GetBrush().GetFillColor().Set(255, 255, 255);
  159. m_Chart2.SetShowLegend(TRUE);
  160. m_Chart2.SetColumn(1);
  161. m_Chart2.SetColumnLabel((LPCTSTR)"总支出");
  162. m_Chart2.SetChartType(1);
  163. // 栈模式
  164. m_Chart2.SetStacking(FALSE);
  165. m_Chart2.GetPlot().GetAxis(1,var).GetValueScale().SetAuto(1); // 不自动标注Y轴刻度
  166. m_Chart2.GetPlot().GetAxis(0,var).GetCategoryScale().SetAuto(0); // 不自动标注X轴刻度
  167. m_Chart2.GetPlot().GetAxis(0,var).GetCategoryScale().SetDivisionsPerLabel(1);// 每刻度一个标注
  168. m_Chart2.GetPlot().GetAxis(0,var).GetCategoryScale().SetDivisionsPerTick(1); // 每刻度一个刻度线
  169. m_Chart2.SetColumnCount(1);
  170. m_Chart2.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints ().GetItem(-1).GetBrush ().GetFillColor ().Set(255, 0, 0);
  171. // 线宽(对点线图有效)
  172. m_Chart2.GetPlot().GetSeriesCollection().GetItem(1).GetPen().SetWidth(30);
  173. // 数据点类型显示数据值的模式(对柱柱状图和点线图有效)
  174. // 0: 不显示 1: 显示在柱状图外
  175. // 2: 显示在柱状图内上方 3: 显示在柱状图内中间 4: 显示在柱状图内下方
  176. m_Chart2.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1);
  177. ////////////////
  178. GetDlgItem(IDC_STATIC2)->GetWindowRect(rc2);
  179. ScreenToClient(rc2);
  180. m_Chart.MoveWindow (rc2);
  181. GetDlgItem(IDC_STATIC3)->GetWindowRect(rc2);
  182. ScreenToClient(rc2);
  183. m_Chart2.MoveWindow (rc2);
  184. m_combomonth.AddString ("1 月");
  185. m_combomonth.AddString ("2 月");
  186. m_combomonth.AddString ("3 月");
  187. m_combomonth.AddString ("4 月");
  188. m_combomonth.AddString ("5 月");
  189. m_combomonth.AddString ("6 月");
  190. m_combomonth.AddString ("7 月");
  191. m_combomonth.AddString ("8 月");
  192. m_combomonth.AddString ("9 月");
  193. m_combomonth.AddString ("10 月");
  194. m_combomonth.AddString ("11 月");
  195. m_combomonth.AddString ("12 月");
  196. m_combomonth.AddString ("全年");
  197. m_combomonth.SetCurSel (12);
  198. m_combomonth.GetWindowRect(rc2);
  199. ScreenToClient(rc2);rc2.bottom +=200;
  200. m_combomonth.MoveWindow (rc2);
  201. m_bInit=1;
  202. DateChange();
  203. }
  204. void YearFormBranch::FillGrid()
  205. {
  206. }
  207. void YearFormBranch::OnBUTclose()
  208. {
  209. // TODO: Add your control notification handler code here
  210. GetParent()->SendMessage(WM_CLOSE);
  211. }
  212. void YearFormBranch::OnChangeEDITyear()
  213. {
  214. // TODO: If this is a RICHEDIT control, the control will not
  215. // send this notification unless you override the MyFormView::OnInitDialog()
  216. // function and call CRichEditCtrl().SetEventMask()
  217. // with the ENM_CHANGE flag ORed into the mask.
  218. DateChange();
  219. // TODO: Add your control notification handler code here
  220. }
  221. void YearFormBranch::OnChangeEDITmonth()
  222. {
  223. // TODO: If this is a RICHEDIT control, the control will not
  224. // send this notification unless you override the MyFormView::OnInitDialog()
  225. // function and call CRichEditCtrl().SetEventMask()
  226. // with the ENM_CHANGE flag ORed into the mask.
  227. // DateChange();
  228. // TODO: Add your control notification handler code here
  229. }
  230. void YearFormBranch::OnChangeEDITday()
  231. {
  232. // TODO: If this is a RICHEDIT control, the control will not
  233. // send this notification unless you override the MyFormView::OnInitDialog()
  234. // function and call CRichEditCtrl().SetEventMask()
  235. // with the ENM_CHANGE flag ORed into the mask.
  236. // DateChange();
  237. // TODO: Add your control notification handler code here
  238. }
  239. void YearFormBranch::DateChange()
  240. {
  241. if(m_bInit==0)return;
  242. m_spinyear.EnableWindow(0);
  243. m_spinmonth.EnableWindow(0);
  244. m_spinday.EnableWindow(0);
  245. UpdateData();
  246. for(int aa=0; aa<=g_menubranchname.GetSize (); aa++)
  247. {
  248. if(aa==0)
  249. g_bNoConnDlg=0;
  250. else
  251. g_bNoConnDlg=1;
  252. if(aa<g_menubranchname.GetSize ())
  253. g_branchname=g_menubranchname.ElementAt (aa);
  254. else
  255. g_branchname.Empty ();
  256. CArray<CStringArray, CStringArray>*List2array=&(m_List2array[aa]);
  257. CArray<CStringArray, CStringArray>*List3array=&(m_List3array[aa]);
  258. CArray<CStringArray, CStringArray>*List11array=&(m_List11array[aa]);
  259. int i;
  260. int g_nYearposTemp=g_nYearpos;
  261. BOOL bLastYear=0;
  262. BOOL bThisYear=0;
  263. #if JEFF_TEST_ON // 2015开始禁用跨年数据;
  264. int g_nYearposPre = -1;
  265. if (m_year >= 2014 && m_year <= atoi(g_date.Left(4)) && g_hisyeararray.GetSize())
  266. {
  267. g_nYearpos = -1;
  268. bThisYear = 1;
  269. if (m_year == 2014)
  270. {
  271. g_nYearposPre = GetYearPos(m_year - 1);
  272. }
  273. }
  274. else if (m_year <= 2013 && g_hisyeararray.GetSize())
  275. {
  276. g_nYearpos = GetYearPos(m_year);
  277. if (g_nYearpos != -1)
  278. g_nYearposPre = GetYearPos(m_year - 1);
  279. bLastYear = 1;
  280. }
  281. #else
  282. if(m_year==atoi(g_date.Left (4)) && g_hisyeararray.GetSize () )
  283. bThisYear=1;
  284. else if(m_year<=atoi(g_date.Left (4))-1 && g_hisyeararray.GetSize ())
  285. bLastYear=1;
  286. g_nYearpos=GetYearPos(m_year);
  287. int g_nYearposPre=GetYearPos(m_year-1);
  288. #endif
  289. g_sendhead.bsql=0;
  290. g_sendhead.code[0]=14;
  291. g_sendhead.code[1]=13;
  292. g_sendhead.code[2]=16;
  293. g_sendhead.tabcount=3;
  294. CString sql,strdate,strdate2;
  295. strdate.Format ("%04d-%02d-%02d", m_year, 1, 1);
  296. strdate2.Format ("%04d-%02d-%02d", m_year, 12, 31);
  297. m_static1.SetWindowText (strdate.Left (4)+"年财务表");
  298. sql.Format ("dat>='"+strdate+"' and dat<='"+strdate2+"';dat>='"+strdate+"' and dat<='"+strdate2+"';date>='"+strdate+"' and date<='"+strdate2+"'");
  299. g_pMainWnd->ProcessChatMessageRequest2(sql);
  300. if(g_bSendOK==0)
  301. {
  302. g_nYearpos=g_nYearposTemp;
  303. m_spinyear.EnableWindow(1);
  304. m_spinmonth.EnableWindow(1);
  305. m_spinday.EnableWindow(1);
  306. g_bNoConnDlg=0;
  307. g_branchname.Empty ();
  308. return;
  309. }
  310. DataToArray(List2array,List3array,List11array);
  311. if(bLastYear)//如果是去年, 则加今年的补款
  312. {
  313. g_nYearpos=-1;//今年
  314. g_sendhead.bsql=0;
  315. g_sendhead.code[0]=14;
  316. g_sendhead.code[1]=13;
  317. g_sendhead.code[2]=16;
  318. g_sendhead.tabcount=3;
  319. CString sql,strdate,strdate2;
  320. strdate.Format ("%04d-%02d-%02d", m_year, 1, 1);
  321. strdate2.Format ("%04d-%02d-%02d", m_year, 12, 31);
  322. sql.Format ("dat>='"+strdate+"' and dat<='"+strdate2+"';dat>='"+strdate+"' and dat<='"+strdate2+"';date>='"+strdate+"' and date<='"+strdate2+"'");
  323. g_pMainWnd->ProcessChatMessageRequest2(sql);
  324. if(g_bSendOK==0)
  325. {
  326. g_nYearpos=g_nYearposTemp;
  327. m_spinyear.EnableWindow(1);
  328. m_spinmonth.EnableWindow(1);
  329. m_spinday.EnableWindow(1);
  330. g_bNoConnDlg=0;
  331. g_branchname.Empty ();
  332. return;
  333. }
  334. CArray<CStringArray, CStringArray>ThisYearList11array;
  335. CArray<CStringArray, CStringArray>ThisYearList3array;
  336. CArray<CStringArray, CStringArray>ThisYearList2array;
  337. DataToArray(&ThisYearList2array, &ThisYearList3array, &ThisYearList11array);
  338. int oldsize=List11array->GetSize ();
  339. int newsize=ThisYearList11array.GetSize ();
  340. List11array->SetSize(oldsize+ThisYearList11array.GetSize ());
  341. for(i=oldsize; i<oldsize+ThisYearList11array.GetSize (); i++)
  342. {
  343. List11array->ElementAt (i).Copy(ThisYearList11array.ElementAt (i-oldsize));
  344. }
  345. oldsize=List3array->GetSize ();
  346. newsize=ThisYearList3array.GetSize ();
  347. List3array->SetSize(oldsize+ThisYearList3array.GetSize ());
  348. for(i=oldsize; i<oldsize+ThisYearList3array.GetSize (); i++)
  349. {
  350. List3array->ElementAt (i).Copy(ThisYearList3array.ElementAt (i-oldsize));
  351. }
  352. oldsize=List2array->GetSize ();
  353. newsize=ThisYearList2array.GetSize ();
  354. List2array->SetSize(oldsize+ThisYearList2array.GetSize ());
  355. for(i=oldsize; i<oldsize+ThisYearList2array.GetSize (); i++)
  356. {
  357. List2array->ElementAt (i).Copy(ThisYearList2array.ElementAt (i-oldsize));
  358. }
  359. }
  360. if(g_nYearposPre!=-1)//如果是今年, 则加去年的补款
  361. {
  362. g_nYearpos=g_nYearposPre;//去年
  363. g_sendhead.bsql=0;
  364. g_sendhead.code[0]=14;
  365. g_sendhead.code[1]=13;
  366. g_sendhead.code[2]=16;
  367. g_sendhead.tabcount=3;
  368. CString sql,strdate,strdate2;
  369. strdate.Format ("%04d-%02d-%02d", m_year, 1, 1);
  370. strdate2.Format ("%04d-%02d-%02d", m_year, 12, 31);
  371. sql.Format ("dat>='"+strdate+"' and dat<='"+strdate2+"';dat>='"+strdate+"' and dat<='"+strdate2+"';date>='"+strdate+"' and date<='"+strdate2+"'");
  372. g_pMainWnd->ProcessChatMessageRequest2(sql);
  373. if(g_bSendOK==0)
  374. {
  375. g_nYearpos=g_nYearposTemp;
  376. m_spinyear.EnableWindow(1);
  377. m_spinmonth.EnableWindow(1);
  378. m_spinday.EnableWindow(1);
  379. g_bNoConnDlg=0;
  380. g_branchname.Empty ();
  381. return;
  382. }
  383. CArray<CStringArray, CStringArray>ThisYearList11array;
  384. CArray<CStringArray, CStringArray>ThisYearList3array;
  385. CArray<CStringArray, CStringArray>ThisYearList2array;
  386. DataToArray(&ThisYearList2array, &ThisYearList3array, &ThisYearList11array);
  387. int oldsize=List11array->GetSize ();
  388. int newsize=ThisYearList11array.GetSize ();
  389. List11array->SetSize(oldsize+ThisYearList11array.GetSize ());
  390. for(i=oldsize; i<oldsize+ThisYearList11array.GetSize (); i++)
  391. {
  392. List11array->ElementAt (i).Copy(ThisYearList11array.ElementAt (i-oldsize));
  393. }
  394. oldsize=List3array->GetSize ();
  395. newsize=ThisYearList3array.GetSize ();
  396. List3array->SetSize(oldsize+ThisYearList3array.GetSize ());
  397. for(i=oldsize; i<oldsize+ThisYearList3array.GetSize (); i++)
  398. {
  399. List3array->ElementAt (i).Copy(ThisYearList3array.ElementAt (i-oldsize));
  400. }
  401. oldsize=List2array->GetSize ();
  402. newsize=ThisYearList2array.GetSize ();
  403. List2array->SetSize(oldsize+ThisYearList2array.GetSize ());
  404. for(i=oldsize; i<oldsize+ThisYearList2array.GetSize (); i++)
  405. {
  406. List2array->ElementAt (i).Copy(ThisYearList2array.ElementAt (i-oldsize));
  407. }
  408. }
  409. g_nYearpos=g_nYearposTemp;
  410. }
  411. g_bNoConnDlg=0;
  412. g_branchname.Empty ();
  413. KindChange();
  414. m_spinyear.EnableWindow(1);
  415. m_spinmonth.EnableWindow(1);
  416. m_spinday.EnableWindow(1);
  417. }
  418. void YearFormBranch::KindChange()
  419. {
  420. UpdateData();
  421. int month=m_combomonth.GetCurSel ();
  422. if(month==-1)
  423. month=13;
  424. else
  425. month++;
  426. int i=0;
  427. float incomedata1[30]={0};
  428. float incomedata2[30]={0};
  429. float incomedata3[30]={0};
  430. float incomedata4[30]={0};
  431. float incomedata5[30]={0};
  432. float incomedata6[30]={0};
  433. float payoutdata[30]={0};
  434. int dindandata[30]={0};
  435. CString stryear[30]={""};
  436. int nRowCount=g_menubranchname.GetSize ()+1;
  437. for(int aa=0; aa<=g_menubranchname.GetSize (); aa++)
  438. {
  439. if(aa<g_menubranchname.GetSize ())
  440. stryear[aa]=g_menubranchname.ElementAt (aa);
  441. else
  442. stryear[aa]=g_brancharray.ElementAt (g_brancharray.GetSize ()-1).ElementAt (0);
  443. CArray<CStringArray, CStringArray>*List11array=&(m_List11array[aa]);
  444. for( i=0; i<List11array->GetSize (); i++)
  445. {
  446. if(month!=13 && month!=atoi(List11array->ElementAt (i).ElementAt (7).Mid (5, 2)))
  447. continue;
  448. if(List11array->ElementAt (i).ElementAt (5)=="预约收款"||List11array->ElementAt (i).ElementAt (5)=="预约补款")
  449. incomedata1[aa]+=atof(List11array->ElementAt (i).ElementAt (4));
  450. else if(List11array->ElementAt (i).ElementAt (5)=="摄影二销")
  451. incomedata2[aa]+=atof(List11array->ElementAt (i).ElementAt (4));
  452. else if(List11array->ElementAt (i).ElementAt (5)=="化妆二销")
  453. incomedata3[aa]+=atof(List11array->ElementAt (i).ElementAt (4));
  454. else if(List11array->ElementAt (i).ElementAt (5)=="套系升级二销")
  455. incomedata4[aa]+=atof(List11array->ElementAt (i).ElementAt (4));
  456. else if(List11array->ElementAt (i).ElementAt (5)=="选片二销")
  457. incomedata5[aa]+=atof(List11array->ElementAt (i).ElementAt (4));
  458. if(List11array->ElementAt (i).ElementAt (5)=="预约收款")
  459. dindandata[aa]++;
  460. }
  461. }
  462. for( aa=0; aa<=g_menubranchname.GetSize (); aa++)
  463. {
  464. CArray<CStringArray, CStringArray>*List2array=&(m_List2array[aa]);
  465. for( i=0; i<List2array->GetSize (); i++)
  466. {
  467. if(month!=13 && month!=atoi(List2array->ElementAt (i).ElementAt (7).Mid (5, 2)))
  468. continue;
  469. if(List2array->ElementAt (i).ElementAt (8)=="")
  470. incomedata6[aa]+=atof(List2array->ElementAt (i).ElementAt (2));
  471. else if(List2array->ElementAt (i).ElementAt (8)=="摄影二销")
  472. incomedata2[aa]+=atof(List2array->ElementAt (i).ElementAt (2));
  473. else if(List2array->ElementAt (i).ElementAt (8)=="化妆二销")
  474. incomedata3[aa]+=atof(List2array->ElementAt (i).ElementAt (2));
  475. else if(List2array->ElementAt (i).ElementAt (8)=="套系升级二销")
  476. incomedata4[aa]+=atof(List2array->ElementAt (i).ElementAt (2));
  477. else if(List2array->ElementAt (i).ElementAt (8)=="选片二销")
  478. incomedata5[aa]+=atof(List2array->ElementAt (i).ElementAt (2));
  479. }
  480. }
  481. for( aa=0; aa<=g_menubranchname.GetSize (); aa++)
  482. {
  483. CArray<CStringArray, CStringArray>*List3array=&(m_List3array[aa]);
  484. for( i=0; i<List3array->GetSize (); i++)
  485. {
  486. if(month!=13 && month!=atoi(List3array->ElementAt (i).ElementAt (3).Mid (5, 2)))
  487. continue;
  488. payoutdata[aa]+=atof(List3array->ElementAt (i).ElementAt (2));
  489. }
  490. }
  491. m_Chart.SetRowCount(nRowCount);
  492. m_Chart2.SetRowCount(nRowCount);
  493. float ftemp;
  494. if(m_radio2==0)//叠加
  495. {
  496. for(int row = 1; row <= nRowCount; ++row)
  497. {
  498. m_Chart.SetRow(row);
  499. m_Chart.SetRowLabel(stryear[row-1]);
  500. if(m_check1)
  501. m_Chart.GetDataGrid().SetData(row, 1, incomedata1[row-1]+incomedata2[row-1]+incomedata3[row-1]+incomedata4[row-1]+incomedata5[row-1]+incomedata6[row-1], 0);
  502. else
  503. {
  504. ftemp=0;
  505. if(m_check2)
  506. ftemp+=incomedata1[row-1];
  507. if(m_check3)
  508. ftemp+=incomedata2[row-1];
  509. if(m_check4)
  510. ftemp+=incomedata3[row-1];
  511. if(m_check5)
  512. ftemp+=incomedata4[row-1];
  513. if(m_check6)
  514. ftemp+=incomedata5[row-1];
  515. if(m_check7)
  516. ftemp+=incomedata6[row-1];
  517. m_Chart.GetDataGrid().SetData(row, 1, ftemp, 0);
  518. }
  519. }
  520. }
  521. else
  522. {
  523. for(int row = 1; row <= nRowCount; ++row)
  524. {
  525. m_Chart.SetRow(row);
  526. m_Chart.SetRowLabel(stryear[row-1]);
  527. m_Chart.GetDataGrid().SetData(row, 1, incomedata1[row-1], 0);
  528. m_Chart.GetDataGrid().SetData(row, 2, incomedata2[row-1], 0);
  529. m_Chart.GetDataGrid().SetData(row, 3, incomedata3[row-1], 0);
  530. m_Chart.GetDataGrid().SetData(row, 4, incomedata4[row-1], 0);
  531. m_Chart.GetDataGrid().SetData(row, 5, incomedata5[row-1], 0);
  532. m_Chart.GetDataGrid().SetData(row, 6, incomedata6[row-1], 0);
  533. }
  534. }
  535. for(int row = 1; row <= nRowCount; ++row)
  536. {
  537. m_Chart2.SetRow(row);
  538. m_Chart2.SetRowLabel(stryear[row-1]);
  539. m_Chart2.GetDataGrid().SetData(row, 1, payoutdata[row-1], 0);
  540. }
  541. m_Chart.Refresh();
  542. m_Chart2.Refresh();
  543. }
  544. void YearFormBranch::OnRadio3()
  545. {
  546. // TODO: Add your control notification handler code here
  547. UpdateData();
  548. if(m_radio1==0)
  549. {
  550. m_Chart.SetChartType(3);
  551. m_Chart2.SetChartType(3);
  552. }
  553. else if(m_radio1==1)
  554. {
  555. m_Chart.SetChartType(1);
  556. m_Chart2.SetChartType(1);
  557. }
  558. else if(m_radio1==2)
  559. {
  560. m_Chart.SetChartType(14);
  561. m_Chart2.SetChartType(14);
  562. }
  563. }
  564. void YearFormBranch::OnRadio4()
  565. {
  566. // TODO: Add your control notification handler code here
  567. OnRadio3();
  568. }
  569. void YearFormBranch::OnRadio5()
  570. {
  571. // TODO: Add your control notification handler code here
  572. OnRadio3();
  573. }
  574. void YearFormBranch::OnCheck1()
  575. {
  576. // TODO: Add your control notification handler code here
  577. UpdateData();
  578. m_check2=m_check3=m_check4=m_check5=m_check6=m_check7=m_check1;
  579. UpdateData(false);
  580. KindChange();
  581. }
  582. void YearFormBranch::OnCheck2()
  583. {
  584. // TODO: Add your control notification handler code here
  585. UpdateData();
  586. if(m_check2==0)
  587. {
  588. m_check1=m_check2;
  589. UpdateData(false);
  590. }
  591. KindChange();
  592. }
  593. void YearFormBranch::OnCheck3()
  594. {
  595. // TODO: Add your control notification handler code here
  596. UpdateData();
  597. if(m_check3==0)
  598. {
  599. m_check1=m_check3;
  600. UpdateData(false);
  601. }
  602. KindChange();
  603. }
  604. void YearFormBranch::OnCheck4()
  605. {
  606. // TODO: Add your control notification handler code here
  607. UpdateData();
  608. if(m_check4==0)
  609. {
  610. m_check1=m_check4;
  611. UpdateData(false);
  612. }
  613. KindChange();
  614. }
  615. void YearFormBranch::OnCheck5()
  616. {
  617. // TODO: Add your control notification handler code here
  618. UpdateData();
  619. if(m_check5==0)
  620. {
  621. m_check1=m_check5;
  622. UpdateData(false);
  623. }
  624. KindChange();
  625. }
  626. void YearFormBranch::OnCheck6()
  627. {
  628. // TODO: Add your control notification handler code here
  629. UpdateData();
  630. if(m_check6==0)
  631. {
  632. m_check1=m_check6;
  633. UpdateData(false);
  634. }
  635. KindChange();
  636. }
  637. void YearFormBranch::OnCheck7()
  638. {
  639. // TODO: Add your control notification handler code here
  640. UpdateData();
  641. if(m_check7==0)
  642. {
  643. m_check1=m_check7;
  644. UpdateData(false);
  645. }
  646. KindChange();
  647. }
  648. void YearFormBranch::OnRadio6() //叠加
  649. {
  650. // TODO: Add your control notification handler code here
  651. UpdateData();
  652. if(m_radio2==0)
  653. {
  654. m_Chart.SetColumnCount(1);
  655. m_Chart.SetColumn(1);
  656. m_Chart.SetColumnLabel((LPCTSTR)"总收入");
  657. m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints ().GetItem(-1).GetBrush ().GetFillColor ().Set(255, 0, 0);
  658. // 线宽(对点线图有效)
  659. m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetPen().SetWidth(30);
  660. // 数据点类型显示数据值的模式(对柱柱状图和点线图有效)
  661. // 0: 不显示 1: 显示在柱状图外
  662. // 2: 显示在柱状图内上方 3: 显示在柱状图内中间 4: 显示在柱状图内下方
  663. m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1);
  664. }
  665. else
  666. {
  667. m_Chart.SetColumnCount(6);
  668. m_Chart.SetColumn(1);
  669. m_Chart.SetColumnLabel((LPCTSTR)"前期");
  670. m_Chart.SetColumn(2);
  671. m_Chart.SetColumnLabel((LPCTSTR)"摄影二销");
  672. m_Chart.SetColumn(3);
  673. m_Chart.SetColumnLabel((LPCTSTR)"化妆二销");
  674. m_Chart.SetColumn(4);
  675. m_Chart.SetColumnLabel((LPCTSTR)"套系升级");
  676. m_Chart.SetColumn(5);
  677. m_Chart.SetColumnLabel((LPCTSTR)"选片二销");
  678. m_Chart.SetColumn(6);
  679. m_Chart.SetColumnLabel((LPCTSTR)"其他收入");
  680. m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints ().GetItem(-1).GetBrush ().GetFillColor ().Set(255, 0, 0);
  681. m_Chart.GetPlot().GetSeriesCollection().GetItem(2).GetDataPoints ().GetItem(-1).GetBrush ().GetFillColor ().Set(0, 255, 0);
  682. m_Chart.GetPlot().GetSeriesCollection().GetItem(3).GetDataPoints ().GetItem(-1).GetBrush ().GetFillColor ().Set(0, 0, 255);
  683. m_Chart.GetPlot().GetSeriesCollection().GetItem(4).GetDataPoints ().GetItem(-1).GetBrush ().GetFillColor ().Set(0, 255, 255);
  684. m_Chart.GetPlot().GetSeriesCollection().GetItem(5).GetDataPoints ().GetItem(-1).GetBrush ().GetFillColor ().Set(255, 255, 0);
  685. m_Chart.GetPlot().GetSeriesCollection().GetItem(6).GetDataPoints ().GetItem(-1).GetBrush ().GetFillColor ().Set(255, 0, 255);
  686. // 线宽(对点线图有效)
  687. m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetPen().SetWidth(30);
  688. m_Chart.GetPlot().GetSeriesCollection().GetItem(2).GetPen().SetWidth(30);
  689. m_Chart.GetPlot().GetSeriesCollection().GetItem(3).GetPen().SetWidth(30);
  690. m_Chart.GetPlot().GetSeriesCollection().GetItem(4).GetPen().SetWidth(30);
  691. m_Chart.GetPlot().GetSeriesCollection().GetItem(5).GetPen().SetWidth(30);
  692. m_Chart.GetPlot().GetSeriesCollection().GetItem(6).GetPen().SetWidth(30);
  693. // 数据点类型显示数据值的模式(对柱柱状图和点线图有效)
  694. // 0: 不显示 1: 显示在柱状图外
  695. // 2: 显示在柱状图内上方 3: 显示在柱状图内中间 4: 显示在柱状图内下方
  696. m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1);
  697. m_Chart.GetPlot().GetSeriesCollection().GetItem(2).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1);
  698. m_Chart.GetPlot().GetSeriesCollection().GetItem(3).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1);
  699. m_Chart.GetPlot().GetSeriesCollection().GetItem(4).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1);
  700. m_Chart.GetPlot().GetSeriesCollection().GetItem(5).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1);
  701. m_Chart.GetPlot().GetSeriesCollection().GetItem(6).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1);
  702. }
  703. GetDlgItem(IDC_CHECK1)->EnableWindow(m_radio2==0);
  704. GetDlgItem(IDC_CHECK2)->EnableWindow(m_radio2==0);
  705. GetDlgItem(IDC_CHECK3)->EnableWindow(m_radio2==0);
  706. GetDlgItem(IDC_CHECK4)->EnableWindow(m_radio2==0);
  707. GetDlgItem(IDC_CHECK5)->EnableWindow(m_radio2==0);
  708. GetDlgItem(IDC_CHECK6)->EnableWindow(m_radio2==0);
  709. GetDlgItem(IDC_CHECK7)->EnableWindow(m_radio2==0);
  710. KindChange();
  711. }
  712. void YearFormBranch::OnRadio7() //对比
  713. {
  714. // TODO: Add your control notification handler code here
  715. OnRadio6();
  716. }
  717. //getyearpos
  718. void YearFormBranch::OnSelchangeCombo1()
  719. {
  720. // TODO: Add your control notification handler code here
  721. KindChange();
  722. }