⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rate.cpp

📁 一个自己制作的数据库文件
💻 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 + -