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

📄 funcoutposinfodlg.cpp

📁 VC++和ACCESS使用ADO连接
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// FuncOutPosInfoDlg.cpp : implementation file
//

#include "stdafx.h"
#include "ministryperson.h"
#include "FuncOutPosInfoDlg.h"

#include "excel9.h"

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

/////////////////////////////////////////////////////////////////////////////
// FuncOutPosInfoDlg dialog


FuncOutPosInfoDlg::FuncOutPosInfoDlg(CWnd* pParent /*=NULL*/)
	: CDialog(FuncOutPosInfoDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(FuncOutPosInfoDlg)
	//}}AFX_DATA_INIT
}


void FuncOutPosInfoDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(FuncOutPosInfoDlg)
	DDX_Control(pDX, IDC_COMBO_OUTPI_DEPART, m_Cmb_OutPI_Depart);
	DDX_Control(pDX, IDC_COMBO_OUTPI_COMPANY, m_Cmb_OutPI_Com);
	DDX_Control(pDX, IDC_CHECK_OUTPI_CONDITION, m_CBtn_OutCheck);
	DDX_Control(pDX, IDC_LIST_OUTPI_LIST, m_ListCtrl_OutPI);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(FuncOutPosInfoDlg, CDialog)
	//{{AFX_MSG_MAP(FuncOutPosInfoDlg)
	ON_MESSAGE(UM_LISTEDIT_DBCLICK, OnListEditDBClick)
	ON_BN_CLICKED(IDC_BUTTON_OUTPI_QUERY, OnButtonOutpiQuery)
	ON_NOTIFY(NM_CLICK, IDC_LIST_OUTPI_LIST, OnClickListOutpiList)
	ON_BN_CLICKED(IDC_CHECK_OUTPI_CONDITION, OnCheckOutpiCondition)
	ON_CBN_SELCHANGE(IDC_COMBO_OUTPI_COMPANY, OnSelchangeComboOutpiCompany)
	ON_BN_CLICKED(IDC_BTN_OUTPI_PATH, OnBtnOutpiPath)
	ON_BN_CLICKED(IDC_BTN_OUTPI_EXCEL, OnBtnOutpiExcel)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// FuncOutPosInfoDlg message handlers

BOOL FuncOutPosInfoDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	InitCompanyCmB(&m_Cmb_OutPI_Com);
	MakeShowInfoStyle();
	IDStateControl(FALSE);
	InitFarmExcelPath();

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

/*********************************************************************
函数说明:	  清空数据表的显示
函数参数:	  void
*********************************************************************/
BOOL FuncOutPosInfoDlg::DeleteAllRows()
{
	m_ListCtrl_OutPI.DeleteAllItems();	// 清空列表控件
	return TRUE;
}

/*********************************************************************
函数说明:	  设置列表控件一行的内容
函数参数:	  
*********************************************************************/
BOOL FuncOutPosInfoDlg::SetRow(int row, CString *strArray, int nCount)
{
	m_ListCtrl_OutPI.InsertItem(row, strArray[0]);			// 在列表控件中插入一行
	for (int i = 1; i < nCount; i++)
	{
		m_ListCtrl_OutPI.SetItemText(row, i, strArray[i]);	// 设置除第一行外的其他行
	}
	return TRUE;
}

/*********************************************************************
函数说明:	  设置显示模式
函数参数:	  
*********************************************************************/
void FuncOutPosInfoDlg::MakeShowInfoStyle()
{
	m_ListCtrl_OutPI.SetExtendedStyle(LVS_EX_FLATSB | 
									  LVS_EX_GRIDLINES | 
									  LVS_EX_FULLROWSELECT | 
									  LVS_EX_ONECLICKACTIVATE);
	m_ListCtrl_OutPI.InsertColumn(0, "员工编号", LVCFMT_LEFT, 70);
	m_ListCtrl_OutPI.InsertColumn(1, "姓名",     LVCFMT_LEFT, 70);
	m_ListCtrl_OutPI.InsertColumn(2, "身份证",   LVCFMT_LEFT, 160);	
	m_ListCtrl_OutPI.InsertColumn(3, "性别",     LVCFMT_LEFT, 50);
	m_ListCtrl_OutPI.InsertColumn(4, "年龄",     LVCFMT_LEFT, 50);
	m_ListCtrl_OutPI.InsertColumn(5, "学历",     LVCFMT_LEFT, 50);

	m_ListCtrl_OutPI.InsertColumn(6, "单位", LVCFMT_LEFT, 120);
	m_ListCtrl_OutPI.InsertColumn(7, "部门", LVCFMT_LEFT, 120);
	m_ListCtrl_OutPI.InsertColumn(8, "职务", LVCFMT_LEFT, 100);
	m_ListCtrl_OutPI.InsertColumn(9, "入司时间",  LVCFMT_LEFT, 100);
	m_ListCtrl_OutPI.InsertColumn(10, "员工性质", LVCFMT_LEFT, 110);

	m_ListCtrl_OutPI.InsertColumn(11, "合同起始时间", LVCFMT_LEFT, 100);
	m_ListCtrl_OutPI.InsertColumn(12, "合同终止时间", LVCFMT_LEFT, 100);
	m_ListCtrl_OutPI.InsertColumn(13, "有无固定合同", LVCFMT_LEFT, 100);

	m_ListCtrl_OutPI.InsertColumn(14, "家庭住址", LVCFMT_LEFT, 110);
	m_ListCtrl_OutPI.InsertColumn(15, "联系电话", LVCFMT_LEFT, 110);
	m_ListCtrl_OutPI.InsertColumn(16, "备注",     LVCFMT_LEFT, 150);	
}

/*********************************************************************
函数说明:	  “查看”按钮
函数参数:	  
*********************************************************************/
void FuncOutPosInfoDlg::OnButtonOutpiQuery() 
{
	CString strFarmerType;
	CFuncOper FunOper;
	if (!FunOper.CheckType_CComBox(this, IDC_COMBO_OUTPI_QUERYTYPE, "一个【查询类别】\t", strFarmerType))
	{
		return;
	}
	
	if (PrePareFarmerType(m_CBtn_OutCheck.GetCheck()))
	{
		QueryFarmerInfo();
	}
}

/*********************************************************************
函数说明:	  
函数参数:	  
*********************************************************************/
BOOL FuncOutPosInfoDlg::PrePareFarmerType(BOOL bCheckOn)
{
	CString strFarmerType;
	GetDlgItemText(IDC_COMBO_OUTPI_QUERYTYPE, strFarmerType);
	m_strFarmType = strFarmerType;
	m_strFarmCom  = "";
	m_strFarmDepart = "";

	if (bCheckOn)
	{
		CString strCompany;
		CString strDepart;
		GetDlgItemText(IDC_COMBO_OUTPI_COMPANY, strCompany);
		GetDlgItemText(IDC_COMBO_OUTPI_DEPART, strDepart);
		m_strFarmCom  = strCompany;
		m_strFarmDepart = strDepart;

		if (strCompany == "请选择已有的单位")
		{
			MessageBox("请选择一个单位做为查询条件\t", "提示", MB_OK | MB_ICONEXCLAMATION);
			return FALSE;
		}
		else
		{
			if (strFarmerType == "所有")
			{
				if (strDepart == "请选择部门")	// 公司做为条件
				{
					m_Farmer_strSQL.Format("(Employee_InActiveSer_Table.employee_IDCard = Employee_BasicInfor_Table.employee_IDCard and \
									  Employee_InActiveSer_Table.employee_IDCard = Employee_TrainExpe_Table.employee_IDCard and \
									  Employee_InActiveSer_Table.InActiveSer_NewProperty = '农民工' and \
									  Employee_InActiveSer_Table.InActiveSer_Company = '%s') or \
									 (Employee_InActiveSer_Table.employee_IDCard = Employee_BasicInfor_Table.employee_IDCard and \
									  Employee_InActiveSer_Table.employee_IDCard = Employee_TrainExpe_Table.employee_IDCard and \
									  Employee_InActiveSer_Table.InActiveSer_NewProperty = '协议工' and \
									  Employee_InActiveSer_Table.InActiveSer_Company = '%s')", strCompany, strCompany);				
				}
				else	// 公司和部门一起做条件	
				{
					m_Farmer_strSQL.Format("(Employee_InActiveSer_Table.employee_IDCard = Employee_BasicInfor_Table.employee_IDCard and \
									  Employee_InActiveSer_Table.employee_IDCard = Employee_TrainExpe_Table.employee_IDCard and \
									  Employee_InActiveSer_Table.InActiveSer_NewProperty = '农民工' and \
									  Employee_InActiveSer_Table.InActiveSer_Company = '%s' and \
									  Employee_InActiveSer_Table.InActiveSer_Department = '%s') or \
									 (Employee_InActiveSer_Table.employee_IDCard = Employee_BasicInfor_Table.employee_IDCard and \
									  Employee_InActiveSer_Table.employee_IDCard = Employee_TrainExpe_Table.employee_IDCard and \
									  Employee_InActiveSer_Table.InActiveSer_NewProperty = '协议工' and \
									  Employee_InActiveSer_Table.InActiveSer_Company = '%s' and \
									  Employee_InActiveSer_Table.InActiveSer_Department = '%s')", 
									  strCompany, strDepart, strCompany, strDepart);
				}
			}
			else
			{
				if (strDepart == "请选择部门")	// 公司做为条件
				{
					m_Farmer_strSQL.Format("Employee_InActiveSer_Table.employee_IDCard = Employee_BasicInfor_Table.employee_IDCard and \
									 Employee_InActiveSer_Table.employee_IDCard = Employee_TrainExpe_Table.employee_IDCard and \
									 Employee_InActiveSer_Table.InActiveSer_NewProperty = '%s' and \
									 Employee_InActiveSer_Table.InActiveSer_Company = '%s'", strFarmerType, strCompany);				
				}
				else	// 公司和部门一起做条件	
				{
					m_Farmer_strSQL.Format("Employee_InActiveSer_Table.employee_IDCard = Employee_BasicInfor_Table.employee_IDCard and \
									 Employee_InActiveSer_Table.employee_IDCard = Employee_TrainExpe_Table.employee_IDCard and \
									 Employee_InActiveSer_Table.InActiveSer_NewProperty = '%s' and \
									 Employee_InActiveSer_Table.InActiveSer_Company = '%s' and \
									 Employee_InActiveSer_Table.InActiveSer_Department = '%s'", strFarmerType, strCompany, strDepart);
				}	
			}			
		}
	}
	else	// 没有公司和部门做为条件
	{
		if (strFarmerType == "所有")
		{
			m_Farmer_strSQL.Format("(Employee_InActiveSer_Table.employee_IDCard = Employee_BasicInfor_Table.employee_IDCard and \
						      Employee_InActiveSer_Table.employee_IDCard = Employee_TrainExpe_Table.employee_IDCard and \
							  Employee_InActiveSer_Table.InActiveSer_NewProperty = '农民工') or \
							 (Employee_InActiveSer_Table.employee_IDCard = Employee_BasicInfor_Table.employee_IDCard and \
						      Employee_InActiveSer_Table.employee_IDCard = Employee_TrainExpe_Table.employee_IDCard and \
							  Employee_InActiveSer_Table.InActiveSer_NewProperty = '协议工')");
		}
		else
		{
			m_Farmer_strSQL.Format("Employee_InActiveSer_Table.employee_IDCard = Employee_BasicInfor_Table.employee_IDCard and \
						     Employee_InActiveSer_Table.employee_IDCard = Employee_TrainExpe_Table.employee_IDCard and \
							 Employee_InActiveSer_Table.InActiveSer_NewProperty = '%s'", strFarmerType);
		}
	}

	return TRUE;
}

/*********************************************************************
函数说明:	  
函数参数:	  
*********************************************************************/
void FuncOutPosInfoDlg::QueryFarmerInfo()
{
	CString SQL;
	SQL.Format("select Employee_BasicInfor_Table.employee_ID as bID, \
					Employee_BasicInfor_Table.employee_Name as bName, \
					Employee_BasicInfor_Table.employee_IDCard as bIDCard, \
					Employee_BasicInfor_Table.employee_Sex as bSex, \
					Employee_BasicInfor_Table.employee_Age as bAge, \
					Employee_TrainExpe_Table.TrainExpe_Diploma1 as tDip1, \
                    Employee_InActiveSer_Table.InActiveSer_Company as iCom, \
					Employee_InActiveSer_Table.InActiveSer_Department as iDep, \
					Employee_InActiveSer_Table.InActiveSer_Duty as iDuty, \
					Employee_BasicInfor_Table.employee_JoinTime as bJT, \
					Employee_InActiveSer_Table.InActiveSer_EmployPro as EmlyPro, \
					Employee_InActiveSer_Table.InActiveSer_ContractBegT as ConTBT, \
					Employee_InActiveSer_Table.InActiveSer_ContractEndT as ConTET, \
					Employee_InActiveSer_Table.InActiveSer_FixContract  as ConFIX, \
					Employee_BasicInfor_Table.employee_Address as bAdd, \
					Employee_BasicInfor_Table.employee_MobilePhone as bCellP, \
					Employee_BasicInfor_Table.employee_Remark  as bRemark \
					from Employee_InActiveSer_Table, Employee_BasicInfor_Table, Employee_TrainExpe_Table \
					where  %s order by Employee_InActiveSer_Table.InActiveSer_Company", m_Farmer_strSQL);
	CADOOperation ADOdbo;
	CString strFields[] = {"bID", "bName", "bIDCard", "bSex", "bAge", "tDip1", "iCom", "iDep", "iDuty", "bJT", 
						   "EmlyPro", "ConTBT", "ConTET", "ConFIX", "bAdd", "bCellP", "bRemark"};
	ADOdbo.OpenRecordset(SQL);
	ADOdbo.ShowADOView(strFields, 17, this);
	ADOdbo.CloseRecorset();
}

/*********************************************************************
函数说明:	  通过对双击列表事件做出响应
函数参数:	  lpnmlv->iItem(记录集行数) lpnmlv->iSubItem(该记录集行的子项数)
*********************************************************************/
LRESULT FuncOutPosInfoDlg::OnListEditDBClick(WPARAM wParam, LPARAM lParam)
{
	LPNMLISTVIEW lpnmlv = (LPNMLISTVIEW)wParam;

	g_nEmployee_ID = atoi(m_ListCtrl_OutPI.GetItemText(lpnmlv->iItem, 0));		
	g_strEmployee_IDCard = m_ListCtrl_OutPI.GetItemText(lpnmlv->iItem, 2);	
	g_bQueryToShow = TRUE;

	AllTogetherMainDlg AllToGetherDlg;
	AllToGetherDlg.DoModal();
	OnButtonOutpiQuery();

	return TRUE;
}

/*********************************************************************
函数说明:	  【单击】表项的响应
函数参数:	  
*********************************************************************/
void FuncOutPosInfoDlg::OnClickListOutpiList(NMHDR* pNMHDR, LRESULT* pResult)
{
	LPNMLISTVIEW lpnmlv = (LPNMLISTVIEW)pNMHDR;
	g_nIndex = lpnmlv->iItem;

	// 获取姓名和身份证
	g_nEmployee_ID = atoi(m_ListCtrl_OutPI.GetItemText(lpnmlv->iItem, 0));		
	g_strEmployee_IDCard = m_ListCtrl_OutPI.GetItemText(lpnmlv->iItem, 2);	

⌨️ 快捷键说明

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