123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272 |
- // AnalogPropertyDlg1.cpp : implementation file
- //
- #include "stdafx.h"
- #include "IDE.h"
- #include "DlgVarStatus.h"
- #include "StringOperation.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
- /////////////////////////////////////////////////////////////////////////////
- // CDlgVarStatus dialog
- CDlgVarStatus::CDlgVarStatus(CWnd* pParent /*=NULL*/)
- : CDialog(CDlgVarStatus::IDD, pParent)
- {
- //{{AFX_DATA_INIT(CDlgVarStatus)
- //}}AFX_DATA_INIT
- m_operation=EDIT;
- m_DDXFields.SetSize(6);
- }
- void CDlgVarStatus::DoDataExchange(CDataExchange* pDX)
- {
- CDialog::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(CDlgVarStatus)
- //}}AFX_DATA_MAP
- m_DDXFields.DDX(pDX);
- }
- BEGIN_MESSAGE_MAP(CDlgVarStatus, CDialog)
- //{{AFX_MSG_MAP(CDlgVarStatus)
- //}}AFX_MSG_MAP
- ON_BN_CLICKED(IDC_BTN_CANCEL, OnBnClickedBtnCancel)
- ON_BN_CLICKED(IDC_BTN_SAVE, OnBnClickedBtnSave)
- END_MESSAGE_MAP()
- /////////////////////////////////////////////////////////////////////////////
- // CDlgVarStatus message handlers
- BOOL CDlgVarStatus::OnInitDialog()
- {
- CDialog::OnInitDialog();
- int i;
- m_DDXFields.m_pWnd=this;
- i=0;
- m_DDXFields.ElementAt(i).Set(_T("id"), IDC_EDT_ID);
- m_DDXFields.ElementAt(i).m_description=_T("ID");
- m_DDXFields.ElementAt(i).m_nDataType = DATA_NUM;
- i=1;
- m_DDXFields.ElementAt(i).Set(_T( "devuid" ),IDC_EDT_VAR_UID) ;
- m_DDXFields.ElementAt(i).m_description=g_strDevUid2;
- m_DDXFields.ElementAt(i).m_nDataType = DATA_STR;
- i=2;
- m_DDXFields.ElementAt(i).Set(_T( "varid" ),IDC_EDT_VAR_ID) ;
- m_DDXFields.ElementAt(i).m_description=g_strVarID;
- m_DDXFields.ElementAt(i).m_nDataType = DATA_NUM;
- i=3;
- m_DDXFields.ElementAt(i).Set(_T( "statusid" ),IDC_EDT_ALARM_STATUS) ;
- m_DDXFields.ElementAt(i).m_description=g_strAlarmStatus;
- m_DDXFields.ElementAt(i).m_nDataType = DATA_NUM;
- i=4;
- m_DDXFields.ElementAt(i).Set(_T( "statusdesc" ),IDC_EDT_ALARM_STATUS_DESC) ;
- m_DDXFields.ElementAt(i).m_description=g_strAlarmStatusDesc;
- m_DDXFields.ElementAt(i).m_nDataType = DATA_STR;
- i=5;
- m_DDXFields.ElementAt(i).Set(_T( "normalstatus" ),IDC_EDT_NORMAL_STATUS_ID) ;
- m_DDXFields.ElementAt(i).m_description=g_strNormalStatusID;
- m_DDXFields.ElementAt(i).m_nDataType = DATA_NUM;
- UpdateData(TRUE);
- switch (m_operation)
- {
- case NEW:
- break;
- default:
- m_DDXFields.ReadData(m_pSet);
- break;
- }
- UpdateData(FALSE);
- CString str;
- str.Format("%d", m_nVarID);
- GetDlgItem(IDC_EDT_VAR_ID)->SetWindowText(str);
- GetDlgItem(IDC_EDT_VAR_UID)->SetWindowText(m_strUID);
- if( m_operation == NEW )
- {
- GetDlgItem(IDC_EDT_NORMAL_STATUS_ID)->SetWindowText("0");
- }
- m_btnSave.SubclassDlgItem(IDC_BTN_SAVE, this);
- m_btnSave.SetBitmaps(IDB_SAVE, RGB(255, 0, 255));
- m_btnSave.SetFlat(FALSE);
- m_btnSave.SetAlign(CButtonST::ST_ALIGN_HORIZ);
- m_btnCancel.SubclassDlgItem(IDC_BTN_CANCEL, this);
- m_btnCancel.SetBitmaps(IDB_DEL, RGB(255, 0, 255));
- m_btnCancel.SetFlat(FALSE);
- m_btnCancel.SetAlign(CButtonST::ST_ALIGN_HORIZ);
- return TRUE; // return TRUE unless you set the focus to a control
- // EXCEPTION: OCX Property Pages should return FALSE
- }
- void CDlgVarStatus::OnBnClickedBtnCancel()
- {
- // TODO: 在此添加控件通知处理程序代码
- OnCancel();
- }
- int CDlgVarStatus::CheckDataValid()
- {
- CHAR szID[MAX_ID] = {0};
-
- CString strAlarmStatusID, strAlarmStatusDesc, strNormalStatus;
- strAlarmStatusID = m_DDXFields.GetAt(3).m_value;
- strAlarmStatusDesc = m_DDXFields.GetAt(4).m_value;
- strNormalStatus = m_DDXFields.GetAt(5).m_value;
- if( !strAlarmStatusID.Compare("") )
- {
- return 1;
- }
- if( !strAlarmStatusDesc.Compare("") )
- {
- return 2;
- }
- if( !strNormalStatus.Compare("") )
- {
- return 3;
- }
- int nRet = CDBInterface::GetInstancePtr()->GetVarStatusID( (char *)(LPCTSTR)m_strUID, m_nVarID,
- atoi( strAlarmStatusID ), (char *)(LPCTSTR)strAlarmStatusDesc, szID );
- if( nRet > 0 )
- {
- return 4;
- }
- return 0;
- }
- void CDlgVarStatus::OnBnClickedBtnSave()
- {
- // TODO: 在此添加控件通知处理程序代码
- // 存盘操作
- CExString strField;
- CHAR szMaxID[MAX_ID + 1] = {0};
- CHAR strSQLText[MAX_SQL_LENGTH + 1] = {0};
- CString s1,s2,s3;
- GetDlgItem(IDC_EDT_ALARM_STATUS)->GetWindowText( s1 );
- GetDlgItem(IDC_EDT_ALARM_STATUS_DESC)->GetWindowText( s2 );
- GetDlgItem(IDC_EDT_NORMAL_STATUS_ID)->GetWindowText( s3 );
-
- s1 = s1.Trim();
- s2 = s2.Trim();
- s3 = s3.Trim();
- if( s1.Compare("")==0 || s2.Compare("")==0 || s3.Compare("")==0 )
- {
- MessageBox(g_strInputIsBlank, g_strTip, MB_ICONINFORMATION);
- return;
- }
- CDBInterface::GetInstancePtr()->GetMaxID("t_var_status", "id", szMaxID);
- int nID;
- CString strID;
- try
- {
- switch (m_operation)
- {
- case EDIT:
- //nID = atoi(szMaxID);
- break;
- default:
- if( atoi(szMaxID) > 0 )
- {
- nID = atoi(szMaxID) + 1;
- }
- else if( atoi(szMaxID) == 0 )
- {
- nID = 1;
- }
- strID.Format("%d", nID);
- GetDlgItem(IDC_EDT_ID)->SetWindowText(strID);
- //m_pSet->AddNew();
- break;
- }
- UpdateData(TRUE);
- try
- {
- // 校验数据的正确性
- int nRet = CheckDataValid();
- if( nRet == 1 )
- {
- MessageBox(g_strAlarmStatusIDCannotEmpty, g_strTip, MB_ICONWARNING);
- //CDialog::OnOK();
- return;
- }
- else if( nRet == 2 )
- {
- MessageBox(g_strAlarmStatusDescCannotEmpty, g_strTip, MB_ICONWARNING);
- //CDialog::OnOK();
- return;
- }
- else if( nRet == 3 )
- {
- MessageBox(g_strNormalStatusIDCannotBlank, g_strTip, MB_ICONWARNING);
- //CDialog::OnOK();
- return;
- }
- else if( nRet == 4 && ( m_operation == NEW || m_operation == COPY ) )
- {
- MessageBox(g_strAlarmStatusInfoExist, g_strTip, MB_ICONWARNING);
- //CDialog::OnOK();
- return;
- }
- sprintf(strSQLText, "insert into t_var_status(id, devuid, varid, statusid, statusdesc, normalstatus) values(");
- if( m_DDXFields.WriteData("t_var_status", strSQLText, m_operation) == -1 ) return;
- }
- catch(...)
- {
- ;
- }
- UpdateData(FALSE);
- CDialog::OnOK();
- }//try
- catch( _com_error &e )
- {
- CString mes1,mes2,mes3,mes4;
- mes1.Format(_T("Error:%08lx.\n"), e.Error());
- mes2.Format(_T("ErrorMessage:%s.\n"), e.ErrorMessage());
- mes3.Format(_T("Source:%s.\n"), (LPCTSTR) _bstr_t(e.Source()));
- mes4.Format(_T("Description:%s.\n"), (LPCTSTR) _bstr_t(e.Description()));
- MessageBox(mes1+mes2+mes3+mes4,_T("Invalid field "),MB_ICONERROR);
- return;
- }
- catch(...)
- {
- MessageBox(_T("Unhandled Exception"),_T("Invalid field ")+strField,MB_ICONERROR);
- return;
- }
- }
|