// Dlg_ActionWithAlarm.cpp : 实现文件 // #include "stdafx.h" #include "Dlg_ActionWithAlarm.h" #include ".\dlg_actionwithalarm.h" #include "Dlg_AddActionWithAlarm.h" // CDlg_ActionWithAlarm 对话框 IMPLEMENT_DYNAMIC(CDlg_ActionWithAlarm, CDialog) CDlg_ActionWithAlarm::CDlg_ActionWithAlarm(CWnd* pParent /*=NULL*/) : CDialog(CDlg_ActionWithAlarm::IDD, pParent) { m_nAlarmData = 1; m_nResumeData = 0; m_nListSel = -1; } CDlg_ActionWithAlarm::~CDlg_ActionWithAlarm() { } void CDlg_ActionWithAlarm::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_LIST1, m_ctrlList); DDX_Control(pDX, IDC_LIST_SRC, m_ctrlListBoxSrc); DDX_Control(pDX, IDC_LIST_DEST, m_ctrlListBoxDest); } BEGIN_MESSAGE_MAP(CDlg_ActionWithAlarm, CDialog) ON_BN_CLICKED(IDC_BTN_SEL_SINGLE, OnBnClickedBtnSelSingle) ON_BN_CLICKED(IDC_BTN_SEL_ALL, OnBnClickedBtnSelAll) ON_BN_CLICKED(IDC_BTN_REVERSE_SEL_SINGLE, OnBnClickedBtnReverseSelSingle) ON_BN_CLICKED(IDC_BTN_REVERSE_SEL_ALL, OnBnClickedBtnReverseSelAll) ON_NOTIFY(NM_CLICK, IDC_LIST1, OnNMClickList1) ON_BN_CLICKED(IDC_BTN_ADD, OnBnClickedBtnAdd) ON_BN_CLICKED(IDC_BTN_MODIFY, OnBnClickedBtnModify) ON_BN_CLICKED(IDC_BTN_DEL, OnBnClickedBtnDel) ON_BN_CLICKED(IDOK, OnBnClickedOk) ON_BN_CLICKED(IDCANCEL, OnBnClickedCancel) END_MESSAGE_MAP() // CDlg_ActionWithAlarm 消息处理程序 BOOL CDlg_ActionWithAlarm::OnInitDialog() { CDialog::OnInitDialog(); // TODO: 在此添加额外的初始化 m_ctrlList.InsertColumn(0, "DOSet_VarName"); m_ctrlList.SetColumnWidth(0, 130); m_ctrlList.InsertColumn(1, "DOStatus_VarName"); m_ctrlList.SetColumnWidth(1, 125); m_ctrlList.InsertColumn(2, "AlarmData"); m_ctrlList.SetColumnWidth(2, 125); m_ctrlList.InsertColumn(3, "ResumeData"); m_ctrlList.SetColumnWidth(3, 125); m_ctrlList.SetExtendedStyle(m_ctrlList.GetExtendedStyle() | LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT); CDBInterface::GetInstancePtr()->GetAllActionWithAlarm( &m_ctrlList ); return TRUE; // return TRUE unless you set the focus to a control // 异常: OCX 属性页应返回 FALSE } void CDlg_ActionWithAlarm::OnBnClickedBtnSelSingle() { CString str; int nCount, i, nIndex = 0; CArray arrayListSel; nCount = m_ctrlListBoxSrc.GetSelCount(); arrayListSel.SetSize( nCount ); m_ctrlListBoxSrc.GetSelItems( nCount, arrayListSel.GetData() ); for( i = 0; i < nCount; i++ ) { m_ctrlListBoxSrc.GetText( arrayListSel[i] - nIndex, str ); m_ctrlListBoxSrc.DeleteString( arrayListSel[i] - nIndex ); m_ctrlListBoxSrc.SetSel( arrayListSel[i] - nIndex, FALSE ); m_ctrlListBoxDest.AddString( str ); nIndex++; } } void CDlg_ActionWithAlarm::OnBnClickedBtnSelAll() { CString str; int i, nCount, nIndex = 0; nCount = m_ctrlListBoxSrc.GetCount(); for( i = 0; i < nCount; i++ ) { m_ctrlListBoxSrc.GetText( i - nIndex, str ); m_ctrlListBoxSrc.DeleteString( i - nIndex ); m_ctrlListBoxDest.AddString( str ); nIndex++; } } void CDlg_ActionWithAlarm::OnBnClickedBtnReverseSelSingle() { CString str; int nCount, i, nIndex = 0; CArray arrayListSel; nCount = m_ctrlListBoxDest.GetSelCount(); arrayListSel.SetSize( nCount ); m_ctrlListBoxDest.GetSelItems( nCount, arrayListSel.GetData() ); for( i = 0; i < nCount; i++ ) { m_ctrlListBoxDest.GetText( arrayListSel[i] - nIndex, str ); m_ctrlListBoxDest.DeleteString( arrayListSel[i] - nIndex ); m_ctrlListBoxDest.SetSel( arrayListSel[i] - nIndex, FALSE ); m_ctrlListBoxSrc.AddString( str ); nIndex++; } } void CDlg_ActionWithAlarm::OnBnClickedBtnReverseSelAll() { CString str; int i, nCount, nIndex = 0; nCount = m_ctrlListBoxDest.GetCount(); for( i = 0; i < nCount; i++ ) { m_ctrlListBoxDest.GetText( i - nIndex, str ); m_ctrlListBoxDest.DeleteString( i - nIndex ); m_ctrlListBoxSrc.AddString( str ); nIndex++; } } void CDlg_ActionWithAlarm::OnNMClickList1(NMHDR *pNMHDR, LRESULT *pResult) { int iListCount = m_ctrlList.GetItemCount(); POSITION pos = m_ctrlList.GetFirstSelectedItemPosition(); int nListSel = m_ctrlList.GetNextSelectedItem(pos); if(nListSel>=iListCount || nListSel==-1) { //MessageBox(g_strDClickFirstOperate, g_strTip, MB_ICONWARNING); return; } CString str; str = m_ctrlList.GetItemText( nListSel,0 ); m_ctrlListBoxDest.ResetContent(); m_ctrlListBoxSrc.ResetContent(); m_nListSel = nListSel; m_sDoSet = m_ctrlList.GetItemText( nListSel,0 ); m_sDoStatus = m_ctrlList.GetItemText( nListSel,1 ); m_nAlarmData = atoi( m_ctrlList.GetItemText( nListSel,2 ) ); m_nResumeData = atoi( m_ctrlList.GetItemText( nListSel,3 ) ); CDBInterface::GetInstancePtr()->GetActionWithAlarmVar( &m_ctrlListBoxDest,str ); CDBInterface::GetInstancePtr()->GetActionWithAlarmVar( &m_ctrlListBoxSrc,&m_ctrlListBoxDest ); GetDlgItem( IDC_BTN_MODIFY )->EnableWindow( true ); GetDlgItem( IDC_BTN_DEL )->EnableWindow( true ); *pResult = 0; } void CDlg_ActionWithAlarm::OnBnClickedBtnAdd() { CDlg_AddActionWithAlarm dlg; dlg.m_nMode = 0; if( dlg.DoModal()==IDOK ) { int iListCount = m_ctrlList.GetItemCount(); CString str; for( int i=0;iAddActionWithAlarm( dlg.m_sEdit_DoSet,dlg.m_sEdit_DoStatus,dlg.m_nEdit_AlarmData,dlg.m_nEdit_ResumeData,dlg.m_sDoSetPlanTime ); m_ctrlListBoxDest.ResetContent(); m_ctrlListBoxSrc.ResetContent(); CDBInterface::GetInstancePtr()->GetActionWithAlarmVar( &m_ctrlListBoxDest,dlg.m_sEdit_DoSet ); CDBInterface::GetInstancePtr()->GetActionWithAlarmVar( &m_ctrlListBoxSrc,&m_ctrlListBoxDest ); GetDlgItem( IDC_BTN_MODIFY )->EnableWindow( true ); GetDlgItem( IDC_BTN_DEL )->EnableWindow( true ); } } void CDlg_ActionWithAlarm::OnBnClickedBtnModify() { if( m_nListSel==-1 ) { MessageBox(g_strDClickFirstOperate, g_strTip, MB_ICONWARNING); return; } CString str; CDlg_AddActionWithAlarm dlg; dlg.m_nMode = 1; dlg.m_sEdit_DoSet = m_sDoSet; dlg.m_sEdit_DoStatus = m_sDoStatus; dlg.m_nEdit_AlarmData = m_nAlarmData; dlg.m_nEdit_ResumeData = m_nResumeData; CDBInterface::GetInstancePtr()->GetAWAPlanTime( m_sDoSet,dlg.m_sDoSetPlanTime ); if( dlg.DoModal()==IDOK ) { m_ctrlList.SetItemText( m_nListSel,0,dlg.m_sEdit_DoSet ); m_ctrlList.SetItemText( m_nListSel,1,dlg.m_sEdit_DoStatus ); str.Format( "%d",dlg.m_nEdit_AlarmData ); m_ctrlList.SetItemText( m_nListSel,2,str ); str.Format( "%d",dlg.m_nEdit_ResumeData ); m_ctrlList.SetItemText( m_nListSel,3,str ); CDBInterface::GetInstancePtr()->ModifyActionWithAlarm( dlg.m_sOldDoSet,dlg.m_sEdit_DoSet,dlg.m_sEdit_DoStatus,dlg.m_nEdit_AlarmData,dlg.m_nEdit_ResumeData,dlg.m_sDoSetPlanTime ); } m_nListSel = -1; GetDlgItem( IDC_BTN_MODIFY )->EnableWindow( false ); GetDlgItem( IDC_BTN_DEL )->EnableWindow( false ); } void CDlg_ActionWithAlarm::OnBnClickedBtnDel() { if( m_nListSel==-1 ) { MessageBox(g_strDClickFirstOperate, g_strTip, MB_ICONWARNING); return; } CString str; str = m_ctrlList.GetItemText( m_nListSel,0 ); if( MessageBox( "确定要删除吗?",g_strTip,MB_YESNO )==IDNO ) return; m_ctrlList.DeleteItem( m_nListSel ); CDBInterface::GetInstancePtr()->DelActionWithAlarm( str ); m_nListSel = -1; GetDlgItem( IDC_BTN_MODIFY )->EnableWindow( false ); GetDlgItem( IDC_BTN_DEL )->EnableWindow( false ); m_ctrlListBoxDest.ResetContent(); m_ctrlListBoxSrc.ResetContent(); } void CDlg_ActionWithAlarm::OnBnClickedOk() { if( m_nListSel==-1 ) return; CString sGroupPermit; CString str; CStringArray SA; int nCount = m_ctrlListBoxDest.GetCount(); for( int i = 0; i < nCount; i++ ) { m_ctrlListBoxDest.GetText( i, str ); SA.Add( str ); } CDBInterface::GetInstancePtr()->GetAWAPlanTime( m_sDoSet,m_sDoSetPlanTime ); CDBInterface::GetInstancePtr()->AddActionWithAlarm( m_sDoSet,m_sDoStatus,m_nAlarmData,m_nResumeData,m_sDoSetPlanTime,SA ); AfxMessageBox( "保存完成!" ); m_nListSel = -1; GetDlgItem( IDC_BTN_MODIFY )->EnableWindow( false ); GetDlgItem( IDC_BTN_DEL )->EnableWindow( false ); } void CDlg_ActionWithAlarm::OnBnClickedCancel() { // TODO: 在此添加控件通知处理程序代码 OnCancel(); }