Dlg_CardProPerty.cpp 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. // Dlg_CardProPerty.cpp : 实现文件
  2. //
  3. #include "stdafx.h"
  4. #include "StoneU_Door.h"
  5. #include "Dlg_CardProPerty.h"
  6. #include ".\dlg_cardproperty.h"
  7. #include "Global.h"
  8. #include "DBConnection.h"
  9. // CDlg_CardProPerty 对话框
  10. IMPLEMENT_DYNAMIC(CDlg_CardProPerty, CDialog)
  11. CDlg_CardProPerty::CDlg_CardProPerty(CWnd* pParent /*=NULL*/)
  12. : CDialog(CDlg_CardProPerty::IDD, pParent)
  13. , m_sEdit_Name(_T(""))
  14. , m_sEdit_CardNumber(_T(""))
  15. , m_sEdit_Class(_T(""))
  16. , m_sEdit_Remarks(_T(""))
  17. , m_sEdit_JobNumber(_T(""))
  18. {
  19. m_nID = -1;
  20. }
  21. CDlg_CardProPerty::~CDlg_CardProPerty()
  22. {
  23. }
  24. void CDlg_CardProPerty::DoDataExchange(CDataExchange* pDX)
  25. {
  26. CDialog::DoDataExchange(pDX);
  27. DDX_Text(pDX, IDC_EDIT_NAME, m_sEdit_Name);
  28. DDX_Text(pDX, IDC_EDIT_CARDNUMBER, m_sEdit_CardNumber);
  29. DDX_Text(pDX, IDC_EDIT_CALSS, m_sEdit_Class);
  30. DDX_Text(pDX, IDC_EDIT_DOOR1NAME, m_sEdit_Remarks);
  31. DDX_Text(pDX, IDC_EDIT_JOBNUMBER, m_sEdit_JobNumber);
  32. }
  33. BEGIN_MESSAGE_MAP(CDlg_CardProPerty, CDialog)
  34. ON_WM_CTLCOLOR()
  35. ON_WM_ERASEBKGND()
  36. ON_BN_CLICKED(IDOK, OnBnClickedOk)
  37. END_MESSAGE_MAP()
  38. // CDlg_CardProPerty 消息处理程序
  39. BOOL CDlg_CardProPerty::OnInitDialog()
  40. {
  41. CDialog::OnInitDialog();
  42. // TODO: 在此添加额外的初始化
  43. switch( m_nOperate )
  44. {
  45. case ADD:
  46. {
  47. UpdateData();
  48. }
  49. break;
  50. case EDIT:
  51. {
  52. if( ReadCard( m_nID,m_sEdit_Name,m_sEdit_CardNumber,m_sEdit_Class,m_sEdit_JobNumber,m_sEdit_Remarks ) )
  53. {
  54. UpdateData( false );
  55. }
  56. }
  57. break;
  58. }
  59. return TRUE; // return TRUE unless you set the focus to a control
  60. // 异常: OCX 属性页应返回 FALSE
  61. }
  62. HBRUSH CDlg_CardProPerty::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
  63. {
  64. HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
  65. // TODO: 在此更改 DC 的任何属性
  66. // TODO: 如果默认的不是所需画笔,则返回另一个画笔
  67. return hbr;
  68. }
  69. BOOL CDlg_CardProPerty::OnEraseBkgnd(CDC* pDC)
  70. {
  71. // TODO: 在此添加消息处理程序代码和/或调用默认值
  72. return CDialog::OnEraseBkgnd(pDC);
  73. }
  74. void CDlg_CardProPerty::OnBnClickedOk()
  75. {
  76. UpdateData();
  77. int nIndex = 0;
  78. switch( m_nOperate )
  79. {
  80. case ADD:
  81. nIndex = InsertCardInfo( (char *)(LPCTSTR)m_sEdit_Name,(char *)(LPCTSTR)m_sEdit_CardNumber,(char *)(LPCTSTR)m_sEdit_Class,(char *)(LPCTSTR)m_sEdit_JobNumber,(char *)(LPCTSTR)m_sEdit_Remarks );
  82. break;
  83. case EDIT:
  84. nIndex = UpdateCardInfo( m_nID,(char *)(LPCTSTR)m_sEdit_Name,(char *)(LPCTSTR)m_sEdit_CardNumber,(char *)(LPCTSTR)m_sEdit_Class,(char *)(LPCTSTR)m_sEdit_JobNumber,(char *)(LPCTSTR)m_sEdit_Remarks );
  85. break;
  86. }
  87. if( nIndex>0 )
  88. {
  89. m_nID = nIndex;
  90. OnOK();
  91. }
  92. }
  93. bool CDlg_CardProPerty::ReadCard( int iID,CString &sName,CString &sCardNumber,CString &sClass,CString &sJobNumber,CString &sRemarks )
  94. {
  95. bool bRet = false;
  96. CHAR strSQLText[MAX_SQL_LENGTH + 1] = "";
  97. list<string> list1,list2,list3,list4,list5,list6;
  98. list<string>::iterator it_list1,it_list2,it_list3,it_list4,it_list5,it_list6;
  99. if(!_stricmp(g_strDBType, "PGSQL"))
  100. {
  101. sprintf(strSQLText, "select id, susername, scardnumber,sclass,sjobnumber,sremarks from t_door_card where id=%d",iID );
  102. }
  103. else
  104. {
  105. sprintf(strSQLText, "select id, susername, scardnumber,sclass,sjobnumber,sremarks from t_door_card where id=%d",iID );
  106. }
  107. int nRet = GetFieldValueList6( strSQLText,list1,list2,list3,list4,list5,list6);
  108. if( 0 == list1.size() || 0 == list2.size() )
  109. {
  110. return bRet;
  111. }
  112. if( nRet != -1 )
  113. {
  114. bRet = true;
  115. for( it_list1=list1.begin(),it_list2=list2.begin(),it_list3=list3.begin(),
  116. it_list4=list4.begin(),it_list5=list5.begin(),it_list6=list6.begin();
  117. it_list1!=list1.end() && it_list2!=list2.end() && it_list3!=list3.end() &&
  118. it_list4!=list4.end() && it_list5!=list5.end() && it_list6!=list6.end();
  119. it_list1++,it_list2++,it_list3++,
  120. it_list4++,it_list5++,it_list6++ )
  121. {
  122. sName = (*it_list2).c_str();
  123. sCardNumber = (*it_list3).c_str();
  124. sClass = (*it_list4).c_str();
  125. sJobNumber = (*it_list5).c_str();
  126. sRemarks = (*it_list6).c_str();
  127. }
  128. }
  129. 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();
  130. it_list1!=list1.end(),it_list2!=list2.end(),it_list3!=list3.end(),it_list4!=list4.end(),it_list5!=list5.end(),it_list6!=list6.end();)
  131. {
  132. list1.erase(it_list1++);
  133. list2.erase(it_list2++);
  134. list3.erase(it_list3++);
  135. list4.erase(it_list4++);
  136. list5.erase(it_list5++);
  137. list6.erase(it_list6++);
  138. }
  139. return bRet;
  140. }