DlgQueryWarningRec.cpp 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  1. // AnalogDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "IDE.h"
  5. #include "DlgQueryWarningRec.h"
  6. #include ".\dlgquerywarningrec.h"
  7. #include "Syslib.h"
  8. #ifdef _DEBUG
  9. #define new DEBUG_NEW
  10. #undef THIS_FILE
  11. static char THIS_FILE[] = __FILE__;
  12. #endif
  13. /////////////////////////////////////////////////////////////////////////////
  14. // CDlgQueryWarningRec dialog
  15. CDlgQueryWarningRec::CDlgQueryWarningRec(CWnd* pParent /*=NULL*/)
  16. : CDialog(CDlgQueryWarningRec::IDD, pParent)
  17. {
  18. //{{AFX_DATA_INIT(CDlgQueryWarningRec)
  19. // NOTE: the ClassWizard will add member initialization here
  20. //}}AFX_DATA_INIT
  21. m_ctrlGridRec.RegisterWindowClass(g_hLangDLL);
  22. }
  23. void CDlgQueryWarningRec::DoDataExchange(CDataExchange* pDX)
  24. {
  25. CDialog::DoDataExchange(pDX);
  26. //{{AFX_DATA_MAP(CDlgQueryWarningRec)
  27. DDX_Control(pDX, IDC_GRID_REC, m_ctrlGridRec);
  28. //}}AFX_DATA_MAP
  29. DDX_Control(pDX, IDC_DT_START_DATE, m_ctrlStartDate);
  30. DDX_Control(pDX, IDC_DT_END_DATE, m_ctrlEndDate);
  31. DDX_Control(pDX, IDC_COMBO_DEVICE, m_Comb_Device);
  32. DDX_Control(pDX, IDC_COMBO_AREA, m_Comb_Area);
  33. }
  34. BEGIN_MESSAGE_MAP(CDlgQueryWarningRec, CDialog)
  35. //{{AFX_MSG_MAP(CDlgQueryWarningRec)
  36. //}}AFX_MSG_MAP
  37. ON_BN_CLICKED(IDC_BTN_CLOSE, OnBnClickedBtnClose)
  38. ON_BN_CLICKED(IDC_BTN_QUERY, OnBnClickedBtnQuery)
  39. ON_BN_CLICKED(IDC_BTN_DEL, OnBnClickedBtnDel)
  40. ON_BN_CLICKED(IDC_BTN_EXPORT, OnBnClickedBtnExport)
  41. END_MESSAGE_MAP()
  42. /////////////////////////////////////////////////////////////////////////////
  43. // CDlgQueryWarningRec message handlers
  44. void CDlgQueryWarningRec::OnOK()
  45. {
  46. // TODO: Add extra validation here
  47. CDialog::OnOK();
  48. }
  49. void CDlgQueryWarningRec::OnCancel()
  50. {
  51. // TODO: Add extra cleanup here
  52. CDialog::OnCancel();
  53. }
  54. BOOL CDlgQueryWarningRec::OnInitDialog()
  55. {
  56. CDialog::OnInitDialog();
  57. m_btnQuery.SubclassDlgItem(IDC_BTN_QUERY, this);
  58. m_btnQuery.SetBitmaps(IDB_FRESH, RGB(255, 0, 255));
  59. m_btnQuery.SetFlat(FALSE);
  60. m_btnQuery.SetAlign(CButtonST::ST_ALIGN_HORIZ);
  61. m_btnExit.SubclassDlgItem(IDC_BTN_CLOSE, this);
  62. m_btnExit.SetBitmaps(IDB_EXIT , RGB(192, 192, 192));
  63. m_btnExit.SetFlat(FALSE);
  64. m_btnExit.SetAlign(CButtonST::ST_ALIGN_HORIZ);
  65. m_btnDel.SubclassDlgItem(IDC_BTN_DEL, this);
  66. m_btnDel.SetBitmaps(IDB_DEL , RGB(255,0 , 255));
  67. m_btnDel.SetFlat(FALSE);
  68. m_btnDel.SetAlign(CButtonST::ST_ALIGN_HORIZ);
  69. m_btnExport.SubclassDlgItem(IDC_BTN_EXPORT, this);
  70. m_btnExport.SetBitmaps(IDB_INTO, RGB(255, 0, 255));
  71. m_btnExport.SetFlat(FALSE);
  72. m_btnExport.SetAlign(CButtonST::ST_ALIGN_HORIZ);
  73. CTime tmToday; //今天的日期
  74. CTime tmPreTwoDay; //前两天的日期
  75. CTimeSpan tmspanTwoDay(1,0,0,0); //两天的时间距离
  76. tmToday=CTime::GetCurrentTime();//获得当前日期
  77. tmPreTwoDay=tmToday-tmspanTwoDay;
  78. UpdateData(TRUE);//时间更新为当前时间
  79. m_ctrlStartDate.SetFormat("yyyy-M-d HH:mm:ss");
  80. m_ctrlStartDate.SetTime( &tmPreTwoDay );
  81. m_ctrlEndDate.SetFormat("yyyy-M-d HH:mm:ss");
  82. m_ctrlEndDate.SetTime( &tmToday );
  83. SetFields();
  84. int nIndex = 1;
  85. m_Comb_Device.InsertString( 0,"全部" );
  86. int nComportSize = pDevicesManager->m_channels.GetSize();
  87. for (int i = 0; i < nComportSize; i++)
  88. {
  89. CChannel* pComport = pDevicesManager->m_channels[i];
  90. int nDeviceSize = pComport->m_Devices.GetSize();
  91. for (int j = 0; j < nDeviceSize; j++)
  92. {
  93. CDevice* pDev = pComport->m_Devices[j];
  94. m_Comb_Device.InsertString( nIndex++,pDev->m_strName );
  95. }
  96. }
  97. m_Comb_Device.SetCurSel( 0 );
  98. nIndex = 1;
  99. m_Comb_Area.InsertString( 0,"全部" );
  100. for (int i = 0; i < nComportSize; i++)
  101. {
  102. CChannel* pComport = pDevicesManager->m_channels[i];
  103. int nDeviceSize = pComport->m_Devices.GetSize();
  104. for (int j = 0; j < nDeviceSize; j++)
  105. {
  106. CDevice* pDev = pComport->m_Devices[j];
  107. bool bExist=false;
  108. for( int m=0;m<m_Comb_Area.GetCount();m++ )
  109. {
  110. CString sLBText;
  111. m_Comb_Area.GetLBText( m,sLBText );
  112. if( sLBText==pDev->m_strReserved1 )
  113. {
  114. bExist = true;
  115. break;
  116. }
  117. }
  118. if( !bExist && pDev->m_strReserved1!="" )
  119. m_Comb_Area.InsertString( nIndex++,pDev->m_strReserved1 );
  120. }
  121. }
  122. m_Comb_Area.SetCurSel( 0 );
  123. return TRUE; // return TRUE unless you set the focus to a control
  124. // EXCEPTION: OCX Property Pages should return FALSE
  125. }
  126. void CDlgQueryWarningRec::SetFields()
  127. {
  128. int i;
  129. m_ctrlGridRec.m_field.SetSize(4);
  130. i=0;
  131. m_ctrlGridRec.m_field[i].Field=_T("id");
  132. m_ctrlGridRec.m_field[i].Caption=_T("ID");
  133. m_ctrlGridRec.m_field[i].With = 50;
  134. m_ctrlGridRec.m_field[i].Find=true;
  135. i=1;
  136. m_ctrlGridRec.m_field[i].Field=_T("type_desc");
  137. m_ctrlGridRec.m_field[i].Caption=g_strDes;
  138. m_ctrlGridRec.m_field[i].With=150;
  139. m_ctrlGridRec.m_field[i].Find=true;
  140. i=2;
  141. m_ctrlGridRec.m_field[i].Field=_T("happen_time");
  142. m_ctrlGridRec.m_field[i].Caption=g_strHappenTime2;
  143. m_ctrlGridRec.m_field[i].With=120;
  144. m_ctrlGridRec.m_field[i].Find=true;
  145. i=3;
  146. m_ctrlGridRec.m_field[i].Field=_T("warncontent");
  147. m_ctrlGridRec.m_field[i].Caption=g_strWarnContent;
  148. m_ctrlGridRec.m_field[i].With=455;
  149. m_ctrlGridRec.m_field[i].Find=true;
  150. Requery();
  151. }
  152. void CDlgQueryWarningRec::Requery()
  153. {
  154. CString strWhere;
  155. //strWhere.Format(" uid <> \'%s\'", "admin");
  156. CString strStartTime, strEndTime, strStartDate, strEndDate;
  157. CString strTelNum, strContent;
  158. CTime tmToday;
  159. CTime tmPreTwoDay;
  160. m_ctrlStartDate.GetTime( tmPreTwoDay );
  161. m_ctrlEndDate.GetTime( tmToday );
  162. strStartDate.Format( "%d-%d-%d %d:%d:%d", tmPreTwoDay.GetYear(), tmPreTwoDay.GetMonth(), tmPreTwoDay.GetDay(),
  163. tmPreTwoDay.GetHour(), tmPreTwoDay.GetMinute(), tmPreTwoDay.GetSecond() );
  164. strEndDate.Format( "%d-%d-%d %d:%d:%d", tmToday.GetYear(), tmToday.GetMonth(), tmToday.GetDay(),
  165. tmToday.GetHour(), tmToday.GetMinute(), tmToday.GetSecond() );
  166. strWhere = "happen_time >= '" + strStartDate + "' and happen_time <= '" + strEndDate + "'";
  167. UpdateData();
  168. int n = m_Comb_Device.GetCurSel();
  169. if( n>0 )
  170. {
  171. CString sLBText;
  172. m_Comb_Device.GetLBText( n,sLBText );
  173. CString sAdd;
  174. sAdd = " and equip_desc = '" + sLBText + "'" ;
  175. strWhere += sAdd;
  176. }
  177. n = m_Comb_Area.GetCurSel();
  178. if( n>0 )
  179. {
  180. CString sLBText;
  181. m_Comb_Area.GetLBText( n,sLBText );
  182. CString sAdd;
  183. sAdd = " and memos = '" + sLBText + "'" ;
  184. strWhere += sAdd;
  185. }
  186. m_ctrlGridRec.Execute(_T("id")/*Primary key field */
  187. ,_T("*")//fields in SELECT statment
  188. ,_T("t_waring_record") //from
  189. ,strWhere // where
  190. ,0,0); // order by N of the Grid column
  191. //
  192. }
  193. BOOL CDlgQueryWarningRec::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
  194. {
  195. LPNMHDR pNmhdr = (LPNMHDR)lParam;
  196. // TODO: 在此添加专用代码和/或调用基类
  197. if (wParam == (WPARAM)m_ctrlGridRec.GetDlgCtrlID())
  198. {
  199. *pResult = 1;
  200. GV_DISPINFO *pDispInfo = (GV_DISPINFO*)lParam;
  201. m_ctrlGridRec.SetValue(pDispInfo);
  202. }
  203. return CDialog::OnNotify(wParam, lParam, pResult);
  204. }
  205. BEGIN_EVENTSINK_MAP(CDlgQueryWarningRec, CDialog)
  206. //{{AFX_EVENTSINK_MAP(CDlgQueryWarningRec)
  207. //}}AFX_EVENTSINK_MAP
  208. END_EVENTSINK_MAP()
  209. void CDlgQueryWarningRec::OnBnClickedBtnClose()
  210. {
  211. // TODO: 在此添加控件通知处理程序代码
  212. OnCancel();
  213. }
  214. void CDlgQueryWarningRec::OnBnClickedBtnQuery()
  215. {
  216. // TODO: 在此添加控件通知处理程序代码
  217. Requery();
  218. }
  219. void CDlgQueryWarningRec::OnBnClickedBtnDel()
  220. {
  221. int nCount = m_ctrlGridRec.GetRowCount();
  222. CString sID;
  223. if( nCount>0 )
  224. if (MessageBox (g_strMsgConfirmDelRecord, g_strMsgPrompt, MB_YESNO|MB_DEFBUTTON2 | MB_ICONQUESTION) != IDYES)
  225. return;
  226. for( int nRow=0;nRow<nCount;nRow++ )
  227. {
  228. sID = m_ctrlGridRec.GetCell( nRow, 0 )->GetText();
  229. CDBInterface::GetInstancePtr()->DelTableData( "t_waring_record","id",(char *)(LPCTSTR)sID,2 );
  230. }
  231. m_ctrlGridRec.DeleteAllItems();
  232. Requery();
  233. }
  234. void CDlgQueryWarningRec::OnBnClickedBtnExport()
  235. {
  236. ExportListToExcel( (CDataGrid*)&m_ctrlGridRec, "报警记录" );
  237. }