YearFormBranch.cpp 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785
  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(m_year==atoi(g_date.Left (4)) && g_hisyeararray.GetSize () )
  264. bThisYear=1;
  265. else if(m_year<=atoi(g_date.Left (4))-1 && g_hisyeararray.GetSize ())
  266. bLastYear=1;
  267. g_nYearpos=GetYearPos(m_year);
  268. int g_nYearposPre=GetYearPos(m_year-1);
  269. g_sendhead.bsql=0;
  270. g_sendhead.code[0]=14;
  271. g_sendhead.code[1]=13;
  272. g_sendhead.code[2]=16;
  273. g_sendhead.tabcount=3;
  274. CString sql,strdate,strdate2;
  275. strdate.Format ("%04d-%02d-%02d", m_year, 1, 1);
  276. strdate2.Format ("%04d-%02d-%02d", m_year, 12, 31);
  277. m_static1.SetWindowText (strdate.Left (4)+"年财务表");
  278. sql.Format ("dat>='"+strdate+"' and dat<='"+strdate2+"';dat>='"+strdate+"' and dat<='"+strdate2+"';date>='"+strdate+"' and date<='"+strdate2+"'");
  279. g_pMainWnd->ProcessChatMessageRequest2(sql);
  280. if(g_bSendOK==0)
  281. {
  282. g_nYearpos=g_nYearposTemp;
  283. m_spinyear.EnableWindow(1);
  284. m_spinmonth.EnableWindow(1);
  285. m_spinday.EnableWindow(1);
  286. g_bNoConnDlg=0;
  287. g_branchname.Empty ();
  288. return;
  289. }
  290. DataToArray(List2array,List3array,List11array);
  291. if(bLastYear)//如果是去年, 则加今年的补款
  292. {
  293. g_nYearpos=-1;//今年
  294. g_sendhead.bsql=0;
  295. g_sendhead.code[0]=14;
  296. g_sendhead.code[1]=13;
  297. g_sendhead.code[2]=16;
  298. g_sendhead.tabcount=3;
  299. CString sql,strdate,strdate2;
  300. strdate.Format ("%04d-%02d-%02d", m_year, 1, 1);
  301. strdate2.Format ("%04d-%02d-%02d", m_year, 12, 31);
  302. sql.Format ("dat>='"+strdate+"' and dat<='"+strdate2+"';dat>='"+strdate+"' and dat<='"+strdate2+"';date>='"+strdate+"' and date<='"+strdate2+"'");
  303. g_pMainWnd->ProcessChatMessageRequest2(sql);
  304. if(g_bSendOK==0)
  305. {
  306. g_nYearpos=g_nYearposTemp;
  307. m_spinyear.EnableWindow(1);
  308. m_spinmonth.EnableWindow(1);
  309. m_spinday.EnableWindow(1);
  310. g_bNoConnDlg=0;
  311. g_branchname.Empty ();
  312. return;
  313. }
  314. CArray<CStringArray, CStringArray>ThisYearList11array;
  315. CArray<CStringArray, CStringArray>ThisYearList3array;
  316. CArray<CStringArray, CStringArray>ThisYearList2array;
  317. DataToArray(&ThisYearList2array, &ThisYearList3array, &ThisYearList11array);
  318. int oldsize=List11array->GetSize ();
  319. int newsize=ThisYearList11array.GetSize ();
  320. List11array->SetSize(oldsize+ThisYearList11array.GetSize ());
  321. for(i=oldsize; i<oldsize+ThisYearList11array.GetSize (); i++)
  322. {
  323. List11array->ElementAt (i).Copy(ThisYearList11array.ElementAt (i-oldsize));
  324. }
  325. oldsize=List3array->GetSize ();
  326. newsize=ThisYearList3array.GetSize ();
  327. List3array->SetSize(oldsize+ThisYearList3array.GetSize ());
  328. for(i=oldsize; i<oldsize+ThisYearList3array.GetSize (); i++)
  329. {
  330. List3array->ElementAt (i).Copy(ThisYearList3array.ElementAt (i-oldsize));
  331. }
  332. oldsize=List2array->GetSize ();
  333. newsize=ThisYearList2array.GetSize ();
  334. List2array->SetSize(oldsize+ThisYearList2array.GetSize ());
  335. for(i=oldsize; i<oldsize+ThisYearList2array.GetSize (); i++)
  336. {
  337. List2array->ElementAt (i).Copy(ThisYearList2array.ElementAt (i-oldsize));
  338. }
  339. }
  340. if(g_nYearposPre!=-1)//如果是今年, 则加去年的补款
  341. {
  342. g_nYearpos=g_nYearposPre;//去年
  343. g_sendhead.bsql=0;
  344. g_sendhead.code[0]=14;
  345. g_sendhead.code[1]=13;
  346. g_sendhead.code[2]=16;
  347. g_sendhead.tabcount=3;
  348. CString sql,strdate,strdate2;
  349. strdate.Format ("%04d-%02d-%02d", m_year, 1, 1);
  350. strdate2.Format ("%04d-%02d-%02d", m_year, 12, 31);
  351. sql.Format ("dat>='"+strdate+"' and dat<='"+strdate2+"';dat>='"+strdate+"' and dat<='"+strdate2+"';date>='"+strdate+"' and date<='"+strdate2+"'");
  352. g_pMainWnd->ProcessChatMessageRequest2(sql);
  353. if(g_bSendOK==0)
  354. {
  355. g_nYearpos=g_nYearposTemp;
  356. m_spinyear.EnableWindow(1);
  357. m_spinmonth.EnableWindow(1);
  358. m_spinday.EnableWindow(1);
  359. g_bNoConnDlg=0;
  360. g_branchname.Empty ();
  361. return;
  362. }
  363. CArray<CStringArray, CStringArray>ThisYearList11array;
  364. CArray<CStringArray, CStringArray>ThisYearList3array;
  365. CArray<CStringArray, CStringArray>ThisYearList2array;
  366. DataToArray(&ThisYearList2array, &ThisYearList3array, &ThisYearList11array);
  367. int oldsize=List11array->GetSize ();
  368. int newsize=ThisYearList11array.GetSize ();
  369. List11array->SetSize(oldsize+ThisYearList11array.GetSize ());
  370. for(i=oldsize; i<oldsize+ThisYearList11array.GetSize (); i++)
  371. {
  372. List11array->ElementAt (i).Copy(ThisYearList11array.ElementAt (i-oldsize));
  373. }
  374. oldsize=List3array->GetSize ();
  375. newsize=ThisYearList3array.GetSize ();
  376. List3array->SetSize(oldsize+ThisYearList3array.GetSize ());
  377. for(i=oldsize; i<oldsize+ThisYearList3array.GetSize (); i++)
  378. {
  379. List3array->ElementAt (i).Copy(ThisYearList3array.ElementAt (i-oldsize));
  380. }
  381. oldsize=List2array->GetSize ();
  382. newsize=ThisYearList2array.GetSize ();
  383. List2array->SetSize(oldsize+ThisYearList2array.GetSize ());
  384. for(i=oldsize; i<oldsize+ThisYearList2array.GetSize (); i++)
  385. {
  386. List2array->ElementAt (i).Copy(ThisYearList2array.ElementAt (i-oldsize));
  387. }
  388. }
  389. g_nYearpos=g_nYearposTemp;
  390. }
  391. g_bNoConnDlg=0;
  392. g_branchname.Empty ();
  393. KindChange();
  394. m_spinyear.EnableWindow(1);
  395. m_spinmonth.EnableWindow(1);
  396. m_spinday.EnableWindow(1);
  397. }
  398. void YearFormBranch::KindChange()
  399. {
  400. UpdateData();
  401. int month=m_combomonth.GetCurSel ();
  402. if(month==-1)
  403. month=13;
  404. else
  405. month++;
  406. int i=0;
  407. float incomedata1[30]={0};
  408. float incomedata2[30]={0};
  409. float incomedata3[30]={0};
  410. float incomedata4[30]={0};
  411. float incomedata5[30]={0};
  412. float incomedata6[30]={0};
  413. float payoutdata[30]={0};
  414. int dindandata[30]={0};
  415. CString stryear[30]={""};
  416. int nRowCount=g_menubranchname.GetSize ()+1;
  417. int aa = 0;
  418. for( aa=0; aa<=g_menubranchname.GetSize (); aa++)
  419. {
  420. if(aa<g_menubranchname.GetSize ())
  421. stryear[aa]=g_menubranchname.ElementAt (aa);
  422. else
  423. stryear[aa]=g_brancharray.ElementAt (g_brancharray.GetSize ()-1).ElementAt (0);
  424. CArray<CStringArray, CStringArray>*List11array=&(m_List11array[aa]);
  425. for( i=0; i<List11array->GetSize (); i++)
  426. {
  427. if(month!=13 && month!=atoi(List11array->ElementAt (i).ElementAt (7).Mid (5, 2)))
  428. continue;
  429. if(List11array->ElementAt (i).ElementAt (5)=="预约收款"||List11array->ElementAt (i).ElementAt (5)=="预约补款")
  430. incomedata1[aa]+=atof(List11array->ElementAt (i).ElementAt (4));
  431. else if(List11array->ElementAt (i).ElementAt (5)=="摄影二销")
  432. incomedata2[aa]+=atof(List11array->ElementAt (i).ElementAt (4));
  433. else if(List11array->ElementAt (i).ElementAt (5)=="化妆二销")
  434. incomedata3[aa]+=atof(List11array->ElementAt (i).ElementAt (4));
  435. else if(List11array->ElementAt (i).ElementAt (5)=="套系升级二销")
  436. incomedata4[aa]+=atof(List11array->ElementAt (i).ElementAt (4));
  437. else if(List11array->ElementAt (i).ElementAt (5)=="选片二销")
  438. incomedata5[aa]+=atof(List11array->ElementAt (i).ElementAt (4));
  439. if(List11array->ElementAt (i).ElementAt (5)=="预约收款")
  440. dindandata[aa]++;
  441. }
  442. }
  443. for( aa=0; aa<=g_menubranchname.GetSize (); aa++)
  444. {
  445. CArray<CStringArray, CStringArray>*List2array=&(m_List2array[aa]);
  446. for( i=0; i<List2array->GetSize (); i++)
  447. {
  448. if(month!=13 && month!=atoi(List2array->ElementAt (i).ElementAt (7).Mid (5, 2)))
  449. continue;
  450. if(List2array->ElementAt (i).ElementAt (8)=="")
  451. incomedata6[aa]+=atof(List2array->ElementAt (i).ElementAt (2));
  452. else if(List2array->ElementAt (i).ElementAt (8)=="摄影二销")
  453. incomedata2[aa]+=atof(List2array->ElementAt (i).ElementAt (2));
  454. else if(List2array->ElementAt (i).ElementAt (8)=="化妆二销")
  455. incomedata3[aa]+=atof(List2array->ElementAt (i).ElementAt (2));
  456. else if(List2array->ElementAt (i).ElementAt (8)=="套系升级二销")
  457. incomedata4[aa]+=atof(List2array->ElementAt (i).ElementAt (2));
  458. else if(List2array->ElementAt (i).ElementAt (8)=="选片二销")
  459. incomedata5[aa]+=atof(List2array->ElementAt (i).ElementAt (2));
  460. }
  461. }
  462. for( aa=0; aa<=g_menubranchname.GetSize (); aa++)
  463. {
  464. CArray<CStringArray, CStringArray>*List3array=&(m_List3array[aa]);
  465. for( i=0; i<List3array->GetSize (); i++)
  466. {
  467. if(month!=13 && month!=atoi(List3array->ElementAt (i).ElementAt (3).Mid (5, 2)))
  468. continue;
  469. payoutdata[aa]+=atof(List3array->ElementAt (i).ElementAt (2));
  470. }
  471. }
  472. m_Chart.SetRowCount(nRowCount);
  473. m_Chart2.SetRowCount(nRowCount);
  474. float ftemp;
  475. if(m_radio2==0)//叠加
  476. {
  477. for(int row = 1; row <= nRowCount; ++row)
  478. {
  479. m_Chart.SetRow(row);
  480. m_Chart.SetRowLabel(stryear[row-1]);
  481. if(m_check1)
  482. 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);
  483. else
  484. {
  485. ftemp=0;
  486. if(m_check2)
  487. ftemp+=incomedata1[row-1];
  488. if(m_check3)
  489. ftemp+=incomedata2[row-1];
  490. if(m_check4)
  491. ftemp+=incomedata3[row-1];
  492. if(m_check5)
  493. ftemp+=incomedata4[row-1];
  494. if(m_check6)
  495. ftemp+=incomedata5[row-1];
  496. if(m_check7)
  497. ftemp+=incomedata6[row-1];
  498. m_Chart.GetDataGrid().SetData(row, 1, ftemp, 0);
  499. }
  500. }
  501. }
  502. else
  503. {
  504. for(int row = 1; row <= nRowCount; ++row)
  505. {
  506. m_Chart.SetRow(row);
  507. m_Chart.SetRowLabel(stryear[row-1]);
  508. m_Chart.GetDataGrid().SetData(row, 1, incomedata1[row-1], 0);
  509. m_Chart.GetDataGrid().SetData(row, 2, incomedata2[row-1], 0);
  510. m_Chart.GetDataGrid().SetData(row, 3, incomedata3[row-1], 0);
  511. m_Chart.GetDataGrid().SetData(row, 4, incomedata4[row-1], 0);
  512. m_Chart.GetDataGrid().SetData(row, 5, incomedata5[row-1], 0);
  513. m_Chart.GetDataGrid().SetData(row, 6, incomedata6[row-1], 0);
  514. }
  515. }
  516. for(int row = 1; row <= nRowCount; ++row)
  517. {
  518. m_Chart2.SetRow(row);
  519. m_Chart2.SetRowLabel(stryear[row-1]);
  520. m_Chart2.GetDataGrid().SetData(row, 1, payoutdata[row-1], 0);
  521. }
  522. m_Chart.Refresh();
  523. m_Chart2.Refresh();
  524. }
  525. void YearFormBranch::OnRadio3()
  526. {
  527. // TODO: Add your control notification handler code here
  528. UpdateData();
  529. if(m_radio1==0)
  530. {
  531. m_Chart.SetChartType(3);
  532. m_Chart2.SetChartType(3);
  533. }
  534. else if(m_radio1==1)
  535. {
  536. m_Chart.SetChartType(1);
  537. m_Chart2.SetChartType(1);
  538. }
  539. else if(m_radio1==2)
  540. {
  541. m_Chart.SetChartType(14);
  542. m_Chart2.SetChartType(14);
  543. }
  544. }
  545. void YearFormBranch::OnRadio4()
  546. {
  547. // TODO: Add your control notification handler code here
  548. OnRadio3();
  549. }
  550. void YearFormBranch::OnRadio5()
  551. {
  552. // TODO: Add your control notification handler code here
  553. OnRadio3();
  554. }
  555. void YearFormBranch::OnCheck1()
  556. {
  557. // TODO: Add your control notification handler code here
  558. UpdateData();
  559. m_check2=m_check3=m_check4=m_check5=m_check6=m_check7=m_check1;
  560. UpdateData(false);
  561. KindChange();
  562. }
  563. void YearFormBranch::OnCheck2()
  564. {
  565. // TODO: Add your control notification handler code here
  566. UpdateData();
  567. if(m_check2==0)
  568. {
  569. m_check1=m_check2;
  570. UpdateData(false);
  571. }
  572. KindChange();
  573. }
  574. void YearFormBranch::OnCheck3()
  575. {
  576. // TODO: Add your control notification handler code here
  577. UpdateData();
  578. if(m_check3==0)
  579. {
  580. m_check1=m_check3;
  581. UpdateData(false);
  582. }
  583. KindChange();
  584. }
  585. void YearFormBranch::OnCheck4()
  586. {
  587. // TODO: Add your control notification handler code here
  588. UpdateData();
  589. if(m_check4==0)
  590. {
  591. m_check1=m_check4;
  592. UpdateData(false);
  593. }
  594. KindChange();
  595. }
  596. void YearFormBranch::OnCheck5()
  597. {
  598. // TODO: Add your control notification handler code here
  599. UpdateData();
  600. if(m_check5==0)
  601. {
  602. m_check1=m_check5;
  603. UpdateData(false);
  604. }
  605. KindChange();
  606. }
  607. void YearFormBranch::OnCheck6()
  608. {
  609. // TODO: Add your control notification handler code here
  610. UpdateData();
  611. if(m_check6==0)
  612. {
  613. m_check1=m_check6;
  614. UpdateData(false);
  615. }
  616. KindChange();
  617. }
  618. void YearFormBranch::OnCheck7()
  619. {
  620. // TODO: Add your control notification handler code here
  621. UpdateData();
  622. if(m_check7==0)
  623. {
  624. m_check1=m_check7;
  625. UpdateData(false);
  626. }
  627. KindChange();
  628. }
  629. void YearFormBranch::OnRadio6() //叠加
  630. {
  631. // TODO: Add your control notification handler code here
  632. UpdateData();
  633. if(m_radio2==0)
  634. {
  635. m_Chart.SetColumnCount(1);
  636. m_Chart.SetColumn(1);
  637. m_Chart.SetColumnLabel((LPCTSTR)"总收入");
  638. m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints ().GetItem(-1).GetBrush ().GetFillColor ().Set(255, 0, 0);
  639. // 线宽(对点线图有效)
  640. m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetPen().SetWidth(30);
  641. // 数据点类型显示数据值的模式(对柱柱状图和点线图有效)
  642. // 0: 不显示 1: 显示在柱状图外
  643. // 2: 显示在柱状图内上方 3: 显示在柱状图内中间 4: 显示在柱状图内下方
  644. m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1);
  645. }
  646. else
  647. {
  648. m_Chart.SetColumnCount(6);
  649. m_Chart.SetColumn(1);
  650. m_Chart.SetColumnLabel((LPCTSTR)"前期");
  651. m_Chart.SetColumn(2);
  652. m_Chart.SetColumnLabel((LPCTSTR)"摄影二销");
  653. m_Chart.SetColumn(3);
  654. m_Chart.SetColumnLabel((LPCTSTR)"化妆二销");
  655. m_Chart.SetColumn(4);
  656. m_Chart.SetColumnLabel((LPCTSTR)"套系升级");
  657. m_Chart.SetColumn(5);
  658. m_Chart.SetColumnLabel((LPCTSTR)"选片二销");
  659. m_Chart.SetColumn(6);
  660. m_Chart.SetColumnLabel((LPCTSTR)"其他收入");
  661. m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints ().GetItem(-1).GetBrush ().GetFillColor ().Set(255, 0, 0);
  662. m_Chart.GetPlot().GetSeriesCollection().GetItem(2).GetDataPoints ().GetItem(-1).GetBrush ().GetFillColor ().Set(0, 255, 0);
  663. m_Chart.GetPlot().GetSeriesCollection().GetItem(3).GetDataPoints ().GetItem(-1).GetBrush ().GetFillColor ().Set(0, 0, 255);
  664. m_Chart.GetPlot().GetSeriesCollection().GetItem(4).GetDataPoints ().GetItem(-1).GetBrush ().GetFillColor ().Set(0, 255, 255);
  665. m_Chart.GetPlot().GetSeriesCollection().GetItem(5).GetDataPoints ().GetItem(-1).GetBrush ().GetFillColor ().Set(255, 255, 0);
  666. m_Chart.GetPlot().GetSeriesCollection().GetItem(6).GetDataPoints ().GetItem(-1).GetBrush ().GetFillColor ().Set(255, 0, 255);
  667. // 线宽(对点线图有效)
  668. m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetPen().SetWidth(30);
  669. m_Chart.GetPlot().GetSeriesCollection().GetItem(2).GetPen().SetWidth(30);
  670. m_Chart.GetPlot().GetSeriesCollection().GetItem(3).GetPen().SetWidth(30);
  671. m_Chart.GetPlot().GetSeriesCollection().GetItem(4).GetPen().SetWidth(30);
  672. m_Chart.GetPlot().GetSeriesCollection().GetItem(5).GetPen().SetWidth(30);
  673. m_Chart.GetPlot().GetSeriesCollection().GetItem(6).GetPen().SetWidth(30);
  674. // 数据点类型显示数据值的模式(对柱柱状图和点线图有效)
  675. // 0: 不显示 1: 显示在柱状图外
  676. // 2: 显示在柱状图内上方 3: 显示在柱状图内中间 4: 显示在柱状图内下方
  677. m_Chart.GetPlot().GetSeriesCollection().GetItem(1).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1);
  678. m_Chart.GetPlot().GetSeriesCollection().GetItem(2).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1);
  679. m_Chart.GetPlot().GetSeriesCollection().GetItem(3).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1);
  680. m_Chart.GetPlot().GetSeriesCollection().GetItem(4).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1);
  681. m_Chart.GetPlot().GetSeriesCollection().GetItem(5).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1);
  682. m_Chart.GetPlot().GetSeriesCollection().GetItem(6).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1);
  683. }
  684. GetDlgItem(IDC_CHECK1)->EnableWindow(m_radio2==0);
  685. GetDlgItem(IDC_CHECK2)->EnableWindow(m_radio2==0);
  686. GetDlgItem(IDC_CHECK3)->EnableWindow(m_radio2==0);
  687. GetDlgItem(IDC_CHECK4)->EnableWindow(m_radio2==0);
  688. GetDlgItem(IDC_CHECK5)->EnableWindow(m_radio2==0);
  689. GetDlgItem(IDC_CHECK6)->EnableWindow(m_radio2==0);
  690. GetDlgItem(IDC_CHECK7)->EnableWindow(m_radio2==0);
  691. KindChange();
  692. }
  693. void YearFormBranch::OnRadio7() //对比
  694. {
  695. // TODO: Add your control notification handler code here
  696. OnRadio6();
  697. }
  698. //getyearpos
  699. void YearFormBranch::OnSelchangeCombo1()
  700. {
  701. // TODO: Add your control notification handler code here
  702. KindChange();
  703. }