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

📄 usercost.cpp

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

#include "stdafx.h"
#include "ProjectManage.h"
#include "UserCost.h"
#include "PowerUserCost.h"

// CUserCost 对话框

IMPLEMENT_DYNAMIC(CUserCost, CDialog)

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

}

CUserCost::~CUserCost()
{
}

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


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


// CUserCost 消息处理程序

void CUserCost::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码
	if(theApp.ProjID!="")
	{
		m_oListmateriel.DeleteAllItems();
		CPowerUserCost* frm;
	    frm=new CPowerUserCost();
		frm->DoModal();
		LoadDataView();
	}
	else
	{
	    MessageBox("请选择基本信息!");
		return;
	}
}

BOOL CUserCost::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 CUserCost::LoadDataView(void)
{
	m_oListmateriel.DeleteAllItems();
	int numline=0;
	this->m_Storage.OpenSql("ManPowerCost","ManPowerCost.ID, ManPowerCost.EmpNumber, ManPowerCost.SubsidyCost, ManPowerCost.OtherCost, ManPowerCost.ServiceDatetime, ProjectTab.ProjectName","INNER JOIN ProjectTab ON ManPowerCost.ProjID = ProjectTab.ProjectID where ManPowerCost.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 CUserCost::OnNMClickList1(NMHDR *pNMHDR, LRESULT *pResult)
{
	// TODO: 在此添加控件通知处理程序代码
	CString mList[5];
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	if(pNMListView->iItem != -1)
	{
		CString ID,strempnumber,sCost,othercost,mdateTime;
		ID=m_oListmateriel.GetItemText(pNMListView->iItem,0);
		mList[0]=ID;
		strempnumber=m_oListmateriel.GetItemText(pNMListView->iItem,1);
		mList[1]=strempnumber;
		sCost=m_oListmateriel.GetItemText(pNMListView->iItem,2);
		mList[2]=sCost;
		othercost=m_oListmateriel.GetItemText(pNMListView->iItem,3);
		mList[3]=othercost;
        mdateTime=m_oListmateriel.GetItemText(pNMListView->iItem,4);
		mList[4]=mdateTime;

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

void CUserCost::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 + -