StudentInfoDlg.cpp
上传用户:rs600066
上传日期:2017-10-16
资源大小:4788k
文件大小:13k
源码类别:

数据库系统

开发平台:

Visual C++

  1. // StudentInfoDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "school.h"
  5. #include "StudentInfoDlg.h"
  6. #include "departmentset.h"
  7. #include "majorset.h"
  8. #include "classset.h"
  9. #include "studentset.h"
  10. #ifdef _DEBUG
  11. #define new DEBUG_NEW
  12. #undef THIS_FILE
  13. static char THIS_FILE[] = __FILE__;
  14. #endif
  15. /////////////////////////////////////////////////////////////////////////////
  16. // CStudentInfoDlg dialog
  17. CStudentInfoDlg::CStudentInfoDlg(CWnd* pParent /*=NULL*/)
  18. : CDialog(CStudentInfoDlg::IDD, pParent)
  19. {
  20. //{{AFX_DATA_INIT(CStudentInfoDlg)
  21. m_strClass = _T("");
  22. m_strDept = _T("");
  23. m_strSex = _T("");
  24. m_strMajor = _T("");
  25. m_tmBirth = 0;
  26. m_tmEnroll = 0;
  27. m_tmGraduate = 0;
  28. m_strAddress = _T("");
  29. m_strDept1 = _T("");
  30. m_strDept2 = _T("");
  31. m_strDept3 = _T("");
  32. m_strDuty1 = _T("");
  33. m_strDuty2 = _T("");
  34. m_strDuty3 = _T("");
  35. m_strEdusys = _T("");
  36. m_strFamily = _T("");
  37. m_strFolk = _T("");
  38. m_strIDCard = _T("");
  39. m_strName1 = _T("");
  40. m_strName2 = _T("");
  41. m_strName3 = _T("");
  42. m_strNative = _T("");
  43. m_strOldName = _T("");
  44. m_strPhone = _T("");
  45. m_strDegist1 = _T("");
  46. m_strDegist2 = _T("");
  47. m_strDegist3 = _T("");
  48. m_strDegist4 = _T("");
  49. m_strDegist5 = _T("");
  50. m_strDegist6 = _T("");
  51. m_strHonorDate1 = _T("");
  52. m_strHonorDate2 = _T("");
  53. m_strHonorDate3 = _T("");
  54. m_strHonorDate4 = _T("");
  55. m_strHonorDate5 = _T("");
  56. m_strHonorDate6 = _T("");
  57. m_strPhone1 = _T("");
  58. m_strPhone2 = _T("");
  59. m_strPhone3 = _T("");
  60. m_strPolitical = _T("");
  61. m_strPolitical1 = _T("");
  62. m_strPolitical3 = _T("");
  63. m_strPolitical2 = _T("");
  64. m_strPostCode = _T("");
  65. m_strRelation1 = _T("");
  66. m_strRelation2 = _T("");
  67. m_strRelation3 = _T("");
  68. m_strRemark1 = _T("");
  69. m_strRemark2 = _T("");
  70. m_strRemark3 = _T("");
  71. m_strRemark4 = _T("");
  72. m_strRemark5 = _T("");
  73. m_strRemark6 = _T("");
  74. m_strScore1 = _T("");
  75. m_strScore10 = _T("");
  76. m_strScore2 = _T("");
  77. m_strScore3 = _T("");
  78. m_strScore4 = _T("");
  79. m_strScore5 = _T("");
  80. m_strScore6 = _T("");
  81. m_strScore7 = _T("");
  82. m_strScore8 = _T("");
  83. m_strScore9 = _T("");
  84. m_strCode = _T("");
  85. m_strName = _T("");
  86. //}}AFX_DATA_INIT
  87. m_bNew = TRUE;
  88. }
  89. void CStudentInfoDlg::DoDataExchange(CDataExchange* pDX)
  90. {
  91. CDialog::DoDataExchange(pDX);
  92. //{{AFX_DATA_MAP(CStudentInfoDlg)
  93. DDX_Control(pDX, IDC_EDIT_STUDENTCODE, m_ctrCode);
  94. DDX_Control(pDX, IDC_COMBO_SMAJOR, m_ctrMajor);
  95. DDX_Control(pDX, IDC_COMBO_SDEPARTMENT, m_ctrDept);
  96. DDX_Control(pDX, IDC_COMBO_CLASS, m_ctrClass);
  97. DDX_CBString(pDX, IDC_COMBO_CLASS, m_strClass);
  98. DDX_CBString(pDX, IDC_COMBO_SDEPARTMENT, m_strDept);
  99. DDX_CBString(pDX, IDC_COMBO_SEX, m_strSex);
  100. DDX_CBString(pDX, IDC_COMBO_SMAJOR, m_strMajor);
  101. DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER_BIRTH, m_tmBirth);
  102. DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER_ENROLL, m_tmEnroll);
  103. DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER_GRADUATE, m_tmGraduate);
  104. DDX_Text(pDX, IDC_EDIT_ADDRESS, m_strAddress);
  105. DDX_Text(pDX, IDC_EDIT_DEPT1, m_strDept1);
  106. DDX_Text(pDX, IDC_EDIT_DEPT2, m_strDept2);
  107. DDX_Text(pDX, IDC_EDIT_DEPT3, m_strDept3);
  108. DDX_Text(pDX, IDC_EDIT_DUTY1, m_strDuty1);
  109. DDX_Text(pDX, IDC_EDIT_DUTY2, m_strDuty2);
  110. DDX_Text(pDX, IDC_EDIT_DUTY3, m_strDuty3);
  111. DDX_Text(pDX, IDC_EDIT_EDUSYS, m_strEdusys);
  112. DDX_Text(pDX, IDC_EDIT_FAMILY, m_strFamily);
  113. DDX_Text(pDX, IDC_EDIT_FOLK, m_strFolk);
  114. DDX_Text(pDX, IDC_EDIT_IDCARD, m_strIDCard);
  115. DDX_Text(pDX, IDC_EDIT_NAME1, m_strName1);
  116. DDX_Text(pDX, IDC_EDIT_NAME2, m_strName2);
  117. DDX_Text(pDX, IDC_EDIT_NAME3, m_strName3);
  118. DDX_Text(pDX, IDC_EDIT_NATIVE, m_strNative);
  119. DDX_Text(pDX, IDC_EDIT_OLDNAME, m_strOldName);
  120. DDX_Text(pDX, IDC_EDIT_PHONE, m_strPhone);
  121. DDX_Text(pDX, IDC_EDIT_DEGIST1, m_strDegist1);
  122. DDX_Text(pDX, IDC_EDIT_DEGIST2, m_strDegist2);
  123. DDX_Text(pDX, IDC_EDIT_DEGIST3, m_strDegist3);
  124. DDX_Text(pDX, IDC_EDIT_DEGIST4, m_strDegist4);
  125. DDX_Text(pDX, IDC_EDIT_DEGIST5, m_strDegist5);
  126. DDX_Text(pDX, IDC_EDIT_DEGIST6, m_strDegist6);
  127. DDX_Text(pDX, IDC_EDIT_HONORDATE1, m_strHonorDate1);
  128. DDX_Text(pDX, IDC_EDIT_HONORDATE2, m_strHonorDate2);
  129. DDX_Text(pDX, IDC_EDIT_HONORDATE3, m_strHonorDate3);
  130. DDX_Text(pDX, IDC_EDIT_HONORDATE4, m_strHonorDate4);
  131. DDX_Text(pDX, IDC_EDIT_HONORDATE5, m_strHonorDate5);
  132. DDX_Text(pDX, IDC_EDIT_HONORDATE6, m_strHonorDate6);
  133. DDX_Text(pDX, IDC_EDIT_PHONE1, m_strPhone1);
  134. DDX_Text(pDX, IDC_EDIT_PHONE2, m_strPhone2);
  135. DDX_Text(pDX, IDC_EDIT_PHONE3, m_strPhone3);
  136. DDX_Text(pDX, IDC_EDIT_POLITICAL, m_strPolitical);
  137. DDX_Text(pDX, IDC_EDIT_POLITICAL1, m_strPolitical1);
  138. DDX_Text(pDX, IDC_EDIT_POLITICAL3, m_strPolitical3);
  139. DDX_Text(pDX, IDC_EDIT_POLITICAL2, m_strPolitical2);
  140. DDX_Text(pDX, IDC_EDIT_POSTCODE, m_strPostCode);
  141. DDX_Text(pDX, IDC_EDIT_RELATION1, m_strRelation1);
  142. DDX_Text(pDX, IDC_EDIT_RELATION2, m_strRelation2);
  143. DDX_Text(pDX, IDC_EDIT_RELATION3, m_strRelation3);
  144. DDX_Text(pDX, IDC_EDIT_REMARK1, m_strRemark1);
  145. DDX_Text(pDX, IDC_EDIT_REMARK2, m_strRemark2);
  146. DDX_Text(pDX, IDC_EDIT_REMARK3, m_strRemark3);
  147. DDX_Text(pDX, IDC_EDIT_REMARK4, m_strRemark4);
  148. DDX_Text(pDX, IDC_EDIT_REMARK5, m_strRemark5);
  149. DDX_Text(pDX, IDC_EDIT_REMARK6, m_strRemark6);
  150. DDX_Text(pDX, IDC_EDIT_SCORE1, m_strScore1);
  151. DDX_Text(pDX, IDC_EDIT_SCORE10, m_strScore10);
  152. DDX_Text(pDX, IDC_EDIT_SCORE2, m_strScore2);
  153. DDX_Text(pDX, IDC_EDIT_SCORE3, m_strScore3);
  154. DDX_Text(pDX, IDC_EDIT_SCORE4, m_strScore4);
  155. DDX_Text(pDX, IDC_EDIT_SCORE5, m_strScore5);
  156. DDX_Text(pDX, IDC_EDIT_SCORE6, m_strScore6);
  157. DDX_Text(pDX, IDC_EDIT_SCORE7, m_strScore7);
  158. DDX_Text(pDX, IDC_EDIT_SCORE8, m_strScore8);
  159. DDX_Text(pDX, IDC_EDIT_SCORE9, m_strScore9);
  160. DDX_Text(pDX, IDC_EDIT_STUDENTCODE, m_strCode);
  161. DDX_Text(pDX, IDC_EDIT_STUNAME, m_strName);
  162. //}}AFX_DATA_MAP
  163. }
  164. BEGIN_MESSAGE_MAP(CStudentInfoDlg, CDialog)
  165. //{{AFX_MSG_MAP(CStudentInfoDlg)
  166. ON_CBN_SELCHANGE(IDC_COMBO_SDEPARTMENT, OnSelchangeComboSdepartment)
  167. ON_CBN_SELCHANGE(IDC_COMBO_SMAJOR, OnSelchangeComboSmajor)
  168. ON_CBN_SETFOCUS(IDC_COMBO_SMAJOR, OnSetfocusComboSmajor)
  169. ON_CBN_SETFOCUS(IDC_COMBO_CLASS, OnSetfocusComboClass)
  170. //}}AFX_MSG_MAP
  171. END_MESSAGE_MAP()
  172. /////////////////////////////////////////////////////////////////////////////
  173. // CStudentInfoDlg message handlers
  174. BOOL CStudentInfoDlg::OnInitDialog() 
  175. {
  176. CDialog::OnInitDialog();
  177. CDepartmentSet DeptSet ;
  178. CString strSQL;
  179. strSQL="select * from department";
  180. if(!DeptSet.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
  181. {
  182. MessageBox("打开数据库失败!","数据库错误",MB_OK);
  183. }
  184. while(!DeptSet.IsEOF())
  185. {
  186. m_ctrDept.AddString(DeptSet.m_name);
  187. DeptSet.MoveNext();
  188. }
  189. DeptSet.Close();
  190. if(!m_strCode.IsEmpty())
  191. {//初始化文本框中得内容
  192. m_bNew = FALSE;
  193. m_ctrCode.EnableWindow(FALSE);
  194. CStudentSet StudentSet ;
  195. strSQL.Format( "select * from student where code = '%s' ",m_strCode);
  196. if(!StudentSet.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
  197. {
  198. AfxMessageBox("打开数据库失败!");
  199. return FALSE;
  200. }
  201. m_strClass = StudentSet.m_class ;
  202. m_strDept = StudentSet.m_department ;
  203. m_strSex = StudentSet.m_sex ;
  204. m_strMajor = StudentSet.m_major ;
  205. m_tmBirth = StudentSet.m_birthday ;
  206. m_tmEnroll = StudentSet.m_enroll_date ;
  207. m_tmGraduate = StudentSet.m_graduate_date ;
  208. m_strAddress = StudentSet.m_address ;
  209. m_strDept1 = StudentSet.m_family_dept1 ;
  210. m_strDept2 = StudentSet.m_family_dept2 ;
  211. m_strDept3 = StudentSet.m_family_dept3 ;
  212. m_strDuty1 = StudentSet.m_family_duty1 ;
  213. m_strDuty2 = StudentSet.m_family_duty2 ;
  214. m_strDuty3 = StudentSet.m_family_dept3 ;
  215. m_strEdusys = StudentSet.m_edu_sys ;
  216. m_strFamily = StudentSet.m_family ;
  217. m_strFolk = StudentSet.m_folk ;
  218. m_strIDCard = StudentSet.m_IDCard ;
  219. m_strName1 = StudentSet.m_family_name1 ;
  220. m_strName2 = StudentSet.m_family_name2 ;
  221. m_strName3 = StudentSet.m_family_name3 ;
  222. m_strNative = StudentSet.m_native ;
  223. m_strOldName = StudentSet.m_oldname ;
  224. m_strPhone = StudentSet.m_phone ;
  225. m_strDegist1 = StudentSet.m_honor_digiest1 ;
  226. m_strDegist2 = StudentSet.m_honor_digiest2 ;
  227. m_strDegist3 = StudentSet.m_honor_digiest3 ;
  228. m_strDegist4 = StudentSet.m_honor_digiest4 ;
  229. m_strDegist5 = StudentSet.m_honor_digiest5 ;
  230. m_strDegist6 = StudentSet.m_honor_digiest6 ;
  231. m_strHonorDate1 = StudentSet.m_honor_date1 ;
  232. m_strHonorDate2 = StudentSet.m_honor_date2 ;
  233. m_strHonorDate3 = StudentSet.m_honor_date3 ;
  234. m_strHonorDate4 = StudentSet.m_honor_date4 ;
  235. m_strHonorDate5 = StudentSet.m_honor_date5 ;
  236. m_strHonorDate6 = StudentSet.m_honor_date6 ;
  237. m_strPhone1 = StudentSet.m_family_phone1 ;
  238. m_strPhone2 = StudentSet.m_family_phone2 ;
  239. m_strPhone3 = StudentSet.m_family_phone3 ;
  240. m_strPolitical = StudentSet.m_political ;
  241. m_strPolitical1 = StudentSet.m_family_political1 ;
  242. m_strPolitical3 = StudentSet.m_family_political2 ;
  243. m_strPolitical2 = StudentSet.m_family_political3 ;
  244. m_strPostCode = StudentSet.m_postcode ;
  245. m_strRelation1 = StudentSet.m_family_relation1 ;
  246. m_strRelation2 = StudentSet.m_family_relation2 ;
  247. m_strRelation3 = StudentSet.m_family_relation3 ;
  248. m_strRemark1 = StudentSet.m_honor_remark1 ;
  249. m_strRemark2 = StudentSet.m_honor_remark2 ;
  250. m_strRemark3 = StudentSet.m_honor_remark3 ;
  251. m_strRemark4 = StudentSet.m_honor_remark4 ;
  252. m_strRemark5 = StudentSet.m_honor_remark5 ;
  253. m_strRemark6 = StudentSet.m_honor_remark6 ;
  254. m_strScore1 = StudentSet.m_term1 ;
  255. m_strScore10 = StudentSet.m_term10 ;
  256. m_strScore2 = StudentSet.m_term2 ;
  257. m_strScore3 = StudentSet.m_term3 ;
  258. m_strScore4 = StudentSet.m_term4 ;
  259. m_strScore5 = StudentSet.m_term5 ;
  260. m_strScore6 = StudentSet.m_term6 ;
  261. m_strScore7 = StudentSet.m_term7 ;
  262. m_strScore8 = StudentSet.m_term8 ;
  263. m_strScore9 = StudentSet.m_term9 ;
  264. m_strCode = StudentSet.m_code ;
  265. m_strName = StudentSet.m_name ;
  266. StudentSet.Close();
  267. }
  268. UpdateData(FALSE);
  269. return TRUE;  // return TRUE unless you set the focus to a control
  270.               // EXCEPTION: OCX Property Pages should return FALSE
  271. }
  272. void CStudentInfoDlg::OnSelchangeComboSdepartment() 
  273. {
  274. // TODO: Add your control notification handler code here
  275. UpdateData();
  276. //清空ComboBox查询内容//////////////////////
  277. int nCount=m_ctrMajor.GetCount();
  278. for(int i=0;i<nCount;i++)
  279. {
  280. m_ctrMajor.DeleteString(0);
  281. }
  282. nCount=m_ctrClass.GetCount();
  283. for(i=0;i<nCount;i++)
  284. {
  285. m_ctrClass.DeleteString(0);
  286. }
  287. //////////////////////////////////////////
  288. }
  289. void CStudentInfoDlg::OnSelchangeComboSmajor() 
  290. {
  291. // TODO: Add your control notification handler code here
  292. UpdateData();
  293. //清空ComboBox查询内容//////////////////////
  294. int nCount=m_ctrClass.GetCount();
  295. for(int i=0;i<nCount;i++)
  296. {
  297. m_ctrClass.DeleteString(0);
  298. }
  299. ///////////////////////////////////////////
  300. }
  301. void CStudentInfoDlg::OnSetfocusComboSmajor() 
  302. {
  303. // TODO: Add your control notification handler code here
  304. UpdateData();
  305. CString strSQL;
  306. //清空ComboBox查询内容//////////////////////
  307. int nCount=m_ctrMajor.GetCount();
  308. for(int i=0;i<nCount;i++)
  309. {
  310. m_ctrMajor.DeleteString(0);
  311. }
  312. nCount=m_ctrClass.GetCount();
  313. for(i=0;i<nCount;i++)
  314. {
  315. m_ctrClass.DeleteString(0);
  316. }
  317. ///////////////////////////////////////////
  318. CMajorSet recordset ;
  319. strSQL.Format( "select * from major where department = '%s'",m_strDept);
  320. if(!recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
  321. {
  322. MessageBox("打开数据库失败!","数据库错误",MB_OK);
  323. return ;
  324. }
  325. while(!recordset.IsEOF())
  326. {
  327. m_ctrMajor.AddString(recordset.m_name);
  328. recordset.MoveNext();
  329. }
  330. recordset.Close();
  331. }
  332. void CStudentInfoDlg::OnSetfocusComboClass() 
  333. {
  334. // TODO: Add your control notification handler code here
  335. UpdateData();
  336. CString strSQL;
  337. //清空ComboBox查询内容//////////////////////
  338. int nCount=m_ctrClass.GetCount();
  339. for(int i=0;i<nCount;i++)
  340. {
  341. m_ctrClass.DeleteString(0);
  342. }
  343. ///////////////////////////////////////////
  344. CClassSet recordset ;
  345. strSQL.Format( "select * from class where department = '%s' and major = '%s'",m_strDept,m_strMajor);
  346. if(!recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
  347. {
  348. MessageBox("打开数据库失败!","数据库错误",MB_OK);
  349. return ;
  350. }
  351. while(!recordset.IsEOF())
  352. {
  353. m_ctrClass.AddString(recordset.m_name);
  354. recordset.MoveNext();
  355. }
  356. recordset.Close();
  357. }
  358. void CStudentInfoDlg::OnOK() 
  359. {
  360. // TODO: Add extra validation here
  361. UpdateData();
  362. if(m_strCode.IsEmpty())
  363. {
  364. AfxMessageBox("学号不能为空!");
  365. return;
  366. }
  367. if(m_strName.IsEmpty())
  368. {
  369. AfxMessageBox("姓名不能为空!");
  370. return;
  371. }
  372. if(m_bNew)
  373. {
  374. CStudentSet StudentSet ;
  375. CString strSQL;
  376. strSQL.Format( "select * from student where code = '%s' ",m_strCode);
  377. if(!StudentSet.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
  378. {
  379. AfxMessageBox("打开数据库失败!");
  380. return ;
  381. }
  382. if(StudentSet.GetRecordCount()!=0)
  383. {
  384. AfxMessageBox("该学生已经存在!");
  385. StudentSet.Close();
  386. return;
  387. }
  388. StudentSet.Close();
  389. }
  390. CDialog::OnOK();
  391. }