📄 busrouteupdatedlg.cpp
字号:
strcpy(bus_infor.Bus_Route, strRoute);
//----添加信息
rv = DB_BUS_INFOR_Insert(hstmt, bus_infor);
if( rv != 0 )
{
AfxMessageBox("已存在此路线,请确认!");
return;
}
else
{
AfxMessageBox("成功保存添加信息!");
}//end if
CString str;
char temp[8];
// 从新编号
for(i=1; i<=m_list_all; i++)
{
memset(temp, 0, 8);
itoa(i,temp,10);
str = temp;
if( m_list_all < 10 )
{
str = "00"+str;
}
if( (10 <= m_list_all) && (m_list_all < 100) )
{
str = "0"+str;
}
m_ListCtrl_Route.SetItemText(i-1,0,str);
}
// 列表显示
m_list_all = m_list_all+1;
itoa(m_list_all,temp,10);
str = temp;
if( m_list_all < 10 )
{
str = "00"+str;
}
if( (10 <= m_list_all) && (m_list_all < 100) )
{
str = "0"+str;
}
Item.mask=LVIF_IMAGE|LVIF_TEXT;
Item.pszText=str.GetBuffer(str.GetLength());
m_ListCtrl_Route.InsertItem(&Item);
//
m_list_all = m_list_all-1;
//
itoa(bus_infor.Bus_Number,temp,10);
str = temp;
m_ListCtrl_Route.SetItemText(m_list_all,1,str);
str = bus_infor.Bus_Type_Name;
m_ListCtrl_Route.SetItemText(m_list_all,2,str);
if( bus_infor.Bus_Ticket == 0 )
{
str = "有";
}
else
{
str = "无";
}
m_ListCtrl_Route.SetItemText(m_list_all,3,str);
str = bus_infor.Bus_Route;
m_ListCtrl_Route.SetItemText(m_list_all,4,str);
str = bus_infor.Bus_Remark;
m_ListCtrl_Route.SetItemText(m_list_all,5,str);
//重新初始化窗口信息
m_list_hanghao = -1;
m_list_all = m_list_all+1;
m_Int_BusNumber = 0;
m_String_Remark = _T(" ");
m_String_BusType = _T("");
m_Button_Ticket.SetCheck(0);
m_ListBox_Route.ResetContent();
nRouteCount = 0;
UpdateData(FALSE);
}
void CBusRouteUpdateDlg::OnRouteUpdateDelete()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if( m_list_hanghao < 0 )
{
AfxMessageBox("请先选定要删除信息!");
return;
}
///////
if( MessageBox("删除此路线信息,将丢失关于此路线的信息,是否删除?","删除确认",MB_YESNO|MB_ICONQUESTION) != IDYES )
{
return;
}
// 获取删除条件
int bus_number;
char temp[10];
memset(temp, 0, 10);
strcpy(temp, m_ListCtrl_Route.GetItemText(m_list_hanghao,1));
bus_number = atoi(temp);
char bus_type_name[12];
memset(bus_type_name, 0, 12);
strcpy(bus_type_name, m_ListCtrl_Route.GetItemText(m_list_hanghao,2));
// 删除路线信息信息
int rv;
rv = DB_BUS_INFOR_Delete(hstmt, bus_number, bus_type_name);
if( rv != 0 )
{
AfxMessageBox("删除信息失败!");
return;
}
else
{
AfxMessageBox("删除信息成功!");
}//end if
// 修改站点信息
CString strRoute = m_ListCtrl_Route.GetItemText(m_list_hanghao,4);
CBusRouteUpdateDlg::DeleteStationInfor(strRoute, bus_number);
//重新初始化窗口信息
CString str;
m_ListCtrl_Route.DeleteItem(m_list_hanghao);
for(int i=1; i<m_list_all; i++)
{
memset(temp, 0, 8);
itoa(i,temp,10);
str = temp;
if( m_list_all < 10 )
{
str = "00"+str;
}
if( (10 <= m_list_all) && (m_list_all < 100) )
{
str = "0"+str;
}
m_ListCtrl_Route.SetItemText(i-1,0,str);
}
/////////////////////
m_list_hanghao = -1;
m_list_all = m_list_all-1;
m_Int_BusNumber = 0;
m_String_Remark = _T(" ");
m_String_BusType = _T("");
m_Button_Ticket.SetCheck(0);
m_ListBox_Route.ResetContent();
nRouteCount = 0;
UpdateData(FALSE);
}
void CBusRouteUpdateDlg::OnRouteUpdateModify()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
//-----判断输入信息是否符合条件
if( (m_Int_BusNumber < 0) || (m_Int_BusNumber >= 128) )
{
AfxMessageBox("车次范围【0-128】!");
return;
}
int num = m_ComboBox_BusType.GetCurSel();
if( num < 0 )
{
AfxMessageBox("请先选定路线类型!");
return;
}
if( nRouteCount <= 0)
{
AfxMessageBox("路线列表为空,你还未设置该线路的车行路线,不能存入!");
return;
}
//---------修改信息---------//
// 获取修改参数
CString str;
char temp[8];
int bus_number;
str = m_ListCtrl_Route.GetItemText(m_list_hanghao,1);
strcpy(temp, str);
bus_number = atoi(temp);
char bus_type_name[12];
memset(bus_type_name, 0, 12);
strcpy(bus_type_name, m_ListCtrl_Route.GetItemText(m_list_hanghao,2));
//---赋值
BUS_INFOR bus_infor;
memset(&bus_infor, 0, sizeof(BUS_INFOR));
strcpy(bus_infor.Bus_Type_Name, m_String_BusType);
strcpy(bus_infor.Bus_Remark, m_String_Remark);
bus_infor.Bus_Number = m_Int_BusNumber;
int nButtonSign = m_Button_Ticket.GetCheck();
if( nButtonSign == 1 )
{
bus_infor.Bus_Ticket = 0;
}
else
{
bus_infor.Bus_Ticket = -1;
}
// 路线转化
CString strRoute = "";
int rv;
for( int i=0; i<nRouteCount-1; i++ )
{
m_ListBox_Route.GetText(i, str);
rv = UpdateStationInfor(str, bus_infor.Bus_Number, 1); // 更新站点信息
if(rv != 0)
{
return;
}
strRoute = strRoute+str+"->";
}
m_ListBox_Route.GetText(nRouteCount-1, str);
rv = UpdateStationInfor(str, bus_infor.Bus_Number, 1); // 更新站点信息
if(rv != 0)
{
return;
}
strRoute = strRoute+str;
strcpy(bus_infor.Bus_Route, strRoute);
//----添加信息
rv = DB_BUS_INFOR_Modify(hstmt, bus_infor, bus_number, bus_type_name);
if( rv != 0 )
{
AfxMessageBox("已存在此路线,请确认!");
return;
}
else
{
AfxMessageBox("成功保存更新信息!");
}//end if
//
CString Route = m_ListCtrl_Route.GetItemText(m_list_hanghao,4);
CBusRouteUpdateDlg::DeleteStationInfor(Route, bus_number);
// 列表显示
itoa(bus_infor.Bus_Number,temp,10);
str = temp;
m_ListCtrl_Route.SetItemText(m_list_hanghao,1,str);
str = bus_infor.Bus_Type_Name;
m_ListCtrl_Route.SetItemText(m_list_hanghao,2,str);
if( bus_infor.Bus_Ticket == 0 )
{
str = "有";
}
else
{
str = "无";
}
m_ListCtrl_Route.SetItemText(m_list_hanghao,3,str);
str = bus_infor.Bus_Route;
m_ListCtrl_Route.SetItemText(m_list_hanghao,4,str);
str = bus_infor.Bus_Remark;
m_ListCtrl_Route.SetItemText(m_list_hanghao,5,str);
//重新初始化窗口信息
m_list_hanghao = -1;
m_Int_BusNumber = 0;
m_String_Remark = _T(" ");
m_String_BusType = _T("");
m_Button_Ticket.SetCheck(0);
m_ListBox_Route.ResetContent();
nRouteCount = 0;
UpdateData(FALSE);
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
void CBusRouteUpdateDlg::OnClickRouteUpdateList(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
POINT pt;
::GetCursorPos(&pt);
ScreenToClient(&pt);
*pResult = 0;
//得到选定行号
m_list_hanghao = m_ListCtrl_Route . GetNextItem ( -1, LVNI_SELECTED );
//判断是否选中
if( m_list_hanghao < 0 )
{
return;
}
//显示查询信息
char temp[8];
CString str;
str = m_ListCtrl_Route.GetItemText(m_list_hanghao,1);
strcpy(temp, str);
m_Int_BusNumber = atoi(temp);
m_String_BusType = m_ListCtrl_Route.GetItemText(m_list_hanghao,2);
m_String_Remark = m_ListCtrl_Route.GetItemText(m_list_hanghao,5);
str = m_ListCtrl_Route.GetItemText(m_list_hanghao, 3);
if( str == "有" )
{
m_Button_Ticket.SetCheck(1);
}
else
{
m_Button_Ticket.SetCheck(0);
}
//
CString strRoute = m_ListCtrl_Route.GetItemText(m_list_hanghao,4);
CBusRouteUpdateDlg::ShowRoute(strRoute);
//////////////////////////////////////////
m_listbox_route_hanghao = -1;
m_listbox_station_hanghao = -1;
UpdateData(FALSE);
}
void CBusRouteUpdateDlg::OnSelchangeRouteUpdateListboxStation()
{
// TODO: Add your control notification handler code here
m_listbox_station_hanghao = m_ListBox_Station.GetCurSel();
}
void CBusRouteUpdateDlg::OnSelchangeRouteUpdateListboxRoute()
{
// TODO: Add your control notification handler code here
m_listbox_route_hanghao = m_ListBox_Route.GetCurSel();
}
// 显示路线的具体信息
void CBusRouteUpdateDlg::ShowRoute(CString strRoute)
{
int nSign_1,nSign_2; // 站点标记
char route[500]; // 路线存储串
char tempStation[24]; // 站点存储串
CString str;
memset(route, 0, 500);
memset(tempStation, 0, 24);
strcpy(route, strRoute);
// 初始化列表
m_ListBox_Route.ResetContent();
nRouteCount = 0;
// 显示路线信息
nSign_1 = 0;
nSign_2 = 0;
int nRouteLen = strlen(route);
if(nRouteLen < 1)
{
return;
}
for(int i=0; i<nRouteLen; i++)
{
if( route[i] == '-' )
{
// 提取
nSign_2 = i;
memset(tempStation, 0, 24);
strncpy(tempStation, &route[nSign_1], nSign_2-nSign_1);
nSign_1 = i+2;
// 显示
str = tempStation;
m_ListBox_Route.AddString(str);
nRouteCount++;
}
}
memset(tempStation, 0, 24);
strncpy(tempStation, &route[nSign_1], nRouteLen-nSign_1);
// 显示
str = tempStation;
m_ListBox_Route.AddString(str);
nRouteCount++;
}
int CBusRouteUpdateDlg::UpdateStationInfor(CString strStation, int busNumber, int sign)
{
// 查信变量
char station_name[24];
memset(station_name, 0 ,24);
strcpy(station_name, strStation);
// 站点信息
char bus_number[128];
memset(bus_number, 0, 128);
int rv;
rv = DB_STATION_INFOR_Query_BusNumber(hstmt,station_name, bus_number); // 读取原站点信息
if( rv != 0)
{
AfxMessageBox("读取原站点信息错误!");
return -1;
}
if( sign == 1 )
{
bus_number[busNumber-1] = '1';
}
else
{
bus_number[busNumber-1] = '0';
}
rv = DB_STATION_INFOR_Modify_BusNumber(hstmt, station_name, bus_number); // 修改站点信息
if( rv != 0)
{
AfxMessageBox("更新站点信息错误!");
return -1;
}
return 0;
}
void CBusRouteUpdateDlg::DeleteStationInfor(CString strRoute, int busNumber)
{
//--------读取线路中的站点
int nSign_1,nSign_2; // 站点标记
char route[500]; // 路线存储串
char tempStation[24]; // 站点存储串
CString str;
memset(route, 0, 500);
memset(tempStation, 0, 24);
strcpy(route, strRoute);
// 分解站点信息
nSign_1 = 0;
nSign_2 = 0;
int nRouteLen = strlen(route);
if(nRouteLen < 1)
{
return;
}
for(int i=0; i<nRouteLen; i++)
{
if( route[i] == '-' )
{
// 提取
nSign_2 = i;
memset(tempStation, 0, 24);
strncpy(tempStation, &route[nSign_1], nSign_2-nSign_1);
nSign_1 = i+2;
// 修改信息
str = tempStation;
CBusRouteUpdateDlg::UpdateStationInfor(str, busNumber, 0);
}
}
memset(tempStation, 0, 24);
strncpy(tempStation, &route[nSign_1], nRouteLen-nSign_1);
// 修改信息
str = tempStation;
CBusRouteUpdateDlg::UpdateStationInfor(str, busNumber, 0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -