📄 setclientrecordplan.cpp
字号:
// SetClientRecordPlan.cpp : implementation file
//
#include "stdafx.h"
#include "newclient.h"
#include "SetClientRecordPlan.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSetClientRecordPlan dialog
extern CLIENTPARAM ClientParam;
CSetClientRecordPlan::CSetClientRecordPlan(CWnd* pParent /*=NULL*/)
: CDialog(CSetClientRecordPlan::IDD, pParent)
{
//{{AFX_DATA_INIT(CSetClientRecordPlan)
m_iHour11 = 0;
m_iHour12 = 0;
m_iHour21 = 0;
m_iHour22 = 0;
m_iHour31 = 0;
m_iHour32 = 0;
m_iHour41 = 0;
m_iHour42 = 0;
m_iMinute11 = 0;
m_iMinute12 = 0;
m_iMinute21 = 0;
m_iMinute22 = 0;
m_iMinute31 = 0;
m_iMinute32 = 0;
m_iMinute41 = 0;
m_iMinute42 = 0;
//}}AFX_DATA_INIT
}
void CSetClientRecordPlan::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSetClientRecordPlan)
DDX_Control(pDX, IDC_COPYWEEKDAY, m_CopyDateCtrl);
DDX_Control(pDX, IDC_COMBOWEEKDAY, m_DateCtrl);
DDX_Text(pDX, IDC_EDITHOUR011, m_iHour11);
DDX_Text(pDX, IDC_EDITHOUR012, m_iHour12);
DDX_Text(pDX, IDC_EDITHOUR021, m_iHour21);
DDX_Text(pDX, IDC_EDITHOUR022, m_iHour22);
DDX_Text(pDX, IDC_EDITHOUR031, m_iHour31);
DDX_Text(pDX, IDC_EDITHOUR032, m_iHour32);
DDX_Text(pDX, IDC_EDITHOUR041, m_iHour41);
DDX_Text(pDX, IDC_EDITHOUR042, m_iHour42);
DDX_Text(pDX, IDC_EDITMIN011, m_iMinute11);
DDX_Text(pDX, IDC_EDITMIN012, m_iMinute12);
DDX_Text(pDX, IDC_EDITMIN021, m_iMinute21);
DDX_Text(pDX, IDC_EDITMIN022, m_iMinute22);
DDX_Text(pDX, IDC_EDITMIN031, m_iMinute31);
DDX_Text(pDX, IDC_EDITMIN032, m_iMinute32);
DDX_Text(pDX, IDC_EDITMIN041, m_iMinute41);
DDX_Text(pDX, IDC_EDITMIN042, m_iMinute42);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSetClientRecordPlan, CDialog)
//{{AFX_MSG_MAP(CSetClientRecordPlan)
ON_BN_CLICKED(IDC_BUTRECCOPY, OnButreccopy)
ON_CBN_SELCHANGE(IDC_COMBOWEEKDAY, OnSelchangeComboweekday)
ON_BN_CLICKED(IDLOCALRECOK, OnLocalrecok)
ON_BN_CLICKED(IDEXIT, OnExit)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSetClientRecordPlan message handlers
BOOL CSetClientRecordPlan::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
CTime ct = CTime::GetCurrentTime();
int DayOfWeek = ct.GetDayOfWeek() - 1;
m_DateCtrl.SetCurSel(DayOfWeek);
m_CopyDateCtrl.SetCurSel(7);
m_bChanged = FALSE;
m_iHour11 = ClientParam.m_ClientRecordTime[DayOfWeek][0].m_iStartHour;
m_iMinute11 = ClientParam.m_ClientRecordTime[DayOfWeek][0].m_iStartMinute;
m_iHour12 = ClientParam.m_ClientRecordTime[DayOfWeek][0].m_iStopHour;
m_iMinute12 = ClientParam.m_ClientRecordTime[DayOfWeek][0].m_iStopMinute;
m_iHour21 = ClientParam.m_ClientRecordTime[DayOfWeek][1].m_iStartHour;
m_iMinute21 = ClientParam.m_ClientRecordTime[DayOfWeek][1].m_iStartMinute;
m_iHour22 = ClientParam.m_ClientRecordTime[DayOfWeek][1].m_iStopHour;
m_iMinute22 = ClientParam.m_ClientRecordTime[DayOfWeek][1].m_iStopMinute;
m_iHour31 = ClientParam.m_ClientRecordTime[DayOfWeek][2].m_iStartHour;
m_iMinute31 = ClientParam.m_ClientRecordTime[DayOfWeek][2].m_iStartMinute;
m_iHour32 = ClientParam.m_ClientRecordTime[DayOfWeek][2].m_iStopHour;
m_iMinute32 = ClientParam.m_ClientRecordTime[DayOfWeek][2].m_iStopMinute;
m_iHour41 = ClientParam.m_ClientRecordTime[DayOfWeek][3].m_iStartHour;
m_iMinute41 = ClientParam.m_ClientRecordTime[DayOfWeek][3].m_iStartMinute;
m_iHour42 = ClientParam.m_ClientRecordTime[DayOfWeek][3].m_iStopHour;
m_iMinute42 = ClientParam.m_ClientRecordTime[DayOfWeek][3].m_iStopMinute;
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CSetClientRecordPlan::OnButreccopy()
{
// TODO: Add your control notification handler code here
int iCurdate, iCopydate, i, j;
UpdateData(TRUE);
iCurdate = m_DateCtrl.GetCurSel();
iCopydate = m_CopyDateCtrl.GetCurSel();
if( (iCopydate < 0) || (iCopydate >= m_CopyDateCtrl.GetCount()) )
return;
if(iCopydate == iCurdate)
return;
if(iCopydate == 7)
{
for(i = 0; i < 7; i++)
{
if(i == iCurdate)
continue;
for(j = 0; j < 4; j++)
{
ClientParam.m_ClientRecordTime[i][j].m_iStartHour = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStartHour;
ClientParam.m_ClientRecordTime[i][j].m_iStartMinute = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStartMinute;
ClientParam.m_ClientRecordTime[i][j].m_iStartTime = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStartTime;
ClientParam.m_ClientRecordTime[i][j].m_iStopHour = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStopHour;
ClientParam.m_ClientRecordTime[i][j].m_iStopMinute = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStopMinute;
ClientParam.m_ClientRecordTime[i][j].m_iStopTime = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStopTime;
}
}
}
else
{
for(j = 0; j < 4; j++)
{
ClientParam.m_ClientRecordTime[iCopydate][j].m_iStartHour = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStartHour;
ClientParam.m_ClientRecordTime[iCopydate][j].m_iStartMinute = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStartMinute;
ClientParam.m_ClientRecordTime[iCopydate][j].m_iStartTime = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStartTime;
ClientParam.m_ClientRecordTime[iCopydate][j].m_iStopHour = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStopHour;
ClientParam.m_ClientRecordTime[iCopydate][j].m_iStopMinute = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStopMinute;
ClientParam.m_ClientRecordTime[iCopydate][j].m_iStopTime = ClientParam.m_ClientRecordTime[iCurdate][j].m_iStopTime;
}
}
}
void CSetClientRecordPlan::OnSelchangeComboweekday()
{
// TODO: Add your control notification handler code here
int i;
i = m_DateCtrl.GetCurSel();
if( (i < 0) || (i >= m_DateCtrl.GetCount()) )
return;
m_iHour11 = ClientParam.m_ClientRecordTime[i][0].m_iStartHour;
m_iMinute11 = ClientParam.m_ClientRecordTime[i][0].m_iStartMinute;
m_iHour12 = ClientParam.m_ClientRecordTime[i][0].m_iStopHour;
m_iMinute12 = ClientParam.m_ClientRecordTime[i][0].m_iStopMinute;
m_iHour21 = ClientParam.m_ClientRecordTime[i][1].m_iStartHour;
m_iMinute21 = ClientParam.m_ClientRecordTime[i][1].m_iStartMinute;
m_iHour22 = ClientParam.m_ClientRecordTime[i][1].m_iStopHour;
m_iMinute22 = ClientParam.m_ClientRecordTime[i][1].m_iStopMinute;
m_iHour31 = ClientParam.m_ClientRecordTime[i][2].m_iStartHour;
m_iMinute31 = ClientParam.m_ClientRecordTime[i][2].m_iStartMinute;
m_iHour32 = ClientParam.m_ClientRecordTime[i][2].m_iStopHour;
m_iMinute32 = ClientParam.m_ClientRecordTime[i][2].m_iStopMinute;
m_iHour41 = ClientParam.m_ClientRecordTime[i][3].m_iStartHour;
m_iMinute41 = ClientParam.m_ClientRecordTime[i][3].m_iStartMinute;
m_iHour42 = ClientParam.m_ClientRecordTime[i][3].m_iStopHour;
m_iMinute42 = ClientParam.m_ClientRecordTime[i][3].m_iStopMinute;
UpdateData(FALSE);
}
void CSetClientRecordPlan::OnLocalrecok()
{
// TODO: Add your control notification handler code here
int i, j;
UpdateData(TRUE);
i = m_DateCtrl.GetCurSel();
if( (i < 0) || (i > 6) )
return;
if( (m_iHour11 < 0) || (m_iHour12 < 0) || (m_iHour21 < 0) || (m_iHour22 < 0) || \
(m_iHour31 < 0) || (m_iHour32 < 0) || (m_iHour41 < 0) || (m_iHour42 < 0) )
{
AfxMessageBox("Hour range is 0 -- 24!");
return;
}
if( (m_iMinute11 < 0) || (m_iMinute11 > 60) || (m_iMinute12 < 0) || (m_iMinute12 > 60) || \
(m_iMinute21 < 0) || (m_iMinute21 > 60) || (m_iMinute22 < 0) || (m_iMinute22 > 60) || \
(m_iMinute31 < 0) || (m_iMinute31 > 60) || (m_iMinute32 < 0) || (m_iMinute32 > 60) || \
(m_iMinute41 < 0) || (m_iMinute41 > 60) || (m_iMinute42 < 0) || (m_iMinute42 > 60) )
{
AfxMessageBox("Minute range is 0 -- 60!");
return;
}
ClientParam.m_ClientRecordTime[i][0].m_iStartHour = m_iHour11;
ClientParam.m_ClientRecordTime[i][0].m_iStartMinute = m_iMinute11;
ClientParam.m_ClientRecordTime[i][0].m_iStopHour = m_iHour12;
ClientParam.m_ClientRecordTime[i][0].m_iStopMinute = m_iMinute12;
ClientParam.m_ClientRecordTime[i][0].m_iStartTime = m_iHour11 * 100 + m_iMinute11;
ClientParam.m_ClientRecordTime[i][0].m_iStopTime = m_iHour12 * 100 + m_iMinute12;
ClientParam.m_ClientRecordTime[i][1].m_iStartHour = m_iHour21;
ClientParam.m_ClientRecordTime[i][1].m_iStartMinute = m_iMinute21;
ClientParam.m_ClientRecordTime[i][1].m_iStopHour = m_iHour22;
ClientParam.m_ClientRecordTime[i][1].m_iStopMinute = m_iMinute22;
ClientParam.m_ClientRecordTime[i][1].m_iStartTime = m_iHour21 * 100 + m_iMinute21;
ClientParam.m_ClientRecordTime[i][1].m_iStopTime = m_iHour22 * 100 + m_iMinute22;
ClientParam.m_ClientRecordTime[i][2].m_iStartHour = m_iHour31;
ClientParam.m_ClientRecordTime[i][2].m_iStartMinute = m_iMinute31;
ClientParam.m_ClientRecordTime[i][2].m_iStopHour = m_iHour32;
ClientParam.m_ClientRecordTime[i][2].m_iStopMinute = m_iMinute32;
ClientParam.m_ClientRecordTime[i][2].m_iStartTime = m_iHour31 * 100 + m_iMinute31;
ClientParam.m_ClientRecordTime[i][2].m_iStopTime = m_iHour32 * 100 + m_iMinute32;
ClientParam.m_ClientRecordTime[i][3].m_iStartHour = m_iHour41;
ClientParam.m_ClientRecordTime[i][3].m_iStartMinute = m_iMinute41;
ClientParam.m_ClientRecordTime[i][3].m_iStopHour = m_iHour42;
ClientParam.m_ClientRecordTime[i][3].m_iStopMinute = m_iMinute42;
ClientParam.m_ClientRecordTime[i][3].m_iStartTime = m_iHour41 * 100 + m_iMinute41;
ClientParam.m_ClientRecordTime[i][3].m_iStopTime = m_iHour42 * 100 + m_iMinute42;
TRACE("m_ClientRecordTime[%d][0] section1:%ld ----- %ld", i, ClientParam.m_ClientRecordTime[i][0].m_iStartTime, ClientParam.m_ClientRecordTime[i][0].m_iStopTime);
TRACE("m_ClientRecordTime[%d][1] section2:%ld ----- %ld", i, ClientParam.m_ClientRecordTime[i][1].m_iStartTime, ClientParam.m_ClientRecordTime[i][1].m_iStopTime);
TRACE("m_ClientRecordTime[%d][2] section3:%ld ----- %ld", i, ClientParam.m_ClientRecordTime[i][2].m_iStartTime, ClientParam.m_ClientRecordTime[i][2].m_iStopTime);
TRACE("m_ClientRecordTime[%d][3] section4:%ld ----- %ld", i, ClientParam.m_ClientRecordTime[i][3].m_iStartTime, ClientParam.m_ClientRecordTime[i][3].m_iStopTime);
for(j = 0; j < 4; j++)
{
if( (ClientParam.m_ClientRecordTime[i][j].m_iStartTime >= 2400) || (ClientParam.m_ClientRecordTime[i][j].m_iStopTime > 2400) )
{
AfxMessageBox("Record time must not exceed 24:00!");
return;
}
if(ClientParam.m_ClientRecordTime[i][j].m_iStartTime > ClientParam.m_ClientRecordTime[i][j].m_iStopTime)
{
AfxMessageBox("Start time must be less than end time!");
return;
}
for(int k = j+1; k < 4; k++)
{
if( ((ClientParam.m_ClientRecordTime[i][j].m_iStartTime > ClientParam.m_ClientRecordTime[i][k].m_iStartTime) &&
(ClientParam.m_ClientRecordTime[i][j].m_iStartTime < ClientParam.m_ClientRecordTime[i][k].m_iStopTime))
|| ((ClientParam.m_ClientRecordTime[i][j].m_iStopTime > ClientParam.m_ClientRecordTime[i][k].m_iStartTime) &&
(ClientParam.m_ClientRecordTime[i][j].m_iStopTime < ClientParam.m_ClientRecordTime[i][k].m_iStopTime)) )
{
AfxMessageBox("Record time must not repeat!");
return;
}
}
}
m_bChanged = TRUE;
(CButton *)GetDlgItem(IDC_BUTRECCOPY)->EnableWindow(TRUE);
}
void CSetClientRecordPlan::OnExit()
{
// TODO: Add your control notification handler code here
CDialog::OnCancel();
}
void CSetClientRecordPlan::OnCancel()
{
// TODO: Add extra cleanup here
// CDialog::OnCancel();
}
void CSetClientRecordPlan::OnOK()
{
// TODO: Add extra cleanup here
// CDialog::OnOK();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -