SetClientRecordPlan.cpp 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281
  1. // SetClientRecordPlan.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "newclient.h"
  5. #include "SetClientRecordPlan.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CSetClientRecordPlan dialog
  13. extern CLIENTPARAM ClientParam;
  14. CSetClientRecordPlan::CSetClientRecordPlan(CWnd* pParent /*=NULL*/)
  15. : CDialog(CSetClientRecordPlan::IDD, pParent)
  16. {
  17. //{{AFX_DATA_INIT(CSetClientRecordPlan)
  18. m_iHour11 = 0;
  19. m_iHour12 = 0;
  20. m_iHour21 = 0;
  21. m_iHour22 = 0;
  22. m_iHour31 = 0;
  23. m_iHour32 = 0;
  24. m_iHour41 = 0;
  25. m_iHour42 = 0;
  26. m_iMinute11 = 0;
  27. m_iMinute12 = 0;
  28. m_iMinute21 = 0;
  29. m_iMinute22 = 0;
  30. m_iMinute31 = 0;
  31. m_iMinute32 = 0;
  32. m_iMinute41 = 0;
  33. m_iMinute42 = 0;
  34. //}}AFX_DATA_INIT
  35. }
  36. void CSetClientRecordPlan::DoDataExchange(CDataExchange* pDX)
  37. {
  38. CDialog::DoDataExchange(pDX);
  39. //{{AFX_DATA_MAP(CSetClientRecordPlan)
  40. DDX_Control(pDX, IDC_COPYWEEKDAY, m_CopyDateCtrl);
  41. DDX_Control(pDX, IDC_COMBOWEEKDAY, m_DateCtrl);
  42. DDX_Text(pDX, IDC_EDITHOUR011, m_iHour11);
  43. DDX_Text(pDX, IDC_EDITHOUR012, m_iHour12);
  44. DDX_Text(pDX, IDC_EDITHOUR021, m_iHour21);
  45. DDX_Text(pDX, IDC_EDITHOUR022, m_iHour22);
  46. DDX_Text(pDX, IDC_EDITHOUR031, m_iHour31);
  47. DDX_Text(pDX, IDC_EDITHOUR032, m_iHour32);
  48. DDX_Text(pDX, IDC_EDITHOUR041, m_iHour41);
  49. DDX_Text(pDX, IDC_EDITHOUR042, m_iHour42);
  50. DDX_Text(pDX, IDC_EDITMIN011, m_iMinute11);
  51. DDX_Text(pDX, IDC_EDITMIN012, m_iMinute12);
  52. DDX_Text(pDX, IDC_EDITMIN021, m_iMinute21);
  53. DDX_Text(pDX, IDC_EDITMIN022, m_iMinute22);
  54. DDX_Text(pDX, IDC_EDITMIN031, m_iMinute31);
  55. DDX_Text(pDX, IDC_EDITMIN032, m_iMinute32);
  56. DDX_Text(pDX, IDC_EDITMIN041, m_iMinute41);
  57. DDX_Text(pDX, IDC_EDITMIN042, m_iMinute42);
  58. //}}AFX_DATA_MAP
  59. }
  60. BEGIN_MESSAGE_MAP(CSetClientRecordPlan, CDialog)
  61. //{{AFX_MSG_MAP(CSetClientRecordPlan)
  62. ON_BN_CLICKED(IDC_BUTRECCOPY, OnButreccopy)
  63. ON_CBN_SELCHANGE(IDC_COMBOWEEKDAY, OnSelchangeComboweekday)
  64. ON_BN_CLICKED(IDLOCALRECOK, OnLocalrecok)
  65. ON_BN_CLICKED(IDEXIT, OnExit)
  66. //}}AFX_MSG_MAP
  67. END_MESSAGE_MAP()
  68. /////////////////////////////////////////////////////////////////////////////
  69. // CSetClientRecordPlan message handlers
  70. BOOL CSetClientRecordPlan::OnInitDialog()
  71. {
  72. CDialog::OnInitDialog();
  73. // TODO: Add extra initialization here
  74. //2008-02-25 将Combo里的星期重设,星期天放在第一位,是为与GetDayOfWeek获取的星期顺序相符合,避免不必要的转换
  75. CTime ct = CTime::GetCurrentTime();
  76. m_DateCtrl.SetCurSel(ct.GetDayOfWeek() - 1);
  77. m_CopyDateCtrl.SetCurSel(7);
  78. m_bChanged = FALSE;
  79. m_iHour11 = ClientParam.m_ClientRecordTime[ct.GetDayOfWeek() - 1][0].m_iStartHour;
  80. m_iMinute11 = ClientParam.m_ClientRecordTime[ct.GetDayOfWeek() - 1][0].m_iStartMinute;
  81. m_iHour12 = ClientParam.m_ClientRecordTime[ct.GetDayOfWeek() - 1][0].m_iStopHour;
  82. m_iMinute12 = ClientParam.m_ClientRecordTime[ct.GetDayOfWeek() - 1][0].m_iStopMinute;
  83. m_iHour21 = ClientParam.m_ClientRecordTime[ct.GetDayOfWeek() - 1][1].m_iStartHour;
  84. m_iMinute21 = ClientParam.m_ClientRecordTime[ct.GetDayOfWeek() - 1][1].m_iStartMinute;
  85. m_iHour22 = ClientParam.m_ClientRecordTime[ct.GetDayOfWeek() - 1][1].m_iStopHour;
  86. m_iMinute22 = ClientParam.m_ClientRecordTime[ct.GetDayOfWeek() - 1][1].m_iStopMinute;
  87. m_iHour31 = ClientParam.m_ClientRecordTime[ct.GetDayOfWeek() - 1][2].m_iStartHour;
  88. m_iMinute31 = ClientParam.m_ClientRecordTime[ct.GetDayOfWeek() - 1][2].m_iStartMinute;
  89. m_iHour32 = ClientParam.m_ClientRecordTime[ct.GetDayOfWeek() - 1][2].m_iStopHour;
  90. m_iMinute32 = ClientParam.m_ClientRecordTime[ct.GetDayOfWeek() - 1][2].m_iStopMinute;
  91. m_iHour41 = ClientParam.m_ClientRecordTime[ct.GetDayOfWeek() - 1][3].m_iStartHour;
  92. m_iMinute41 = ClientParam.m_ClientRecordTime[ct.GetDayOfWeek() - 1][3].m_iStartMinute;
  93. m_iHour42 = ClientParam.m_ClientRecordTime[ct.GetDayOfWeek() - 1][3].m_iStopHour;
  94. m_iMinute42 = ClientParam.m_ClientRecordTime[ct.GetDayOfWeek() - 1][3].m_iStopMinute;
  95. UpdateData(FALSE);
  96. return TRUE; // return TRUE unless you set the focus to a control
  97. // EXCEPTION: OCX Property Pages should return FALSE
  98. }
  99. void CSetClientRecordPlan::OnButreccopy()
  100. {
  101. // TODO: Add your control notification handler code here
  102. int iCurdate, iCopydate, i, j;
  103. UpdateData(TRUE);
  104. iCurdate = m_DateCtrl.GetCurSel();
  105. iCopydate = m_CopyDateCtrl.GetCurSel();
  106. if(iCopydate == iCurdate)
  107. return;
  108. if(iCopydate == 7)
  109. {
  110. for(i = 0; i < 7; i++)
  111. {
  112. if(i == iCurdate)
  113. continue;
  114. for(j = 0; j < 4; j++)
  115. {
  116. ClientParam.m_ClientRecordTime[i][j].m_iStartHour = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStartHour;
  117. ClientParam.m_ClientRecordTime[i][j].m_iStartMinute = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStartMinute;
  118. ClientParam.m_ClientRecordTime[i][j].m_iStartTime = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStartTime;
  119. ClientParam.m_ClientRecordTime[i][j].m_iStopHour = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStopHour;
  120. ClientParam.m_ClientRecordTime[i][j].m_iStopMinute = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStopMinute;
  121. ClientParam.m_ClientRecordTime[i][j].m_iStopTime = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStopTime;
  122. }
  123. }
  124. }
  125. else
  126. {
  127. for(j = 0; j < 4; j++)
  128. {
  129. ClientParam.m_ClientRecordTime[iCopydate][j].m_iStartHour = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStartHour;
  130. ClientParam.m_ClientRecordTime[iCopydate][j].m_iStartMinute = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStartMinute;
  131. ClientParam.m_ClientRecordTime[iCopydate][j].m_iStartTime = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStartTime;
  132. ClientParam.m_ClientRecordTime[iCopydate][j].m_iStopHour = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStopHour;
  133. ClientParam.m_ClientRecordTime[iCopydate][j].m_iStopMinute = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStopMinute;
  134. ClientParam.m_ClientRecordTime[iCopydate][j].m_iStopTime = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStopTime;
  135. }
  136. }
  137. }
  138. void CSetClientRecordPlan::OnSelchangeComboweekday()
  139. {
  140. // TODO: Add your control notification handler code here
  141. int i;
  142. i = m_DateCtrl.GetCurSel();
  143. m_iHour11 = ClientParam.m_ClientRecordTime[i][0].m_iStartHour;
  144. m_iMinute11 = ClientParam.m_ClientRecordTime[i][0].m_iStartMinute;
  145. m_iHour12 = ClientParam.m_ClientRecordTime[i][0].m_iStopHour;
  146. m_iMinute12 = ClientParam.m_ClientRecordTime[i][0].m_iStopMinute;
  147. m_iHour21 = ClientParam.m_ClientRecordTime[i][1].m_iStartHour;
  148. m_iMinute21 = ClientParam.m_ClientRecordTime[i][1].m_iStartMinute;
  149. m_iHour22 = ClientParam.m_ClientRecordTime[i][1].m_iStopHour;
  150. m_iMinute22 = ClientParam.m_ClientRecordTime[i][1].m_iStopMinute;
  151. m_iHour31 = ClientParam.m_ClientRecordTime[i][2].m_iStartHour;
  152. m_iMinute31 = ClientParam.m_ClientRecordTime[i][2].m_iStartMinute;
  153. m_iHour32 = ClientParam.m_ClientRecordTime[i][2].m_iStopHour;
  154. m_iMinute32 = ClientParam.m_ClientRecordTime[i][2].m_iStopMinute;
  155. m_iHour41 = ClientParam.m_ClientRecordTime[i][3].m_iStartHour;
  156. m_iMinute41 = ClientParam.m_ClientRecordTime[i][3].m_iStartMinute;
  157. m_iHour42 = ClientParam.m_ClientRecordTime[i][3].m_iStopHour;
  158. m_iMinute42 = ClientParam.m_ClientRecordTime[i][3].m_iStopMinute;
  159. UpdateData(FALSE);
  160. }
  161. void CSetClientRecordPlan::OnLocalrecok()
  162. {
  163. // TODO: Add your control notification handler code here
  164. int i, j;
  165. UpdateData(TRUE);
  166. i = m_DateCtrl.GetCurSel();
  167. if( (m_iHour11 < 0) || (m_iHour12 < 0) || (m_iHour21 < 0) || (m_iHour22 < 0) || \
  168. (m_iHour31 < 0) || (m_iHour32 < 0) || (m_iHour41 < 0) || (m_iHour42 < 0) )
  169. {
  170. AfxMessageBox("小时范围在0 -- 24之间!");
  171. return;
  172. }
  173. if( (m_iMinute11 < 0) || (m_iMinute11 > 60) || (m_iMinute12 < 0) || (m_iMinute12 > 60) || \
  174. (m_iMinute21 < 0) || (m_iMinute21 > 60) || (m_iMinute22 < 0) || (m_iMinute22 > 60) || \
  175. (m_iMinute31 < 0) || (m_iMinute31 > 60) || (m_iMinute32 < 0) || (m_iMinute32 > 60) || \
  176. (m_iMinute41 < 0) || (m_iMinute41 > 60) || (m_iMinute42 < 0) || (m_iMinute42 > 60) )
  177. {
  178. AfxMessageBox("分钟范围在0 -- 60之间!");
  179. return;
  180. }
  181. ClientParam.m_ClientRecordTime[i][0].m_iStartHour = m_iHour11;
  182. ClientParam.m_ClientRecordTime[i][0].m_iStartMinute = m_iMinute11;
  183. ClientParam.m_ClientRecordTime[i][0].m_iStopHour = m_iHour12;
  184. ClientParam.m_ClientRecordTime[i][0].m_iStopMinute = m_iMinute12;
  185. ClientParam.m_ClientRecordTime[i][0].m_iStartTime = m_iHour11 * 100 + m_iMinute11;
  186. ClientParam.m_ClientRecordTime[i][0].m_iStopTime = m_iHour12 * 100 + m_iMinute12;
  187. ClientParam.m_ClientRecordTime[i][1].m_iStartHour = m_iHour21;
  188. ClientParam.m_ClientRecordTime[i][1].m_iStartMinute = m_iMinute21;
  189. ClientParam.m_ClientRecordTime[i][1].m_iStopHour = m_iHour22;
  190. ClientParam.m_ClientRecordTime[i][1].m_iStopMinute = m_iMinute22;
  191. ClientParam.m_ClientRecordTime[i][1].m_iStartTime = m_iHour21 * 100 + m_iMinute21;
  192. ClientParam.m_ClientRecordTime[i][1].m_iStopTime = m_iHour22 * 100 + m_iMinute22;
  193. ClientParam.m_ClientRecordTime[i][2].m_iStartHour = m_iHour31;
  194. ClientParam.m_ClientRecordTime[i][2].m_iStartMinute = m_iMinute31;
  195. ClientParam.m_ClientRecordTime[i][2].m_iStopHour = m_iHour32;
  196. ClientParam.m_ClientRecordTime[i][2].m_iStopMinute = m_iMinute32;
  197. ClientParam.m_ClientRecordTime[i][2].m_iStartTime = m_iHour31 * 100 + m_iMinute31;
  198. ClientParam.m_ClientRecordTime[i][2].m_iStopTime = m_iHour32 * 100 + m_iMinute32;
  199. ClientParam.m_ClientRecordTime[i][3].m_iStartHour = m_iHour41;
  200. ClientParam.m_ClientRecordTime[i][3].m_iStartMinute = m_iMinute41;
  201. ClientParam.m_ClientRecordTime[i][3].m_iStopHour = m_iHour42;
  202. ClientParam.m_ClientRecordTime[i][3].m_iStopMinute = m_iMinute42;
  203. ClientParam.m_ClientRecordTime[i][3].m_iStartTime = m_iHour41 * 100 + m_iMinute41;
  204. ClientParam.m_ClientRecordTime[i][3].m_iStopTime = m_iHour42 * 100 + m_iMinute42;
  205. TRACE("\nm_ClientRecordTime[%d][0] 时间段一:%ld ----- %ld", i, ClientParam.m_ClientRecordTime[i][0].m_iStartTime, ClientParam.m_ClientRecordTime[i][0].m_iStopTime);
  206. TRACE("\nm_ClientRecordTime[%d][1] 时间段二:%ld ----- %ld", i, ClientParam.m_ClientRecordTime[i][1].m_iStartTime, ClientParam.m_ClientRecordTime[i][1].m_iStopTime);
  207. TRACE("\nm_ClientRecordTime[%d][2] 时间段三:%ld ----- %ld", i, ClientParam.m_ClientRecordTime[i][2].m_iStartTime, ClientParam.m_ClientRecordTime[i][2].m_iStopTime);
  208. TRACE("\nm_ClientRecordTime[%d][3] 时间段四:%ld ----- %ld", i, ClientParam.m_ClientRecordTime[i][3].m_iStartTime, ClientParam.m_ClientRecordTime[i][3].m_iStopTime);
  209. for(j = 0; j < 4; j++)
  210. {
  211. if( (ClientParam.m_ClientRecordTime[i][j].m_iStartTime >= 2400) || (ClientParam.m_ClientRecordTime[i][j].m_iStopTime > 2400) )
  212. {
  213. AfxMessageBox("录像时间不能超过24:00!");
  214. return;
  215. }
  216. if(ClientParam.m_ClientRecordTime[i][j].m_iStartTime > ClientParam.m_ClientRecordTime[i][j].m_iStopTime)
  217. {
  218. AfxMessageBox("录像起始时间不能大于录像停止时间!");
  219. return;
  220. }
  221. for(int k = j+1; k < 4; k++)
  222. {
  223. if( ((ClientParam.m_ClientRecordTime[i][j].m_iStartTime > ClientParam.m_ClientRecordTime[i][k].m_iStartTime) &&
  224. (ClientParam.m_ClientRecordTime[i][j].m_iStartTime < ClientParam.m_ClientRecordTime[i][k].m_iStopTime))
  225. || ((ClientParam.m_ClientRecordTime[i][j].m_iStopTime > ClientParam.m_ClientRecordTime[i][k].m_iStartTime) &&
  226. (ClientParam.m_ClientRecordTime[i][j].m_iStopTime < ClientParam.m_ClientRecordTime[i][k].m_iStopTime)) )
  227. {
  228. AfxMessageBox("录像时间不能重复!");
  229. return;
  230. }
  231. }
  232. }
  233. m_bChanged = TRUE;
  234. (CButton *)GetDlgItem(IDC_BUTRECCOPY)->EnableWindow(TRUE);
  235. }
  236. void CSetClientRecordPlan::OnExit()
  237. {
  238. // TODO: Add your control notification handler code here
  239. CDialog::OnCancel();
  240. }
  241. void CSetClientRecordPlan::OnCancel()
  242. {
  243. // TODO: Add extra cleanup here
  244. // CDialog::OnCancel();
  245. }