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

📄 carlist.cpp

📁 主要用在管理系统,一个工程维护管理用vc++ 8.0 accesss数据库
💻 CPP
字号:
// CarList.cpp : 实现文件
//

#include "stdafx.h"
#include "ProjectManage.h"
#include "CarList.h"
#include "CarEdit.h"

// CCarList 对话框

IMPLEMENT_DYNAMIC(CCarList, CDialog)

CCarList::CCarList(CWnd* pParent /*=NULL*/)
	: CDialog(CCarList::IDD, pParent)
{

}

CCarList::~CCarList()
{
}

void CCarList::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
    DDX_Control(pDX, IDC_LIST1, m_oListmateriel);
	DDX_Control(pDX, IDC_FRAME, m_frame);
}


BEGIN_MESSAGE_MAP(CCarList, CDialog)
	ON_BN_CLICKED(IDC_BUTTON1, &CCarList::OnBnClickedButton1)
	ON_NOTIFY(NM_CLICK, IDC_LIST1, &CCarList::OnNMClickList1)
	ON_WM_SIZE()
END_MESSAGE_MAP()


// CCarList 消息处理程序

void CCarList::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码
	if(theApp.ProjID!="")
	{
		CCarEdit frm;
		frm.DoModal();
		LoadDataView();
	}
	else
	{
	    AfxMessageBox("请选择基本信息");
		return;
	}
}

BOOL CCarList::OnInitDialog()
{
	CDialog::OnInitDialog();
    

    DWORD dwStyle;
	RECT rect;
	LV_COLUMN lvc;
    
	dwStyle = m_oListmateriel.GetStyle();
	dwStyle |= LVS_EX_GRIDLINES |LVS_EX_FULLROWSELECT|LVS_SHOWSELALWAYS ;

	m_oListmateriel.SetExtendedStyle(dwStyle);
	m_oListmateriel.GetClientRect(&rect);

	lvc.mask = LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH |LVCF_FMT;
	lvc.fmt=LVCFMT_LEFT;

	lvc.iSubItem = 0;
	lvc.pszText = _T("编号");
	lvc.cx = 50;
	m_oListmateriel.InsertColumn(1,&lvc);

	lvc.iSubItem = 1;
	lvc.pszText = _T("日期");
	lvc.cx = 80;
	m_oListmateriel.InsertColumn(2,&lvc);

	lvc.iSubItem = 2;
	lvc.pszText = _T("里程");
	lvc.cx = 80;
	m_oListmateriel.InsertColumn(3,&lvc);

	lvc.iSubItem = 3;
	lvc.pszText = _T("车号");
	lvc.cx = 100;
	m_oListmateriel.InsertColumn(4,&lvc);

	lvc.iSubItem = 4;
	lvc.pszText = _T("司机");
	lvc.cx = 90;
	m_oListmateriel.InsertColumn(5,&lvc);

	lvc.iSubItem = 5;
	lvc.pszText = _T("项目名称");
	lvc.cx = 90;
	m_oListmateriel.InsertColumn(6,&lvc);
	if(theApp.ProjID!="")
	{
		LoadDataView();
	}

	// TODO:  在此添加额外的初始化

	return TRUE;  // return TRUE unless you set the focus to a control
	// 异常: OCX 属性页应返回 FALSE
}

void CCarList::LoadDataView(void)
{
	m_oListmateriel.DeleteAllItems();
	int numline=0;
	this->m_Storage.OpenSql("CarCost","CarCost.ID, CarCost.SDateTime, CarCost.Milemeter, CarCost.VehicleCode, CarCost.Chauffeur, ProjectTab.ProjectName","INNER JOIN ProjectTab ON CarCost.ProjID = ProjectTab.ProjectID where CarCost.ProjID="+theApp.ProjID+"");
	if(!this->m_Storage.IsEof())
	{
	    this->m_Storage.MoveFirst();
		LV_ITEM lvitem;
		lvitem.pszText="";
		lvitem.mask=LVIF_TEXT;
		lvitem.iSubItem=0;
		this->m_Storage.MoveFirst();
		CString name;
		int nColumnCount=m_oListmateriel.GetHeaderCtrl()->GetItemCount();
		while(!this->m_Storage.IsEof())
		{
            lvitem.iItem=numline;
			m_oListmateriel.InsertItem(&lvitem);
			for(int i=0;i<nColumnCount;i++)
			{
				this->m_Storage.GetFieldValue(i,name);
				m_oListmateriel.SetItemText(numline,i,(LPCTSTR)(_bstr_t)name);
			}

			numline++;
			this->m_Storage.MoveNext();
		}
	}
}

void CCarList::OnNMClickList1(NMHDR *pNMHDR, LRESULT *pResult)
{
	// TODO: 在此添加控件通知处理程序代码
    CString mList[5];
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	if(pNMListView->iItem != -1)
	{
		CString ID,strDataTime,mLichen,mChehao,mSiji;
		ID=m_oListmateriel.GetItemText(pNMListView->iItem,0);
		mList[0]=ID;
		strDataTime=m_oListmateriel.GetItemText(pNMListView->iItem,1);
		mList[1]=strDataTime;
		mLichen=m_oListmateriel.GetItemText(pNMListView->iItem,2);
		mList[2]=mLichen;
		mChehao=m_oListmateriel.GetItemText(pNMListView->iItem,3);
		mList[3]=mChehao;
        mSiji=m_oListmateriel.GetItemText(pNMListView->iItem,4);
		mList[4]=mSiji;

		CCarEdit frm;
		for(int i=0;i<5;i++)
		{
		     frm.SList[i]=mList[i];
		}
		frm.DoModal();
        LoadDataView();
	}
	*pResult = 0;
}

void CCarList::OnSize(UINT nType, int cx, int cy)
{
	CDialog::OnSize(nType, cx, cy);
   if(m_oListmateriel.GetSafeHwnd() == NULL)return;
   CRect rc;
   //获得组控件的尺寸
   CRect rect;
   GetClientRect(&rect);
   //m_frame.GetWindowRect(rc);
   //转换坐标系
   //ScreenToClient(rc);
   //改变list的尺寸
   rect.top=40;
   m_oListmateriel.MoveWindow(&rect);


	// TODO: 在此处添加消息处理程序代码
}

⌨️ 快捷键说明

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