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

📄 funcremoveinfodlg.cpp

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

#include "stdafx.h"
#include "ministryperson.h"
#include "FuncRemoveInfoDlg.h"

#include "excel9.h"

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

/////////////////////////////////////////////////////////////////////////////
// FuncRemoveInfoDlg dialog


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


void FuncRemoveInfoDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(FuncRemoveInfoDlg)
	DDX_Control(pDX, IDC_CHECK_REMOVE_CONDITION, m_Check_ReM);
	DDX_Control(pDX, IDC_COMBO_REMOVE_DEPART, m_Cmb_ReM_Depart);
	DDX_Control(pDX, IDC_COMBO_REMOVE_COMPANY, m_Cmb_ReM_Com);
	DDX_Control(pDX, IDC_LIST_REMOVE_LIST, m_ListCtrl_Remove);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(FuncRemoveInfoDlg, CDialog)
	//{{AFX_MSG_MAP(FuncRemoveInfoDlg)
	ON_BN_CLICKED(IDC_BUTTON_REMOVE_QUERY, OnButtonRemoveQuery)
	ON_MESSAGE(UM_LISTEDIT_DBCLICK, OnListEditDBClick)
	ON_NOTIFY(NM_CLICK, IDC_LIST_REMOVE_LIST, OnClickListRemoveList)
	ON_BN_CLICKED(IDC_CHECK_REMOVE_CONDITION, OnCheckRemoveCondition)
	ON_CBN_SELCHANGE(IDC_COMBO_REMOVE_COMPANY, OnSelchangeComboRemoveCompany)
	ON_BN_CLICKED(IDC_BTN_REMOVE_PATH, OnBtnRemovePath)
	ON_BN_CLICKED(IDC_BTN_REMOVE_EXCEL, OnBtnRemoveExcel)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// FuncRemoveInfoDlg message handlers

BOOL FuncRemoveInfoDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	MakeShowInfoStyle();
	IDStateControl(FALSE);
	InitCompCmB(&m_Cmb_ReM_Com);
	InitReMExcelPath();

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

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

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

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

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

	m_ListCtrl_Remove.InsertColumn(11, "家庭住址", LVCFMT_LEFT, 110);
	m_ListCtrl_Remove.InsertColumn(12, "联系电话", LVCFMT_LEFT, 110);
	m_ListCtrl_Remove.InsertColumn(13, "备注",     LVCFMT_LEFT, 150);
}

/*********************************************************************
函数说明:	  “查看”按钮
函数参数:	  
*********************************************************************/
void FuncRemoveInfoDlg::OnButtonRemoveQuery() 
{
	CString strQueryRem;
	CFuncOper FunOper;
	if (!FunOper.CheckType_CComBox(this, IDC_COMBO_REMOVE_QUERYTYPE, "一个【查询类别】\t", strQueryRem))
	{
		return;
	}
	
	if (PrepareRemove(m_Check_ReM.GetCheck()))
	{
		QueryRemoveInfo();
	}	
}

/*********************************************************************
函数说明:	  通过对双击列表事件做出响应
函数参数:	  lpnmlv->iItem(记录集行数) lpnmlv->iSubItem(该记录集行的子项数)
*********************************************************************/
LRESULT FuncRemoveInfoDlg::OnListEditDBClick(WPARAM wParam, LPARAM lParam)
{
	LPNMLISTVIEW lpnmlv = (LPNMLISTVIEW)wParam;
	g_nEmployee_ID = atoi(m_ListCtrl_Remove.GetItemText(lpnmlv->iItem, 0));
	g_strEmployee_IDCard = m_ListCtrl_Remove.GetItemText(lpnmlv->iItem, 2);
	g_bQueryToShow = TRUE;

	AllTogetherMainDlg AllToGetherDlg;
	AllToGetherDlg.DoModal();
	OnButtonRemoveQuery();

	return TRUE;
}

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

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

	*pResult = 0;
}

/*********************************************************************
函数说明:	  
函数参数:	  
*********************************************************************/
void FuncRemoveInfoDlg::IDStateControl(BOOL bState)
{
	GetDlgItem(IDC_STATIC_REMOVE_TITLE)->EnableWindow(bState);
	GetDlgItem(IDC_STATIC_REMOVE_COMPANY)->EnableWindow(bState);
	GetDlgItem(IDC_STATIC_REMOVE_DEPART)->EnableWindow(bState);
	GetDlgItem(IDC_COMBO_REMOVE_COMPANY)->EnableWindow(bState);
	GetDlgItem(IDC_COMBO_REMOVE_DEPART)->EnableWindow(bState);
}

/*********************************************************************
函数说明:	  
函数参数:	  
*********************************************************************/
void FuncRemoveInfoDlg::InitCompCmB(CComboBox *pComp)
{
	CADOOperation ADOdbo;
	CString strComp;
	
	ADOdbo.OpenTable("Search_Table");	// 打开“搜索”表
	if (ADOdbo.IsLastRow())
	{
		ADOdbo.CloseTable();
		return;
	}

	// 得到单位名
	pComp->ResetContent();
	pComp->AddString("请选择已有的单位");
	ADOdbo.MoveFirst();
	ADOdbo.GetItemContentStr("Search_Company", CADOOperation::ADO_TYPE_STRING, &strComp);
	pComp->AddString(strComp);
	DWORD dwRecCount = (ADOdbo.GetRecordCount() - 1);
	ADOdbo.CloseTable();
	
	CString SQL;
	SQL.Format("SELECT Search_Company FROM Search_Table WHERE 1=1");
	ADOdbo.OpenRecordset(SQL);

	ADOdbo.MoveFirst();
	for (DWORD i = 2; i <= dwRecCount; i++)
	{	
		CString strCompOne;
		ADOdbo.MoveTo(i - 1);
		ADOdbo.GetItemContentStr("Search_Company", CADOOperation::ADO_TYPE_STRING, &strComp);
		strCompOne = strComp;

		// 拿出MoveTo的内容,依次和其前面的比较
		ADOdbo.MoveFirst();
		for (DWORD j = 2; j <= i; j++)
		{	
			ADOdbo.GetItemContentStr("Search_Company", CADOOperation::ADO_TYPE_STRING, &strComp);						
			if (strCompOne == strComp)
			{
				ADOdbo.MoveFirst();
				break;
			}
			else
			{
				ADOdbo.MoveNext();
			}			
		}
		if (j > i)
		{
			pComp->AddString(strCompOne);
		}
		ADOdbo.MoveFirst();
	}
	
	ADOdbo.CloseRecorset();
	pComp->SetCurSel(0);
	return;
}


/*********************************************************************
函数说明:	  显示“部门”组合框内容
函数参数:	  
*********************************************************************/
BOOL FuncRemoveInfoDlg::InitDeptCmB(CComboBox *pDept)
{
	CADOOperation ADODepart;
	CString strDepart;
	CString strComp;
	CString strIndex;
	CString SQL;
	
	int nIndex = ((CComboBox*)GetDlgItem(IDC_COMBO_REMOVE_COMPANY))->GetCurSel();				// 选中的“单位”的项数
	int nBuff  = ((CComboBox*)GetDlgItem(IDC_COMBO_REMOVE_COMPANY))->GetLBTextLen(nIndex);		// 该项内容大小
	((CComboBox*)GetDlgItem(IDC_COMBO_REMOVE_COMPANY))->GetLBText(nIndex, strComp.GetBuffer(nBuff));	// 获取该项内容
	strComp.ReleaseBuffer();
	strIndex = strComp.GetBuffer(0);

	SQL.Format("SELECT Search_Depart FROM Search_Table WHERE Search_Company = '%s'", strIndex);
	ADODepart.OpenRecordset(SQL);	
	if (ADODepart.IsLastRow())
	{
		ADODepart.CloseRecorset();
		return TRUE;
	}

	pDept->AddString("请选择部门");
	ADODepart.MoveFirst();
	do 
	{
		ADODepart.GetItemContentStr("Search_Depart", CADOOperation::ADO_TYPE_STRING, &strDepart);
		pDept->AddString(strDepart);
		ADODepart.MoveNext();
	} while (!ADODepart.IsLastRow());

	ADODepart.CloseRecorset();
	pDept->SetCurSel(0);

	return TRUE;
}

/*********************************************************************
函数说明:	  
函数参数:	  
*********************************************************************/
void FuncRemoveInfoDlg::OnCheckRemoveCondition() 
{
	if (!m_Check_ReM.GetCheck())
	{
		IDStateControl(FALSE);		

⌨️ 快捷键说明

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