📄 txlview.cpp
字号:
// TXLView.cpp : implementation file
//
#include "stdafx.h"
#include "zhurui_jk02_人事管理.h"
#include "TXLView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CTXLView
IMPLEMENT_DYNCREATE(CTXLView, CRecordView)
CTXLView::CTXLView()
: CRecordView(CTXLView::IDD)
{
//{{AFX_DATA_INIT(CTXLView)
m_pSet = NULL;
m_ADDRESS = _T("");
m_BEIZHU = _T("");
m_BIRTHDAY = _T("");
m_DEPARTMENT = _T("");
m_EMAIL = _T("");
m_JOB = _T("");
m_NAME = _T("");
m_SEX = _T("");
m_TEL = _T("");
m_SECHWAY = -1;
m_SECHKEY = _T("");
//}}AFX_DATA_INIT
}
CTXLView::~CTXLView()
{
if (m_pSet)
delete m_pSet;
}
void CTXLView::DoDataExchange(CDataExchange* pDX)
{
CRecordView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CTXLView)
DDX_Control(pDX, IDC_KEYWORD, m_EDIT_KEY);
DDX_Control(pDX, IDC_COMBO_SEARCH, m_COMBO);
DDX_Control(pDX, IDC_LIST_MEMBER, m_LIST);
DDX_Control(pDX, IDC_TREE_GROUP, m_TREE_GROUP);
DDX_Text(pDX, IDC_ADDRESS, m_ADDRESS);
DDX_Text(pDX, IDC_BEIZHU, m_BEIZHU);
DDX_Text(pDX, IDC_BIRTHDAY, m_BIRTHDAY);
DDX_Text(pDX, IDC_DEPARTMENT, m_DEPARTMENT);
DDX_Text(pDX, IDC_EMAIL, m_EMAIL);
DDX_Text(pDX, IDC_JOB, m_JOB);
DDX_Text(pDX, IDC_NAME, m_NAME);
DDX_Text(pDX, IDC_SEX, m_SEX);
DDX_Text(pDX, IDC_TEL, m_TEL);
DDX_CBIndex(pDX, IDC_COMBO_SEARCH, m_SECHWAY);
DDX_Text(pDX, IDC_KEYWORD, m_SECHKEY);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CTXLView, CRecordView)
//{{AFX_MSG_MAP(CTXLView)
ON_WM_CTLCOLOR()
ON_NOTIFY(NM_CLICK, IDC_TREE_GROUP, OnClickTreeGroup)
ON_NOTIFY(TVN_SELCHANGED, IDC_TREE_GROUP, OnSelchangedTreeGroup)
ON_NOTIFY(NM_CLICK, IDC_LIST_MEMBER, OnClickListMember)
ON_BN_CLICKED(IDC_SHOW, OnShow)
ON_BN_CLICKED(IDC_ZHAO, OnZhao)
ON_BN_CLICKED(IDC_EDIT, OnEdit)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTXLView diagnostics
#ifdef _DEBUG
void CTXLView::AssertValid() const
{
CRecordView::AssertValid();
}
void CTXLView::Dump(CDumpContext& dc) const
{
CRecordView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CTXLView message handlers
CRecordset* CTXLView::OnGetRecordset()
{
if (m_pSet != NULL)
return m_pSet;
m_pSet = new CTXLSet(NULL);
m_pSet->Open();
return m_pSet;
}
CTXLSet* CTXLView::GetRecordset()
{
CTXLSet* pData = (CTXLSet*) OnGetRecordset();
ASSERT(pData == NULL || pData->IsKindOf(RUNTIME_CLASS(CTXLSet)));
return pData;
}
int firstflagx=0;
void CTXLView::OnInitialUpdate()
{
BeginWaitCursor();
GetRecordset();
CRecordView::OnInitialUpdate();
if (m_pSet->IsOpen())
{
CString strTitle = m_pSet->m_pDatabase->GetDatabaseName();
CString strTable = m_pSet->GetTableName();
if (!strTable.IsEmpty())
strTitle += _T(":") + strTable;
GetDocument()->SetTitle(strTitle);
}
EndWaitCursor();
m_TREE_GROUP.SetBkColor(RGB(0,0,0));
m_TREE_GROUP.SetTextColor(RGB(0,255,255));
CDatabase dbtmp0,dbtmp1;
dbtmp0.Open("sam人事管理");
dbtmp1.Open("sam人事管理");
CRecordset rstmp0(&dbtmp0);
CRecordset rstmp1(&dbtmp1);
CString strtmp,str1,str2;
rstmp0.Open(CRecordset::forwardOnly,"select NAME from 部门");
HTREEITEM root0=m_TREE_GROUP.InsertItem("我的同事",0,1,TVI_ROOT,TVI_LAST);
while(!rstmp0.IsEOF())
{
rstmp0.GetFieldValue("NAME",strtmp);
strtmp.TrimRight();
HTREEITEM leaf0=m_TREE_GROUP.InsertItem(strtmp,0,1,root0,TVI_LAST);
// m_TREE_GROUP.InsertItem("空白",0,1,leaf0,TVI_LAST);
rstmp1.Open(CRecordset::forwardOnly,"select NAME,ID from 员工 where DEPARTMENT='"+strtmp+"'");
while(!rstmp1.IsEOF())
{
rstmp1.GetFieldValue("NAME",str1);
rstmp1.GetFieldValue("ID",str2);
str1.TrimRight();
str2.TrimRight();
strtmp.Format("%s|%s",str1,str2);
m_TREE_GROUP.InsertItem(strtmp,0,1,leaf0,TVI_LAST);
rstmp1.MoveNext();
}
rstmp1.Close();
rstmp0.MoveNext();
// HTREEITEM root1=m_TREE_GROUP.InsertItem("人事部",0,1,TVI_ROOT,TVI_LAST);
}//一层子节点
//HTREEITEM sub_son0=m_TREE_GROUP.InsertItem("财务部",0,1,root0,TVI_LAST);
// HTREEITEM sub_son1=m_TREE_GROUP.InsertItem("设计部",0,1,root1,TVI_LAST);
//二层孙子节点
// HTREEITEM sub_m_son0=m_TREE_GROUP.InsertItem("培训部",0,1,sub_son1,TVI_LAST);
rstmp0.Close();
dbtmp0.Close();
dbtmp1.Close();
if(firstflagx==0)
{
DWORD dwStyle;
dwStyle = m_LIST.GetStyle();
dwStyle |= LVS_EX_GRIDLINES |LVS_SHOWSELALWAYS|LVS_EX_FULLROWSELECT ;
m_LIST.SetExtendedStyle(dwStyle);
m_LIST.SetBkColor(RGB(0,0,0));
m_LIST.SetTextBkColor(RGB(0,0,0));
m_LIST.SetTextColor(RGB(0,255,255));
CDatabase dbtmp;
dbtmp.Open("sam人事管理");
CRecordset rstmp(&dbtmp);
rstmp.Open(CRecordset::forwardOnly,"select * from 员工 where DEPARTMENT ='"+m_DEPT+"' ");
m_LIST.InsertColumn(0,"同事ID",LVCFMT_LEFT,60,0);//设置列
m_LIST.InsertColumn(1,"姓名",LVCFMT_LEFT,80,1);
m_LIST.InsertColumn(2,"性别",LVCFMT_LEFT,50,2);
m_LIST.InsertColumn(3,"出生年月",LVCFMT_LEFT,80,3);
m_LIST.InsertColumn(4,"所属部门",LVCFMT_LEFT,80,4);
m_LIST.InsertColumn(5,"担任职务",LVCFMT_LEFT,80,1);
m_LIST.InsertColumn(6,"现住址",LVCFMT_LEFT,150,4);
m_LIST.InsertColumn(7,"电话",LVCFMT_LEFT,80,1);
m_LIST.InsertColumn(8,"电子邮件",LVCFMT_LEFT,80,2);
m_LIST.InsertColumn(9,"备注",LVCFMT_LEFT,150,3);
rstmp.Close();
dbtmp.Close();
m_ZHAO.AutoLoad(IDC_ZHAO,this);
m_SHOW.AutoLoad(IDC_SHOW,this);
m_EDIT.AutoLoad(IDC_EDIT,this);
m_ZHAO.m_pbtn=(CSAMBTN*)this->GetDlgItem(IDC_ZHAO);
m_SHOW.m_pbtn=(CSAMBTN*)this->GetDlgItem(IDC_SHOW);
m_EDIT.m_pbtn=(CSAMBTN*)this->GetDlgItem(IDC_EDIT);
firstflagx=1;
}
m_SECHWAY=0;
m_SECHKEY="请输入关键字:";
UpdateData(FALSE);
}
HBRUSH CTXLView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CRecordView::OnCtlColor(pDC, pWnd, nCtlColor);
if(nCtlColor == CTLCOLOR_DLG)
{
//返回对话框的颜色
hbr=(HBRUSH)::CreateSolidBrush(RGB(0,255,255));
}
HBRUSH hbr0=(HBRUSH)::GetStockObject(NULL_BRUSH);
if(nCtlColor==CTLCOLOR_STATIC)
{
//让静态文本框透明
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(0,255,255)); //设置字体颜色天蓝色
HBRUSH hbr0=(HBRUSH)::GetStockObject(NULL_BRUSH);
return hbr0 ;
}
if(nCtlColor==CTLCOLOR_EDIT)
{
//让静态文本框不透明
pDC->SetBkMode(2);
pDC->SetBkColor(RGB(0,0,0));
pDC->SetTextColor(RGB(0,255,255)); //设置字体颜色天蓝色
HBRUSH hbr0=(HBRUSH)::GetStockObject(NULL_BRUSH);
return hbr0 ;
}
return hbr ;
}
void CTXLView::OnClickTreeGroup(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
*pResult = 0;
}
CString strtmp;
void CTXLView::OnSelchangedTreeGroup(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
HTREEITEM hsel=m_TREE_GROUP.GetSelectedItem();//得到当前鼠标选择的项目
m_DEPT=m_TREE_GROUP.GetItemText(hsel);//得到鼠标选中项的字符串
int i=m_TREE_GROUP.ItemHasChildren(hsel);//判断hsel项是否有子项
InitList(i);//----
InitGroup(strtmp);//二者先后顺序不能改变,因为在InitList(i)中strtmp发生了改变,恰好为InitGroup(strtmp)所用
//MessageBox(m_DEPT);
*pResult = 0;
}
void CTXLView::InitList(int i)
{
m_LIST.DeleteAllItems();
CDatabase db;
db.Open("sam人事管理");
CRecordset rs(&db);
switch(i)
{
case 1:
rs.Open(CRecordset::forwardOnly,"select * from 员工 where DEPARTMENT='"+m_DEPT+"' ");
break;
case 0:
int n=m_DEPT.Find('|');
strtmp=m_DEPT.Mid(n+1);
rs.Open(CRecordset::forwardOnly,"select * from 员工 where ID='"+strtmp+"' ");
break;
}
CString str;
if(rs.IsEOF())
{
m_LIST.InsertItem(0,"暂无成员");
}
else
while(!rs.IsEOF())
{
rs.GetFieldValue("ID", str);
str.TrimRight();
m_LIST.InsertItem(0,str);//插入行
rs.GetFieldValue("NAME",str);
str.TrimRight();
m_LIST.SetItemText(0,1,str);
rs.GetFieldValue("SEX",str);
str.TrimRight();
m_LIST.SetItemText(0,2,str);
rs.GetFieldValue("BIRTHDAY",str);
str.TrimRight();
m_LIST.SetItemText(0,3,str);
if(i==1)
{
m_LIST.SetItemText(0,4,m_DEPT);
}
else
{
rs.GetFieldValue("DEPARTMENT",str);
str.TrimRight();
m_LIST.SetItemText(0,4,str);
}
rs.GetFieldValue("JOB",str);
str.TrimRight();
m_LIST.SetItemText(0,5,str);
rs.GetFieldValue("ADDRESS",str);
str.TrimRight();
m_LIST.SetItemText(0,6,str);
rs.GetFieldValue("TEL",str);
str.TrimRight();
m_LIST.SetItemText(0,7,str);
rs.GetFieldValue("EMAIL",str);
str.TrimRight();
m_LIST.SetItemText(0,8,str);
rs.GetFieldValue("SHUOMING",str);
str.TrimRight();
m_LIST.SetItemText(0,9,str);
rs.MoveNext();
}
rs.Close();
db.Close();
}
void CTXLView::InitGroup(CString str)
{
CDatabase db;
db.Open("sam人事管理");
CRecordset rs(&db);
rs.Open(CRecordset::forwardOnly,"select * from 员工 where ID = '"+str+"'");
if(!rs.IsEOF())
{
rs.GetFieldValue("NAME",m_NAME);
rs.GetFieldValue("SEX",m_SEX);
rs.GetFieldValue("BIRTHDAY",m_BIRTHDAY);
rs.GetFieldValue("DEPARTMENT",m_DEPARTMENT);
rs.GetFieldValue("JOB",m_JOB);
rs.GetFieldValue("ADDRESS",m_ADDRESS);
rs.GetFieldValue("TEL",m_TEL);
rs.GetFieldValue("EMAIL",m_EMAIL);
rs.GetFieldValue("SHUOMING",m_BEIZHU);
UpdateData(FALSE);
}
rs.Close();
db.Close();
}
void CTXLView::OnClickListMember(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
int i=m_LIST.GetSelectionMark();
CString strPos;
strPos=m_LIST.GetItemText(i,0);
InitGroup(strPos);
*pResult = 0;
}
void CTXLView::OnShow()
{
// TODO: Add your control notification handler code here
CDatabase db;
db.Open("sam人事管理");
CRecordset rs(&db);
rs.Open(CRecordset::forwardOnly,"select * from 员工");
CString str;
m_LIST.DeleteAllItems();
while(!rs.IsEOF())
{
rs.GetFieldValue("ID", str);
str.TrimRight();
m_LIST.InsertItem(0,str);//插入行
rs.GetFieldValue("NAME",str);
str.TrimRight();
m_LIST.SetItemText(0,1,str);
rs.GetFieldValue("SEX",str);
str.TrimRight();
m_LIST.SetItemText(0,2,str);
rs.GetFieldValue("BIRTHDAY",str);
str.TrimRight();
m_LIST.SetItemText(0,3,str);
rs.GetFieldValue("DEPARTMENT",str);
str.TrimRight();
m_LIST.SetItemText(0,4,str);
rs.GetFieldValue("JOB",str);
str.TrimRight();
m_LIST.SetItemText(0,5,str);
rs.GetFieldValue("ADDRESS",str);
str.TrimRight();
m_LIST.SetItemText(0,6,str);
rs.GetFieldValue("TEL",str);
str.TrimRight();
m_LIST.SetItemText(0,7,str);
rs.GetFieldValue("EMAIL",str);
str.TrimRight();
m_LIST.SetItemText(0,8,str);
rs.GetFieldValue("SHUOMING",str);
str.TrimRight();
m_LIST.SetItemText(0,9,str);
rs.MoveNext();
}
rs.Close();
db.Close();
}
void CTXLView::OnZhao()
{
// TODO: Add your control notification handler code here
int flag=1;
CDatabase db;
db.Open("sam人事管理");
CRecordset rs(&db);
UpdateData();
if(m_SECHKEY=="请输入关键字:"||m_SECHKEY=="")
{
AfxMessageBox("请输入要查找的关键字!");
m_EDIT_KEY.SetFocus();
m_EDIT_KEY.SendMessage(EM_SETSEL,0,-1);
//this->SendDlgItemMessage(IDC_KEYWORD,EM_SETSEL,0,-1);
flag=0;
}
switch(m_SECHWAY)
{
case 0:
rs.Open(CRecordset::forwardOnly,"select * from 员工 where ID like '%" + m_SECHKEY + "%' ");
break;
case 1:
rs.Open(CRecordset::forwardOnly,"select * from 员工 where NAME like '%" + m_SECHKEY + "%' ");
break;
case 2:
rs.Open(CRecordset::forwardOnly,"select * from 员工 where DEPARTMENT like '%" + m_SECHKEY + "%' ");
break;
case 3:
rs.Open(CRecordset::forwardOnly,"select * from 员工 where EDU_LEVEL like '%" + m_SECHKEY + "%' ");
break;
case 4:
rs.Open(CRecordset::forwardOnly,"select * from 员工 where MAJOR like '%" + m_SECHKEY + "%' ");
break;
case 5:
rs.Open(CRecordset::forwardOnly,"select * from 员工 where JOB like '%" + m_SECHKEY + "%' ");
break;
default:
{
AfxMessageBox("请选择查询方式!");
flag=0;
break;
}
}
if(rs.IsEOF()&&flag==1)
{
flag=0;
MessageBox("没有找到相关记录");
}
if(flag==1)
{
CString str;
m_LIST.DeleteAllItems();
while(!rs.IsEOF())
{
rs.GetFieldValue("ID", str);
str.TrimRight();
m_LIST.InsertItem(0,str);//插入行
rs.GetFieldValue("NAME",str);
str.TrimRight();
m_LIST.SetItemText(0,1,str);
rs.GetFieldValue("SEX",str);
str.TrimRight();
m_LIST.SetItemText(0,2,str);
rs.GetFieldValue("BIRTHDAY",str);
str.TrimRight();
m_LIST.SetItemText(0,3,str);
rs.GetFieldValue("DEPARTMENT",str);
str.TrimRight();
m_LIST.SetItemText(0,4,str);
rs.GetFieldValue("JOB",str);
str.TrimRight();
m_LIST.SetItemText(0,5,str);
rs.GetFieldValue("ADDRESS",str);
str.TrimRight();
m_LIST.SetItemText(0,6,str);
rs.GetFieldValue("TEL",str);
str.TrimRight();
m_LIST.SetItemText(0,7,str);
rs.GetFieldValue("EMAIL",str);
str.TrimRight();
m_LIST.SetItemText(0,8,str);
rs.GetFieldValue("SHUOMING",str);
str.TrimRight();
m_LIST.SetItemText(0,9,str);
rs.MoveNext();
}
}
rs.Close();
db.Close();
}
void CTXLView::OnEdit()
{
// TODO: Add your control notification handler code here
/* CDatabase db;
CRecordset rs(&db);
db.Open("sam人事管理");
CString strUser,strSQL;
rs.Open(CRecordset::forwardOnly,"select ID from 当前用户 where POS=1");
rs.GetFieldValue("ID",strUser);
if(strUser=="人事部 ")
{
strSQL="update 员工 set NAME='"+m_NAME+"',SEX='"+m_SEX+"',BIRTHDAY='"+m_BIRTHDAY+"',JOB='"+m_JOB+"',\
DEPARTMENT='"+m_DEPARTMENT+"',ADDRESS='"+m_ADDRESS+"',TEL='"+m_TEL+"',\
EMAIL='"+m_EMAIL+"',SHUOMING='"+m_BEIZHU+"'\
where ID='"+strtmp+"' ";
db.ExecuteSQL(strSQL);
MessageBox("修改成功!");
}
else
{
AfxMessageBox("您没有相关权限!");
}
*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -