DlgUserManager.cpp 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471
  1. // AnalogDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "IDE.h"
  5. #include "DlgUserManager.h"
  6. #include ".\dlgusermanager.h"
  7. #include "DlgUser.h"
  8. #include "DlgUserEquipAlloc.h"
  9. #include "DlgUserGroupAlloc.h"
  10. #include "Dlg_GroupManage.h"
  11. #ifdef _DEBUG
  12. #define new DEBUG_NEW
  13. #undef THIS_FILE
  14. static char THIS_FILE[] = __FILE__;
  15. #endif
  16. /////////////////////////////////////////////////////////////////////////////
  17. // CDlgUserManager dialog
  18. CDlgUserManager::CDlgUserManager(CWnd* pParent /*=NULL*/)
  19. : CDialog(CDlgUserManager::IDD, pParent)
  20. {
  21. //{{AFX_DATA_INIT(CDlgUserManager)
  22. // NOTE: the ClassWizard will add member initialization here
  23. //}}AFX_DATA_INIT
  24. m_ctrlGridUser.RegisterWindowClass(g_hLangDLL);
  25. }
  26. void CDlgUserManager::DoDataExchange(CDataExchange* pDX)
  27. {
  28. CDialog::DoDataExchange(pDX);
  29. //{{AFX_DATA_MAP(CDlgUserManager)
  30. DDX_Control(pDX, IDC_GRID_USER, m_ctrlGridUser);
  31. //}}AFX_DATA_MAP
  32. }
  33. BEGIN_MESSAGE_MAP(CDlgUserManager, CDialog)
  34. //{{AFX_MSG_MAP(CDlgUserManager)
  35. //}}AFX_MSG_MAP
  36. ON_BN_CLICKED(IDC_BTN_ADD, OnBnClickedAdd)
  37. ON_BN_CLICKED(IDC_BTN_EDIT, OnBnClickedEdit)
  38. ON_BN_CLICKED(IDC_BTN_DEL, OnBnClickedDel)
  39. ON_BN_CLICKED(IDC_BTN_COPY, OnBnClickedCopy)
  40. ON_BN_CLICKED(IDC_BTN_CANCEL, OnBnClickedBtnCancel)
  41. ON_BN_CLICKED(IDC_BTN_DATE_PLAN, OnBnClickedBtnDatePlan)
  42. ON_BN_CLICKED(IDC_BTN_ALLOC_PURVIEW, OnBnClickedBtnAllocPurview)
  43. ON_BN_CLICKED(IDC_BTN_ALLOC_DEV, OnBnClickedBtnAllocDev)
  44. ON_BN_CLICKED(IDC_BTN_GROUP_MANAGE, OnBnClickedBtnGroupManage)
  45. END_MESSAGE_MAP()
  46. /////////////////////////////////////////////////////////////////////////////
  47. // CDlgUserManager message handlers
  48. void CDlgUserManager::OnOK()
  49. {
  50. // TODO: Add extra validation here
  51. CDialog::OnOK();
  52. }
  53. void CDlgUserManager::OnCancel()
  54. {
  55. // TODO: Add extra cleanup here
  56. CDialog::OnCancel();
  57. }
  58. BOOL CDlgUserManager::OnInitDialog()
  59. {
  60. CDialog::OnInitDialog();
  61. m_btnEdit.SubclassDlgItem(IDC_BTN_EDIT, this);
  62. m_btnEdit.SetBitmaps(IDB_EDIT, RGB(255, 0, 255));
  63. m_btnEdit.SetFlat(FALSE);
  64. m_btnEdit.SetAlign(CButtonST::ST_ALIGN_HORIZ);
  65. m_btnCopy.SubclassDlgItem(IDC_BTN_COPY, this);
  66. m_btnCopy.SetBitmaps(IDB_COPY , RGB(192, 192, 192));
  67. m_btnCopy.SetFlat(FALSE);
  68. m_btnCopy.SetAlign(CButtonST::ST_ALIGN_HORIZ);
  69. m_btnDel.SubclassDlgItem(IDC_BTN_DEL, this);
  70. m_btnDel.SetBitmaps(IDB_DEL, RGB(255,0 , 255));
  71. m_btnDel.SetFlat(FALSE);
  72. m_btnDel.SetAlign(CButtonST::ST_ALIGN_HORIZ);
  73. m_btnAdd.SubclassDlgItem(IDC_BTN_ADD, this);
  74. m_btnAdd.SetBitmaps(IDB_ADD, RGB(192, 192, 192));
  75. m_btnAdd.SetFlat(FALSE);
  76. m_btnAdd.SetAlign(CButtonST::ST_ALIGN_HORIZ);
  77. m_btnPlan.SubclassDlgItem(IDC_BTN_DATE_PLAN, this);
  78. m_btnPlan.SetBitmaps(IDB_PLAN, RGB(192, 192, 192));
  79. m_btnPlan.SetFlat(FALSE);
  80. m_btnPlan.SetAlign(CButtonST::ST_ALIGN_HORIZ);
  81. m_btnAllocPurview.SubclassDlgItem(IDC_BTN_ALLOC_PURVIEW, this);
  82. m_btnAllocPurview.SetBitmaps(IDB_INTO, RGB(192, 192, 192));
  83. m_btnAllocPurview.SetFlat(FALSE);
  84. m_btnAllocPurview.SetAlign(CButtonST::ST_ALIGN_HORIZ);
  85. m_btnAllocDev.SubclassDlgItem(IDC_BTN_ALLOC_DEV, this);
  86. m_btnAllocDev.SetBitmaps(IDB_SHOW, RGB(192, 192, 192));
  87. m_btnAllocDev.SetFlat(FALSE);
  88. m_btnAllocDev.SetAlign(CButtonST::ST_ALIGN_HORIZ);
  89. m_btnCancel.SubclassDlgItem(IDC_BTN_CANCEL, this);
  90. m_btnCancel.SetBitmaps(IDB_EXIT, RGB(192, 192, 192));
  91. m_btnCancel.SetFlat(FALSE);
  92. m_btnCancel.SetAlign(CButtonST::ST_ALIGN_HORIZ);
  93. m_btnGroupManage.SubclassDlgItem(IDC_BTN_GROUP_MANAGE, this);
  94. m_btnGroupManage.SetBitmaps(IDB_SHOW, RGB(192, 192, 192));
  95. m_btnGroupManage.SetFlat(FALSE);
  96. m_btnGroupManage.SetAlign(CButtonST::ST_ALIGN_HORIZ);
  97. SetFields();
  98. if( -1==PMS_VerifyUserPermit( g_nUserID,PMS_USER_BELONGGROUP_CHECK,"" ) )//g_bStartRun==1 &&
  99. {
  100. m_btnAllocPurview.EnableWindow( false );
  101. }
  102. if( -1==PMS_VerifyUserPermit( g_nUserID,PMS_USER_DRIVCE_ALLOC,"" ) )
  103. {
  104. m_btnAllocDev.EnableWindow( false );
  105. }
  106. if( -1==PMS_VerifyUserPermit( g_nUserID,PMS_GROUP_INFO_CHECK,"" ) )
  107. {
  108. m_btnGroupManage.EnableWindow( false );
  109. }
  110. //m_btnGroupManage.EnableWindow( false );
  111. //m_btnEdit.ShowWindow( false );
  112. //m_btnDel.ShowWindow( false );
  113. //m_btnCopy.ShowWindow( false );
  114. //m_btnAdd.ShowWindow( false );
  115. //m_btnPlan.ShowWindow( false );
  116. //m_btnAllocPurview.ShowWindow( false );
  117. //m_btnAllocDev.ShowWindow( false );
  118. //m_btnCancel.ShowWindow( false );
  119. return TRUE; // return TRUE unless you set the focus to a control
  120. // EXCEPTION: OCX Property Pages should return FALSE
  121. }
  122. void CDlgUserManager::SetFields()
  123. {
  124. int i;
  125. m_ctrlGridUser.m_field.SetSize(8);
  126. i=0;
  127. m_ctrlGridUser.m_field[i].Field=_T("id");
  128. m_ctrlGridUser.m_field[i].Caption=_T("ID");
  129. m_ctrlGridUser.m_field[i].With = 50;
  130. m_ctrlGridUser.m_field[i].Find=true;
  131. i=1;
  132. m_ctrlGridUser.m_field[i].Field=_T("uid");
  133. m_ctrlGridUser.m_field[i].Caption=g_strUserID;
  134. m_ctrlGridUser.m_field[i].With=200;
  135. m_ctrlGridUser.m_field[i].Find=true;
  136. i=2;
  137. m_ctrlGridUser.m_field[i].Field=_T("username");
  138. m_ctrlGridUser.m_field[i].Caption=g_strHintUserName;
  139. m_ctrlGridUser.m_field[i].With=200;
  140. m_ctrlGridUser.m_field[i].Find=true;
  141. i=3;
  142. m_ctrlGridUser.m_field[i].Field=_T("tel");
  143. m_ctrlGridUser.m_field[i].Caption=g_strTel;
  144. m_ctrlGridUser.m_field[i].With=200;
  145. m_ctrlGridUser.m_field[i].Find=true;
  146. i=4;
  147. m_ctrlGridUser.m_field[i].Field=_T("mobiletel");
  148. m_ctrlGridUser.m_field[i].Caption=g_strMobile;
  149. m_ctrlGridUser.m_field[i].With=200;
  150. m_ctrlGridUser.m_field[i].Find=true;
  151. i=5;
  152. m_ctrlGridUser.m_field[i].Field=_T("fax");
  153. m_ctrlGridUser.m_field[i].Caption=g_strFax;
  154. m_ctrlGridUser.m_field[i].With=200;
  155. m_ctrlGridUser.m_field[i].Find=true;
  156. i=6;
  157. m_ctrlGridUser.m_field[i].Field=_T("email");
  158. m_ctrlGridUser.m_field[i].Caption=_T("Email");
  159. m_ctrlGridUser.m_field[i].With=200;
  160. m_ctrlGridUser.m_field[i].Find=true;
  161. i=7;
  162. m_ctrlGridUser.m_field[i].Field=_T("status");
  163. m_ctrlGridUser.m_field[i].Caption=g_strStatus;
  164. m_ctrlGridUser.m_field[i].With=200;
  165. m_ctrlGridUser.m_field[i].Find=true;
  166. Requery();
  167. // m_ctrlAnalogGrid.Execute(m_pConnection,"ProductId"/*Primary key field */
  168. // ,"*"//fields in SELECT statment
  169. // ,"Products" //from
  170. // ,"" // where
  171. // ,0); // order by N of the Grid column
  172. }
  173. void CDlgUserManager::Requery()
  174. {
  175. CString strWhere;
  176. strWhere.Format(" uid <> \'%s\'", "admin");
  177. m_ctrlGridUser.Execute(_T("id")/*Primary key field */
  178. ,_T("*")//fields in SELECT statment
  179. ,_T("t_user_info") //from
  180. ,strWhere // where
  181. ,0); // order by N of the Grid column
  182. //
  183. }
  184. BEGIN_EVENTSINK_MAP(CDlgUserManager, CDialog)
  185. //{{AFX_EVENTSINK_MAP(CDlgUserManager)
  186. //}}AFX_EVENTSINK_MAP
  187. END_EVENTSINK_MAP()
  188. void CDlgUserManager::OnBnClickedAdd()
  189. {
  190. // TODO: 在此添加控件通知处理程序代码
  191. CDlgUser dlg;
  192. dlg.m_pSet = m_ctrlGridUser.m_pSet;
  193. dlg.m_nID = m_nID;
  194. dlg.m_operation = CDlgUser::NEW;
  195. if (dlg.DoModal() == IDOK)
  196. {
  197. //m_ctrlAnalogGrid.Invalidate();
  198. m_ctrlGridUser.AddNew();
  199. Requery();
  200. CString sContent;
  201. sContent.Format("%s %s< %s >",g_strAdd,g_strUser,dlg.m_sUserID );
  202. CDBInterface::GetInstancePtr()->InsertLogRecord( LOG_USER_ADD,0,"",(char *)(LPCTSTR)sContent );
  203. pDevicesManager->SendNoticeToServer( CMD_NOTICE_READ_DB_USER,CMD_OPERATE_ADD,dlg.m_sUserID,"",0,"64320" );
  204. }
  205. }
  206. void CDlgUserManager::OnBnClickedEdit()
  207. {
  208. // TODO: 在此添加控件通知处理程序代码
  209. int nRowCur = RowSelect();
  210. if( nRowCur==-1 )
  211. return;
  212. CDlgUser dlgUser;
  213. dlgUser.m_nID = m_nID;
  214. dlgUser.m_pSet=m_ctrlGridUser.m_pSet;
  215. dlgUser.m_operation=CDlgUser::EDIT;
  216. if (dlgUser.DoModal() == IDOK)
  217. {
  218. m_ctrlGridUser.Invalidate();
  219. Requery();
  220. CString sContent;
  221. sContent.Format("%s %s< %s >",g_strEdit,g_strUser,dlgUser.m_sUserID.TrimRight() );
  222. CDBInterface::GetInstancePtr()->InsertLogRecord( LOG_USER_EDIT,0,"",(char *)(LPCTSTR)sContent );
  223. pDevicesManager->SendNoticeToServer( CMD_NOTICE_READ_DB_USER,CMD_OPERATE_EDIT,dlgUser.m_sUserID.TrimRight(),"",0,"64320" );
  224. }
  225. }
  226. void CDlgUserManager::OnBnClickedDel()
  227. {
  228. // TODO: 在此添加控件通知处理程序代码
  229. int nRow=m_ctrlGridUser.IsSelectRow();
  230. if(nRow==-1)
  231. {
  232. MessageBox(g_strSelLine, g_strTip, MB_ICONINFORMATION);
  233. return;
  234. }
  235. CString strUserID;
  236. strUserID = m_ctrlGridUser.GetCell( nRow, 1)->GetText();
  237. strUserID = strUserID.Trim();
  238. if (MessageBox (g_strMsgConfirmDel, g_strMsgPrompt, MB_YESNO|MB_DEFBUTTON2 | MB_ICONQUESTION) == IDYES)
  239. {
  240. CDBInterface::GetInstancePtr()->DelTableData( "t_plan_info","uid",(char *)(LPCTSTR)strUserID,1 );
  241. CDBInterface::GetInstancePtr()->DelTableData( "t_role_equip","userid",(char *)(LPCTSTR)strUserID,1 );
  242. CDBInterface::GetInstancePtr()->DelTableData( "t_role_user","userid",(char *)(LPCTSTR)strUserID,1 );
  243. m_ctrlGridUser.Delete();
  244. Requery();
  245. CDBInterface::GetInstancePtr()->DelUserDevInfo( (char *)(LPCTSTR)strUserID );
  246. }
  247. CString sContent;
  248. sContent.Format("%s %s< %s >",g_strEdit,g_strUser,strUserID.TrimRight() );
  249. CDBInterface::GetInstancePtr()->InsertLogRecord( LOG_USER_DELETE,0,"",(char *)(LPCTSTR)sContent );
  250. pDevicesManager->SendNoticeToServer( CMD_NOTICE_READ_DB_USER,CMD_OPERATE_DELETE,strUserID.TrimRight(),"",0,"64320" );
  251. }
  252. void CDlgUserManager::OnBnClickedCopy()
  253. {
  254. // TODO: 在此添加控件通知处理程序代码
  255. int nRowCur = RowSelect();
  256. if( nRowCur==-1 )
  257. return;
  258. CDlgUser dlg;
  259. dlg.m_nID = m_nID;
  260. dlg.m_pSet=m_ctrlGridUser.m_pSet;
  261. dlg.m_operation=CDlgUser::COPY;
  262. if (dlg.DoModal() == IDOK)
  263. {
  264. m_ctrlGridUser.AddNew();
  265. Requery();
  266. CString sContent;
  267. sContent.Format("%s %s< %s >",g_strAdd,g_strUser,dlg.m_sUserID );
  268. CDBInterface::GetInstancePtr()->InsertLogRecord( LOG_USER_ADD,0,"",(char *)(LPCTSTR)sContent );
  269. pDevicesManager->SendNoticeToServer( CMD_NOTICE_READ_DB_USER,CMD_OPERATE_ADD,dlg.m_sUserID,"",0,"64320" );
  270. }
  271. }
  272. BOOL CDlgUserManager::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
  273. {
  274. LPNMHDR pNmhdr = (LPNMHDR)lParam;
  275. // TODO: 在此添加专用代码和/或调用基类
  276. if (wParam == (WPARAM)m_ctrlGridUser.GetDlgCtrlID())
  277. {
  278. *pResult = 1;
  279. GV_DISPINFO *pDispInfo = (GV_DISPINFO*)lParam;
  280. m_ctrlGridUser.SetValue(pDispInfo);
  281. //switch( pNmhdr->code )
  282. //{
  283. // case NM_DBLCLK:
  284. // RowSelect();
  285. // return true;
  286. //}
  287. }
  288. return CDialog::OnNotify(wParam, lParam, pResult);
  289. }
  290. void CDlgUserManager::OnBnClickedBtnCancel()
  291. {
  292. // TODO: 在此添加控件通知处理程序代码
  293. //OnCancel();
  294. OnOK();
  295. }
  296. int CDlgUserManager::RowSelect()
  297. {
  298. int nRow=m_ctrlGridUser.IsSelectRow();
  299. if(nRow==-1)
  300. {
  301. MessageBox(g_strSelLine, g_strTip, MB_ICONINFORMATION);
  302. return nRow;
  303. }
  304. m_nID = atoi(m_ctrlGridUser.GetCell( nRow, 0 )->GetText());
  305. return nRow;
  306. //OnOK();
  307. }
  308. void CDlgUserManager::OnBnClickedBtnDatePlan()
  309. {
  310. // TODO: 在此添加控件通知处理程序代码
  311. }
  312. void CDlgUserManager::OnBnClickedBtnAllocPurview()
  313. {
  314. //if( -1==PMS_VerifyUserPermit( g_nUserID,PMS_USER_BELONGGROUP_CHECK,"" ) )
  315. //{
  316. // //AfxMessageBox( GetString(PMS_USER_BELONGGROUP_CHECK) );
  317. // return;
  318. //}
  319. int nRow=m_ctrlGridUser.IsSelectRow();
  320. if(nRow==-1)
  321. {
  322. MessageBox(g_strSelLine, g_strTip, MB_ICONINFORMATION);
  323. return;
  324. }
  325. CDlgUserGroupAlloc dlg;
  326. dlg.m_strUserID = m_ctrlGridUser.GetCell( nRow, 1 )->GetText();
  327. if(dlg.DoModal() == IDOK)
  328. {
  329. //确定处理
  330. }
  331. }
  332. void CDlgUserManager::OnBnClickedBtnAllocDev()
  333. {
  334. // TODO: 在此添加控件通知处理程序代码
  335. int nRow=m_ctrlGridUser.IsSelectRow();
  336. if(nRow==-1)
  337. {
  338. MessageBox(g_strSelLine, g_strTip, MB_ICONINFORMATION);
  339. return;
  340. }
  341. CDlgUserEquipAlloc dlg;
  342. dlg.m_strUserID = m_ctrlGridUser.GetCell( nRow, 1 )->GetText();
  343. if(dlg.DoModal() == IDOK)
  344. {
  345. //确定处理
  346. }
  347. }
  348. void CDlgUserManager::OnBnClickedBtnGroupManage()
  349. {
  350. // TODO: 在此添加控件通知处理程序代码
  351. CDlg_GroupManage dlg;
  352. int nResult = dlg.DoModal();
  353. if( nResult == IDOK )
  354. {
  355. }
  356. }
  357. LRESULT CDlgUserManager::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
  358. {
  359. // TODO: 在此添加专用代码和/或调用基类
  360. switch( message )
  361. {
  362. case WM_DCLICK:
  363. {
  364. int nRowCur = RowSelect();
  365. if( nRowCur==-1 )
  366. return 0;
  367. CDlgUser dlgUser;
  368. dlgUser.m_nID = m_nID;
  369. dlgUser.m_pSet=m_ctrlGridUser.m_pSet;
  370. dlgUser.m_operation=CDlgUser::EDIT;
  371. if (dlgUser.DoModal() == IDOK)
  372. {
  373. m_ctrlGridUser.Invalidate();
  374. Requery();
  375. CString sContent;
  376. sContent.Format("%s %s< %s >",g_strEdit,g_strUser,dlgUser.m_sUserID.TrimRight() );
  377. CDBInterface::GetInstancePtr()->InsertLogRecord( LOG_USER_EDIT,0,"",(char *)(LPCTSTR)sContent );
  378. pDevicesManager->SendNoticeToServer( CMD_NOTICE_READ_DB_USER,CMD_OPERATE_EDIT,dlgUser.m_sUserID.TrimRight(),"",0,"64320" );
  379. }
  380. }
  381. break;
  382. }
  383. return CDialog::WindowProc(message, wParam, lParam);
  384. }