// AnalogDlg.cpp : implementation file // #include "stdafx.h" #include "IDE.h" #include "Dlg_ParamFind.h" #include "AnalogDlg.h" #include "AnalogPropertyDlg.h" #include "AnalogSinglePropertyDlg.h" #include ".\analogdlg.h" #include "DlgVarStatusManager.h" #include "DlgDatePlan.h" #include "StringOperation.h" #include "GridCtrl.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif #define m_hotFind 1111 CDlg_ParamFind *g_pDlgParamFind=NULL; ///////////////////////////////////////////////////////////////////////////// // CAnalogDlg dialog CAnalogDlg::CAnalogDlg(CWnd* pParent /*=NULL*/) : CDialog(CAnalogDlg::IDD, pParent) { //{{AFX_DATA_INIT(CAnalogDlg) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT m_ctrlAnalogGrid.RegisterWindowClass(g_hLangDLL); } CAnalogDlg::~CAnalogDlg() { if( g_pDlgParamFind ) delete g_pDlgParamFind; g_pDlgParamFind = NULL; } void CAnalogDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CAnalogDlg) DDX_Control(pDX, IDC_ANALOGGRID, m_ctrlAnalogGrid); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CAnalogDlg, CDialog) //{{AFX_MSG_MAP(CAnalogDlg) //}}AFX_MSG_MAP ON_BN_CLICKED(IDC_ADDANALOG, OnBnClickedAddanalog) ON_BN_CLICKED(IDC_EDITANALOG, OnBnClickedEditanalog) ON_BN_CLICKED(IDC_DELANALOG, OnBnClickedDelanalog) ON_BN_CLICKED(IDC_COPYANALOG, OnBnClickedCopyanalog) ON_BN_CLICKED(IDC_FINGANALOG, OnBnClickedFindanalog) ON_BN_CLICKED(IDC_BTN_SET_STATUS1, OnBnClickedBtnSetStatus) ON_BN_CLICKED(IDC_BTN_DATE_PLAN, OnBnClickedBtnDatePlan) ON_BN_CLICKED(IDC_BTN_CLOSE, OnBnClickedBtnClose) ON_WM_CLOSE() END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CAnalogDlg message handlers void CAnalogDlg::OnOK() { // TODO: Add extra validation here CDialog::OnOK(); } void CAnalogDlg::OnCancel() { // TODO: Add extra cleanup her CDialog::OnCancel(); } BOOL CAnalogDlg::OnInitDialog() { CDialog::OnInitDialog(); m_btnEdit.SubclassDlgItem(IDC_EDITANALOG, this); m_btnEdit.SetBitmaps(IDB_EDIT, RGB(255, 0, 255)); m_btnEdit.SetFlat(FALSE); m_btnEdit.SetAlign(CButtonST::ST_ALIGN_HORIZ); m_btnCopy.SubclassDlgItem(IDC_COPYANALOG, this); m_btnCopy.SetBitmaps(IDB_COPY , RGB(192, 192, 192)); m_btnCopy.SetFlat(FALSE); m_btnCopy.SetAlign(CButtonST::ST_ALIGN_HORIZ); m_btnDel.SubclassDlgItem(IDC_DELANALOG, this); m_btnDel.SetBitmaps(IDB_DEL, RGB(255,0 , 255)); m_btnDel.SetFlat(FALSE); m_btnDel.SetAlign(CButtonST::ST_ALIGN_HORIZ); m_btnAdd.SubclassDlgItem(IDC_ADDANALOG, this); m_btnAdd.SetBitmaps(IDB_ADD, RGB(192, 192, 192)); m_btnAdd.SetFlat(FALSE); m_btnAdd.SetAlign(CButtonST::ST_ALIGN_HORIZ); m_btnDatePlan.SubclassDlgItem(IDC_BTN_DATE_PLAN, this); m_btnDatePlan.SetBitmaps(IDB_PLAN, RGB(192, 192, 192)); m_btnDatePlan.SetFlat(FALSE); m_btnDatePlan.SetAlign(CButtonST::ST_ALIGN_HORIZ); m_btnSetStatus.SubclassDlgItem(IDC_BTN_SET_STATUS1, this); m_btnSetStatus.SetBitmaps(IDB_INTO, RGB(192, 192, 192)); m_btnSetStatus.SetFlat(FALSE); m_btnSetStatus.SetAlign(CButtonST::ST_ALIGN_HORIZ); m_btnCancel.SubclassDlgItem(IDC_BTN_CLOSE, this); m_btnCancel.SetBitmaps(IDB_EXIT, RGB(192, 192, 192)); m_btnCancel.SetFlat(FALSE); m_btnCancel.SetAlign(CButtonST::ST_ALIGN_HORIZ); m_btnFind.SubclassDlgItem(IDC_FINGANALOG, this); m_btnFind.SetIcon( IDI_ICON_FIND ); m_btnFind.SetFlat(FALSE); m_btnFind.SetAlign(CButtonST::ST_ALIGN_HORIZ); if( g_bStartRun ) { m_btnCopy.EnableWindow( false ); m_btnDel.EnableWindow( false ); m_btnAdd.EnableWindow( false ); //m_btnCopy.ShowWindow(SW_HIDE); //m_btnDel.ShowWindow(SW_HIDE); //m_btnAdd.ShowWindow(SW_HIDE); } SetFields(); if( g_bStartRun==1 && -1==PMS_VerifyUserPermit( g_nUserID,PMS_P_EDITPARAM,"" ) ) { m_btnEdit.EnableWindow( false ); } if( g_bStartRun==1 && -1==PMS_VerifyUserPermit( g_nUserID,PMS_P_SETSTATUS,"" ) ) { m_btnSetStatus.EnableWindow( false ); } if( g_bStartRun==1 && -1==PMS_VerifyUserPermit( g_nUserID,PMS_P_TIME_PLAN,"" ) ) { m_btnDatePlan.EnableWindow( false ); } return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CAnalogDlg::SetFields() { int iIndex = 0; m_ctrlAnalogGrid.m_field.SetSize(38); m_ctrlAnalogGrid.m_field[iIndex].Field=_T("id"); m_ctrlAnalogGrid.m_field[iIndex].Caption=_T("ID"); m_ctrlAnalogGrid.m_field[iIndex].With=50; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("boolreserved3"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strIsModify; m_ctrlAnalogGrid.m_field[iIndex].With=80; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("boolreserved2"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strIsNotice; m_ctrlAnalogGrid.m_field[iIndex].With=110; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("uid"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strVarUid1; m_ctrlAnalogGrid.m_field[iIndex].With=80; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("varname"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strVarName1; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("description"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strVarDesc; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("vartypeid"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strVarTypeID; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("datalen"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strVarDataLen; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("ondesc"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strOnDesc; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("offdesc"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strOffDesc; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("maxvalues"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strMaxValues; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("minvalues"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strMinValues; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("maxconvtrate"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strMaxScale; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("minconvtrate"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strMinScale; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("lowerlimit"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strLowerLimit; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("upperlimit"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strUpperLimit; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("normalstate"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strNormalState; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("setvalue"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strSetValue; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("rearm"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strRearm; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("offsets"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strOffset; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("unit"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strUint; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("collectfrequence"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strCollectFreq; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("coefficient"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strCoef; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("warnlevel"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strAlarmLevel; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("readonly"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strReadWrite; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("issave"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strSaveData; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("realtimeflag"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strCollectThreadData; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("reccurve"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strSaveCurve; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("isdde"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strIsDDE; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("registernum"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strRegNum; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("funcid"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strFuncID; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("childid"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strChildID; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("var_item_id"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strItemID; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("snmpoid"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strSnmpOid; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("fields"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strSnmpPublic; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("intreserved1"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strParamInit; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("intreserved2"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strParamMin; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; m_ctrlAnalogGrid.m_field[iIndex].Field=_T("intreserved3"); m_ctrlAnalogGrid.m_field[iIndex].Caption=g_strParamMax; m_ctrlAnalogGrid.m_field[iIndex].With=200; m_ctrlAnalogGrid.m_field[iIndex].Find=true; iIndex++; Requery(); // 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 CAnalogDlg::Requery() { CString strWhere, str; int nVarSize = pVariantsManager->m_analog.GetSize(); if( nVarSize > 0 ) { strWhere = " id in ("; } for( int i = 0; i < nVarSize; i++ ) { pVariantsManager->m_analog[i]->m_nVarID; if( i == nVarSize - 1 ) { str.Format("%d)", pVariantsManager->m_analog[i]->m_nVarID); strWhere += str; } else { str.Format("%d, ", pVariantsManager->m_analog[i]->m_nVarID); strWhere += str; } } m_ctrlAnalogGrid.Execute(_T("id")/*Primary key field */ ,_T("*")//fields in SELECT statment ,_T("t_dev_variant") //from ,strWhere // where ,0); // order by N of the Grid column // } BEGIN_EVENTSINK_MAP(CAnalogDlg, CDialog) //{{AFX_EVENTSINK_MAP(CAnalogDlg) //}}AFX_EVENTSINK_MAP END_EVENTSINK_MAP() void CAnalogDlg::OnBnClickedAddanalog() { // TODO: 在此添加控件通知处理程序代码 CAnalogPropertyDlg dlg; dlg.m_pSet = m_ctrlAnalogGrid.m_pSet; dlg.m_operation = CAnalogPropertyDlg::NEW; if (dlg.DoModal() == IDOK) { //m_ctrlAnalogGrid.Invalidate(); m_ctrlAnalogGrid.AddNew(); Requery(); CString sContent; sContent.Format("%s %s< %s >",g_strAdd,g_strVariant,dlg.m_sVarName.TrimRight() ); CDBInterface::GetInstancePtr()->InsertLogRecord( LOG_PARAM_ADD,0,"",(char *)(LPCTSTR)sContent ); pDevicesManager->SendNoticeToServer( CMD_NOTICE_READ_DB_VAR,CMD_OPERATE_ADD,"",dlg.m_sUid,dlg.m_nVarID,"64320" ); } } void CAnalogDlg::OnBnClickedEditanalog() { // TODO: 在此添加控件通知处理程序代码 int nRow=m_ctrlAnalogGrid.IsSelectRow(); if(nRow==-1) { MessageBox(g_strSelLine, g_strTip, MB_ICONINFORMATION); return; } int nSelNum = m_ctrlAnalogGrid.GetSelCount(); if( g_bStartRun ) { CAnalogSinglePropertyDlg dlg; dlg.m_pSet=m_ctrlAnalogGrid.m_pSet; dlg.m_nPrevRow = nRow; //dlg.m_operation=CAnalogSinglePropertyDlg::EDIT; dlg.m_operation= nSelNum<2 ? CAnalogSinglePropertyDlg::EDIT : CAnalogSinglePropertyDlg::EDITMORE; for( int i=0;i",g_strEdit,g_strVariant,dlg.m_sVarName.TrimRight() ); CDBInterface::GetInstancePtr()->InsertLogRecord( LOG_PARAM_EDIT,0,"",(char *)(LPCTSTR)sContent ); pDevicesManager->SendNoticeToServer( CMD_NOTICE_READ_DB_VAR,CMD_OPERATE_EDIT,"",dlg.m_sUid,dlg.m_nVarID,"64320" ); } else MessageBox(g_strEditMoreVarOK, g_strTip, MB_ICONINFORMATION); #if EDIT_VAR_IS_FRESH m_ctrlAnalogGrid.Invalidate(FALSE); Requery(); m_ctrlAnalogGrid.Invalidate(TRUE); #endif } } else { CAnalogPropertyDlg dlg; dlg.m_pSet=m_ctrlAnalogGrid.m_pSet; dlg.m_nPrevRow = nRow; //dlg.m_operation=CAnalogPropertyDlg::EDIT; dlg.m_operation= nSelNum<2 ? CAnalogPropertyDlg::EDIT : CAnalogPropertyDlg::EDITMORE; for( int i=0;i",g_strEdit,g_strVariant,dlg.m_sVarName.TrimRight() ); CDBInterface::GetInstancePtr()->InsertLogRecord( LOG_PARAM_EDIT,0,"",(char *)(LPCTSTR)sContent ); pDevicesManager->SendNoticeToServer( CMD_NOTICE_READ_DB_VAR,CMD_OPERATE_EDIT,"",dlg.m_sUid,dlg.m_nVarID,"64320" ); } else MessageBox(g_strEditMoreVarOK, g_strTip, MB_ICONINFORMATION); #if EDIT_VAR_IS_FRESH m_ctrlAnalogGrid.Invalidate(FALSE); Requery(); m_ctrlAnalogGrid.Invalidate(TRUE); #endif } } } void CAnalogDlg::OnBnClickedDelanalog() { // TODO: 在此添加控件通知处理程序代码 int nRow=m_ctrlAnalogGrid.IsSelectRow(); int nSelNum = m_ctrlAnalogGrid.GetSelCount(); m_nArrayListID.RemoveAll(); for( int i=0;i1 ) { if (MessageBox (g_strMsgConfirmDel, g_strMsgPrompt, MB_YESNO|MB_DEFBUTTON2 | MB_ICONQUESTION) == IDYES) { for( int m=0;mGetText()); CString sUid = m_ctrlAnalogGrid.GetCell( nRow, 3 )->GetText(); if( pVariantsManager->DeleteAnalog( nVarID ) ) { CString sContent,sTemp=m_ctrlAnalogGrid.GetCell( nRow, 3 )->GetText(); sContent.Format("%s %s< %s >",g_strDel,g_strVariant,sTemp ); CDBInterface::GetInstancePtr()->InsertLogRecord( LOG_PARAM_DELETE,0,"",(char *)(LPCTSTR)sContent ); pDevicesManager->SendNoticeToServer( CMD_NOTICE_READ_DB_VAR,CMD_OPERATE_DELETE,"",sUid,nVarID,"64320" ); CHAR sVarID[MAX_SQL_LENGTH + 1] = ""; sprintf(sVarID, "%d", nVarID); CDBInterface::GetInstancePtr()->DelTableData( "t_var_status","devuid",(char *)(LPCTSTR)sUid,1,"varid",sVarID,2 ); //m_ctrlAnalogGrid.Delete(); CDBInterface::GetInstancePtr()->DelTableData( "t_dev_variant","id",(char *)(LPCTSTR)sVarID,1 ); } } Requery(); } } else { if(nRow==-1) { MessageBox(g_strSelLine, g_strTip, MB_ICONINFORMATION); return; } if (MessageBox (g_strMsgConfirmDel, g_strMsgPrompt, MB_YESNO|MB_DEFBUTTON2 | MB_ICONQUESTION) == IDYES) { int nVarID = atoi(m_ctrlAnalogGrid.GetCell( nRow, 0 )->GetText()); CString sUid = m_ctrlAnalogGrid.GetCell( nRow, 3 )->GetText(); if( pVariantsManager->DeleteAnalog( nVarID ) ) { CString sContent; sContent.Format("%s %s< %s >",g_strDel,g_strVariant,m_ctrlAnalogGrid.GetCell( nRow, 3 )->GetText() ); CDBInterface::GetInstancePtr()->InsertLogRecord( LOG_PARAM_DELETE,0,"",(char *)(LPCTSTR)sContent ); pDevicesManager->SendNoticeToServer( CMD_NOTICE_READ_DB_VAR,CMD_OPERATE_DELETE,"",sUid,nVarID,"64320" ); CHAR sVarID[MAX_SQL_LENGTH + 1] = ""; sprintf(sVarID, "%d", nVarID); CDBInterface::GetInstancePtr()->DelTableData( "t_var_status","devuid",(char *)(LPCTSTR)sUid,1,"varid",sVarID,2 ); //m_ctrlAnalogGrid.Delete(); CDBInterface::GetInstancePtr()->DelTableData( "t_dev_variant","id",(char *)(LPCTSTR)sVarID,1 ); Requery(); } } } m_ctrlAnalogGrid.m_nArrayListChoose.RemoveAll(); } void CAnalogDlg::OnBnClickedCopyanalog() { // TODO: 在此添加控件通知处理程序代码 if(m_ctrlAnalogGrid.IsSelectRow()==-1) return; CAnalogPropertyDlg dlg; dlg.m_pSet=m_ctrlAnalogGrid.m_pSet; dlg.m_operation=CAnalogPropertyDlg::COPY; if (dlg.DoModal() == IDOK) { m_ctrlAnalogGrid.AddNew(); Requery(); CString sContent; sContent.Format("%s %s< %s >",g_strAdd,g_strVariant,dlg.m_sVarName.TrimRight() ); CDBInterface::GetInstancePtr()->InsertLogRecord( LOG_PARAM_ADD,0,"",(char *)(LPCTSTR)sContent ); pDevicesManager->SendNoticeToServer( CMD_NOTICE_READ_DB_VAR,CMD_OPERATE_ADD,"",dlg.m_sUid,dlg.m_nVarID,"64320" ); } } void CAnalogDlg::OnBnClickedFindanalog() { ShowFindDlg(); } BOOL CAnalogDlg::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult) { // TODO: 在此添加专用代码和/或调用基类 if (wParam == (WPARAM)m_ctrlAnalogGrid.GetDlgCtrlID()) { *pResult = 1; GV_DISPINFO *pDispInfo = (GV_DISPINFO*)lParam; m_ctrlAnalogGrid.SetValue(pDispInfo); } return CDialog::OnNotify(wParam, lParam, pResult); } void CAnalogDlg::OnBnClickedBtnSetStatus() { // TODO: 在此添加控件通知处理程序代码 int nRow=m_ctrlAnalogGrid.IsSelectRow(); if(nRow==-1) { MessageBox(g_strSelLine, g_strTip, MB_ICONINFORMATION); return; } int nVarID = atoi(m_ctrlAnalogGrid.GetCell( nRow, 0 )->GetText()); CString strDevUID = m_ctrlAnalogGrid.GetCell( nRow, 3)->GetText(); CDlgVarStatusManager dlg; dlg.m_strUID = strDevUID; dlg.m_nVarID = nVarID; if( dlg.DoModal() == IDOK ) { CString sContent; sContent.Format("%s %s< %s >",g_strEdit,g_strVariant,m_ctrlAnalogGrid.GetCell( nRow, 0 )->GetText() ); CDBInterface::GetInstancePtr()->InsertLogRecord( LOG_PARAM_SETSTATUS,0,"",(char *)(LPCTSTR)sContent ); pDevicesManager->SendNoticeToServer( CMD_NOTICE_READ_DB_VAR,CMD_OPERATE_EDIT,"",strDevUID,nVarID,"64320" ); } CAnalog *pAnalog = pVariantsManager->FindAnalog(nVarID); if( pAnalog==NULL ) return; list listStatusID, listStatusDesc; list::iterator itStatusID, itStatusDesc; int nCount = 0; nCount = CDBInterface::GetInstancePtr()->GetVarStatusList( (char *)(LPCTSTR)dlg.m_strUID, dlg.m_nVarID, listStatusID, listStatusDesc); if( nCount > 0 ) { list::iterator it; list::iterator it_desc; for( it = pAnalog->m_listStatusID.begin(); it != pAnalog->m_listStatusID.end(); ) { pAnalog->m_listStatusID.erase( it++ ); } for( it_desc = pAnalog->m_listStatusDesc.begin(); it_desc != pAnalog->m_listStatusDesc.end(); ) { pAnalog->m_listStatusDesc.erase( it_desc++ ); } } for( itStatusID = listStatusID.begin(), itStatusDesc = listStatusDesc.begin(); itStatusID != listStatusID.end(), itStatusDesc != listStatusDesc.end(); itStatusID++, itStatusDesc++) { pAnalog->m_listStatusID.insert( pAnalog->m_listStatusID.end(), atoi((*itStatusID).c_str()) ); pAnalog->m_listStatusDesc.insert( pAnalog->m_listStatusDesc.end(), (*itStatusDesc).c_str() ); } } void CAnalogDlg::OnBnClickedBtnDatePlan() { // TODO: 在此添加控件通知处理程序代码 int nRow=m_ctrlAnalogGrid.IsSelectRow(); if(nRow==-1) { MessageBox(g_strSelLine, g_strTip, MB_ICONINFORMATION); return; } int nVarID = atoi(m_ctrlAnalogGrid.GetCell( nRow, 0 )->GetText()); CString strDevUID = m_ctrlAnalogGrid.GetCell( nRow, 3)->GetText(); CDlgDatePlan dlg; dlg.m_nPlanType = PLAN_TYPE_EQUIP; dlg.m_strUid = strDevUID; dlg.m_nVarID = nVarID; if(dlg.DoModal() == IDOK) { CString sContent; sContent.Format("%s %s< %s >",g_strEdit,g_strVariant,m_ctrlAnalogGrid.GetCell( nRow, 0 )->GetText() ); CDBInterface::GetInstancePtr()->InsertLogRecord( LOG_PARAM_TIMEPLAN_EIDT,0,"",(char *)(LPCTSTR)sContent ); pDevicesManager->SendNoticeToServer( CMD_NOTICE_READ_DB_VAR,CMD_OPERATE_EDIT,"",dlg.m_strUid,dlg.m_nVarID,"64320" ); //pVariantsManager->AllocDatePlan(); } } void CAnalogDlg::OnBnClickedBtnClose() { // TODO: 在此添加控件通知处理程序代码 //pVariantsManager->Store(g_strDirectory); OnCancel(); } void CAnalogDlg::OnClose() { // TODO: 在此添加消息处理程序代码和/或调用默认值 //pVariantsManager->Store(g_strDirectory); CDialog::OnClose(); } LRESULT CAnalogDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) { // TODO: 在此添加专用代码和/或调用基类 switch( message ) { case WM_DCLICK: { if( g_bStartRun==1 && -1==PMS_VerifyUserPermit( g_nUserID,PMS_P_EDITPARAM,"" ) ) { return -1; } if( g_bStartRun ) { CAnalogSinglePropertyDlg dlg; dlg.m_pSet=m_ctrlAnalogGrid.m_pSet; dlg.m_operation=CAnalogSinglePropertyDlg::EDIT; if (dlg.DoModal() == IDOK) { CString sContent; sContent.Format("%s %s< %s >",g_strEdit,g_strVariant,dlg.m_sVarName.TrimRight() ); CDBInterface::GetInstancePtr()->InsertLogRecord( LOG_PARAM_EDIT,0,"",(char *)(LPCTSTR)sContent ); pDevicesManager->SendNoticeToServer( CMD_NOTICE_READ_DB_VAR,CMD_OPERATE_EDIT,"",dlg.m_sUid,dlg.m_nVarID,"64320" ); #if EDIT_VAR_IS_FRESH m_ctrlAnalogGrid.Invalidate(FALSE); Requery(); m_ctrlAnalogGrid.Invalidate(TRUE); #endif } } else { CAnalogPropertyDlg dlg; dlg.m_pSet=m_ctrlAnalogGrid.m_pSet; dlg.m_operation=CAnalogPropertyDlg::EDIT; if (dlg.DoModal() == IDOK) { CString sContent; sContent.Format("%s %s< %s >",g_strEdit,g_strVariant,dlg.m_sVarName.TrimRight() ); CDBInterface::GetInstancePtr()->InsertLogRecord( LOG_PARAM_EDIT,0,"",(char *)(LPCTSTR)sContent ); pDevicesManager->SendNoticeToServer( CMD_NOTICE_READ_DB_VAR,CMD_OPERATE_EDIT,"",dlg.m_sUid,dlg.m_nVarID,"64320" ); #if EDIT_VAR_IS_FRESH m_ctrlAnalogGrid.Invalidate(FALSE); Requery(); m_ctrlAnalogGrid.Invalidate(TRUE); #endif } } } break; } return CDialog::WindowProc(message, wParam, lParam); } BOOL CAnalogDlg::PreTranslateMessage(MSG* pMsg) { // TODO: 在此添加专用代码和/或调用基类 if (pMsg-> message == WM_KEYDOWN) { if( pMsg-> wParam=='F') { if(::GetKeyState(VK_CONTROL) < 0) { ShowFindDlg(); } } } return CDialog::PreTranslateMessage(pMsg); } void CAnalogDlg::ShowFindDlg() { if( g_pDlgParamFind==NULL ) { g_pDlgParamFind = new CDlg_ParamFind(); g_pDlgParamFind->Create( IDD_DLG_PARAMFIND,this ); g_pDlgParamFind->m_pAnalog = this; CRect rectFrame,rect; this->GetWindowRect( rectFrame ); rect.left = rectFrame.left;//rectFrame.left+rectFrame.Width()/2-250/2; rect.top = rectFrame.top;//rectFrame.top+rectFrame.Height()/2-500/2; rect.right = rect.left+250; rect.bottom = rect.top+150; g_pDlgParamFind->MoveWindow( rect ); int count=0; for(int i=0;im_Comb_FindType.InsertString(count,m_ctrlAnalogGrid.m_field[i].Caption ); count++; } } g_pDlgParamFind->m_Comb_FindType.SetCurSel( 0 ); } g_pDlgParamFind->ShowWindow( true ); }