DlgUserEquipAlloc.cpp 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. // DlgUserManager.cpp : 实现文件
  2. //
  3. #include "stdafx.h"
  4. #include "IDE.h"
  5. #include "DlgUserEquipAlloc.h"
  6. #include "StringOperation.h"
  7. #include ".\dlguserequipalloc.h"
  8. // CDlgUserEquipAlloc 对话框
  9. IMPLEMENT_DYNAMIC(CDlgUserEquipAlloc, CDialog)
  10. CDlgUserEquipAlloc::CDlgUserEquipAlloc(CWnd* pParent /*=NULL*/)
  11. : CDialog(CDlgUserEquipAlloc::IDD, pParent)
  12. {
  13. }
  14. CDlgUserEquipAlloc::~CDlgUserEquipAlloc()
  15. {
  16. }
  17. void CDlgUserEquipAlloc::DoDataExchange(CDataExchange* pDX)
  18. {
  19. CDialog::DoDataExchange(pDX);
  20. DDX_Control(pDX, IDC_LIST_SRC, m_ctrlListBoxSrc);
  21. DDX_Control(pDX, IDC_LIST_DEST, m_ctrlListBoxDest);
  22. }
  23. BEGIN_MESSAGE_MAP(CDlgUserEquipAlloc, CDialog)
  24. ON_BN_CLICKED(IDC_BTN_SEL_SINGLE, OnBnClickedBtnSelSingle)
  25. ON_BN_CLICKED(IDC_BTN_SEL_ALL, OnBnClickedBtnSelAll)
  26. ON_BN_CLICKED(IDC_BTN_REVERSE_SEL_SINGLE, OnBnClickedBtnReverseSelSingle)
  27. ON_BN_CLICKED(IDC_BTN_REVERSE_SEL_ALL, OnBnClickedBtnReverseSelAll)
  28. ON_BN_CLICKED(IDOK, OnBnClickedOk)
  29. ON_BN_CLICKED(IDCANCEL, OnBnClickedCancel)
  30. END_MESSAGE_MAP()
  31. // CDlgUserEquipAlloc 消息处理程序
  32. BOOL CDlgUserEquipAlloc::OnInitDialog()
  33. {
  34. CDialog::OnInitDialog();
  35. // TODO: 在此添加额外的初始化
  36. InitCtrlInfo();
  37. return TRUE; // return TRUE unless you set the focus to a control
  38. // 异常: OCX 属性页应返回 FALSE
  39. }
  40. void CDlgUserEquipAlloc::InitCtrlInfo(void)
  41. {
  42. InitListCtrlInfo();
  43. }
  44. void CDlgUserEquipAlloc::InitListCtrlInfo(void)
  45. {
  46. m_ctrlListBoxSrc.ResetContent();
  47. m_ctrlListBoxDest.ResetContent();
  48. int nChannelsSize = pDevicesManager->m_channels.GetSize();
  49. int nDeviceSize = 0;
  50. int nSrcIndex = 0, nDestIndex = 0;
  51. for( int i = 0; i < nChannelsSize; i++ )
  52. {
  53. nDeviceSize = pDevicesManager->m_channels[i]->m_Devices.GetSize();
  54. for( int j = 0; j < nDeviceSize; j++ )
  55. {
  56. if( !CDBInterface::GetInstancePtr()->HasDevAlloc( (char *)(LPCTSTR)m_strUserID,
  57. (char *)(LPCTSTR)pDevicesManager->m_channels[i]->m_Devices[j]->m_strUID) )
  58. {
  59. m_ctrlListBoxSrc.InsertString(nSrcIndex, pDevicesManager->m_channels[i]->m_Devices[j]->m_strName);
  60. nSrcIndex++;
  61. }
  62. else
  63. {
  64. m_ctrlListBoxDest.InsertString(nDestIndex, pDevicesManager->m_channels[i]->m_Devices[j]->m_strName);
  65. nDestIndex++;
  66. }
  67. }
  68. }
  69. }
  70. void CDlgUserEquipAlloc::OnBnClickedBtnSelSingle()
  71. {
  72. // TODO: 在此添加控件通知处理程序代码
  73. CString str;
  74. int nCount, i, nIndex = 0;
  75. CArray<int,int> arrayListSel;
  76. nCount = m_ctrlListBoxSrc.GetSelCount();
  77. arrayListSel.SetSize( nCount );
  78. m_ctrlListBoxSrc.GetSelItems( nCount, arrayListSel.GetData() );
  79. for( i = 0; i < nCount; i++ )
  80. {
  81. m_ctrlListBoxSrc.GetText( arrayListSel[i] - nIndex, str );
  82. m_ctrlListBoxSrc.DeleteString( arrayListSel[i] - nIndex );
  83. m_ctrlListBoxSrc.SetSel( arrayListSel[i] - nIndex, FALSE );
  84. m_ctrlListBoxDest.AddString( str );
  85. nIndex++;
  86. }
  87. }
  88. void CDlgUserEquipAlloc::OnBnClickedBtnSelAll()
  89. {
  90. // TODO: 在此添加控件通知处理程序代码
  91. CString str;
  92. int i, nCount, nIndex = 0;
  93. nCount = m_ctrlListBoxSrc.GetCount();
  94. for( i = 0; i < nCount; i++ )
  95. {
  96. m_ctrlListBoxSrc.GetText( i - nIndex, str );
  97. m_ctrlListBoxSrc.DeleteString( i - nIndex );
  98. m_ctrlListBoxDest.AddString( str );
  99. nIndex++;
  100. }
  101. }
  102. void CDlgUserEquipAlloc::OnBnClickedBtnReverseSelSingle()
  103. {
  104. CString str;
  105. int nCount, i, nIndex = 0;
  106. CArray<int,int> arrayListSel;
  107. nCount = m_ctrlListBoxDest.GetSelCount();
  108. arrayListSel.SetSize( nCount );
  109. m_ctrlListBoxDest.GetSelItems( nCount, arrayListSel.GetData() );
  110. for( i = 0; i < nCount; i++ )
  111. {
  112. m_ctrlListBoxDest.GetText( arrayListSel[i] - nIndex, str );
  113. m_ctrlListBoxDest.DeleteString( arrayListSel[i] - nIndex );
  114. m_ctrlListBoxDest.SetSel( arrayListSel[i] - nIndex, FALSE );
  115. m_ctrlListBoxSrc.AddString( str );
  116. nIndex++;
  117. }
  118. }
  119. void CDlgUserEquipAlloc::OnBnClickedBtnReverseSelAll()
  120. {
  121. CString str;
  122. int i, nCount, nIndex = 0;
  123. nCount = m_ctrlListBoxDest.GetCount();
  124. for( i = 0; i < nCount; i++ )
  125. {
  126. m_ctrlListBoxDest.GetText( i - nIndex, str );
  127. m_ctrlListBoxDest.DeleteString( i - nIndex );
  128. m_ctrlListBoxSrc.AddString( str );
  129. nIndex++;
  130. }
  131. }
  132. void CDlgUserEquipAlloc::OnBnClickedOk()
  133. {
  134. // TODO: 在此添加控件通知处理程序代码
  135. CString str;
  136. int i, nCount, nID = 0;
  137. CHAR szUid[20] = {0};
  138. CHAR szMaxID[MAX_ID] = {0};
  139. nCount = m_ctrlListBoxDest.GetCount();
  140. CDBInterface::GetInstancePtr()->DelUserDevInfo((char *)(LPCTSTR)m_strUserID);
  141. for( i = 0; i < nCount; i++ )
  142. {
  143. m_ctrlListBoxDest.GetText( i, str );
  144. CDBInterface::GetInstancePtr()->GetDevUID( (char *)(LPCTSTR)str, szUid );
  145. CDBInterface::GetInstancePtr()->GetMaxID("t_role_equip", "id", szMaxID);
  146. if( atoi(szMaxID) > 0 )
  147. {
  148. nID = atoi(szMaxID) + 1;
  149. }
  150. else if( atoi(szMaxID) == 0 )
  151. {
  152. nID = 1;
  153. }
  154. CDBInterface::GetInstancePtr()->AddUserDevInfo(nID, (char *)(LPCTSTR)m_strUserID, szUid);
  155. }
  156. OnOK();
  157. }
  158. void CDlgUserEquipAlloc::OnBnClickedCancel()
  159. {
  160. // TODO: 在此添加控件通知处理程序代码
  161. OnCancel();
  162. }