// AnalogDlg.cpp : implementation file // #include "stdafx.h" #include "IDE.h" #include "DlgNoticeRec.h" #include "Syslib.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CDlgNoticeRec dialog CDlgNoticeRec::CDlgNoticeRec(CWnd* pParent /*=NULL*/) : CDialog(CDlgNoticeRec::IDD, pParent) { //{{AFX_DATA_INIT(CDlgNoticeRec) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT m_ctrlEmailRec.RegisterWindowClass(g_hLangDLL); m_ctrlTelRec.RegisterWindowClass(g_hLangDLL); m_ctrlSmsRec.RegisterWindowClass(g_hLangDLL); } void CDlgNoticeRec::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CDlgNoticeRec) DDX_Control(pDX, IDC_GRID_REC, m_ctrlEmailRec); DDX_Control(pDX, IDC_GRID_REC2, m_ctrlTelRec); DDX_Control(pDX, IDC_GRID_REC3, m_ctrlSmsRec); //}}AFX_DATA_MAP DDX_Control(pDX, IDC_DT_START_DATE, m_ctrlStartDate); DDX_Control(pDX, IDC_DT_END_DATE, m_ctrlEndDate); DDX_Control(pDX, IDC_COMBO_DEV, m_ctrlDevName); DDX_Control(pDX, IDC_EDT_VAR_DESC, m_ctrlVarDesc); } BEGIN_MESSAGE_MAP(CDlgNoticeRec, CDialog) //{{AFX_MSG_MAP(CDlgNoticeRec) //}}AFX_MSG_MAP ON_BN_CLICKED(IDC_BTN_CLOSE, OnBnClickedBtnClose) ON_BN_CLICKED(IDC_BTN_QUERY, OnBnClickedBtnQuery) ON_BN_CLICKED(IDC_BTN_DEL, OnBnClickedBtnDel) ON_BN_CLICKED(IDC_BTN_EXPORT, OnBnClickedBtnExport) ON_BN_CLICKED(IDC_BTN_CLOSE2, OnBnClickedBtnClose2) ON_BN_CLICKED(IDC_BTN_CLOSE3, OnBnClickedBtnClose3) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CDlgNoticeRec message handlers void CDlgNoticeRec::OnOK() { // TODO: Add extra validation here CDialog::OnOK(); } void CDlgNoticeRec::OnCancel() { // TODO: Add extra cleanup here CDialog::OnCancel(); } BOOL CDlgNoticeRec::OnInitDialog() { CDialog::OnInitDialog(); m_btnQuery.SubclassDlgItem(IDC_BTN_QUERY, this); m_btnQuery.SetBitmaps(IDB_FRESH, RGB(255, 0, 255)); m_btnQuery.SetFlat(FALSE); m_btnQuery.SetAlign(CButtonST::ST_ALIGN_HORIZ); m_btnExit.SubclassDlgItem(IDC_BTN_CLOSE, this); m_btnExit.SetBitmaps(IDB_EXIT , RGB(192, 192, 192)); m_btnExit.SetFlat(FALSE); m_btnExit.SetAlign(CButtonST::ST_ALIGN_HORIZ); m_btnDel.SubclassDlgItem(IDC_BTN_DEL, this); m_btnDel.SetBitmaps(IDB_DEL , RGB(255,0 , 255)); m_btnDel.SetFlat(FALSE); m_btnDel.SetAlign(CButtonST::ST_ALIGN_HORIZ); m_btnExport.SubclassDlgItem(IDC_BTN_EXPORT, this); m_btnExport.SetBitmaps(IDB_INTO, RGB(255, 0, 255)); m_btnExport.SetFlat(FALSE); m_btnExport.SetAlign(CButtonST::ST_ALIGN_HORIZ); CTime tmToday; //今天的日期 CTime tmPreTwoDay; //前两天的日期 CTimeSpan tmspanTwoDay(1,0,0,0); //两天的时间距离 tmToday=CTime::GetCurrentTime();//获得当前日期 tmPreTwoDay=tmToday-tmspanTwoDay; UpdateData(TRUE);//时间更新为当前时间 m_ctrlStartDate.SetFormat("yyyy-M-d HH:mm:ss"); m_ctrlStartDate.SetTime( &tmPreTwoDay ); m_ctrlEndDate.SetFormat("yyyy-M-d HH:mm:ss"); m_ctrlEndDate.SetTime( &tmToday ); bool bTel=false,bSms=false,bEmail=false; CDBInterface::GetInstancePtr()->JudgeIsTSE( bTel,bSms,bEmail ); m_ctrlDevName.ResetContent(); SetFields(); if( bEmail ) { m_ctrlDevName.AddString(g_strLogModEmail); RequeryEmail(); } if( bTel ) { m_ctrlDevName.AddString(g_strLogModNotice); if( !bEmail ) RequeryTel(); } if( bSms ) { m_ctrlDevName.AddString(g_strLogModSms); if( !bEmail && !bTel ) RequerySms(); } //int nChannelSize = pDevicesManager->m_channels.GetSize(); //for( int i = 0; i < nChannelSize; i++ ) //{ // int nDeviceSize = pDevicesManager->m_channels[i]->m_Devices.GetSize(); // for( int j = 0; j < nDeviceSize; j++ ) // { // m_ctrlDevName.AddString(pDevicesManager->m_channels[i]->m_Devices[j]->m_strName); // } //} m_ctrlDevName.SetCurSel(0); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CDlgNoticeRec::SetFields() { CRect rectFrame; this->GetWindowRect( rectFrame );ScreenToClient( &rectFrame ); CRect rect; GetDlgItem( IDC_GRID_REC )->GetWindowRect( rect );ScreenToClient( &rect ); rect.right = rectFrame.right-10; rect.bottom = rectFrame.bottom-10; GetDlgItem( IDC_GRID_REC )->MoveWindow( rect ); GetDlgItem( IDC_GRID_REC2 )->MoveWindow( rect ); GetDlgItem( IDC_GRID_REC3 )->MoveWindow( rect ); int i; m_ctrlEmailRec.m_field.SetSize(4); i=0; m_ctrlEmailRec.m_field[i].Field=_T("id"); m_ctrlEmailRec.m_field[i].Caption=_T("ID"); m_ctrlEmailRec.m_field[i].With = 50; m_ctrlEmailRec.m_field[i].Find=true; i=1; m_ctrlEmailRec.m_field[i].Field=_T("emailaddr"); m_ctrlEmailRec.m_field[i].Caption=g_strLogModEmail; m_ctrlEmailRec.m_field[i].With=150; m_ctrlEmailRec.m_field[i].Find=true; i=2; m_ctrlEmailRec.m_field[i].Field=_T("contents"); m_ctrlEmailRec.m_field[i].Caption=g_strLogModContents; m_ctrlEmailRec.m_field[i].With=378; m_ctrlEmailRec.m_field[i].Find=true; i=3; m_ctrlEmailRec.m_field[i].Field=_T("sendtime"); m_ctrlEmailRec.m_field[i].Caption=g_strLogModTime; m_ctrlEmailRec.m_field[i].With=200; m_ctrlEmailRec.m_field[i].Find=true; //电话记录 m_ctrlTelRec.m_field.SetSize(4); i=0; m_ctrlTelRec.m_field[i].Field=_T("id"); m_ctrlTelRec.m_field[i].Caption=_T("ID"); m_ctrlTelRec.m_field[i].With = 50; m_ctrlTelRec.m_field[i].Find=true; i=1; m_ctrlTelRec.m_field[i].Field=_T("telnum"); m_ctrlTelRec.m_field[i].Caption=g_strLogModNotice; m_ctrlTelRec.m_field[i].With=150; m_ctrlTelRec.m_field[i].Find=true; i=2; m_ctrlTelRec.m_field[i].Field=_T("contents"); m_ctrlTelRec.m_field[i].Caption=g_strLogModContents; m_ctrlTelRec.m_field[i].With=378; m_ctrlTelRec.m_field[i].Find=true; i=3; m_ctrlTelRec.m_field[i].Field=_T("sendtime"); m_ctrlTelRec.m_field[i].Caption=g_strLogModTime; m_ctrlTelRec.m_field[i].With=200; m_ctrlTelRec.m_field[i].Find=true; //短信记录 m_ctrlSmsRec.m_field.SetSize(4); i=0; m_ctrlSmsRec.m_field[i].Field=_T("id"); m_ctrlSmsRec.m_field[i].Caption=_T("ID"); m_ctrlSmsRec.m_field[i].With = 50; m_ctrlSmsRec.m_field[i].Find=true; i=1; m_ctrlSmsRec.m_field[i].Field=_T("telnum"); m_ctrlSmsRec.m_field[i].Caption=g_strLogModSms; m_ctrlSmsRec.m_field[i].With=150; m_ctrlSmsRec.m_field[i].Find=true; i=2; m_ctrlSmsRec.m_field[i].Field=_T("contents"); m_ctrlSmsRec.m_field[i].Caption=g_strLogModContents; m_ctrlSmsRec.m_field[i].With=378; m_ctrlSmsRec.m_field[i].Find=true; i=3; m_ctrlSmsRec.m_field[i].Field=_T("sendtime"); m_ctrlSmsRec.m_field[i].Caption=g_strLogModTime; m_ctrlSmsRec.m_field[i].With=200; m_ctrlSmsRec.m_field[i].Find=true; // m_ctrlAnalogGrid.Execute(m_pConnection,"ProductId"/*Primary key field */ // ,"*"//fields in SELECT statment // ,"Products" //from // ,"" // where // ,0); // order by N of the Grid column } void CDlgNoticeRec::RequeryEmail() { CString strWhere; //strWhere.Format(" uid <> \'%s\'", "admin"); CString strStartTime, strEndTime, strStartDate, strEndDate; CString strTelNum, strContent; CTime tmToday; CTime tmPreTwoDay; m_ctrlStartDate.GetTime( tmPreTwoDay ); m_ctrlEndDate.GetTime( tmToday ); strStartDate.Format( "%d-%d-%d %d:%d:%d", tmPreTwoDay.GetYear(), tmPreTwoDay.GetMonth(), tmPreTwoDay.GetDay(), tmPreTwoDay.GetHour(), tmPreTwoDay.GetMinute(), tmPreTwoDay.GetSecond() ); strEndDate.Format( "%d-%d-%d %d:%d:%d", tmToday.GetYear(), tmToday.GetMonth(), tmToday.GetDay(), tmToday.GetHour(), tmToday.GetMinute(), tmToday.GetSecond() ); strWhere = "sendtime >= '" + strStartDate + "' and sendtime <= '" + strEndDate + "'"; //int nIndex = -1; ////nIndex = m_ctrlDevName.GetCurSel(); CString strDevName, strVarDesc, strDevWhere, strVarWhere; //m_ctrlDevName.GetLBText(nIndex, strDevName); //if( nIndex!=0 )//if( strDevName.Compare(g_strAll) != 0 ) //{ // strDevWhere.Format(" and logtype = \'%d\'", 1); // strWhere += strDevWhere; //} m_ctrlEmailRec.Execute(_T("id")/*Primary key field */ ,_T("*")//fields in SELECT statment ,_T("t_email_rec") //from ,strWhere // where ,0,0); // order by N of the Grid column } void CDlgNoticeRec::RequeryTel() { CString strWhere; //strWhere.Format(" uid <> \'%s\'", "admin"); CString strStartTime, strEndTime, strStartDate, strEndDate; CString strTelNum, strContent; CTime tmToday; CTime tmPreTwoDay; m_ctrlStartDate.GetTime( tmPreTwoDay ); m_ctrlEndDate.GetTime( tmToday ); strStartDate.Format( "%d-%d-%d %d:%d:%d", tmPreTwoDay.GetYear(), tmPreTwoDay.GetMonth(), tmPreTwoDay.GetDay(), tmPreTwoDay.GetHour(), tmPreTwoDay.GetMinute(), tmPreTwoDay.GetSecond() ); strEndDate.Format( "%d-%d-%d %d:%d:%d", tmToday.GetYear(), tmToday.GetMonth(), tmToday.GetDay(), tmToday.GetHour(), tmToday.GetMinute(), tmToday.GetSecond() ); strWhere = "sendtime >= '" + strStartDate + "' and sendtime <= '" + strEndDate + "'"; //int nIndex = -1; //nIndex = m_ctrlDevName.GetCurSel(); CString strDevName, strVarDesc, strDevWhere, strVarWhere; //m_ctrlDevName.GetLBText(nIndex, strDevName); //if( nIndex!=0 )//if( strDevName.Compare(g_strAll) != 0 ) //{ // strDevWhere.Format(" and logtype = \'%d\'", 2); // strWhere += strDevWhere; //} m_ctrlTelRec.Execute(_T("id")/*Primary key field */ ,_T("*")//fields in SELECT statment ,_T("t_notice_rec") //from ,strWhere // where ,0,0); // order by N of the Grid column } void CDlgNoticeRec::RequerySms() { CString strWhere; //strWhere.Format(" uid <> \'%s\'", "admin"); CString strStartTime, strEndTime, strStartDate, strEndDate; CString strTelNum, strContent; CTime tmToday; CTime tmPreTwoDay; m_ctrlStartDate.GetTime( tmPreTwoDay ); m_ctrlEndDate.GetTime( tmToday ); strStartDate.Format( "%d-%d-%d %d:%d:%d", tmPreTwoDay.GetYear(), tmPreTwoDay.GetMonth(), tmPreTwoDay.GetDay(), tmPreTwoDay.GetHour(), tmPreTwoDay.GetMinute(), tmPreTwoDay.GetSecond() ); strEndDate.Format( "%d-%d-%d %d:%d:%d", tmToday.GetYear(), tmToday.GetMonth(), tmToday.GetDay(), tmToday.GetHour(), tmToday.GetMinute(), tmToday.GetSecond() ); strWhere = "sendtime >= '" + strStartDate + "' and sendtime <= '" + strEndDate + "'"; //int nIndex = -1; //nIndex = m_ctrlDevName.GetCurSel(); CString strDevName, strVarDesc, strDevWhere, strVarWhere; //m_ctrlDevName.GetLBText(nIndex, strDevName); //if( nIndex!=0 )//if( strDevName.Compare(g_strAll) != 0 ) //{ // strDevWhere.Format(" and logtype = \'%d\'", 3); // strWhere += strDevWhere; //} m_ctrlSmsRec.Execute(_T("id")/*Primary key field */ ,_T("*")//fields in SELECT statment ,_T("t_sms_rec") //from ,strWhere // where ,0,0); // order by N of the Grid column } BOOL CDlgNoticeRec::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult) { LPNMHDR pNmhdr = (LPNMHDR)lParam; // TODO: 在此添加专用代码和/或调用基类 if (wParam == (WPARAM)m_ctrlEmailRec.GetDlgCtrlID()) { *pResult = 1; GV_DISPINFO *pDispInfo = (GV_DISPINFO*)lParam; m_ctrlEmailRec.SetValue(pDispInfo); } if (wParam == (WPARAM)m_ctrlTelRec.GetDlgCtrlID()) { *pResult = 1; GV_DISPINFO *pDispInfo = (GV_DISPINFO*)lParam; m_ctrlTelRec.SetValue(pDispInfo); } if (wParam == (WPARAM)m_ctrlSmsRec.GetDlgCtrlID()) { *pResult = 1; GV_DISPINFO *pDispInfo = (GV_DISPINFO*)lParam; m_ctrlSmsRec.SetValue(pDispInfo); } return CDialog::OnNotify(wParam, lParam, pResult); } BEGIN_EVENTSINK_MAP(CDlgNoticeRec, CDialog) //{{AFX_EVENTSINK_MAP(CDlgNoticeRec) //}}AFX_EVENTSINK_MAP END_EVENTSINK_MAP() void CDlgNoticeRec::OnBnClickedBtnClose() { // TODO: 在此添加控件通知处理程序代码 OnCancel(); } void CDlgNoticeRec::OnBnClickedBtnQuery() { // TODO: 在此添加控件通知处理程序代码 UpdateData(); int nIndex = -1; nIndex = m_ctrlDevName.GetCurSel(); if( nIndex==-1 ) return; CString sLBText; m_ctrlDevName.GetLBText( nIndex,sLBText ); if( sLBText==g_strLogModEmail ) { GetDlgItem( IDC_GRID_REC )->ShowWindow( SW_SHOW ); GetDlgItem( IDC_GRID_REC2 )->ShowWindow( SW_HIDE ); GetDlgItem( IDC_GRID_REC3 )->ShowWindow( SW_HIDE ); RequeryEmail(); } else if( sLBText==g_strLogModNotice ) { GetDlgItem( IDC_GRID_REC )->ShowWindow( SW_HIDE ); GetDlgItem( IDC_GRID_REC2 )->ShowWindow( SW_SHOW ); GetDlgItem( IDC_GRID_REC3 )->ShowWindow( SW_HIDE ); RequeryTel(); } else if( sLBText==g_strLogModSms ) { GetDlgItem( IDC_GRID_REC )->ShowWindow( SW_HIDE ); GetDlgItem( IDC_GRID_REC2 )->ShowWindow( SW_HIDE ); GetDlgItem( IDC_GRID_REC3 )->ShowWindow( SW_SHOW ); RequerySms(); } } void CDlgNoticeRec::OnBnClickedBtnDel() { UpdateData(); int nIndex = -1; nIndex = m_ctrlDevName.GetCurSel(); if( nIndex==-1 ) return; CString sLBText; m_ctrlDevName.GetLBText( nIndex,sLBText ); //Email记录 电话记录 短信记录 if( sLBText==g_strLogModEmail ) { int nCount = m_ctrlEmailRec.GetRowCount(); CString sID; if( nCount>0 ) if (MessageBox (g_strMsgConfirmDelRecord, g_strMsgPrompt, MB_YESNO|MB_DEFBUTTON2 | MB_ICONQUESTION) != IDYES) return; for( int nRow=0;nRowGetText(); CDBInterface::GetInstancePtr()->DelTableData( "t_email_rec","id",(char *)(LPCTSTR)sID,2 ); } m_ctrlEmailRec.DeleteAllItems(); RequeryEmail(); } else if( sLBText==g_strLogModNotice ) { int nCount = m_ctrlTelRec.GetRowCount(); CString sID; if( nCount>0 ) if (MessageBox (g_strMsgConfirmDelRecord, g_strMsgPrompt, MB_YESNO|MB_DEFBUTTON2 | MB_ICONQUESTION) != IDYES) return; for( int nRow=0;nRowGetText(); CDBInterface::GetInstancePtr()->DelTableData( "t_notice_rec","id",(char *)(LPCTSTR)sID,2 ); } m_ctrlTelRec.DeleteAllItems(); RequeryTel(); } else if( sLBText==g_strLogModSms ) { int nCount = m_ctrlSmsRec.GetRowCount(); CString sID; if( nCount>0 ) if (MessageBox (g_strMsgConfirmDelRecord, g_strMsgPrompt, MB_YESNO|MB_DEFBUTTON2 | MB_ICONQUESTION) != IDYES) return; for( int nRow=0;nRowGetText(); CDBInterface::GetInstancePtr()->DelTableData( "t_sms_rec","id",(char *)(LPCTSTR)sID,2 ); } m_ctrlSmsRec.DeleteAllItems(); RequerySms(); } } void CDlgNoticeRec::OnBnClickedBtnExport() { // TODO: 在此添加控件通知处理程序代码 int nIndex = -1; nIndex = m_ctrlDevName.GetCurSel(); if( nIndex==-1 ) return; CString sLBText; m_ctrlDevName.GetLBText( nIndex,sLBText ); //Email记录 电话记录 短信记录 if( sLBText==g_strLogModEmail ) { ExportListToExcel( (CDataGrid*)&m_ctrlEmailRec, "邮件通知记录" ); } else if( sLBText==g_strLogModNotice ) { ExportListToExcel( (CDataGrid*)&m_ctrlTelRec, "语音通知记录" ); } else if( sLBText==g_strLogModSms ) { ExportListToExcel( (CDataGrid*)&m_ctrlSmsRec, "短信通知记录" ); } //CString strFileName; //strFileName.Format("%s\\%s", g_strDirectory, "data.csv"); //m_ctrlGridRec.Save(strFileName); } void CDlgNoticeRec::OnBnClickedBtnClose2() { // TODO: 在此添加控件通知处理程序代码 //if( !pDevicesManager->Connection(g_strServerIP, g_strServerPort) ) //{ // pDevicesManager->SetSocketStatus(FALSE); //} //else //{ // pDevicesManager->SetSocketStatus(TRUE); //} } void CDlgNoticeRec::OnBnClickedBtnClose3() { // TODO: 在此添加控件通知处理程序代码 //pDevicesManager->DisConnection(); }