📄 depart.cpp
字号:
// Depart.cpp : 实现文件
//
#include "stdafx.h"
#include "Depart.h"
#include "adddepart.h"
extern _ConnectionPtr pMyConnect;
// CDepart 对话框
IMPLEMENT_DYNAMIC(CDepart, CDialog)
CDepart::CDepart(CWnd* pParent /*=NULL*/)
: CDialog(CDepart::IDD, pParent)
{
}
CDepart::~CDepart()
{
}
void CDepart::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_LIST_DEPART, m_list_depart);
}
BEGIN_MESSAGE_MAP(CDepart, CDialog)
ON_BN_CLICKED(IDC_BUTTON_ADD, &CDepart::OnBnClickedButtonAdd)
ON_NOTIFY(NM_CLICK, IDC_LIST_DEPART, &CDepart::OnNMClickListDepart)
ON_BN_CLICKED(IDC_BUTTON_DELETE, &CDepart::OnBnClickedButtonDelete)
END_MESSAGE_MAP()
// CDepart 消息处理程序
BOOL CDepart::OnInitDialog()
{
CDialog::OnInitDialog();
m_list_depart.SetExtendedStyle( LVS_EX_GRIDLINES );
m_list_depart.InsertColumn(0,_T("序号")); //插入列
m_list_depart.InsertColumn(1,_T("部门"));
m_list_depart.InsertColumn(2,_T("部门代码"));
m_list_depart.InsertColumn(3,_T("注释"));
CRect rect4;
m_list_depart.GetClientRect(rect4); //获得当前客户区信息
m_list_depart.SetColumnWidth(0,rect4.Width()/10); //设置列的宽度。
m_list_depart.SetColumnWidth(1,rect4.Width()/5);
m_list_depart.SetColumnWidth(2,rect4.Width()/7);
m_list_depart.SetColumnWidth(3,rect4.Width()/2);
QueryDB();
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
void CDepart::QueryDB()
{
_RecordsetPtr m_pRs;
CString m_strSql;
int number = 0;
CString strTemp;
m_list_depart.DeleteAllItems();
m_strSql.Format(_T("select DEPART,FLAG,NOTE from DEPART_TABLE order by FLAG"));
m_pRs.CreateInstance( __uuidof(Recordset) );
m_pRs->Open( _bstr_t(m_strSql), _variant_t((IDispatch *)pMyConnect,true), adOpenKeyset, adLockOptimistic, adCmdText);
try
{
if ( m_pRs->GetRecordCount() > 0 )
{
_variant_t TheValue;
_bstr_t tmp;
m_pRs->MoveFirst();
while(m_pRs->adoEOF==VARIANT_FALSE)
{
//Retrieve column's value:
strTemp.Format(_T("%d"),number+1);
m_list_depart.InsertItem(number,strTemp); //插入第一个数据,即第0条数据。先插入,然后在修改其他的信息。
TheValue = m_pRs->Fields->GetItem(_variant_t("DEPART"))->Value;
if( TheValue.vt != VT_NULL )
{
tmp=(_bstr_t)TheValue;
m_list_depart.SetItemText(number,1,tmp);
}
TheValue = m_pRs->Fields->GetItem(_variant_t("FLAG"))->Value;
if( TheValue.vt != VT_NULL )
{
tmp=(_bstr_t)TheValue;
m_list_depart.SetItemText(number,2,tmp);
}
TheValue = m_pRs->Fields->GetItem(_variant_t("NOTE"))->Value;
if( TheValue.vt != VT_NULL )
{
tmp=(_bstr_t)TheValue;
m_list_depart.SetItemText(number,3,tmp);
}
number++;
//Do something what you want to do: ......
m_pRs->MoveNext();
}
}
}
catch (_com_error &e)
{
::MessageBox(NULL,e.Description(),(LPCTSTR)(_T("警告")),MB_OK);
}
m_pRs->Close();
}
void CDepart::OnBnClickedButtonAdd()
{
// TODO: 在此添加控件通知处理程序代码
CAddDepart adddepart;
INT_PTR nResponse = adddepart.DoModal();
if (nResponse == IDOK)
{
// TODO: 在此处放置处理何时用“确定”来关闭
// 对话框的代码
QueryDB();
}
else if (nResponse == IDCANCEL)
{
// TODO: 在此放置处理何时用“取消”来关闭
// 对话框的代码
}
}
void CDepart::OnNMClickListDepart(NMHDR *pNMHDR, LRESULT *pResult)
{
//LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<NMITEMACTIVATE>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
::SendMessage(m_list_depart.m_hWnd, LVM_SETEXTENDEDLISTVIEWSTYLE,LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);
*pResult = 0;
}
void CDepart::OnBnClickedButtonDelete()
{
// TODO: 在此添加控件通知处理程序代码
UINT uSelectedCount = m_list_depart.GetSelectedCount();
int nItem = -1;
CString str_selcet;
if (uSelectedCount < 1)
{
AfxMessageBox(_T("请选择一个部门进行删除!"));
return;
}
else if( uSelectedCount > 1 )
{
AfxMessageBox(_T("不能删除多个部门!"));
return;
}
else
{
nItem = m_list_depart.GetNextItem(nItem, LVNI_SELECTED);
str_selcet = m_list_depart.GetItemText( nItem, 1 );
CString m_strSql;
_variant_t RecordsAffected;
m_strSql.Format(_T("delete from DEPART_TABLE where(DEPART='") +str_selcet+ _T("')"));
bool bSuccess = pMyConnect->Execute(_bstr_t(m_strSql),&RecordsAffected,adCmdText);
if( !bSuccess )
{
AfxMessageBox(_T("删除部门失败,请重启系统!"));
return;
}
AfxMessageBox(_T("删除部门成功!"));
QueryDB();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -