DlgServicesStatistics.cpp 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. // DlgServicesStatistics.cpp : 实现文件
  2. //
  3. #include "stdafx.h"
  4. #include "YLGL.h"
  5. #include "DlgServicesStatistics.h"
  6. #define SQL_QUERY _T("")
  7. // CDlgServicesStatistics 对话框
  8. IMPLEMENT_DYNAMIC(CDlgServicesStatistics, CDialog)
  9. CDlgServicesStatistics::CDlgServicesStatistics(CWnd* pParent /*=NULL*/)
  10. : CDialog(CDlgServicesStatistics::IDD, pParent)
  11. {
  12. }
  13. CDlgServicesStatistics::~CDlgServicesStatistics()
  14. {
  15. }
  16. void CDlgServicesStatistics::DoDataExchange(CDataExchange* pDX)
  17. {
  18. CDialog::DoDataExchange(pDX);
  19. DDX_Control(pDX, IDC_LIST1, m_list);
  20. DDX_Control(pDX, DTPICKER_BEGIN, m_dt_begin);
  21. DDX_Control(pDX, DTPICKER_END, m_dt_end);
  22. }
  23. BEGIN_MESSAGE_MAP(CDlgServicesStatistics, CDialog)
  24. ON_WM_SYSCOMMAND()
  25. ON_WM_CTLCOLOR()
  26. ON_NOTIFY(DTN_DATETIMECHANGE, DTPICKER_BEGIN, &CDlgServicesStatistics::OnDtnDatetimechangeBegin)
  27. ON_NOTIFY(DTN_DATETIMECHANGE, DTPICKER_END, &CDlgServicesStatistics::OnDtnDatetimechangeEnd)
  28. END_MESSAGE_MAP()
  29. // CDlgServicesStatistics 消息处理程序
  30. BOOL CDlgServicesStatistics::OnInitDialog()
  31. {
  32. CDialog::OnInitDialog();
  33. CenterWindow();
  34. // 生成list列头;
  35. m_list.SetHeadings(
  36. _T("技术员,100"),
  37. _T("远程总数,100"),
  38. _T("非常满意,100"),
  39. _T("满意,100"),
  40. _T("一般,100"),
  41. _T("不满意,100"),
  42. NULL
  43. );
  44. // 设置查询的开始时间;
  45. CTimeSpan tSpan(365, 0, 0, 0);
  46. CTime tBegin = CTime::GetCurrentTime() - tSpan;
  47. m_dt_begin.SetTime(&tBegin);
  48. UpdateData();
  49. GetServiceStatisticsByServiceResult();
  50. FillList();
  51. return TRUE; // return TRUE unless you set the focus to a control
  52. // 异常: OCX 属性页应返回 FALSE
  53. }
  54. void CDlgServicesStatistics::OnOK()
  55. {
  56. // TODO: 在此添加专用代码和/或调用基类
  57. CDialog::OnOK();
  58. }
  59. void CDlgServicesStatistics::OnSysCommand(UINT nID, LPARAM lParam)
  60. {
  61. // TODO: 在此添加消息处理程序代码和/或调用默认值
  62. if (nID == SC_MOVE || nID == 0xF012)
  63. return;
  64. CDialog::OnSysCommand(nID, lParam);
  65. }
  66. HBRUSH CDlgServicesStatistics::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
  67. {
  68. HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
  69. // TODO: 在此更改 DC 的任何属性
  70. switch(nCtlColor)
  71. {
  72. case CTLCOLOR_DLG:
  73. {
  74. return CreateSolidBrush(g_clr_dlg);
  75. }
  76. break;
  77. case CTLCOLOR_BTN:
  78. break;
  79. case CTLCOLOR_STATIC:
  80. {
  81. pDC->SetBkMode(TRANSPARENT);
  82. return CreateSolidBrush(g_clr_dlg);
  83. }
  84. break;
  85. }
  86. // TODO: 如果默认的不是所需画笔,则返回另一个画笔
  87. return hbr;
  88. }
  89. void CDlgServicesStatistics::GetQueryPoint()
  90. {
  91. g_sendhead.bsql = FALSE;
  92. g_sendhead.code[0] = 200;
  93. g_sendhead.code[1] = 201;
  94. g_sendhead.tabcount = 2;
  95. g_pMainWnd->ProcessChatMessageRequest2(3);
  96. if ( g_bSendOK == 0 )
  97. {
  98. return;
  99. }
  100. DataToArray(&m_AryCheckContent, &m_AryServiceResult);
  101. }
  102. void CDlgServicesStatistics::GetServiceStatisticsByServiceResult()
  103. {
  104. // 查询时间;
  105. CTime tBegin;
  106. CTime tEnd;
  107. m_dt_begin.GetTime(tBegin);
  108. m_dt_end.GetTime(tEnd);
  109. // 生成查询语句;
  110. CString strSQL = _T("");
  111. strSQL.Format(_T(" [date] >= '%s' and [date] <= '%s'"), tBegin.Format(_T("%Y-%m-%d")), tEnd.Format(_T("%Y-%m-%d")));
  112. g_sendhead.bsql = FALSE;
  113. g_sendhead.code[0] = 239;
  114. g_sendhead.tabcount = 1;
  115. g_pMainWnd->ProcessChatMessageRequest2(strSQL);
  116. if ( g_bSendOK == FALSE)
  117. return;
  118. DataToArray(&m_AryServiceStatistic);
  119. }
  120. void CDlgServicesStatistics::FillList()
  121. {
  122. int nIndex = 0; // 相当于订单数;
  123. DWORD dwRemoteCount = 0; // 远程总数;
  124. DWORD dwVeryGodd = 0; // 非常满意总数;
  125. DWORD dwGodd = 0; // 欠款总数;
  126. DWORD dwGeneral = 0; // 一般总数;
  127. DWORD dwDispleasure = 0; // 不满意总数;
  128. m_list.m_AryList.RemoveAll();
  129. m_list.DeleteAllItems();
  130. m_list.m_AryList.SetSize(m_AryServiceStatistic.GetSize()+1, 1);
  131. for ( int i = 0; i < m_AryServiceStatistic.GetSize(); i++ )
  132. {
  133. m_list.m_AryList.ElementAt(nIndex).RemoveAll();
  134. m_list.m_AryList.ElementAt(nIndex).Copy(m_AryServiceStatistic.ElementAt(i));
  135. dwRemoteCount += _tstol(m_AryServiceStatistic.ElementAt(i).ElementAt(1));
  136. dwVeryGodd += _tstol(m_AryServiceStatistic.ElementAt(i).ElementAt(2));
  137. dwGodd += _tstol(m_AryServiceStatistic.ElementAt(i).ElementAt(3));
  138. dwGeneral += _tstol(m_AryServiceStatistic.ElementAt(i).ElementAt(4));
  139. dwDispleasure += _tstol(m_AryServiceStatistic.ElementAt(i).ElementAt(5));
  140. nIndex++;
  141. }
  142. CString str;
  143. m_list.m_AryList.ElementAt(nIndex).RemoveAll();
  144. m_list.m_AryList.ElementAt(nIndex).Add(_T("统计结果"));
  145. str.Format(_T("%ld"), dwRemoteCount);
  146. m_list.m_AryList.ElementAt(nIndex).Add(str);
  147. str.Format(_T("%ld"), dwVeryGodd);
  148. m_list.m_AryList.ElementAt(nIndex).Add(str);
  149. str.Format(_T("%ld"), dwGodd);
  150. m_list.m_AryList.ElementAt(nIndex).Add(str);
  151. str.Format(_T("%ld"), dwGeneral);
  152. m_list.m_AryList.ElementAt(nIndex).Add(str);
  153. str.Format(_T("%ld"), dwDispleasure);
  154. m_list.m_AryList.ElementAt(nIndex).Add(str);
  155. nIndex++;
  156. m_list.m_AryList.FreeExtra();
  157. m_list.SetItemCountEx(nIndex);
  158. }
  159. void CDlgServicesStatistics::OnDtnDatetimechangeBegin(NMHDR *pNMHDR, LRESULT *pResult)
  160. {
  161. LPNMDATETIMECHANGE pDTChange = reinterpret_cast<LPNMDATETIMECHANGE>(pNMHDR);
  162. GetServiceStatisticsByServiceResult();
  163. FillList();
  164. *pResult = 0;
  165. }
  166. void CDlgServicesStatistics::OnDtnDatetimechangeEnd(NMHDR *pNMHDR, LRESULT *pResult)
  167. {
  168. LPNMDATETIMECHANGE pDTChange = reinterpret_cast<LPNMDATETIMECHANGE>(pNMHDR);
  169. GetServiceStatisticsByServiceResult();
  170. FillList();
  171. *pResult = 0;
  172. }