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

📄 carmview.cpp

📁 一个汽车销售系统(分期付款,车辆管理,客户管理)
💻 CPP
字号:
// carmView.cpp : CcarmView 类的实现
//

#include "stdafx.h"
#include "carm.h"

#include "carmDoc.h"
#include "carmView.h"
#include ".\carmview.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

/*#import "c:\Program Files\Common Files\System\ADO\msado15.dll" \
   no_namespace rename("EOF", "EndOfFile")
#include <stdio.h>*/
#include "SEARCHCLT.h"//查询客户
#include "Wizard.h"//添加交易信息
#include "Step1.h"
#include "Step2.h"
#include "CarInfoDlg.h"//添加车子信息
#include "SearchCarDlg.h"//查询车子
#include "ModifyCarDlg.h"//修改车子资料
#include "Wizard2.h"
#include "MClientDlg1.h"
#include "MClientDlg2.h"
#include "PurchaseCarDlg.h"//购车
// CcarmView

IMPLEMENT_DYNCREATE(CcarmView, CFormView)

BEGIN_MESSAGE_MAP(CcarmView, CFormView)
	ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST2, OnLvnItemchangedList2)
	ON_COMMAND(ID_SEARCH, OnSearch)
	ON_COMMAND(ID_CLIENTINFO, OnClientinfo)
	ON_COMMAND(ID_CARINFO, OnCarinfo)
	ON_COMMAND(ID_SRHCAR, OnSrhcar)
	ON_COMMAND(ID_MODIFYCAR, OnModifycar)
	ON_COMMAND(ID_MODIFYCLIENT, OnModifyclient)
	ON_BN_CLICKED(IDC_BUTTON1, OnBnClickedButton1)
END_MESSAGE_MAP()

// CcarmView 构造/析构

CcarmView::CcarmView()
	: CFormView(CcarmView::IDD)
{
	// TODO: 在此处添加构造代码

}

CcarmView::~CcarmView()
{
}

void CcarmView::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_LIST2, L_result);
}

BOOL CcarmView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: 在此处通过修改 CREATESTRUCT cs 来修改窗口类或
	// 样式

	return CFormView::PreCreateWindow(cs);
}

void CcarmView::OnInitialUpdate()
{
	CFormView::OnInitialUpdate();
	GetParentFrame()->RecalcLayout();
	ResizeParentToFit();
}


// CcarmView 诊断

#ifdef _DEBUG
void CcarmView::AssertValid() const
{
	CFormView::AssertValid();
}

void CcarmView::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}

CcarmDoc* CcarmView::GetDocument() const // 非调试版本是内联的
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CcarmDoc)));
	return (CcarmDoc*)m_pDocument;
}
#endif //_DEBUG


// CcarmView 消息处理程序

void CcarmView::OnLvnItemchangedList2(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
	// TODO: 在此添加控件通知处理程序代码
	*pResult = 0;
}

void CcarmView::OnSearch()
{
	static CSEARCHCLT SrhCltDlg;
	if(SrhCltDlg.DoModal() == IDOK)
	{
		
		CString sql = "select * " ;
		if((SrhCltDlg.m_schtype == "")||(SrhCltDlg.m_schname == ""))
			sql += "from 客户";
		else
		{
			sql += "from 客户 where " ;
			sql +=  SrhCltDlg.m_schtype ;
			sql +=	" = '" ;
			sql += SrhCltDlg.m_schname;
			sql += "'";
		}
		_RecordsetPtr pRst = g_ADOConn.GetRecordSet((_bstr_t)sql);
		DataFormat(pRst);
	}
	else return;
	
}

void CcarmView::DataFormat(_RecordsetPtr& pRst)
{
	long limit = pRst->GetFields()->Count;

	if(pRst->adoEOF)
	{
		::AfxMessageBox("未找到相符的项");
		return;
	}
	if(L_result.GetItemCount() != 0)
	{
		L_result.DeleteAllItems();
		for(long x = 0;x < inum;x++)
		{
			L_result.DeleteColumn(0);
		}
	}
			
		
	for (long x = 0; x < limit; x++)
	{
		L_result.InsertColumn(x,(char *) pRst->GetFields()->Item[x]->Name,LVCFMT_LEFT,100,-1);
	}		
	int i = 0;
	while(!pRst->adoEOF)
	{	
			
		L_result.InsertItem(i,"");
		for(long x = 0;x < limit;x++)
		{
			_variant_t var = pRst->GetCollect(_variant_t(long(x)));
			CString str = "";
			if(var.vt != VT_NULL)
				str = STR(var);
			L_result.SetItemText(i,x,str);
				
		}
		pRst->MoveNext();
		i++;
	}
	inum = limit;
}



void CcarmView::OnClientinfo()
{
	CWizard MyWizard(_T("添加客户 "),this,1); //生成一个属性表

	CStep1 MyStep1;  //属性页1 
	CStep2 MyStep2; //属性页2 

	MyWizard.AddPage(&MyStep1); //添加属性页1 
	MyWizard.AddPage(&MyStep2); //添加属性页2 

	MyWizard.SetWizardMode();   //将属性表设置成向导样式
	MyWizard.SetActivePage(&MyStep1); //设置第一页为第一步
	if(MyWizard.DoModal() == ID_WIZFINISH)//显示属性表
	{
		if(MyStep1.m_ecltnum == "")
			return;
		CString str = "insert into 客户 values('";
		str += MyStep1.m_ecltnum;
		str += "','";
		str += MyStep1.m_ename;
		str += "','";
		if(!MyStep1.m_iSex)
			str += "男','";
		else str += "女','";
		str += MyStep1.m_eid;
		str += "','";
		str += MyStep1.m_eaddr;
		str += "','";
		str += MyStep1.m_etel;
		str += "')";
		g_ADOConn.ExecuteSQL(_bstr_t(str));
		if(!MyStep2.m_purchase)
			return;
		str = "insert into 交易 values('";
		str += MyStep1.m_ecltnum;
		str += "','";
		str += MyStep2.m_carID;
		str += "','";
		str += MyStep2.m_carnum;
		str += "',";
		if(MyStep2.m_payf == "")
			str += "0";
		else
			str += MyStep2.m_payf;
		str += ",";
		if(MyStep2.m_loan == "")
			str += "0";
		else
			str += MyStep2.m_loan;
		str += ",'";
		str += MyStep2.m_ryear;
		if(MyStep2.m_rmonth.GetLength() == 1)
			str += "0"+MyStep2.m_rmonth;
		else
			str += MyStep2.m_rmonth;
		if(MyStep2.m_rday.GetLength() == 1)
			str += "0"+MyStep2.m_rday;
		else
			str += MyStep2.m_rday;
		str += "',";
		if(MyStep2.m_rmmoney == "")
			str += "0";
		else
			str += MyStep2.m_rmmoney;
		str += ",'";
		if(MyStep2.m_rmday.GetLength() == 1)
			str += "1999100"+MyStep2.m_rmday;
		else
			str += "199910"+MyStep2.m_rmday;
		str += "',";
		if(MyStep2.m_insure == "")
			str += "0";
		else
			str += MyStep2.m_insure;
		str += ",'";
		str += MyStep2.m_insurey;
		if(MyStep2.m_insurem.GetLength() == 1)
			str += "0"+MyStep2.m_insurem;
		else
			str += MyStep2.m_insurem;
		if(MyStep2.m_insurey.GetLength() == 1)
			str += "0"+MyStep2.m_insured;
		else
			str += MyStep2.m_insured;
		str += "','";
		str += MyStep2.m_bank;
		str += "','";
		str += MyStep2.m_searcher;
		str += "')";
		g_ADOConn.ExecuteSQL(_bstr_t(str));
		str = "update 车 set 库存 = '0' where 车编号 = '";
		str += MyStep2.m_carID;
		str += "'";
		g_ADOConn.ExecuteSQL(_bstr_t(str));
	}
	else return;
}

void CcarmView::OnCarinfo()
{
	CCarInfoDlg CarInfo;
	if(CarInfo.DoModal() == IDOK)
	{
		if(CarInfo.m_carID == "")
			return;
		CString sql = "insert into 车 values('";
		sql += CarInfo.m_carID;
		sql += "','";
		sql += CarInfo.m_brand;
		sql +="','";
		sql += CarInfo.m_model;
		sql +="','";
		sql += CarInfo.m_price;
		sql +="',1)";
		g_ADOConn.ExecuteSQL(_bstr_t(sql));
	}
	else return;
}

void CcarmView::OnSrhcar()
{
	static CSearchCarDlg SrhCarDlg;
	if(SrhCarDlg.DoModal() == IDOK)
	{
		
		CString sql = "select * " ;
		if((SrhCarDlg.m_cartype == "")||(SrhCarDlg.m_car == ""))
			sql += "from 车";
		else
		{
			sql += "from 客户 where " ;
			sql +=  SrhCarDlg.m_cartype ;
			sql +=	" = '" ;
			sql += SrhCarDlg.m_car;
			sql += "'";
		}
		_RecordsetPtr pRst = g_ADOConn.GetRecordSet((_bstr_t)sql);
		DataFormat(pRst);
	}
	else return;

}

void CcarmView::OnModifycar()
{
	CModifyCarDlg ModifyCar;
	if(ModifyCar.DoModal() == IDOK)
	{
		CString sql = "update 车 set 品牌 = '";
		sql += ModifyCar.m_brand;
		sql += "', 型号 = '";
		sql += ModifyCar.m_model;
		sql += "', 车价 = ";
		sql += ModifyCar.m_price;
		sql += " where 车编号 = '";
		sql += ModifyCar.m_combosrh;
		sql += "'";
		g_ADOConn.ExecuteSQL((_bstr_t)sql);
	}
	else
		return;
}

void CcarmView::OnModifyclient()
{
	CWizard2 MyWizard(_T("添加客户 "),this,1); //生成一个属性表

	CMClientDlg1 MyStep1;  //属性页1 
	CMClientDlg2 MyStep2; //属性页2 

	MyWizard.AddPage(&MyStep1); //添加属性页1 
	MyWizard.AddPage(&MyStep2); //添加属性页2 

	MyWizard.SetWizardMode();   //将属性表设置成向导样式
	MyWizard.SetActivePage(&MyStep1); //设置第一页为第一步

	if(MyWizard.DoModal() == ID_WIZFINISH)//显示属性表
	{
		CString sql = "update 客户 set 姓名 = '";
		sql += MyStep1.m_cilentname;
		if(MyStep1.m_sex == 0)
			sql += "',性别 = '男'";
		else 
			sql += "',性别 = '女'";
		sql += ",身份证 = '";
		sql += MyStep1.m_clientID;
		sql += "',地址 = '";
		sql += MyStep1.m_addr;
		sql += "',联系电话 = '";
		sql += MyStep1.m_tel;
		sql += "' where 客户编号 = '";
		sql += MyStep1.m_clientnum;
		sql += "'";	

		g_ADOConn.ExecuteSQL((_bstr_t)sql);


	}
	else return;
}

void CcarmView::OnBnClickedButton1()
{
	int i = GetSelectItem(&L_result);
	if(i == -1)
	{
		::AfxMessageBox("请选择要查询的项");
		return;
	}
	CString s = L_result.GetItemText(i,0);
	CString sql = "select * from 交易 where 客户编号 = '";
	sql += s + "'";
	_RecordsetPtr pRst = g_ADOConn.GetRecordSet((_bstr_t)sql);
	DataFormat(pRst);

}

int CcarmView::GetSelectItem(CListCtrl   *m_List)   
{   
     for(int   n=0;   n<m_List->GetItemCount();   n++)   
     {   
         UINT   state   =   m_List->GetItemState(   n,   LVIS_SELECTED);   
         if(state   ==   LVIS_SELECTED   )   
            return   n;   
     }   
     return   -1;   
}   

⌨️ 快捷键说明

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