📄 editrouteinfodlg.cpp
字号:
// EditRouteInfoDlg.cpp : implementation file
//
#include "stdafx.h"
#include "PROJECTPMU.h"
#include "EditRouteInfoDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CEditRouteInfoDlg dialog
CEditRouteInfoDlg::CEditRouteInfoDlg(CWnd* pParent /*=NULL*/)
: CDialog(CEditRouteInfoDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CEditRouteInfoDlg)
m_CurrentStationEn_Edit = _T("");
m_CurrentStationCh_Edit = _T("");
m_NextStationEn_Edit = _T("");
m_NextStationCh_Edit = _T("");
m_ArrivalTime_Edit = _T("");
m_DepartTime_Edit = _T("");
m_StayTime_Edit = _T("");
m_DistanceNextStation_Edit = _T("");
m_ETA_Edit = _T("");
m_Announcement_Edit = _T("");
m_TrainCode_Edit = _T("");
//}}AFX_DATA_INIT
}
void CEditRouteInfoDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CEditRouteInfoDlg)
DDX_Text(pDX, IDC_EDIT1, m_CurrentStationEn_Edit);
DDX_Text(pDX, IDC_EDIT2, m_CurrentStationCh_Edit);
DDX_Text(pDX, IDC_EDIT3, m_NextStationEn_Edit);
DDX_Text(pDX, IDC_EDIT4, m_NextStationCh_Edit);
DDX_Text(pDX, IDC_EDIT5, m_ArrivalTime_Edit);
DDX_Text(pDX, IDC_EDIT6, m_DepartTime_Edit);
DDX_Text(pDX, IDC_EDIT7, m_StayTime_Edit);
DDX_Text(pDX, IDC_EDIT8, m_DistanceNextStation_Edit);
DDX_Text(pDX, IDC_EDIT9, m_ETA_Edit);
DDX_Text(pDX, IDC_EDIT10, m_Announcement_Edit);
DDX_Text(pDX, IDC_EDIT11, m_TrainCode_Edit);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CEditRouteInfoDlg, CDialog)
//{{AFX_MSG_MAP(CEditRouteInfoDlg)
ON_BN_CLICKED(IDC_SaveButton, OnSaveButton)
//ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CEditRouteInfoDlg message handlers
BOOL CEditRouteInfoDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
//得到应用程序所在文件夹路径
CAdoRecordSet pRS;
if(NULL != GetModuleFileName(NULL,mDir_Path,256))
{
int n=strlen(mDir_Path);
for (int i=n; i>=0; i--)
{
if (mDir_Path[i] == '\\')
{
mDir_Path[i] = '\0';
break;
}
}
strcpy(mMDB_Path,mDir_Path);
strcat(mMDB_Path,"\\PIS.mdb"); // 数据库路径
}
//把需要修改的数据显示在文本框中
m_TrainCode_Edit=TrainCode;
m_CurrentStationEn_Edit=CurrentStationEn;
m_CurrentStationCh_Edit=CurrentStationCh;
m_NextStationEn_Edit=NextStationEn;
m_NextStationCh_Edit=NextStationCh;
m_ArrivalTime_Edit=ArrivalTime;
m_DepartTime_Edit=DepartTime;
m_StayTime_Edit=StayTime;
m_DistanceNextStation_Edit=DistanceNextStation;
m_ETA_Edit=ETA;
m_Announcement_Edit=Announcement;
UpdateData(FALSE);//显示出来
m_str1=m_CurrentStationEn_Edit;
m_str2=m_CurrentStationCh_Edit;
m_str1.TrimRight();
m_str2.TrimRight();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CEditRouteInfoDlg::OnSaveButton()
{
// TODO: Add your control notification handler code here
/*CString sTrainCode="",sCurrentStationEn="",sCurrentStationCh="",sNextStationEn="",sNextStationCh="",\
sArrivalTime="",sDepartTime="", sStayTime="",sDistanceNextStation="",sETA="",\
sAnnouncement="",sqlupdate="",sqladd="";
int nStayTime=0,nDistanceNextStation=0,nETA=0,nAnnouncement=0;*/
//读取文本框中的数据并赋值给定义的字符串
((CEdit *)GetDlgItem(IDC_EDIT11))->GetWindowText(sTrainCode);
((CEdit *)GetDlgItem(IDC_EDIT1))->GetWindowText(sCurrentStationEn);
AfxMessageBox(sCurrentStationEn);
((CEdit *)GetDlgItem(IDC_EDIT2))->GetWindowText(sCurrentStationCh);
((CEdit *)GetDlgItem(IDC_EDIT3))->GetWindowText(sNextStationEn);
((CEdit *)GetDlgItem(IDC_EDIT4))->GetWindowText(sNextStationCh);
((CEdit *)GetDlgItem(IDC_EDIT5))->GetWindowText(sArrivalTime);
((CEdit *)GetDlgItem(IDC_EDIT6))->GetWindowText(sDepartTime);
((CEdit *)GetDlgItem(IDC_EDIT7))->GetWindowText(sStayTime);
nStayTime=atoi(sStayTime); //字符串转整形
((CEdit *)GetDlgItem(IDC_EDIT8))->GetWindowText(sDistanceNextStation);
nDistanceNextStation=atoi(sDistanceNextStation); //字符串转整形
((CEdit *)GetDlgItem(IDC_EDIT9))->GetWindowText(sETA);
nETA=atoi(sETA); //字符串转整形
((CEdit *)GetDlgItem(IDC_EDIT10))->GetWindowText(sAnnouncement);
nAnnouncement=atoi(sAnnouncement); //字符串转整形
CString ArriHour,ArriMin,ArriSecond,Arrich1="",Arrich2="",DepHour,DepMin,DepSecond,\
Depch1="",Depch2="";
int nArriHour,nArriMin,nArriSecond,nDepHour,nDepMin,nDepSecond;
int ArrivalTime_len=strlen(sArrivalTime);
int sDepartTime_len=strlen(sDepartTime);
if(ArrivalTime_len==8&&(sDepartTime_len==8))//判断时间输入长度是否等于8位
{ //读取时间的小时分钟妙
ArriHour=sArrivalTime.Mid(0,2);
ArriMin=sArrivalTime.Mid(3,2);
ArriSecond=sArrivalTime.Mid(6,2);
Arrich1=sArrivalTime.Mid(2,1);
Arrich2=sArrivalTime.Mid(5,1);
nArriHour=atoi(ArriHour);
nArriMin=atoi(ArriMin);
nArriSecond=atoi(ArriSecond);
DepHour=sDepartTime.Mid(0,2);
DepMin=sDepartTime.Mid(3,2);
DepSecond=sDepartTime.Mid(6,2);
Depch1=sDepartTime.Mid(2,1);
Depch2=sDepartTime.Mid(5,1);
nDepHour=atoi(DepHour);
nDepMin=atoi(DepMin);
nDepSecond=atoi(DepSecond);
if((nArriHour>=0)&&(nArriHour<=24)&&(nDepHour>=0)&&(nDepHour<=24)
&&(Arrich1==':')&&(Arrich2==':')&&(Depch1==':')&&(Depch2==':')
&&(nArriMin>=0)&&(nArriMin<=60)&&(nDepMin>=0)&&(nDepMin<=60)
&&(nArriSecond>=0)&&(nArriSecond<=60)&&(nDepSecond>=0)&&(nDepSecond<=60))
{
AddAlterData();
}//if输入小时分钟妙格式
else
AfxMessageBox("输入格式不正确,请重新输入");
}
else
if((ArrivalTime_len==0)&&(sDepartTime_len==0))//输入的时间是空字符串
{
AddAlterData();
}
else
if((ArrivalTime_len==8)&&(sDepartTime_len==0))
{
ArriHour=sArrivalTime.Mid(0,2);
ArriMin=sArrivalTime.Mid(3,2);
ArriSecond=sArrivalTime.Mid(6,2);
Arrich1=sArrivalTime.Mid(2,1);
Arrich2=sArrivalTime.Mid(5,1);
nArriHour=atoi(ArriHour);
nArriMin=atoi(ArriMin);
nArriSecond=atoi(ArriSecond);
if((nArriHour>=0)&&(nArriHour<=24)&&(Arrich1==':')&&(Arrich2==':')
&&(nArriMin>=0)&&(nArriMin<=60)&&(nArriSecond>=0)&&(nArriSecond<=60))
{
AddAlterData();
}
else
AfxMessageBox("输入格式不正确,请重新输入");
}
else
if((ArrivalTime_len==0)&&(sDepartTime_len==8))
{
DepHour=sDepartTime.Mid(0,2);
DepMin=sDepartTime.Mid(3,2);
DepSecond=sDepartTime.Mid(6,2);
Depch1=sDepartTime.Mid(2,1);
Depch2=sDepartTime.Mid(5,1);
nDepHour=atoi(DepHour);
nDepMin=atoi(DepMin);
nDepSecond=atoi(DepSecond);
if((nDepHour>=0)&&(nDepHour<=24)&&(Depch1==':')&&(Depch2==':')
&&(nDepMin>=0)&&(nDepMin<=60)&&(nDepSecond>=0)&&(nDepSecond<=60))
{
AddAlterData();
}
else
AfxMessageBox("输入格式不正确,请重新输入");
}
else
AfxMessageBox("输入格式不正确,请重新输入");
m_pConnection.Close();
}
void CEditRouteInfoDlg::AddAlterData()
{
if (m_pConnection.ConnectAccess(mMDB_Path,"sri"))
{
if(m_bADD)//添加数据
{// 更新上一个站点的NextStationEn,NextStationCh内容
CString SQLstr;
SQLstr.Format("Update RouteInfo set NextStationEn='%s',NextStationCh='%s'\
where TrainCode='%s' and (NextStationEn='' or NextStationEn is NULL)" \
,sCurrentStationEn,sCurrentStationCh,sTrainCode);
m_pConnection.Execute(SQLstr);
//添加一个站
sqladd.Format("insert into RouteInfo(TrainCode,CurrentStationEn,CurrentStationCh,NextStationEn,\
NextStationCh,ArrivalTime,DepartTime,StayTime,DistanceNextStation,ETA,\
AnnouncementDistanceThreshold) values ('%s','%s','%s','%s','%s','%s','%s',%d,\
%d,%d,%d)",sTrainCode,sCurrentStationEn,sCurrentStationCh,sNextStationEn,\
sNextStationCh,sArrivalTime,sDepartTime,nStayTime,nDistanceNextStation,\
nETA,nAnnouncement);
// AfxMessageBox(sqladd);
m_pConnection.Execute(sqladd);
// AfxMessageBox("ok");
}
else
{//修改数据
if((m_str1 != sCurrentStationEn)||(m_str2 != sCurrentStationCh))
{
// 更新上一个站点的NextStationEn,NextStationCh内容
CString SQLstr;
SQLstr.Format("Update RouteInfo set NextStationEn='%s',NextStationCh='%s' \
where TrainCode='%s' and NextStationEn='%s'and NextStationCh='%s' " \
,sCurrentStationEn,sCurrentStationCh,sTrainCode,m_str1,m_str2);
m_pConnection.Execute(SQLstr);
}
//修改信息
sqlupdate.Format("update RouteInfo set CurrentStationEn='%s',CurrentStationCh='%s',\
NextStationEn='%s',NextStationCh='%s',ArrivalTime='%s',DepartTime='%s',\
StayTime=%d,DistanceNextStation=%d,ETA=%d,AnnouncementDistanceThreshold=%d \
where (TrainCode='%s') and (CurrentStationEn='%s') and (CurrentStationCh='%s')", sCurrentStationEn,\
sCurrentStationCh,sNextStationEn,sNextStationCh,sArrivalTime,\
sDepartTime,nStayTime,nDistanceNextStation,nETA,nAnnouncement,\
sTrainCode,m_str1,m_str2);
// AfxMessageBox(sqlupdate);
m_pConnection.Execute(sqlupdate);
}
}
Sleep(500);//延时,等数据库更改后再执行下面语句
CEditRouteInfoDlg::OnOK();//将修改后的数据保存到上一个窗体中的控件中
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -