Dlg_ControllerProperty.cpp 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641
  1. // Dlg_ControllerProperty.cpp : 实现文件
  2. //
  3. #include "stdafx.h"
  4. #include "StoneU_Door.h"
  5. #include "Dlg_ControllerProperty.h"
  6. #include ".\dlg_controllerproperty.h"
  7. #include "Global.h"
  8. #include "DBConnection.h"
  9. // CDlg_ControllerProperty 对话框
  10. IMPLEMENT_DYNAMIC(CDlg_ControllerProperty, CDialog)
  11. CDlg_ControllerProperty::CDlg_ControllerProperty(CWnd* pParent /*=NULL*/)
  12. : CDialog(CDlg_ControllerProperty::IDD, pParent)
  13. , m_sEdit_ControlName(_T(""))
  14. , m_sEdit_ControlSN(_T(""))
  15. , m_nComb_ComPort(0)
  16. , m_sEdit_IP(_T(""))
  17. , m_nComb_WordMode(0)
  18. , m_nComb_DoorNumber(0)
  19. , m_nComb_BrandType(0)
  20. , m_bCheck_Isuse(FALSE)
  21. , m_sEdit_Port(_T(""))
  22. {
  23. m_nDoorCount=1;
  24. m_nOperate = ADD;
  25. }
  26. CDlg_ControllerProperty::~CDlg_ControllerProperty()
  27. {
  28. }
  29. void CDlg_ControllerProperty::DoDataExchange(CDataExchange* pDX)
  30. {
  31. CDialog::DoDataExchange(pDX);
  32. DDX_Text(pDX, IDC_EDIT_NAME, m_sEdit_ControlName);
  33. DDX_Text(pDX, IDC_EDIT_SN, m_sEdit_ControlSN);
  34. DDX_CBIndex(pDX, IDC_COMBO_COM, m_nComb_ComPort);
  35. DDX_Control(pDX, IDC_COMBO_COM, m_Comb_Port);
  36. DDX_Text(pDX, IDC_EDIT_IP, m_sEdit_IP);
  37. DDX_Control(pDX, IDC_COMBO_WORDMDOE, m_Comb_WordMode);
  38. DDX_CBIndex(pDX, IDC_COMBO_WORDMDOE, m_nComb_WordMode);
  39. DDX_Control(pDX, IDC_COMBO_DOORNUMBER, m_Comb_DoorNumber);
  40. DDX_CBIndex(pDX, IDC_COMBO_DOORNUMBER, m_nComb_DoorNumber);
  41. DDX_CBIndex(pDX, IDC_COMBO_BRANDTYPE, m_nComb_BrandType);
  42. DDX_Control(pDX, IDC_LIST_DOOR, m_List_DoorInfo);
  43. DDX_Check(pDX, IDC_CHECK1, m_bCheck_Isuse);
  44. DDX_Text(pDX, IDC_EDIT_PORT, m_sEdit_Port);
  45. }
  46. BEGIN_MESSAGE_MAP(CDlg_ControllerProperty, CDialog)
  47. ON_WM_CTLCOLOR()
  48. ON_WM_ERASEBKGND()
  49. ON_CBN_SELCHANGE(IDC_COMBO_WORDMDOE, OnCbnSelchangeComboWordmdoe)
  50. ON_CBN_SELCHANGE(IDC_COMBO_DOORNUMBER, OnCbnSelchangeComboDoornumber)
  51. ON_BN_CLICKED(IDOK, OnBnClickedOk)
  52. END_MESSAGE_MAP()
  53. // CDlg_ControllerProperty 消息处理程序
  54. BOOL CDlg_ControllerProperty::OnInitDialog()
  55. {
  56. CDialog::OnInitDialog();
  57. // TODO: 在此添加额外的初始化
  58. InitList();
  59. CString str;
  60. for( int i=1;i<10;i++ )
  61. {
  62. str.Format( "COM%d",i );
  63. m_Comb_Port.InsertString( i-1,str );
  64. }
  65. switch( m_nOperate )
  66. {
  67. case ADD:
  68. {
  69. m_List_DoorInfo.InsertItem( 0,"门1" );
  70. m_List_DoorInfo.SetItemText( 0,1,"门1" );
  71. m_List_DoorInfo.SetItemText( 0,2,"3" );
  72. m_List_DoorInfo.SetItemText( 0,3,"启用" );
  73. }
  74. break;
  75. case EDIT:
  76. {
  77. if( ReadController( m_Controller.nID ) )
  78. {
  79. m_sEdit_ControlName = g_ControllerTemp.sName;
  80. m_sEdit_ControlSN = g_ControllerTemp.sSN;
  81. m_nComb_ComPort = g_ControllerTemp.nComPort-1;
  82. m_sEdit_IP = g_ControllerTemp.sIP;
  83. m_nComb_WordMode = g_ControllerTemp.nWordMode;
  84. m_nComb_DoorNumber = g_ControllerTemp.nDoorCount;
  85. m_nComb_BrandType = g_ControllerTemp.nBrandType;
  86. m_bCheck_Isuse = g_ControllerTemp.bForbid;
  87. m_sEdit_Port = g_ControllerTemp.sPort;
  88. m_nDoorCount = g_ControllerTemp.nDoorCount;
  89. CString s;
  90. s.Format( "g_ControllerTemp.bForbid = %d",g_ControllerTemp.bForbid );
  91. WriteLog( s );
  92. if( m_nComb_WordMode==1 )
  93. {
  94. GetDlgItem(IDC_COMBO_COM)->EnableWindow( false );
  95. GetDlgItem(IDC_EDIT_IP)->EnableWindow( true );
  96. GetDlgItem(IDC_EDIT_PORT)->EnableWindow( true );
  97. }
  98. else
  99. {
  100. GetDlgItem(IDC_COMBO_COM)->EnableWindow( true );
  101. GetDlgItem(IDC_EDIT_IP)->EnableWindow( false );
  102. GetDlgItem(IDC_EDIT_PORT)->EnableWindow( false );
  103. }
  104. switch( m_nDoorCount )
  105. {
  106. case 1: m_nComb_DoorNumber = 0; break;
  107. case 2: m_nComb_DoorNumber = 1; break;
  108. case 4: m_nComb_DoorNumber = 2; break;
  109. case 8: m_nComb_DoorNumber = 3; break;
  110. }
  111. for( int i=0;i<m_nDoorCount;i++ )
  112. {
  113. CString s1,s2,s3,s4,s5;
  114. s1.Format( "门%d",i+1 );
  115. GetContentFromDoorInfo( g_ControllerTemp.sDoorAll[i+1],s2,s3,s4,s5 );
  116. m_List_DoorInfo.InsertItem( i,s1 );
  117. m_List_DoorInfo.SetItemText( i,1,s2 );
  118. m_List_DoorInfo.SetItemText( i,2,s3 );
  119. m_List_DoorInfo.SetItemText( i,3,s5 );
  120. }
  121. UpdateData( false );
  122. }
  123. }
  124. break;
  125. }
  126. return TRUE; // return TRUE unless you set the focus to a control
  127. // 异常: OCX 属性页应返回 FALSE
  128. }
  129. void CDlg_ControllerProperty::GetContentFromDoorInfo( CString sDoorInfo,CString &sName,CString &sDelay,CString &sStatus,CString &sIsuse )
  130. {
  131. int nPos1=0,nPos2=0;
  132. nPos2 = sDoorInfo.Find( "*",nPos1 );
  133. sName = sDoorInfo.Mid( nPos1,nPos2-nPos1);
  134. nPos1 = nPos2+1;
  135. nPos2 = sDoorInfo.Find( "*",nPos1 );
  136. sDelay = sDoorInfo.Mid( nPos1,nPos2-nPos1);
  137. nPos1 = nPos2+1;
  138. nPos2 = sDoorInfo.Find( "*",nPos1 );
  139. sStatus = sDoorInfo.Mid( nPos1,nPos2-nPos1);
  140. nPos1 = nPos2+1;
  141. sIsuse = sDoorInfo.Mid( nPos1,sDoorInfo.GetLength()-nPos1);
  142. if( sIsuse=="0" )
  143. sIsuse = "启用";
  144. else if( sIsuse=="1" )
  145. sIsuse = "禁用";
  146. }
  147. HBRUSH CDlg_ControllerProperty::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
  148. {
  149. HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
  150. // TODO: 在此更改 DC 的任何属性
  151. // TODO: 如果默认的不是所需画笔,则返回另一个画笔
  152. return hbr;
  153. }
  154. BOOL CDlg_ControllerProperty::OnEraseBkgnd(CDC* pDC)
  155. {
  156. // TODO: 在此添加消息处理程序代码和/或调用默认值
  157. return CDialog::OnEraseBkgnd(pDC);
  158. }
  159. void CDlg_ControllerProperty::OnCbnSelchangeComboWordmdoe()
  160. {
  161. UpdateData();
  162. if( m_nComb_WordMode==1 )
  163. {
  164. GetDlgItem(IDC_COMBO_COM)->EnableWindow( false );
  165. GetDlgItem(IDC_EDIT_IP)->EnableWindow( true );
  166. GetDlgItem(IDC_EDIT_PORT)->EnableWindow( true );
  167. }
  168. else
  169. {
  170. GetDlgItem(IDC_COMBO_COM)->EnableWindow( true );
  171. GetDlgItem(IDC_EDIT_IP)->EnableWindow( false );
  172. GetDlgItem(IDC_EDIT_PORT)->EnableWindow( false );
  173. }
  174. }
  175. int CDlg_ControllerProperty::InitList(void)
  176. {
  177. //m_List_Info.InsertColumn( 0, "执行时刻" );
  178. //m_List_Info.InsertColumn( 1, "人员信息" );
  179. //m_List_Info.InsertColumn( 2, "描述" );
  180. //m_List_Info.InsertColumn( 3, "信息" );
  181. //m_List_Info.SetColumnWidth( 0, 120 );
  182. //m_List_Info.SetColumnWidth( 1, 200);
  183. //m_List_Info.SetColumnWidth( 2, 200);
  184. //m_List_Info.SetColumnWidth( 3, 650);
  185. //m_List_Info.SetExtendedStyle(m_List_Info.GetExtendedStyle() | LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
  186. //m_List_Rule.SetColColor(0,RGB(10,150,20)); //设置列背景色
  187. //m_List_Rule.SetColColor(2,RGB(30,100,90)); //设置列背景色
  188. //m_List_Rule.SetBkColor(RGB(50,10,10)); //设置背景色
  189. //m_List_Rule.SetItemColor(1,1,RGB(100,100,10)); //设置指定单元背景色
  190. //m_List_Rule.SetRowHeigt(25); //设置行高度
  191. //m_List_Rule.SetHeaderHeight(1.5); //设置头部高度
  192. //m_List_Rule.SetHeaderFontHW(16,0); //设置头部字体高度,和宽度,0表示缺省,自适应
  193. //m_List_Record.SetHeaderTextColor(RGB(0,0,0)); //设置头部字体颜色
  194. //m_List_Rule.SetTextColor(RGB(0,255,255)); //设置文本颜色
  195. m_List_DoorInfo.SetHeaderBKColor(213,222,242,8); //设置头部背景色
  196. ////m_List_Rule.SetFontHW(15,0); //设置字体高度,和宽度,0表示缺省宽度
  197. //m_List_Rule.SetColTextColor(2,RGB(255,255,100)); //设置列文本颜色
  198. //m_List_Rule.SetItemTextColor(3,1,RGB(255,0,0)); //设置单元格字体颜色
  199. m_List_DoorInfo.InsertColumn(0,"门序号",LVCFMT_CENTER,110);
  200. m_List_DoorInfo.InsertColumn(1,g_strDoorName,LVCFMT_CENTER,110);
  201. m_List_DoorInfo.InsertColumn(2,"开门延时",LVCFMT_CENTER,110);
  202. m_List_DoorInfo.InsertColumn(3,"监控开关",LVCFMT_CENTER,110);
  203. SetWindowLong(m_List_DoorInfo.m_hWnd ,GWL_EXSTYLE,WS_EX_CLIENTEDGE);
  204. m_List_DoorInfo.SetExtendedStyle(LVS_EX_GRIDLINES); //设置扩展风格为网格
  205. ::SendMessage(m_List_DoorInfo.m_hWnd, LVM_SETEXTENDEDLISTVIEWSTYLE,LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);
  206. m_List_DoorInfo.SetRowHeigt( 20 );
  207. m_List_DoorInfo.SetItemType( 1,TYPE_EDIT );
  208. //m_List_DoorInfo.SetItemType( 2,TYPE_EDIT );
  209. //m_List_DoorInfo.SetItemType( 3,TYPE_COMB );
  210. //m_List_DoorInfo.m_saCombData[3].Add( "启用" );
  211. //m_List_DoorInfo.m_saCombData[3].Add( "禁用" );
  212. return 0;
  213. }
  214. void CDlg_ControllerProperty::SetDoorToList( int iDoorCount )
  215. {
  216. CString str;
  217. int nListCount = m_List_DoorInfo.GetItemCount();
  218. if( nListCount>iDoorCount )
  219. {
  220. for( int i=nListCount-1;i>=iDoorCount;i-- )
  221. m_List_DoorInfo.DeleteItem( i );
  222. }
  223. else if( nListCount<iDoorCount )
  224. {
  225. for( int i=nListCount;i<iDoorCount;i++ )
  226. {
  227. str.Format("门%d",i+1 );
  228. m_List_DoorInfo.InsertItem( i,str );
  229. m_List_DoorInfo.SetItemText( i,1,str );
  230. m_List_DoorInfo.SetItemText( i,2,"3" );
  231. m_List_DoorInfo.SetItemText( i,3,"启用" );
  232. }
  233. }
  234. }
  235. void CDlg_ControllerProperty::OnCbnSelchangeComboDoornumber()
  236. {
  237. UpdateData();
  238. int nDoorCount=0;
  239. switch( m_nComb_DoorNumber )
  240. {
  241. case 0: nDoorCount = 1; break;
  242. case 1: nDoorCount = 2; break;
  243. case 2: nDoorCount = 4; break;
  244. case 3: nDoorCount = 8; break;
  245. }
  246. m_nDoorCount = nDoorCount;
  247. SetDoorToList( nDoorCount );
  248. }
  249. void CDlg_ControllerProperty::OnBnClickedOk()
  250. {
  251. // TODO: 在此添加控件通知处理程序代码
  252. UpdateData();
  253. CString sShow;
  254. CString s1,s2,s3,s4;
  255. CString sDoorName[10],sDoorAll[10];
  256. for( int i=0;i<m_List_DoorInfo.GetItemCount();i++ )
  257. {
  258. s1 = m_List_DoorInfo.GetItemText( i,1 );
  259. s2 = m_List_DoorInfo.GetItemText( i,2 );
  260. s3 = m_List_DoorInfo.GetItemText( i,3 );
  261. sDoorName[i+1].Format( "%s",s1 );
  262. sDoorAll[i+1].Format( "%s*%s*在线*%d",s1,s2,s3=="启用"?0:1 );
  263. }
  264. int nDoorCur = m_Comb_DoorNumber.GetCurSel();
  265. switch( nDoorCur )
  266. {
  267. case 0:
  268. {
  269. if( sDoorName[1]=="" )
  270. {
  271. sShow.Format("%s%s",g_strDoorName1,g_strNotNull );
  272. MessageBox( sShow, g_strTip, MB_ICONINFORMATION);
  273. return;
  274. }
  275. }break;
  276. case 1:
  277. {
  278. if( sDoorName[1]=="" )
  279. {
  280. sShow.Format("%s%s",g_strDoorName1,g_strNotNull );
  281. MessageBox( sShow, g_strTip, MB_ICONINFORMATION);
  282. return;
  283. }
  284. if( sDoorName[2]=="" )
  285. {
  286. sShow.Format("%s%s",g_strDoorName2,g_strNotNull );
  287. MessageBox( sShow, g_strTip, MB_ICONINFORMATION);
  288. return;
  289. }
  290. }break;
  291. case 2:
  292. {
  293. if( sDoorName[1]=="" )
  294. {
  295. sShow.Format("%s%s",g_strDoorName1,g_strNotNull );
  296. MessageBox( sShow, g_strTip, MB_ICONINFORMATION);
  297. return;
  298. }
  299. if( sDoorName[2]=="" )
  300. {
  301. sShow.Format("%s%s",g_strDoorName2,g_strNotNull );
  302. MessageBox( sShow, g_strTip, MB_ICONINFORMATION);
  303. return;
  304. }
  305. if( sDoorName[3]=="" )
  306. {
  307. sShow.Format("%s%s",g_strDoorName3,g_strNotNull );
  308. MessageBox( sShow, g_strTip, MB_ICONINFORMATION);
  309. return;
  310. }
  311. if( sDoorName[4]=="" )
  312. {
  313. sShow.Format("%s%s",g_strDoorName4,g_strNotNull );
  314. MessageBox( sShow, g_strTip, MB_ICONINFORMATION);
  315. return;
  316. }
  317. }break;
  318. case 3:
  319. {
  320. if( sDoorName[1]=="" )
  321. {
  322. sShow.Format("%s%s",g_strDoorName1,g_strNotNull );
  323. MessageBox( sShow, g_strTip, MB_ICONINFORMATION);
  324. return;
  325. }
  326. if( sDoorName[2]=="" )
  327. {
  328. sShow.Format("%s%s",g_strDoorName2,g_strNotNull );
  329. MessageBox( sShow, g_strTip, MB_ICONINFORMATION);
  330. return;
  331. }
  332. if( sDoorName[3]=="" )
  333. {
  334. sShow.Format("%s%s",g_strDoorName3,g_strNotNull );
  335. MessageBox( sShow, g_strTip, MB_ICONINFORMATION);
  336. return;
  337. }
  338. if( sDoorName[4]=="" )
  339. {
  340. sShow.Format("%s%s",g_strDoorName4,g_strNotNull );
  341. MessageBox( sShow, g_strTip, MB_ICONINFORMATION);
  342. return;
  343. }
  344. if( sDoorName[5]=="" )
  345. {
  346. sShow.Format("%s%s",g_strDoorName5,g_strNotNull );
  347. MessageBox( sShow, g_strTip, MB_ICONINFORMATION);
  348. return;
  349. }
  350. if( sDoorName[6]=="" )
  351. {
  352. sShow.Format("%s%s",g_strDoorName6,g_strNotNull );
  353. MessageBox( sShow, g_strTip, MB_ICONINFORMATION);
  354. return;
  355. }
  356. if( sDoorName[7]=="" )
  357. {
  358. sShow.Format("%s%s",g_strDoorName7,g_strNotNull );
  359. MessageBox( sShow, g_strTip, MB_ICONINFORMATION);
  360. return;
  361. }
  362. if( sDoorName[8]=="" )
  363. {
  364. sShow.Format("%s%s",g_strDoorName8,g_strNotNull );
  365. MessageBox( sShow, g_strTip, MB_ICONINFORMATION);
  366. return;
  367. }
  368. }
  369. break;
  370. }
  371. for( int i=0;i<m_List_DoorInfo.GetItemCount();i++ )
  372. {
  373. s1 = m_List_DoorInfo.GetItemText( i,1 );
  374. for( int j=i+1;j<m_List_DoorInfo.GetItemCount();j++ )
  375. {
  376. s2 = m_List_DoorInfo.GetItemText( j,1 );
  377. if( s1==s2 )
  378. {
  379. sShow.Format("%s%s",g_strDoorName,g_strExist );
  380. MessageBox( sShow, g_strTip, MB_ICONINFORMATION);
  381. return ;
  382. }
  383. }
  384. }
  385. int nID = -1;
  386. switch( m_nOperate )
  387. {
  388. case ADD:
  389. {
  390. nID = InsertControlInfo( m_nComb_BrandType,(char *)(LPCTSTR)m_sEdit_ControlName,(char *)(LPCTSTR)m_sEdit_ControlSN,
  391. m_nComb_WordMode,m_nComb_ComPort+1,(char *)(LPCTSTR)m_sEdit_IP,(char *)(LPCTSTR)m_sEdit_Port,m_bCheck_Isuse,m_nDoorCount,
  392. (char *)(LPCTSTR)sDoorAll[1],(char *)(LPCTSTR)sDoorAll[2],(char *)(LPCTSTR)sDoorAll[3],(char *)(LPCTSTR)sDoorAll[4],
  393. (char *)(LPCTSTR)sDoorAll[5],(char *)(LPCTSTR)sDoorAll[6],(char *)(LPCTSTR)sDoorAll[7],(char *)(LPCTSTR)sDoorAll[8] );
  394. }
  395. break;
  396. case EDIT:
  397. {
  398. UpdateControlInfo( m_Controller.nID,m_nComb_BrandType,(char *)(LPCTSTR)m_sEdit_ControlName,(char *)(LPCTSTR)m_sEdit_ControlSN,
  399. m_nComb_WordMode,m_nComb_ComPort+1,(char *)(LPCTSTR)m_sEdit_IP,(char *)(LPCTSTR)m_sEdit_Port,m_bCheck_Isuse,m_nDoorCount,
  400. (char *)(LPCTSTR)sDoorAll[1],(char *)(LPCTSTR)sDoorAll[2],(char *)(LPCTSTR)sDoorAll[3],(char *)(LPCTSTR)sDoorAll[4],
  401. (char *)(LPCTSTR)sDoorAll[5],(char *)(LPCTSTR)sDoorAll[6],(char *)(LPCTSTR)sDoorAll[7],(char *)(LPCTSTR)sDoorAll[8] );
  402. nID = m_Controller.nID;
  403. }
  404. break;
  405. }
  406. if( nID>0 )
  407. {
  408. m_Controller.nID = nID;
  409. m_Controller.sName = m_sEdit_ControlName;
  410. m_Controller.nBrandType = m_nComb_BrandType;
  411. m_Controller.sSN = m_sEdit_ControlSN;
  412. m_Controller.nWordMode = m_nComb_WordMode;
  413. m_Controller.nComPort = m_nComb_ComPort+1;
  414. m_Controller.sIP = m_sEdit_IP;
  415. m_Controller.sPort = m_sEdit_Port;
  416. m_Controller.bForbid = m_bCheck_Isuse;
  417. m_Controller.nDoorCount = m_nDoorCount;
  418. for( int i=0;i<10;i++ )
  419. m_Controller.sDoorName[i] = sDoorName[i];
  420. OnOK();
  421. }
  422. else
  423. {
  424. }
  425. }
  426. CString CDlg_ControllerProperty::GetDoorNameFromDoorInfo( CString sDoorInfo )
  427. {
  428. CString sRet;
  429. int nPos1=0,nPos2=0;
  430. nPos2 = sDoorInfo.Find( "*",nPos1 );
  431. sRet = sDoorInfo.Mid( nPos1,nPos2-nPos1);
  432. return sRet;
  433. }
  434. bool CDlg_ControllerProperty::ReadController( int nID )
  435. {
  436. bool bRet = false;
  437. CHAR strSQLText[MAX_SQL_LENGTH + 1] = "";
  438. list<string> list1,list2,list3,list4,list5,list6,list7,list8,list9,list10;
  439. list<string> list11,list12,list13,list14,list15,list16,list17,list18,list19,list20;
  440. list<string> list21,list22,list23,list24,list25,list26,list27,list28,list29,list30;
  441. list<string>::iterator it_list1,it_list2,it_list3,it_list4,it_list5,it_list6,it_list7,it_list8,it_list9,it_list10;
  442. list<string>::iterator it_list11,it_list12,it_list13,it_list14,it_list15,it_list16,it_list17,it_list18,it_list19,it_list20;
  443. list<string>::iterator it_list21,it_list22,it_list23,it_list24,it_list25,it_list26,it_list27,it_list28,it_list29,it_list30;
  444. if(!_stricmp(g_strDBType, "PGSQL"))
  445. {
  446. sprintf(strSQLText, "select id, nbrandtype, scontrolname,ssn,nwordmode,ncomport,sip,sport,nforbid,ndoorconut,sdoor1,sdoor2,sdoor3,sdoor4,sdoor5,sdoor6,sdoor7,sdoor8, "\
  447. "intreserved1,intreserved2,intreserved3,intreserved4,intreserved5,intreserved6,strreserved1,strreserved2,strreserved3,strreserved4,strreserved5,strreserved6 "\
  448. "from t_door_control where id=%d",nID);
  449. }
  450. else
  451. {
  452. sprintf(strSQLText, "select id, nbrandtype, scontrolname,ssn,nwordmode,ncomport,sip,sport,nforbid,ndoorconut,sdoor1,sdoor2,sdoor3,sdoor4,sdoor5,sdoor6,sdoor7,sdoor8, "\
  453. "intreserved1,intreserved2,intreserved3,intreserved4,intreserved5,intreserved6,strreserved1,strreserved2,strreserved3,strreserved4,strreserved5,strreserved6 "\
  454. "from t_door_control where id=%d",nID);
  455. }
  456. int nRet = GetFieldValueList30( strSQLText,list1,list2,list3,list4,list5,list6,list7,list8,list9,list10
  457. ,list11,list12,list13,list14,list15,list16,list17,list18,list19,list20
  458. ,list21,list22,list23,list24,list25,list26,list27,list28,list29,list30);
  459. if( 0 == list1.size() || 0 == list2.size() )
  460. {
  461. return bRet;
  462. }
  463. if( nRet != -1 )
  464. {
  465. bRet = true;
  466. CString sID,sBrandType,sControlName,sSn,sWordMode,sComPort,sIP,sPort,sForbid,sDoorCount;
  467. CString sDoor1,sDoor2,sDoor3,sDoor4,sDoor5,sDoor6,sDoor7,sDoor8;
  468. CString sTemp;
  469. for( it_list1=list1.begin(),it_list2=list2.begin(),it_list3=list3.begin(),
  470. it_list4=list4.begin(),it_list5=list5.begin(),it_list6=list6.begin(),
  471. it_list7=list7.begin(),it_list8=list8.begin(),it_list9=list9.begin(),
  472. it_list10=list10.begin(),it_list11=list11.begin(),it_list12=list12.begin(),
  473. it_list13=list13.begin(),it_list14=list14.begin(),it_list15=list15.begin(),
  474. it_list16=list16.begin(),it_list17=list17.begin(),it_list18=list18.begin();
  475. it_list1!=list1.end() && it_list2!=list2.end() && it_list3!=list3.end() &&
  476. it_list4!=list4.end() && it_list5!=list5.end() && it_list6!=list6.end() &&
  477. it_list7!=list7.end() && it_list8!=list8.end() && it_list9!=list9.end() &&
  478. it_list10!=list10.end() && it_list11!=list11.end() && it_list12!=list12.end() &&
  479. it_list13!=list13.end() && it_list14!=list14.end() && it_list15!=list15.end() &&
  480. it_list16!=list16.end() && it_list17!=list17.end() && it_list18!=list18.end();
  481. it_list1++,it_list2++,it_list3++,
  482. it_list4++,it_list5++,it_list6++,
  483. it_list7++,it_list8++,it_list9++,
  484. it_list10++,it_list11++,it_list12++,
  485. it_list13++,it_list14++,it_list15++,
  486. it_list16++,it_list17++,it_list18++ )
  487. {
  488. sID = (*it_list1).c_str();
  489. sBrandType = (*it_list2).c_str();
  490. sControlName = (*it_list3).c_str();
  491. sSn = (*it_list4).c_str();
  492. sWordMode = (*it_list5).c_str();
  493. sComPort = (*it_list6).c_str();
  494. sIP = (*it_list7).c_str();
  495. sPort = (*it_list8).c_str();
  496. sForbid = (*it_list9).c_str();
  497. sDoorCount = (*it_list10).c_str();
  498. sDoor1 = (*it_list11).c_str();
  499. sDoor2 = (*it_list12).c_str();
  500. sDoor3 = (*it_list13).c_str();
  501. sDoor4 = (*it_list14).c_str();
  502. sDoor5 = (*it_list15).c_str();
  503. sDoor6 = (*it_list16).c_str();
  504. sDoor7 = (*it_list17).c_str();
  505. sDoor8 = (*it_list18).c_str();
  506. g_ControllerTemp.nID = atoi( sID );
  507. g_ControllerTemp.nBrandType = atoi( sBrandType );
  508. g_ControllerTemp.sName = sControlName;
  509. g_ControllerTemp.sSN = sSn;
  510. g_ControllerTemp.nWordMode = atoi( sWordMode );
  511. g_ControllerTemp.nComPort = atoi( sComPort );
  512. g_ControllerTemp.sIP = sIP;
  513. g_ControllerTemp.sPort = sPort;
  514. g_ControllerTemp.bForbid = atoi( sForbid );
  515. g_ControllerTemp.nDoorCount = atoi( sDoorCount );
  516. g_ControllerTemp.sDoorName[1] = GetDoorNameFromDoorInfo( sDoor1 );
  517. g_ControllerTemp.sDoorName[2] = GetDoorNameFromDoorInfo( sDoor2 );
  518. g_ControllerTemp.sDoorName[3] = GetDoorNameFromDoorInfo( sDoor3 );
  519. g_ControllerTemp.sDoorName[4] = GetDoorNameFromDoorInfo( sDoor4 );
  520. g_ControllerTemp.sDoorName[5] = GetDoorNameFromDoorInfo( sDoor5 );
  521. g_ControllerTemp.sDoorName[6] = GetDoorNameFromDoorInfo( sDoor6 );
  522. g_ControllerTemp.sDoorName[7] = GetDoorNameFromDoorInfo( sDoor7 );
  523. g_ControllerTemp.sDoorName[8] = GetDoorNameFromDoorInfo( sDoor8 );
  524. g_ControllerTemp.sDoorAll[1] = sDoor1;
  525. g_ControllerTemp.sDoorAll[2] = sDoor2;
  526. g_ControllerTemp.sDoorAll[3] = sDoor3;
  527. g_ControllerTemp.sDoorAll[4] = sDoor4;
  528. g_ControllerTemp.sDoorAll[5] = sDoor5;
  529. g_ControllerTemp.sDoorAll[6] = sDoor6;
  530. g_ControllerTemp.sDoorAll[7] = sDoor7;
  531. g_ControllerTemp.sDoorAll[8] = sDoor8;
  532. }
  533. }
  534. 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(),
  535. it_list7=list7.begin(),it_list8=list8.begin(),it_list9=list9.begin(),it_list10=list10.begin(),it_list11=list11.begin(),it_list12=list12.begin(),
  536. it_list13=list13.begin(),it_list14=list14.begin(),it_list15=list15.begin(),it_list16=list16.begin(),it_list17=list17.begin(),it_list18=list18.begin(),
  537. it_list19=list19.begin(),it_list20=list20.begin(),it_list21=list21.begin(),it_list22=list22.begin(),it_list23=list23.begin(),it_list24=list24.begin(),
  538. it_list25=list25.begin(),it_list26=list26.begin(),it_list27=list27.begin(),it_list28=list28.begin(),it_list29=list29.begin(),it_list30=list30.begin();
  539. it_list1!=list1.end(),it_list2!=list2.end(),it_list3!=list3.end(),it_list4!=list4.end(),it_list5!=list5.end(),it_list6!=list6.end(),
  540. it_list7!=list7.end(),it_list8!=list8.end(),it_list9!=list9.end(),it_list10!=list10.end(),it_list11!=list11.end(),it_list12!=list12.end(),
  541. it_list13!=list13.end(),it_list14!=list14.end(),it_list15!=list15.end(),it_list16!=list16.end(),it_list17!=list17.end(),it_list18!=list18.end(),
  542. it_list19!=list19.end(),it_list20!=list20.end(),it_list21!=list21.end(),it_list22!=list22.end(),it_list23!=list23.end(),it_list24!=list24.end(),
  543. it_list25!=list25.end(),it_list26!=list26.end(),it_list27!=list27.end(),it_list28!=list28.end(),it_list29!=list29.end(),it_list30!=list30.end();)
  544. {
  545. list1.erase(it_list1++);
  546. list2.erase(it_list2++);
  547. list3.erase(it_list3++);
  548. list4.erase(it_list4++);
  549. list5.erase(it_list5++);
  550. list6.erase(it_list6++);
  551. list7.erase(it_list7++);
  552. list8.erase(it_list8++);
  553. list9.erase(it_list9++);
  554. list10.erase(it_list10++);
  555. list11.erase(it_list11++);
  556. list12.erase(it_list12++);
  557. list13.erase(it_list13++);
  558. list14.erase(it_list14++);
  559. list15.erase(it_list15++);
  560. list16.erase(it_list16++);
  561. list17.erase(it_list17++);
  562. list18.erase(it_list18++);
  563. list19.erase(it_list19++);
  564. list20.erase(it_list20++);
  565. list21.erase(it_list21++);
  566. list22.erase(it_list22++);
  567. list23.erase(it_list23++);
  568. list24.erase(it_list24++);
  569. list25.erase(it_list25++);
  570. list26.erase(it_list26++);
  571. list27.erase(it_list27++);
  572. list28.erase(it_list28++);
  573. list29.erase(it_list29++);
  574. list30.erase(it_list30++);
  575. }
  576. return bRet;
  577. }