📄 addnewcomanddepartdlg.cpp
字号:
// AddNewComAndDepartDlg.cpp : implementation file
//
#include "stdafx.h"
#include "ministryperson.h"
#include "AddNewComAndDepartDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// AddNewComAndDepartDlg dialog
AddNewComAndDepartDlg::AddNewComAndDepartDlg(CWnd* pParent /*=NULL*/)
: CDialog(AddNewComAndDepartDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(AddNewComAndDepartDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void AddNewComAndDepartDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(AddNewComAndDepartDlg)
DDX_Control(pDX, IDC_ACDS_LIST, m_ListShow);
DDX_Control(pDX, IDC_COMBO_ACAD_SELECTCOM, m_Cmb_ACAD_SelectCom);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(AddNewComAndDepartDlg, CDialog)
//{{AFX_MSG_MAP(AddNewComAndDepartDlg)
ON_BN_CLICKED(IDC_BUTTON_ACDS_STATUS1, OnButtonAcdsStatus1)
ON_BN_CLICKED(IDC_BUTTON_ACDS_STATUS2, OnButtonAcdsStatus2)
ON_BN_CLICKED(IDC_BUTTON_ACDS_SAVE1, OnButtonAcdsSave1)
ON_BN_CLICKED(IDC_BUTTON_ACDS_SAVE2, OnButtonAcdsSave2)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// AddNewComAndDepartDlg message handlers
BOOL AddNewComAndDepartDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
// 显示已有的单位信息
m_ListShow.SetExtendedStyle(LVS_EX_FLATSB |
LVS_EX_GRIDLINES |
LVS_EX_FULLROWSELECT |
LVS_EX_ONECLICKACTIVATE);
m_ListShow.InsertColumn(0, "当前现有的单位", LVCFMT_LEFT, 165);
m_ListShow.InsertColumn(1, "当前现有的部门", LVCFMT_LEFT, 168);
ShowComAndDepartInfo();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
/*********************************************************************
函数说明: 显示已经存在的【单位】
函数参数:
*********************************************************************/
void AddNewComAndDepartDlg::ShowExistentCompany(CComboBox *pCombox)
{
CADOOperation ADOdbo;
CString strComp;
ADOdbo.OpenTable("Search_Table"); // 打开【搜索】表
if (ADOdbo.IsLastRow())
{
ADOdbo.CloseTable();
return;
}
// 得到单位名
pCombox->ResetContent();
pCombox->AddString("请选择已有的单位");
ADOdbo.MoveFirst();
ADOdbo.GetItemContentStr("Search_Company", CADOOperation::ADO_TYPE_STRING, &strComp);
pCombox->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)
{
pCombox->AddString(strCompOne);
}
ADOdbo.MoveFirst();
}
ADOdbo.CloseRecorset();
pCombox->SetCurSel(0);
return;
}
/*********************************************************************
函数说明: 按钮
函数参数:
*********************************************************************/
void AddNewComAndDepartDlg::OnButtonAcdsStatus1()
{
ShowExistentCompany(&m_Cmb_ACAD_SelectCom);
GetDlgItem(IDC_STATIC_ONE)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_STATIC_ONE1)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_STATIC_ONE2)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_COMBO_ACAD_SELECTCOM)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_ACAD_NEWDEPART1)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_BUTTON_ACDS_SAVE1)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_STATIC_TWO)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC_TWO1)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC_TWO2)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_EDIT_ACAD_NEWCOM)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_EDIT_ACAD_NEWDEPART2)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_BUTTON_ACDS_SAVE2)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_BUTTON_ACDS_STATUS1)->EnableWindow(FALSE);
GetDlgItem(IDC_BUTTON_ACDS_STATUS2)->EnableWindow(TRUE);
}
/*********************************************************************
函数说明: 按钮
函数参数:
*********************************************************************/
void AddNewComAndDepartDlg::OnButtonAcdsStatus2()
{
GetDlgItem(IDC_EDIT_ACAD_NEWCOM)->SetFocus();
GetDlgItem(IDC_STATIC_ONE)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC_ONE1)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC_ONE2)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_COMBO_ACAD_SELECTCOM)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_EDIT_ACAD_NEWDEPART1)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_BUTTON_ACDS_SAVE1)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC_TWO)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_STATIC_TWO1)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_STATIC_TWO2)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_ACAD_NEWCOM)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT_ACAD_NEWDEPART2)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_BUTTON_ACDS_SAVE2)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_BUTTON_ACDS_STATUS1)->EnableWindow(TRUE);
GetDlgItem(IDC_BUTTON_ACDS_STATUS2)->EnableWindow(FALSE);
}
/*********************************************************************
函数说明: 按钮
函数参数:
*********************************************************************/
BOOL AddNewComAndDepartDlg::ShowComAndDepartInfo()
{
CADOOperation ADOdbo;
CString strFields[] = {"Search_Company", "Search_Depart"}; // 显示的字段
// 初始化时,先显示所有在职员工的信息 (employee_ID > 0)
ADOdbo.OpenRecordset("SELECT Search_Company, Search_Depart FROM Search_Table \
order by Search_Company , Search_Depart");
ADOdbo.ShowADOView(strFields, 2, this); // 显示数据列表
ADOdbo.CloseRecorset();
return TRUE;
}
/*********************************************************************
函数说明: 清空数据表的显示
函数参数: void
*********************************************************************/
BOOL AddNewComAndDepartDlg::DeleteAllRows()
{
m_ListShow.DeleteAllItems(); // 清空列表控件
return TRUE;
}
/*********************************************************************
函数说明: 设置列表控件一行的内容
函数参数:
*********************************************************************/
BOOL AddNewComAndDepartDlg::SetRow(int row, CString *strArray, int nCount)
{
m_ListShow.InsertItem(row, strArray[0]); // 在列表控件中插入一行
for (int i = 1; i < nCount; i++)
{
m_ListShow.SetItemText(row, i, strArray[i]); // 设置除第一行外的其他行
}
return TRUE;
}
/*********************************************************************
函数说明: 添加部门
函数参数:
*********************************************************************/
void AddNewComAndDepartDlg::OnButtonAcdsSave1()
{
CADOOperation ADOdbo;
CString SQL;
CString strCompany;
CString strDepart;
// 判断组合框所选的内容是否正确
GetDlgItemText(IDC_COMBO_ACAD_SELECTCOM, strCompany);
if (strCompany == "请选择已有的单位")
{
MessageBox("请为新添加的【部门】选择其所属的【单位】!", "提示", MB_OK | MB_ICONEXCLAMATION);
return;
}
else if (strCompany == "")
{
MessageBox("\t\t无【单位】信息!\n请选择【添加新的单位和部门】来添加【单位】和【部门】", "提示", MB_OK | MB_ICONEXCLAMATION);
OnButtonAcdsStatus2();
return;
}
// 判断新增的部门是否重复
CString strNewDepart;
GetDlgItemText(IDC_EDIT_ACAD_NEWDEPART1, strNewDepart);
strNewDepart.TrimLeft();
if (strNewDepart.IsEmpty())
{
MessageBox("【部门】名称不能为空!", "提示", MB_OK | MB_ICONEXCLAMATION);
return;
}
SQL.Format("SELECT Search_Depart FROM Search_Table WHERE Search_Company = '%s'", strCompany);
ADOdbo.OpenRecordset(SQL);
ADOdbo.MoveFirst();
do
{
ADOdbo.GetItemContentStr("Search_Depart", CADOOperation::ADO_TYPE_STRING, &strDepart);
if (strNewDepart == strDepart)
{
CString strMsg;
strMsg.Format("单位 【%s】 中已经存在部门 【%s】 !", strCompany, strNewDepart);
MessageBox(strMsg, "提示", MB_OK | MB_ICONERROR);
ADOdbo.CloseRecorset();
SetDlgItemText(IDC_EDIT_ACAD_NEWDEPART1, "");
((CComboBox*)GetDlgItem(IDC_COMBO_ACAD_SELECTCOM))->SetCurSel(0);
GetDlgItem(IDC_COMBO_ACAD_SELECTCOM)->SetFocus();
return;
}
ADOdbo.MoveNext();
}
while (!ADOdbo.IsLastRow());
ADOdbo.CloseRecorset();
// 添加到表里
BOOL bRet;
ADOdbo.OpenTable("Search_Table");
ADOdbo.AddNew();
bRet = ADOdbo.SetItemContent("Search_Company", CADOOperation::ADO_TYPE_STRING, &strCompany);
if (!bRet)
{
MessageBox("【部门】信息添加失败!", "提示", MB_OK | MB_ICONEXCLAMATION);
ADOdbo.CloseTable();
return;
}
bRet = ADOdbo.SetItemContent("Search_Depart", CADOOperation::ADO_TYPE_STRING, &strNewDepart);
if (!bRet)
{
MessageBox("【部门】信息添加失败!", "提示", MB_OK | MB_ICONEXCLAMATION);
ADOdbo.CloseTable();
return;
}
if (!ADOdbo.UpdateData())
{
MessageBox("新增【部门】添加失败!", "失败", MB_OK | MB_ICONEXCLAMATION);
ADOdbo.CloseTable();
return;
}
ADOdbo.CloseTable();
MessageBox("新增【部门】添加添加成功!", "成功", MB_OK |MB_ICONEXCLAMATION);
SetDlgItemText(IDC_EDIT_ACAD_NEWDEPART1, "");
((CComboBox*)GetDlgItem(IDC_COMBO_ACAD_SELECTCOM))->SetCurSel(0);
GetDlgItem(IDC_COMBO_ACAD_SELECTCOM)->SetFocus();
ShowComAndDepartInfo();
}
/*********************************************************************
函数说明: 添加单位和部门
函数参数:
*********************************************************************/
void AddNewComAndDepartDlg::OnButtonAcdsSave2()
{
CADOOperation ADOdbo;
CString SQL;
CString strNewCompany;
CString strNewDepart;
// 判断 单位 是否正确
GetDlgItemText(IDC_EDIT_ACAD_NEWCOM, strNewCompany);
strNewCompany.TrimLeft();
if (strNewCompany.IsEmpty())
{
MessageBox("【单位】信息不能为空", "提示", MB_OK | MB_ICONEXCLAMATION);
return;
}
GetDlgItemText(IDC_EDIT_ACAD_NEWDEPART2, strNewDepart);
strNewDepart.TrimLeft();
if (strNewDepart.IsEmpty())
{
MessageBox("【部门】信息不能为空", "提示", MB_OK | MB_ICONEXCLAMATION);
return;
}
// 判断信息是否在数据库里重复
CString strCompany;
CString strDepart;
ADOdbo.OpenTable("Search_Table");
if (ADOdbo.IsLastRow())
{
ADOdbo.CloseTable(); // 空表,先关闭,再直接跳转到下面执行 AddNew
}
else
{
ADOdbo.CloseTable();
SQL.Format("SELECT * FROM Search_Table WHERE 1=1");
ADOdbo.OpenRecordset(SQL);
ADOdbo.MoveFirst();
do
{
ADOdbo.GetItemContentStr("Search_Company", CADOOperation::ADO_TYPE_STRING, &strCompany);
ADOdbo.GetItemContentStr("Search_Depart", CADOOperation::ADO_TYPE_STRING, &strDepart);
if ((strNewDepart == strDepart) && (strNewCompany == strCompany))
{
CString strMsg;
strMsg.Format("单位 【%s】 中已经存在部门 【%s】 !", strNewCompany, strNewDepart);
MessageBox(strMsg, "提示", MB_OK | MB_ICONERROR);
ADOdbo.CloseRecorset();
return;
}
ADOdbo.MoveNext();
} while (!ADOdbo.IsLastRow());
ADOdbo.CloseRecorset();
}
// 添加到表里
BOOL bRet;
ADOdbo.OpenTable("Search_Table");
ADOdbo.AddNew();
bRet = ADOdbo.SetItemContent("Search_Company", CADOOperation::ADO_TYPE_STRING, &strNewCompany);
if (!bRet)
{
MessageBox("【部门】信息添加失败!", "提示", MB_OK | MB_ICONEXCLAMATION);
ADOdbo.CloseTable();
return;
}
bRet = ADOdbo.SetItemContent("Search_Depart", CADOOperation::ADO_TYPE_STRING, &strNewDepart);
if (!bRet)
{
MessageBox("【部门】信息添加失败!", "提示", MB_OK | MB_ICONEXCLAMATION);
ADOdbo.CloseTable();
return;
}
if (!ADOdbo.UpdateData())
{
MessageBox("添加失败!", "失败", MB_OK | MB_ICONEXCLAMATION);
ADOdbo.CloseTable();
return;
}
ADOdbo.CloseTable();
MessageBox("新的【单位】和【部门】添加成功!", "成功", MB_OK |MB_ICONEXCLAMATION);
SetDlgItemText(IDC_EDIT_ACAD_NEWCOM, "");
SetDlgItemText(IDC_EDIT_ACAD_NEWDEPART2, "");
GetDlgItem(IDC_EDIT_ACAD_NEWCOM)->SetFocus();
ShowComAndDepartInfo();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -