YearFormBranch.cpp 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818
  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. int aa = 0;
  438. for( aa=0; aa<=g_menubranchname.GetSize (); aa++)
  439. {
  440. if(aa<g_menubranchname.GetSize ())
  441. stryear[aa]=g_menubranchname.ElementAt (aa);
  442. else
  443. stryear[aa]=g_brancharray.ElementAt (g_brancharray.GetSize ()-1).ElementAt (0);
  444. CArray<CStringArray, CStringArray>*List11array=&(m_List11array[aa]);
  445. for( i=0; i<List11array->GetSize (); i++)
  446. {
  447. if(month!=13 && month!=atoi(List11array->ElementAt (i).ElementAt (7).Mid (5, 2)))
  448. continue;
  449. if(List11array->ElementAt (i).ElementAt (5)=="预约收款"||List11array->ElementAt (i).ElementAt (5)=="预约补款")
  450. incomedata1[aa]+=atof(List11array->ElementAt (i).ElementAt (4));
  451. else if(List11array->ElementAt (i).ElementAt (5)=="摄影二销")
  452. incomedata2[aa]+=atof(List11array->ElementAt (i).ElementAt (4));
  453. #ifndef CHILD_VERSION
  454. else if(List11array->ElementAt (i).ElementAt (5)=="化妆二销")
  455. #else
  456. else if(List11array->ElementAt (i).ElementAt (5)=="引导二销") //"引导二销"
  457. #endif
  458. incomedata3[aa]+=atof(List11array->ElementAt (i).ElementAt (4));
  459. else if(List11array->ElementAt (i).ElementAt (5)=="套系升级二销")
  460. incomedata4[aa]+=atof(List11array->ElementAt (i).ElementAt (4));
  461. else if(List11array->ElementAt (i).ElementAt (5)=="选片二销")
  462. incomedata5[aa]+=atof(List11array->ElementAt (i).ElementAt (4));
  463. if(List11array->ElementAt (i).ElementAt (5)=="预约收款")
  464. dindandata[aa]++;
  465. }
  466. }
  467. for( aa=0; aa<=g_menubranchname.GetSize (); aa++)
  468. {
  469. CArray<CStringArray, CStringArray>*List2array=&(m_List2array[aa]);
  470. for( i=0; i<List2array->GetSize (); i++)
  471. {
  472. if(month!=13 && month!=atoi(List2array->ElementAt (i).ElementAt (7).Mid (5, 2)))
  473. continue;
  474. if(List2array->ElementAt (i).ElementAt (8)=="")
  475. incomedata6[aa]+=atof(List2array->ElementAt (i).ElementAt (2));
  476. else if(List2array->ElementAt (i).ElementAt (8)=="摄影二销")
  477. incomedata2[aa]+=atof(List2array->ElementAt (i).ElementAt (2));
  478. #ifndef CHILD_VERSION
  479. else if(List2array->ElementAt (i).ElementAt (8)=="化妆二销")
  480. #else
  481. else if(List2array->ElementAt (i).ElementAt (8)=="引导二销") //"引导二销"
  482. #endif
  483. incomedata3[aa]+=atof(List2array->ElementAt (i).ElementAt (2));
  484. else if(List2array->ElementAt (i).ElementAt (8)=="套系升级二销")
  485. incomedata4[aa]+=atof(List2array->ElementAt (i).ElementAt (2));
  486. else if(List2array->ElementAt (i).ElementAt (8)=="选片二销")
  487. incomedata5[aa]+=atof(List2array->ElementAt (i).ElementAt (2));
  488. }
  489. }
  490. for( aa=0; aa<=g_menubranchname.GetSize (); aa++)
  491. {
  492. CArray<CStringArray, CStringArray>*List3array=&(m_List3array[aa]);
  493. for( i=0; i<List3array->GetSize (); i++)
  494. {
  495. if(month!=13 && month!=atoi(List3array->ElementAt (i).ElementAt (3).Mid (5, 2)))
  496. continue;
  497. payoutdata[aa]+=atof(List3array->ElementAt (i).ElementAt (2));
  498. }
  499. }
  500. m_Chart.SetRowCount(nRowCount);
  501. m_Chart2.SetRowCount(nRowCount);
  502. float ftemp;
  503. if(m_radio2==0)//叠加
  504. {
  505. for(int row = 1; row <= nRowCount; ++row)
  506. {
  507. m_Chart.SetRow(row);
  508. m_Chart.SetRowLabel(stryear[row-1]);
  509. if(m_check1)
  510. 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);
  511. else
  512. {
  513. ftemp=0;
  514. if(m_check2)
  515. ftemp+=incomedata1[row-1];
  516. if(m_check3)
  517. ftemp+=incomedata2[row-1];
  518. if(m_check4)
  519. ftemp+=incomedata3[row-1];
  520. if(m_check5)
  521. ftemp+=incomedata4[row-1];
  522. if(m_check6)
  523. ftemp+=incomedata5[row-1];
  524. if(m_check7)
  525. ftemp+=incomedata6[row-1];
  526. m_Chart.GetDataGrid().SetData(row, 1, ftemp, 0);
  527. }
  528. }
  529. }
  530. else
  531. {
  532. for(int row = 1; row <= nRowCount; ++row)
  533. {
  534. m_Chart.SetRow(row);
  535. m_Chart.SetRowLabel(stryear[row-1]);
  536. m_Chart.GetDataGrid().SetData(row, 1, incomedata1[row-1], 0);
  537. m_Chart.GetDataGrid().SetData(row, 2, incomedata2[row-1], 0);
  538. m_Chart.GetDataGrid().SetData(row, 3, incomedata3[row-1], 0);
  539. m_Chart.GetDataGrid().SetData(row, 4, incomedata4[row-1], 0);
  540. m_Chart.GetDataGrid().SetData(row, 5, incomedata5[row-1], 0);
  541. m_Chart.GetDataGrid().SetData(row, 6, incomedata6[row-1], 0);
  542. }
  543. }
  544. for(int row = 1; row <= nRowCount; ++row)
  545. {
  546. m_Chart2.SetRow(row);
  547. m_Chart2.SetRowLabel(stryear[row-1]);
  548. m_Chart2.GetDataGrid().SetData(row, 1, payoutdata[row-1], 0);
  549. }
  550. m_Chart.Refresh();
  551. m_Chart2.Refresh();
  552. }
  553. void YearFormBranch::OnRadio3()
  554. {
  555. // TODO: Add your control notification handler code here
  556. UpdateData();
  557. if(m_radio1==0)
  558. {
  559. m_Chart.SetChartType(3);
  560. m_Chart2.SetChartType(3);
  561. }
  562. else if(m_radio1==1)
  563. {
  564. m_Chart.SetChartType(1);
  565. m_Chart2.SetChartType(1);
  566. }
  567. else if(m_radio1==2)
  568. {
  569. m_Chart.SetChartType(14);
  570. m_Chart2.SetChartType(14);
  571. }
  572. }
  573. void YearFormBranch::OnRadio4()
  574. {
  575. // TODO: Add your control notification handler code here
  576. OnRadio3();
  577. }
  578. void YearFormBranch::OnRadio5()
  579. {
  580. // TODO: Add your control notification handler code here
  581. OnRadio3();
  582. }
  583. void YearFormBranch::OnCheck1()
  584. {
  585. // TODO: Add your control notification handler code here
  586. UpdateData();
  587. m_check2=m_check3=m_check4=m_check5=m_check6=m_check7=m_check1;
  588. UpdateData(false);
  589. KindChange();
  590. }
  591. void YearFormBranch::OnCheck2()
  592. {
  593. // TODO: Add your control notification handler code here
  594. UpdateData();
  595. if(m_check2==0)
  596. {
  597. m_check1=m_check2;
  598. UpdateData(false);
  599. }
  600. KindChange();
  601. }
  602. void YearFormBranch::OnCheck3()
  603. {
  604. // TODO: Add your control notification handler code here
  605. UpdateData();
  606. if(m_check3==0)
  607. {
  608. m_check1=m_check3;
  609. UpdateData(false);
  610. }
  611. KindChange();
  612. }
  613. void YearFormBranch::OnCheck4()
  614. {
  615. // TODO: Add your control notification handler code here
  616. UpdateData();
  617. if(m_check4==0)
  618. {
  619. m_check1=m_check4;
  620. UpdateData(false);
  621. }
  622. KindChange();
  623. }
  624. void YearFormBranch::OnCheck5()
  625. {
  626. // TODO: Add your control notification handler code here
  627. UpdateData();
  628. if(m_check5==0)
  629. {
  630. m_check1=m_check5;
  631. UpdateData(false);
  632. }
  633. KindChange();
  634. }
  635. void YearFormBranch::OnCheck6()
  636. {
  637. // TODO: Add your control notification handler code here
  638. UpdateData();
  639. if(m_check6==0)
  640. {
  641. m_check1=m_check6;
  642. UpdateData(false);
  643. }
  644. KindChange();
  645. }
  646. void YearFormBranch::OnCheck7()
  647. {
  648. // TODO: Add your control notification handler code here
  649. UpdateData();
  650. if(m_check7==0)
  651. {
  652. m_check1=m_check7;
  653. UpdateData(false);
  654. }
  655. KindChange();
  656. }
  657. void YearFormBranch::OnRadio6() //叠加
  658. {
  659. // TODO: Add your control notification handler code here
  660. UpdateData();
  661. if(m_radio2==0)
  662. {
  663. m_Chart.SetColumnCount(1);
  664. m_Chart.SetColumn(1);
  665. m_Chart.SetColumnLabel((LPCTSTR)"总收入");
  666. m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints ().GetItem(-1).GetBrush ().GetFillColor ().Set(255, 0, 0);
  667. // 线宽(对点线图有效)
  668. m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetPen().SetWidth(30);
  669. // 数据点类型显示数据值的模式(对柱柱状图和点线图有效)
  670. // 0: 不显示 1: 显示在柱状图外
  671. // 2: 显示在柱状图内上方 3: 显示在柱状图内中间 4: 显示在柱状图内下方
  672. m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1);
  673. }
  674. else
  675. {
  676. m_Chart.SetColumnCount(6);
  677. m_Chart.SetColumn(1);
  678. m_Chart.SetColumnLabel((LPCTSTR)"前期");
  679. m_Chart.SetColumn(2);
  680. m_Chart.SetColumnLabel((LPCTSTR)"摄影二销");
  681. m_Chart.SetColumn(3);
  682. #ifndef CHILD_VERSION
  683. m_Chart.SetColumnLabel((LPCTSTR)"化妆二销");
  684. #else
  685. m_Chart.SetColumnLabel((LPCTSTR)"引导二销"); //"引导二销"
  686. #endif
  687. m_Chart.SetColumn(4);
  688. m_Chart.SetColumnLabel((LPCTSTR)"套系升级");
  689. m_Chart.SetColumn(5);
  690. m_Chart.SetColumnLabel((LPCTSTR)"选片二销");
  691. m_Chart.SetColumn(6);
  692. m_Chart.SetColumnLabel((LPCTSTR)"其他收入");
  693. m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints ().GetItem(-1).GetBrush ().GetFillColor ().Set(255, 0, 0);
  694. m_Chart.GetPlot().GetSeriesCollection().GetItem(2).GetDataPoints ().GetItem(-1).GetBrush ().GetFillColor ().Set(0, 255, 0);
  695. m_Chart.GetPlot().GetSeriesCollection().GetItem(3).GetDataPoints ().GetItem(-1).GetBrush ().GetFillColor ().Set(0, 0, 255);
  696. m_Chart.GetPlot().GetSeriesCollection().GetItem(4).GetDataPoints ().GetItem(-1).GetBrush ().GetFillColor ().Set(0, 255, 255);
  697. m_Chart.GetPlot().GetSeriesCollection().GetItem(5).GetDataPoints ().GetItem(-1).GetBrush ().GetFillColor ().Set(255, 255, 0);
  698. m_Chart.GetPlot().GetSeriesCollection().GetItem(6).GetDataPoints ().GetItem(-1).GetBrush ().GetFillColor ().Set(255, 0, 255);
  699. // 线宽(对点线图有效)
  700. m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetPen().SetWidth(30);
  701. m_Chart.GetPlot().GetSeriesCollection().GetItem(2).GetPen().SetWidth(30);
  702. m_Chart.GetPlot().GetSeriesCollection().GetItem(3).GetPen().SetWidth(30);
  703. m_Chart.GetPlot().GetSeriesCollection().GetItem(4).GetPen().SetWidth(30);
  704. m_Chart.GetPlot().GetSeriesCollection().GetItem(5).GetPen().SetWidth(30);
  705. m_Chart.GetPlot().GetSeriesCollection().GetItem(6).GetPen().SetWidth(30);
  706. // 数据点类型显示数据值的模式(对柱柱状图和点线图有效)
  707. // 0: 不显示 1: 显示在柱状图外
  708. // 2: 显示在柱状图内上方 3: 显示在柱状图内中间 4: 显示在柱状图内下方
  709. m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1);
  710. m_Chart.GetPlot().GetSeriesCollection().GetItem(2).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1);
  711. m_Chart.GetPlot().GetSeriesCollection().GetItem(3).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1);
  712. m_Chart.GetPlot().GetSeriesCollection().GetItem(4).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1);
  713. m_Chart.GetPlot().GetSeriesCollection().GetItem(5).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1);
  714. m_Chart.GetPlot().GetSeriesCollection().GetItem(6).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1);
  715. }
  716. GetDlgItem(IDC_CHECK1)->EnableWindow(m_radio2==0);
  717. GetDlgItem(IDC_CHECK2)->EnableWindow(m_radio2==0);
  718. GetDlgItem(IDC_CHECK3)->EnableWindow(m_radio2==0);
  719. GetDlgItem(IDC_CHECK4)->EnableWindow(m_radio2==0);
  720. GetDlgItem(IDC_CHECK5)->EnableWindow(m_radio2==0);
  721. GetDlgItem(IDC_CHECK6)->EnableWindow(m_radio2==0);
  722. GetDlgItem(IDC_CHECK7)->EnableWindow(m_radio2==0);
  723. KindChange();
  724. }
  725. void YearFormBranch::OnRadio7() //对比
  726. {
  727. // TODO: Add your control notification handler code here
  728. OnRadio6();
  729. }
  730. //getyearpos
  731. void YearFormBranch::OnSelchangeCombo1()
  732. {
  733. // TODO: Add your control notification handler code here
  734. KindChange();
  735. }