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

📄 registrationmandlg.cpp

📁 这是一功能相对很完美的汽车维修管理系统的一个例子
💻 CPP
字号:
// RegistrationManDlg.cpp : implementation file
//

#include "stdafx.h"
#include "CarService.h"
#include "RegistrationManDlg.h"
#include "RegistrationEditDlg.h"
#include "ListMatManDlg.h"
#include "ListBugManDlg.h"
#include "Registration.h"
#include "ListItemManDlg.h"
#include "ListMaterial.h"
#include "ListBug.h"
#include "ListItem.h"
#include "COMDEF.H"
#include "Columns.h"
#include "Column.h"
#include "_Recordset.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CRegistrationManDlg dialog


CRegistrationManDlg::CRegistrationManDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CRegistrationManDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CRegistrationManDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CRegistrationManDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CRegistrationManDlg)
	DDX_Control(pDX, IDC_MATERIALMAN_BUTTON, m_MaterialMan);
	DDX_Control(pDX, IDC_ITEMMAN_BUTTON, m_ItemMan);
	DDX_Control(pDX, IDC_BUGMAN_BUTTON, m_BugMan);
	DDX_Control(pDX, IDC_MODI_BUTTON, m_Modi);
	DDX_Control(pDX, IDC_DEL_BUTTON, m_Del);
	DDX_Control(pDX, IDC_ADD_BUTTON, m_Add);
	DDX_Control(pDX, IDC_DATACOMBO1, m_dcoNo);
	DDX_Control(pDX, IDC_DATAGRID1, m_Datagrid);
	DDX_Control(pDX, IDC_ADODC1, m_Adodc);
	DDX_Control(pDX, IDC_ADODC3, m_AdoNo);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CRegistrationManDlg, CDialog)
	//{{AFX_MSG_MAP(CRegistrationManDlg)
	ON_BN_CLICKED(IDC_ADD_BUTTON, OnAddButton)
	ON_BN_CLICKED(IDC_MODI_BUTTON, OnModiButton)
	ON_BN_CLICKED(IDC_DEL_BUTTON, OnDelButton)
	ON_BN_CLICKED(IDC_ITEMMAN_BUTTON, OnItemmanButton)
	ON_BN_CLICKED(IDC_MATERIALMAN_BUTTON, OnMaterialmanButton)
	ON_BN_CLICKED(IDC_BUGMAN_BUTTON, OnBugmanButton)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CRegistrationManDlg message handlers

BOOL CRegistrationManDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	RefreshData();
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CRegistrationManDlg::OnAddButton() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	
	// 初始化RegistrationEditDlg对话框中的变量
	CRegistrationEditDlg dlg;
	dlg.cRegId = "";   //设置编号初始值
	// 将登记日期和维修结束日期设置为当天
	CTime CurrentTime = CTime::GetCurrentTime();
	dlg.m_CreateDate = CurrentTime.Format("%Y-%m-%d");
	dlg.m_fDate = CurrentTime.Format("%Y-%m-%d");
	dlg.m_CarNo = "京";
	dlg.m_Miles = 0;
	dlg.m_iCost = 0.0;
	dlg.m_mCost = 0.0;
	dlg.m_oCost = 0.0;
	// 打开RegistrationEditDlg对话框
	if (dlg.DoModal() == IDOK)
		RefreshData();			
}

void CRegistrationManDlg::OnModiButton() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	if (m_Adodc.GetRecordset().GetEof()) 
	{
		MessageBox("请选择要修改的记录");
		return;
	}
	
	// 设置RegistrationEditDlg对话框中的变量
	CRegistrationEditDlg dlg;
	dlg.cRegId = m_Datagrid.GetItem(0);
	dlg.m_CreateDate = m_Datagrid.GetItem(1);
	dlg.m_CustName = m_Datagrid.GetItem(2); 
	dlg.m_Tel = m_Datagrid.GetItem(3); 
	dlg.m_CarNo = m_Datagrid.GetItem(4);
	dlg.m_CarType = m_Datagrid.GetItem(5);
	dlg.m_Color = m_Datagrid.GetItem(6);
	dlg.m_EngNo = m_Datagrid.GetItem(7);
	dlg.m_Miles = atoi(m_Datagrid.GetItem(8));
	dlg.m_Man = m_Datagrid.GetItem(9);
	dlg.m_Registor = m_Datagrid.GetItem(10);
	dlg.m_fDate = m_Datagrid.GetItem(11);
	dlg.m_iCost = atof(m_Datagrid.GetItem(12));
	dlg.m_mCost = atof(m_Datagrid.GetItem(13));
	dlg.m_oCost = atof(m_Datagrid.GetItem(14));
	dlg.m_Sum = atof(m_Datagrid.GetItem(15));
	dlg.m_Memo = m_Datagrid.GetItem(16);
	// 打开RegistrationEditDlg对话框
	if (dlg.DoModal() == IDOK)
		RefreshData();		
}

void CRegistrationManDlg::OnDelButton() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	if (m_Adodc.GetRecordset().GetEof())
	{
		MessageBox("请选择要删除的记录!");
		return;
	}
	// 判断ListItem列表中是否包含此编号
	CListItem clist;
	if( clist.HaveRegId(m_Datagrid.GetItem(0)) == 1 )
	{
		MessageBox("项目清单中存在此登记编号,不能删除!");
		return;
	}
	// 判断ListMaterial列表中是否包含此编号
	CListMaterial mat;
	if( mat.HaveRegId(m_Datagrid.GetItem(0)) == 1 )
	{
		MessageBox("材料使用清单中存在此登记编号,不能删除!");
		return;
	}
	// 判断ListBug列表中是否包含此编号
	CListBug bug;
	if( bug.HaveRegId(m_Datagrid.GetItem(0)) == 1 )
	{
		MessageBox("故障清单中存在此登记编号,不能删除!");
		return;
	}
	if (MessageBox("是否删除当前记录?","请确认", MB_YESNO + MB_ICONQUESTION) == IDYES)
	{
		CRegistration reg;
		reg.SqlDelete(m_Datagrid.GetItem(0));
		RefreshData();
	}		
}
void CRegistrationManDlg::RefreshData() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	CString strSearch;
	if (m_dcoNo.GetText() == "")
		strSearch = "";
	else
		strSearch = " Where CarNo Like '%" + m_dcoNo.GetText() + "%'";
	// 设置Select语句
	CString cSource = "SELECT RegId,CreateDate AS 登记日期,CustName AS 客户名称,"
		"Tel AS 联系电话,CarNo AS 车牌号,CarType AS 汽车型号,CarColor AS 颜色,"
		"EngineNo AS 发动机号,DriveMiles AS 行驶里程,RepairMan AS 维修人员,"
		"Registor AS 登记人,FinishDate AS 结束日期,iCost AS 维修项目费用,"
		"mCost AS 材料费用,oCost AS 其他费用,(iCost+mCost+oCost) AS 总费用,Memo AS 备注"
		" FROM Registration " + strSearch;

	//刷新ADO Data控件的记录源
	m_Adodc.SetRecordSource(cSource);
	m_Adodc.Refresh();
	
	//设置列宽度
	_variant_t vIndex;
	vIndex = long(0);
	m_Datagrid.GetColumns().GetItem(vIndex).SetWidth(0);
	vIndex = long(1);
	m_Datagrid.GetColumns().GetItem(vIndex).SetWidth(50);
	vIndex = long(2);
	m_Datagrid.GetColumns().GetItem(vIndex).SetWidth(80);
	vIndex = long(3);
	m_Datagrid.GetColumns().GetItem(vIndex).SetWidth(60);
	vIndex = long(4);
	m_Datagrid.GetColumns().GetItem(vIndex).SetWidth(50);
	vIndex = long(5);
	m_Datagrid.GetColumns().GetItem(vIndex).SetWidth(50);
	vIndex = long(6);
	m_Datagrid.GetColumns().GetItem(vIndex).SetWidth(40);  //Color
	vIndex = long(7);
	m_Datagrid.GetColumns().GetItem(vIndex).SetWidth(80);
	vIndex = long(8);
	m_Datagrid.GetColumns().GetItem(vIndex).SetWidth(50);
	vIndex = long(9);
	m_Datagrid.GetColumns().GetItem(vIndex).SetWidth(60);  // RepairMan
	vIndex = long(10);
	m_Datagrid.GetColumns().GetItem(vIndex).SetWidth(60);
	vIndex = long(11);
	m_Datagrid.GetColumns().GetItem(vIndex).SetWidth(60);
	vIndex = long(12);
	m_Datagrid.GetColumns().GetItem(vIndex).SetWidth(60);  // iCost
	vIndex = long(13);
	m_Datagrid.GetColumns().GetItem(vIndex).SetWidth(60);
	vIndex = long(14);
	m_Datagrid.GetColumns().GetItem(vIndex).SetWidth(60);
	vIndex = long(15);
	m_Datagrid.GetColumns().GetItem(vIndex).SetWidth(60);  // Sum
	vIndex = long(16);
	m_Datagrid.GetColumns().GetItem(vIndex).SetWidth(80);  // Memo
}
// 打开维修项目清单
void CRegistrationManDlg::OnItemmanButton() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	if (m_Adodc.GetRecordset().GetEof()) 
	{
		MessageBox("请选择要修改的记录");
		return;
	}	
	// 设置ListItemManDlg对话框中的变量
	CListItemManDlg dlg;
	dlg.cRegId = m_Datagrid.GetItem(0);
	// 打开ListItemManDlg对话框
	if (dlg.DoModal() == IDOK)
		RefreshData();	
	else
		RefreshData();
}

BEGIN_EVENTSINK_MAP(CRegistrationManDlg, CDialog)
    //{{AFX_EVENTSINK_MAP(CRegistrationManDlg)
	ON_EVENT(CRegistrationManDlg, IDC_DATACOMBO1, -600 /* Click */, OnClickDatacombo1, VTS_I2)
	//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()

void CRegistrationManDlg::OnClickDatacombo1(short Area) 
{
	// TODO: Add your control notification handler code here
	RefreshData();	
}

void CRegistrationManDlg::OnMaterialmanButton() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	if (m_Adodc.GetRecordset().GetEof()) 
	{
		MessageBox("请选择要修改的记录");
		return;
	}
	
	// 设置ListMatManDlg对话框中的变量
	CListMatManDlg dlg;
	dlg.cRegId = m_Datagrid.GetItem(0);
	// 打开ListMatManDlg对话框
	if (dlg.DoModal() == IDOK)
		RefreshData();	
	else
		RefreshData();
}

void CRegistrationManDlg::OnBugmanButton() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	if (m_Adodc.GetRecordset().GetEof()) 
	{
		MessageBox("请选择要修改的记录");
		return;
	}
	
	// 设置ListBugManDlg对话框中的变量
	CListBugManDlg dlg;
	dlg.cRegId = m_Datagrid.GetItem(0);
	// 打开ListBugManDlg对话框
	if (dlg.DoModal() == IDOK)
		RefreshData();	
	else
		RefreshData();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -