// Dlg_ControllerProperty.cpp : 实现文件 // #include "stdafx.h" #include "StoneU_Door.h" #include "Dlg_ControllerProperty.h" #include ".\dlg_controllerproperty.h" #include "Global.h" #include "DBConnection.h" // CDlg_ControllerProperty 对话框 IMPLEMENT_DYNAMIC(CDlg_ControllerProperty, CDialog) CDlg_ControllerProperty::CDlg_ControllerProperty(CWnd* pParent /*=NULL*/) : CDialog(CDlg_ControllerProperty::IDD, pParent) , m_sEdit_ControlName(_T("")) , m_sEdit_ControlSN(_T("")) , m_nComb_ComPort(0) , m_sEdit_IP(_T("")) , m_nComb_WordMode(0) , m_nComb_DoorNumber(0) , m_nComb_BrandType(0) , m_bCheck_Isuse(FALSE) , m_sEdit_Port(_T("")) { m_nDoorCount=1; m_nOperate = ADD; } CDlg_ControllerProperty::~CDlg_ControllerProperty() { } void CDlg_ControllerProperty::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT_NAME, m_sEdit_ControlName); DDX_Text(pDX, IDC_EDIT_SN, m_sEdit_ControlSN); DDX_CBIndex(pDX, IDC_COMBO_COM, m_nComb_ComPort); DDX_Control(pDX, IDC_COMBO_COM, m_Comb_Port); DDX_Text(pDX, IDC_EDIT_IP, m_sEdit_IP); DDX_Control(pDX, IDC_COMBO_WORDMDOE, m_Comb_WordMode); DDX_CBIndex(pDX, IDC_COMBO_WORDMDOE, m_nComb_WordMode); DDX_Control(pDX, IDC_COMBO_DOORNUMBER, m_Comb_DoorNumber); DDX_CBIndex(pDX, IDC_COMBO_DOORNUMBER, m_nComb_DoorNumber); DDX_CBIndex(pDX, IDC_COMBO_BRANDTYPE, m_nComb_BrandType); DDX_Control(pDX, IDC_LIST_DOOR, m_List_DoorInfo); DDX_Check(pDX, IDC_CHECK1, m_bCheck_Isuse); DDX_Text(pDX, IDC_EDIT_PORT, m_sEdit_Port); } BEGIN_MESSAGE_MAP(CDlg_ControllerProperty, CDialog) ON_WM_CTLCOLOR() ON_WM_ERASEBKGND() ON_CBN_SELCHANGE(IDC_COMBO_WORDMDOE, OnCbnSelchangeComboWordmdoe) ON_CBN_SELCHANGE(IDC_COMBO_DOORNUMBER, OnCbnSelchangeComboDoornumber) ON_BN_CLICKED(IDOK, OnBnClickedOk) END_MESSAGE_MAP() // CDlg_ControllerProperty 消息处理程序 BOOL CDlg_ControllerProperty::OnInitDialog() { CDialog::OnInitDialog(); // TODO: 在此添加额外的初始化 InitList(); CString str; for( int i=1;i<10;i++ ) { str.Format( "COM%d",i ); m_Comb_Port.InsertString( i-1,str ); } switch( m_nOperate ) { case ADD: { m_List_DoorInfo.InsertItem( 0,"门1" ); m_List_DoorInfo.SetItemText( 0,1,"门1" ); m_List_DoorInfo.SetItemText( 0,2,"3" ); m_List_DoorInfo.SetItemText( 0,3,"启用" ); } break; case EDIT: { if( ReadController( m_Controller.nID ) ) { m_sEdit_ControlName = g_ControllerTemp.sName; m_sEdit_ControlSN = g_ControllerTemp.sSN; m_nComb_ComPort = g_ControllerTemp.nComPort-1; m_sEdit_IP = g_ControllerTemp.sIP; m_nComb_WordMode = g_ControllerTemp.nWordMode; m_nComb_DoorNumber = g_ControllerTemp.nDoorCount; m_nComb_BrandType = g_ControllerTemp.nBrandType; m_bCheck_Isuse = g_ControllerTemp.bForbid; m_sEdit_Port = g_ControllerTemp.sPort; m_nDoorCount = g_ControllerTemp.nDoorCount; CString s; s.Format( "g_ControllerTemp.bForbid = %d",g_ControllerTemp.bForbid ); WriteLog( s ); if( m_nComb_WordMode==1 ) { GetDlgItem(IDC_COMBO_COM)->EnableWindow( false ); GetDlgItem(IDC_EDIT_IP)->EnableWindow( true ); GetDlgItem(IDC_EDIT_PORT)->EnableWindow( true ); } else { GetDlgItem(IDC_COMBO_COM)->EnableWindow( true ); GetDlgItem(IDC_EDIT_IP)->EnableWindow( false ); GetDlgItem(IDC_EDIT_PORT)->EnableWindow( false ); } switch( m_nDoorCount ) { case 1: m_nComb_DoorNumber = 0; break; case 2: m_nComb_DoorNumber = 1; break; case 4: m_nComb_DoorNumber = 2; break; case 8: m_nComb_DoorNumber = 3; break; } for( int i=0;iEnableWindow( false ); GetDlgItem(IDC_EDIT_IP)->EnableWindow( true ); GetDlgItem(IDC_EDIT_PORT)->EnableWindow( true ); } else { GetDlgItem(IDC_COMBO_COM)->EnableWindow( true ); GetDlgItem(IDC_EDIT_IP)->EnableWindow( false ); GetDlgItem(IDC_EDIT_PORT)->EnableWindow( false ); } } int CDlg_ControllerProperty::InitList(void) { //m_List_Info.InsertColumn( 0, "执行时刻" ); //m_List_Info.InsertColumn( 1, "人员信息" ); //m_List_Info.InsertColumn( 2, "描述" ); //m_List_Info.InsertColumn( 3, "信息" ); //m_List_Info.SetColumnWidth( 0, 120 ); //m_List_Info.SetColumnWidth( 1, 200); //m_List_Info.SetColumnWidth( 2, 200); //m_List_Info.SetColumnWidth( 3, 650); //m_List_Info.SetExtendedStyle(m_List_Info.GetExtendedStyle() | LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT); //m_List_Rule.SetColColor(0,RGB(10,150,20)); //设置列背景色 //m_List_Rule.SetColColor(2,RGB(30,100,90)); //设置列背景色 //m_List_Rule.SetBkColor(RGB(50,10,10)); //设置背景色 //m_List_Rule.SetItemColor(1,1,RGB(100,100,10)); //设置指定单元背景色 //m_List_Rule.SetRowHeigt(25); //设置行高度 //m_List_Rule.SetHeaderHeight(1.5); //设置头部高度 //m_List_Rule.SetHeaderFontHW(16,0); //设置头部字体高度,和宽度,0表示缺省,自适应 //m_List_Record.SetHeaderTextColor(RGB(0,0,0)); //设置头部字体颜色 //m_List_Rule.SetTextColor(RGB(0,255,255)); //设置文本颜色 m_List_DoorInfo.SetHeaderBKColor(213,222,242,8); //设置头部背景色 ////m_List_Rule.SetFontHW(15,0); //设置字体高度,和宽度,0表示缺省宽度 //m_List_Rule.SetColTextColor(2,RGB(255,255,100)); //设置列文本颜色 //m_List_Rule.SetItemTextColor(3,1,RGB(255,0,0)); //设置单元格字体颜色 m_List_DoorInfo.InsertColumn(0,"门序号",LVCFMT_CENTER,110); m_List_DoorInfo.InsertColumn(1,g_strDoorName,LVCFMT_CENTER,110); m_List_DoorInfo.InsertColumn(2,"开门延时",LVCFMT_CENTER,110); m_List_DoorInfo.InsertColumn(3,"监控开关",LVCFMT_CENTER,110); SetWindowLong(m_List_DoorInfo.m_hWnd ,GWL_EXSTYLE,WS_EX_CLIENTEDGE); m_List_DoorInfo.SetExtendedStyle(LVS_EX_GRIDLINES); //设置扩展风格为网格 ::SendMessage(m_List_DoorInfo.m_hWnd, LVM_SETEXTENDEDLISTVIEWSTYLE,LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT); m_List_DoorInfo.SetRowHeigt( 20 ); m_List_DoorInfo.SetItemType( 1,TYPE_EDIT ); //m_List_DoorInfo.SetItemType( 2,TYPE_EDIT ); //m_List_DoorInfo.SetItemType( 3,TYPE_COMB ); //m_List_DoorInfo.m_saCombData[3].Add( "启用" ); //m_List_DoorInfo.m_saCombData[3].Add( "禁用" ); return 0; } void CDlg_ControllerProperty::SetDoorToList( int iDoorCount ) { CString str; int nListCount = m_List_DoorInfo.GetItemCount(); if( nListCount>iDoorCount ) { for( int i=nListCount-1;i>=iDoorCount;i-- ) m_List_DoorInfo.DeleteItem( i ); } else if( nListCount0 ) { m_Controller.nID = nID; m_Controller.sName = m_sEdit_ControlName; m_Controller.nBrandType = m_nComb_BrandType; m_Controller.sSN = m_sEdit_ControlSN; m_Controller.nWordMode = m_nComb_WordMode; m_Controller.nComPort = m_nComb_ComPort+1; m_Controller.sIP = m_sEdit_IP; m_Controller.sPort = m_sEdit_Port; m_Controller.bForbid = m_bCheck_Isuse; m_Controller.nDoorCount = m_nDoorCount; for( int i=0;i<10;i++ ) m_Controller.sDoorName[i] = sDoorName[i]; OnOK(); } else { } } CString CDlg_ControllerProperty::GetDoorNameFromDoorInfo( CString sDoorInfo ) { CString sRet; int nPos1=0,nPos2=0; nPos2 = sDoorInfo.Find( "*",nPos1 ); sRet = sDoorInfo.Mid( nPos1,nPos2-nPos1); return sRet; } bool CDlg_ControllerProperty::ReadController( int nID ) { bool bRet = false; CHAR strSQLText[MAX_SQL_LENGTH + 1] = ""; list list1,list2,list3,list4,list5,list6,list7,list8,list9,list10; list list11,list12,list13,list14,list15,list16,list17,list18,list19,list20; list list21,list22,list23,list24,list25,list26,list27,list28,list29,list30; list::iterator it_list1,it_list2,it_list3,it_list4,it_list5,it_list6,it_list7,it_list8,it_list9,it_list10; list::iterator it_list11,it_list12,it_list13,it_list14,it_list15,it_list16,it_list17,it_list18,it_list19,it_list20; list::iterator it_list21,it_list22,it_list23,it_list24,it_list25,it_list26,it_list27,it_list28,it_list29,it_list30; if(!_stricmp(g_strDBType, "PGSQL")) { sprintf(strSQLText, "select id, nbrandtype, scontrolname,ssn,nwordmode,ncomport,sip,sport,nforbid,ndoorconut,sdoor1,sdoor2,sdoor3,sdoor4,sdoor5,sdoor6,sdoor7,sdoor8, "\ "intreserved1,intreserved2,intreserved3,intreserved4,intreserved5,intreserved6,strreserved1,strreserved2,strreserved3,strreserved4,strreserved5,strreserved6 "\ "from t_door_control where id=%d",nID); } else { sprintf(strSQLText, "select id, nbrandtype, scontrolname,ssn,nwordmode,ncomport,sip,sport,nforbid,ndoorconut,sdoor1,sdoor2,sdoor3,sdoor4,sdoor5,sdoor6,sdoor7,sdoor8, "\ "intreserved1,intreserved2,intreserved3,intreserved4,intreserved5,intreserved6,strreserved1,strreserved2,strreserved3,strreserved4,strreserved5,strreserved6 "\ "from t_door_control where id=%d",nID); } int nRet = GetFieldValueList30( strSQLText,list1,list2,list3,list4,list5,list6,list7,list8,list9,list10 ,list11,list12,list13,list14,list15,list16,list17,list18,list19,list20 ,list21,list22,list23,list24,list25,list26,list27,list28,list29,list30); if( 0 == list1.size() || 0 == list2.size() ) { return bRet; } if( nRet != -1 ) { bRet = true; CString sID,sBrandType,sControlName,sSn,sWordMode,sComPort,sIP,sPort,sForbid,sDoorCount; CString sDoor1,sDoor2,sDoor3,sDoor4,sDoor5,sDoor6,sDoor7,sDoor8; CString sTemp; for( it_list1=list1.begin(),it_list2=list2.begin(),it_list3=list3.begin(), it_list4=list4.begin(),it_list5=list5.begin(),it_list6=list6.begin(), it_list7=list7.begin(),it_list8=list8.begin(),it_list9=list9.begin(), it_list10=list10.begin(),it_list11=list11.begin(),it_list12=list12.begin(), it_list13=list13.begin(),it_list14=list14.begin(),it_list15=list15.begin(), it_list16=list16.begin(),it_list17=list17.begin(),it_list18=list18.begin(); it_list1!=list1.end() && it_list2!=list2.end() && it_list3!=list3.end() && it_list4!=list4.end() && it_list5!=list5.end() && it_list6!=list6.end() && it_list7!=list7.end() && it_list8!=list8.end() && it_list9!=list9.end() && it_list10!=list10.end() && it_list11!=list11.end() && it_list12!=list12.end() && it_list13!=list13.end() && it_list14!=list14.end() && it_list15!=list15.end() && it_list16!=list16.end() && it_list17!=list17.end() && it_list18!=list18.end(); it_list1++,it_list2++,it_list3++, it_list4++,it_list5++,it_list6++, it_list7++,it_list8++,it_list9++, it_list10++,it_list11++,it_list12++, it_list13++,it_list14++,it_list15++, it_list16++,it_list17++,it_list18++ ) { sID = (*it_list1).c_str(); sBrandType = (*it_list2).c_str(); sControlName = (*it_list3).c_str(); sSn = (*it_list4).c_str(); sWordMode = (*it_list5).c_str(); sComPort = (*it_list6).c_str(); sIP = (*it_list7).c_str(); sPort = (*it_list8).c_str(); sForbid = (*it_list9).c_str(); sDoorCount = (*it_list10).c_str(); sDoor1 = (*it_list11).c_str(); sDoor2 = (*it_list12).c_str(); sDoor3 = (*it_list13).c_str(); sDoor4 = (*it_list14).c_str(); sDoor5 = (*it_list15).c_str(); sDoor6 = (*it_list16).c_str(); sDoor7 = (*it_list17).c_str(); sDoor8 = (*it_list18).c_str(); g_ControllerTemp.nID = atoi( sID ); g_ControllerTemp.nBrandType = atoi( sBrandType ); g_ControllerTemp.sName = sControlName; g_ControllerTemp.sSN = sSn; g_ControllerTemp.nWordMode = atoi( sWordMode ); g_ControllerTemp.nComPort = atoi( sComPort ); g_ControllerTemp.sIP = sIP; g_ControllerTemp.sPort = sPort; g_ControllerTemp.bForbid = atoi( sForbid ); g_ControllerTemp.nDoorCount = atoi( sDoorCount ); g_ControllerTemp.sDoorName[1] = GetDoorNameFromDoorInfo( sDoor1 ); g_ControllerTemp.sDoorName[2] = GetDoorNameFromDoorInfo( sDoor2 ); g_ControllerTemp.sDoorName[3] = GetDoorNameFromDoorInfo( sDoor3 ); g_ControllerTemp.sDoorName[4] = GetDoorNameFromDoorInfo( sDoor4 ); g_ControllerTemp.sDoorName[5] = GetDoorNameFromDoorInfo( sDoor5 ); g_ControllerTemp.sDoorName[6] = GetDoorNameFromDoorInfo( sDoor6 ); g_ControllerTemp.sDoorName[7] = GetDoorNameFromDoorInfo( sDoor7 ); g_ControllerTemp.sDoorName[8] = GetDoorNameFromDoorInfo( sDoor8 ); g_ControllerTemp.sDoorAll[1] = sDoor1; g_ControllerTemp.sDoorAll[2] = sDoor2; g_ControllerTemp.sDoorAll[3] = sDoor3; g_ControllerTemp.sDoorAll[4] = sDoor4; g_ControllerTemp.sDoorAll[5] = sDoor5; g_ControllerTemp.sDoorAll[6] = sDoor6; g_ControllerTemp.sDoorAll[7] = sDoor7; g_ControllerTemp.sDoorAll[8] = sDoor8; } } for( it_list1=list1.begin(),it_list2=list2.begin(),it_list3=list3.begin(),it_list4=list4.begin(),it_list5=list5.begin(),it_list6=list6.begin(), it_list7=list7.begin(),it_list8=list8.begin(),it_list9=list9.begin(),it_list10=list10.begin(),it_list11=list11.begin(),it_list12=list12.begin(), it_list13=list13.begin(),it_list14=list14.begin(),it_list15=list15.begin(),it_list16=list16.begin(),it_list17=list17.begin(),it_list18=list18.begin(), it_list19=list19.begin(),it_list20=list20.begin(),it_list21=list21.begin(),it_list22=list22.begin(),it_list23=list23.begin(),it_list24=list24.begin(), it_list25=list25.begin(),it_list26=list26.begin(),it_list27=list27.begin(),it_list28=list28.begin(),it_list29=list29.begin(),it_list30=list30.begin(); it_list1!=list1.end(),it_list2!=list2.end(),it_list3!=list3.end(),it_list4!=list4.end(),it_list5!=list5.end(),it_list6!=list6.end(), it_list7!=list7.end(),it_list8!=list8.end(),it_list9!=list9.end(),it_list10!=list10.end(),it_list11!=list11.end(),it_list12!=list12.end(), it_list13!=list13.end(),it_list14!=list14.end(),it_list15!=list15.end(),it_list16!=list16.end(),it_list17!=list17.end(),it_list18!=list18.end(), it_list19!=list19.end(),it_list20!=list20.end(),it_list21!=list21.end(),it_list22!=list22.end(),it_list23!=list23.end(),it_list24!=list24.end(), it_list25!=list25.end(),it_list26!=list26.end(),it_list27!=list27.end(),it_list28!=list28.end(),it_list29!=list29.end(),it_list30!=list30.end();) { list1.erase(it_list1++); list2.erase(it_list2++); list3.erase(it_list3++); list4.erase(it_list4++); list5.erase(it_list5++); list6.erase(it_list6++); list7.erase(it_list7++); list8.erase(it_list8++); list9.erase(it_list9++); list10.erase(it_list10++); list11.erase(it_list11++); list12.erase(it_list12++); list13.erase(it_list13++); list14.erase(it_list14++); list15.erase(it_list15++); list16.erase(it_list16++); list17.erase(it_list17++); list18.erase(it_list18++); list19.erase(it_list19++); list20.erase(it_list20++); list21.erase(it_list21++); list22.erase(it_list22++); list23.erase(it_list23++); list24.erase(it_list24++); list25.erase(it_list25++); list26.erase(it_list26++); list27.erase(it_list27++); list28.erase(it_list28++); list29.erase(it_list29++); list30.erase(it_list30++); } return bRet; }