📄 rate.cpp
字号:
// Rate.cpp : implementation file
//
#include "stdafx.h"
#include "Xmgl.h"
#include "Rate.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CRate dialog
CRate::CRate(CWnd* pParent /*=NULL*/)
: CDialog(CRate::IDD, pParent)
{
//{{AFX_DATA_INIT(CRate)
m_EndTime = 0;
m_StartTime = 0;
m_Air = 0.0f;
m_Bus = 0.0f;
m_Fare = 0.0f;
m_Fetch = 0.0f;
m_Holiday = 0.0f;
m_Name = _T("");
m_Night = 0.0f;
m_Post = 0.0f;
m_Return = 0.0f;
m_Safety = 0.0f;
m_Sleep = 0.0f;
m_Staple = 0.0f;
m_Sum = 0.0f;
m_Phone = 0.0f;
m_Item = _T("");
m_Subsidy = 0.0f;
m_Affix = 0.0f;
m_Date = 0;
m_Quarter = 0.0f;
m_Rest = 0.0f;
m_cName = _T("");
m_cItem = _T("");
//}}AFX_DATA_INIT
}
void CRate::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CRate)
DDX_Control(pDX, IDC_BUTTON_SEARCH, m_ctrSearch);
DDX_Control(pDX, IDOK, m_ctrSaveBnt);
DDX_Control(pDX, ID_BUTTON_CANCEL, m_ctrCancelBnt);
DDX_Control(pDX, ID_BUTTON_DELETE, m_ctrDelBnt);
DDX_Control(pDX, IDC_BUTTON_MODIFY, m_ctrModify);
DDX_Control(pDX, ID_BUTTON_NEW, m_ctrNewBnt);
DDX_Control(pDX, IDC_COMBO_ITEM, m_ctrItem);
DDX_Control(pDX, IDC_COMBO_NAME, m_ctrName);
DDX_Control(pDX, IDC_LIST1, m_ctrList);
DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER_ENDDATE, m_EndTime);
DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER_STARTDATE, m_StartTime);
DDX_Text(pDX, IDC_EDIT_AIR, m_Air);
DDX_Text(pDX, IDC_EDIT_BUS, m_Bus);
DDX_Text(pDX, IDC_EDIT_FARE, m_Fare);
DDX_Text(pDX, IDC_EDIT_FETCH, m_Fetch);
DDX_Text(pDX, IDC_EDIT_HOLIDAY, m_Holiday);
DDX_Text(pDX, IDC_EDIT_NAME, m_Name);
DDX_Text(pDX, IDC_EDIT_NIGHT, m_Night);
DDX_Text(pDX, IDC_EDIT_POST, m_Post);
DDX_Text(pDX, IDC_EDIT_RETURN, m_Return);
DDX_Text(pDX, IDC_EDIT_SAFETY, m_Safety);
DDX_Text(pDX, IDC_EDIT_SLEEP, m_Sleep);
DDX_Text(pDX, IDC_EDIT_STAPLE, m_Staple);
DDX_Text(pDX, IDC_EDIT_SUM, m_Sum);
DDX_Text(pDX, IDC_EDIT_TELEPHONE, m_Phone);
DDX_Text(pDX, IDC_EDIT_ITEM, m_Item);
DDX_Text(pDX, IDC_EDIT_SUBSIDY, m_Subsidy);
DDX_Text(pDX, IDC_EDIT_AFFIX, m_Affix);
DDX_Text(pDX, IDC_EDIT_DATE, m_Date);
DDX_Text(pDX, IDC_EDIT_QUARTER, m_Quarter);
DDX_Text(pDX, IDC_EDIT_REST, m_Rest);
DDX_CBString(pDX, IDC_COMBO_NAME, m_cName);
DDX_CBString(pDX, IDC_COMBO_ITEM, m_cItem);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CRate, CDialog)
//{{AFX_MSG_MAP(CRate)
ON_BN_CLICKED(IDC_BUTTON_SEARCH, OnButtonSearch)
ON_BN_CLICKED(ID_BUTTON_NEW, OnButtonNew)
ON_BN_CLICKED(IDC_BUTTON_MODIFY, OnButtonModify)
ON_BN_CLICKED(ID_BUTTON_DELETE, OnButtonDelete)
ON_BN_CLICKED(ID_BUTTON_CANCEL, OnButtonCancel)
ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CRate message handlers
//*************保存记录**************************************************//
void CRate::OnOK()
{
// TODO: Add extra validation here
UpdateData();
m_Sum = m_Fare + m_Air +m_Sleep + m_Safety +
m_Night + m_Quarter + m_Subsidy + m_Holiday
+ m_Staple + m_Return + m_Phone + m_Bus + m_Post
+ m_Fetch + m_Rest + m_Affix;
UpdateData(FALSE);
if(m_Name=="")
{
MessageBox("请填写姓名!");
return;
}
if(m_Item=="")
{
MessageBox("请填写项目名称!");
return;
}
if(m_StartTime==0)
{
MessageBox("请填写出发日期!");
return;
}
if(m_EndTime==0)
{
MessageBox("请填写结束日期!");
return;
}
AddName();//保存姓名
AddItem();//保存项目名称
if (m_Date <= 0)
{
MessageBox("天数填写有误!");
return;
}
//打开记录集
CString strSQL;
/*******************************************************************/
/***********************添加详细信息******************************/
strSQL="select * from tongji";
if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
{
MessageBox("打开数据库失败!","数据库错误",MB_OK);
return ;
}
m_recordset.AddNew();
m_recordset.m_Name = m_Name;
m_recordset.m_Item = m_Item;
m_recordset.m_Startdate = m_StartTime;
m_recordset.m_Enddate = m_EndTime ;
m_recordset.m_Date = m_Date;
m_recordset.m_Fare = m_Fare;
m_recordset.m_Air = m_Air;
m_recordset.m_Sleep = m_Sleep;
m_recordset.m_Safety = m_Safety;
m_recordset.m_Night = m_Night ;
m_recordset.m_Quarter = m_Quarter;
m_recordset.m_Subsidy = m_Subsidy;
m_recordset.m_Holiday = m_Holiday ;
m_recordset.m_Staple = m_Staple;
m_recordset.m_Return = m_Return;
m_recordset.m_Telephone = m_Phone;
m_recordset.m_Bus = m_Bus;
m_recordset.m_Post = m_Post;
m_recordset.m_Fetch = m_Fetch;
m_recordset.m_Rest = m_Rest;
m_recordset.m_Affix = m_Affix;
m_recordset.m_Sum = m_Sum;
m_recordset.Update();
m_recordset.Close();
}
//*************保存记录完**************************************************//
//保存姓名
void CRate::AddName()
{
CString strSQL;
strSQL.Format("select * from Name where Name='%s'",m_Name);
if(!m_name.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
{
MessageBox("打开数据库失败!","数据库错误",MB_OK);
return ;
}
//判断记录是否已经存在
if(m_name.GetRecordCount()!=0)
{
m_name.Close();
return;
}
//添加新记录
m_name.AddNew();
m_name.m_Name = m_Name;
m_name.Update();
m_name.Close();
}
//保存项目名称
void CRate::AddItem()
{
CString strSQL;
strSQL.Format("select * from Item where Item='%s'",m_Item);
if(!m_item.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
{
MessageBox("打开数据库失败!","数据库错误",MB_OK);
return ;
}
//判断记录是否已经存在
if(m_item.GetRecordCount()!=0)
{
m_item.Close();
return;
}
//添加新记录
m_item.AddNew();
m_item.m_Item = m_Item;
m_item.Update();
m_item.Close();
}
BOOL CRate::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_ctrNewBnt.EnableWindow(TRUE);
m_ctrDelBnt.EnableWindow(TRUE);
m_ctrSaveBnt.EnableWindow(FALSE);
m_ctrCancelBnt.EnableWindow(FALSE);
m_ctrModify.EnableWindow(TRUE);
m_ctrSearch.EnableWindow(TRUE);
m_ctrList.InsertColumn(0,"项目名称");
m_ctrList.InsertColumn(1,"姓名");
m_ctrList.InsertColumn(2,"出发日期");
m_ctrList.InsertColumn(3,"返回日期");
m_ctrList.InsertColumn(4,"ID");
RECT rect;
m_ctrList.GetWindowRect(&rect);
int wid = rect.right - rect.left;
m_ctrList.SetColumnWidth(0,wid/4+20);
m_ctrList.SetColumnWidth(1,wid/4-20);
m_ctrList.SetColumnWidth(2,wid/4);
m_ctrList.SetColumnWidth(3,wid/4);
m_ctrList.SetColumnWidth(4,0);
m_ctrList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
//向控件中添加项目名称
CString strSQL;
strSQL="select * from Item";
if(!m_item.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
{
MessageBox("打开数据库失败!","数据库错误",MB_OK);
}
while(!m_item.IsEOF())
{
m_ctrItem.AddString(m_item.m_Item);
m_item.MoveNext();
}
m_item.Close();
//向控件中添加姓名
strSQL="select * from Name";
if(!m_name.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
{
MessageBox("打开数据库失败!","数据库错误",MB_OK);
}
while(!m_name.IsEOF())
{
m_ctrName.AddString(m_name.m_Name);
m_name.MoveNext();
}
m_name.Close();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
//*************查询数据**************************************************//
void CRate::OnButtonSearch()
{
// TODO: Add your control notification handler code here
UpdateData();
CString strSQL;
CString strTemp;
CString strSTime,strETime;
BOOL bNoCondition = TRUE;
//根据查询条件构造SQL语句
strSQL = "select * from tongji where ";
//姓名查询
if(m_cName!="")
{
strTemp.Format(" Name = '%s' ",m_cName);
if(!bNoCondition)
strSQL += " and ";
strSQL += strTemp;
bNoCondition = FALSE;
}
//项目查询
if(m_cItem!="")
{
strTemp.Format(" Item = '%s' ",m_cItem);
if(!bNoCondition)
strSQL += " and ";
strSQL += strTemp;
bNoCondition = FALSE;
}
//全部查询
if(bNoCondition)
{
strSQL = "select * from tongji";
}
m_ctrList.DeleteAllItems();
m_ctrList.SetRedraw(FALSE);
if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
{
MessageBox("打开数据库失败!","数据库错误",MB_OK);
return ;
}
CString str;
int i=0;
while(!m_recordset.IsEOF())
{
m_ctrList.InsertItem(i,m_recordset.m_Item);
m_ctrList.SetItemText(i,1,m_recordset.m_Name);
m_ctrList.SetItemText(i,2,m_recordset.m_Startdate.Format("%Y-%m-%d"));
m_ctrList.SetItemText(i,3,m_recordset.m_Enddate.Format("%Y-%m-%d"));
str.Format("%d",m_recordset.m_ID);
m_ctrList.SetItemText(i,4,str);
i++;
m_recordset.MoveNext();
}
m_recordset.Close();
m_ctrList.SetRedraw(TRUE);
}
//*************查询数据完**************************************************//
//*************新增加数据**************************************************//
void CRate::OnButtonNew()
{
// TODO: Add your control notification handler code here
m_ctrNewBnt.EnableWindow(FALSE);
m_ctrDelBnt.EnableWindow(FALSE);
m_ctrSaveBnt.EnableWindow(TRUE);
m_ctrCancelBnt.EnableWindow(TRUE);
m_ctrModify.EnableWindow(FALSE);
m_ctrSearch.EnableWindow(FALSE);
Clear();
}
//*************新增加数据**************************************************//
//*************修改数据**************************************************//
void CRate::OnButtonModify()
{
// TODO: Add your control notification handler code here
UpdateData();
m_Sum = m_Fare + m_Air +m_Sleep + m_Safety +
m_Night + m_Quarter + m_Subsidy + m_Holiday
+ m_Staple + m_Return + m_Phone + m_Bus + m_Post
+ m_Fetch + m_Rest + m_Affix;
UpdateData(FALSE);
if(m_Name=="")
{
MessageBox("请填写姓名!");
return;
}
if(m_Item=="")
{
MessageBox("请填写项目名称!");
return;
}
if(m_StartTime==0)
{
MessageBox("请填写出发日期!");
return;
}
if(m_EndTime==0)
{
MessageBox("请填写结束日期!");
return;
}
if (m_Date <= 0)
{
MessageBox("天数填写有误!");
return;
}
//打开记录集
CString strSQL;
/*******************************************************************/
/***********************添加详细信息******************************/
strSQL="select * from tongji";
if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
{
MessageBox("打开数据库失败!","数据库错误",MB_OK);
return ;
}
m_recordset.Edit ();
m_recordset.m_Name = m_Name;
m_recordset.m_Item = m_Item;
m_recordset.m_Startdate = m_StartTime;
m_recordset.m_Enddate = m_EndTime ;
m_recordset.m_Date = m_Date;
m_recordset.m_Fare = m_Fare;
m_recordset.m_Air = m_Air;
m_recordset.m_Sleep = m_Sleep;
m_recordset.m_Safety = m_Safety;
m_recordset.m_Night = m_Night ;
m_recordset.m_Quarter = m_Quarter;
m_recordset.m_Subsidy = m_Subsidy;
m_recordset.m_Holiday = m_Holiday ;
m_recordset.m_Staple = m_Staple;
m_recordset.m_Return = m_Return;
m_recordset.m_Telephone = m_Phone;
m_recordset.m_Bus = m_Bus;
m_recordset.m_Post = m_Post;
m_recordset.m_Fetch = m_Fetch;
m_recordset.m_Rest = m_Rest;
m_recordset.m_Affix = m_Affix;
m_recordset.m_Sum = m_Sum;
m_recordset.Update();
m_recordset.Close();
}
//*************修改数据**************************************************//
//*************删除数据**************************************************//
void CRate::OnButtonDelete()
{
// TODO: Add your control notification handler code here
int i = m_ctrList.GetSelectionMark();
if(0>i)
{
MessageBox("请选择记录!");
return;
}
CString strSQL;
strSQL.Format("select * from tongji where Name='%s'",m_ctrList.GetItemText(i,1));
if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
{
MessageBox("打开数据库失败!","数据库错误",MB_OK);
return ;
}
m_recordset.Delete();
m_recordset.Close();
m_ctrList.DeleteItem(i);
Clear();
}
//*************删除数据**************************************************//
//*************取消增加数据**************************************************//
void CRate::OnButtonCancel()
{
// TODO: Add your control notification handler code here
//设置按钮状态
m_ctrNewBnt.EnableWindow(TRUE);
m_ctrDelBnt.EnableWindow(TRUE);
m_ctrSaveBnt.EnableWindow(FALSE);
m_ctrCancelBnt.EnableWindow(FALSE);
m_ctrModify.EnableWindow(TRUE);
m_ctrSearch.EnableWindow(TRUE);
}
//*************取消增加数据**************************************************//
void CRate::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
CString strSQL,m_strID;
UpdateData(TRUE);
int i = m_ctrList.GetSelectionMark();
m_strID = m_ctrList.GetItemText(i,4);
strSQL.Format("select * from tongji where ID = %s",m_strID);
if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
{
MessageBox("打开数据库失败!","数据库错误",MB_OK);
return ;
}
m_Name = m_recordset.m_Name ;
m_Item = m_recordset.m_Item ;
m_StartTime = m_recordset.m_Startdate ;
m_EndTime = m_recordset.m_Enddate ;
m_Date = m_recordset.m_Date ;
m_Fare = m_recordset.m_Fare ;
m_Air = m_recordset.m_Air ;
m_Sleep = m_recordset.m_Sleep ;
m_Safety = m_recordset.m_Safety ;
m_Night = m_recordset.m_Night ;
m_Quarter = m_recordset.m_Quarter ;
m_Subsidy = m_recordset.m_Subsidy ;
m_Holiday = m_recordset.m_Holiday ;
m_Staple = m_recordset.m_Staple ;
m_Return = m_recordset.m_Return ;
m_Phone = m_recordset.m_Telephone ;
m_Bus = m_recordset.m_Bus ;
m_Post = m_recordset.m_Post ;
m_Fetch = m_recordset.m_Fetch ;
m_Rest = m_recordset.m_Rest ;
m_Affix = m_recordset.m_Affix ;
m_Sum = m_recordset.m_Sum ;
m_recordset.Close();
UpdateData(FALSE);
*pResult = 0;
}
//********************************清空数据*******************************//
void CRate::Clear()
{
m_Air = 0;
m_Bus = 0;
m_Fare = 0;
m_Fetch = 0;
m_Holiday = 0;
m_Name = "";
m_Night = 0;
m_Post = 0;
m_Return = 0;
m_Safety = 0;
m_Sleep = 0;
m_Staple = 0;
m_Sum = 0;
m_Phone = 0;
m_Item = "";
m_Subsidy = 0;
m_Affix = 0;
m_Date = 0;
m_Quarter = 0;
m_Rest = 0;
UpdateData(FALSE);
}
//********************************清空数据*******************************//
void CRate::RefreshData()
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -