📄 kaochaview.cpp
字号:
// KAOCHAVIEW.cpp : implementation file
//
#include "stdafx.h"
#include "zhurui_jk02_人事管理.h"
#include "KAOCHAVIEW.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CKAOCHAVIEW
IMPLEMENT_DYNCREATE(CKAOCHAVIEW, CRecordView)
CKAOCHAVIEW::CKAOCHAVIEW()
: CRecordView(CKAOCHAVIEW::IDD)
{
//{{AFX_DATA_INIT(CKAOCHAVIEW)
m_pSet = NULL;
//}}AFX_DATA_INIT
}
CKAOCHAVIEW::~CKAOCHAVIEW()
{
if (m_pSet)
delete m_pSet;
}
void CKAOCHAVIEW::DoDataExchange(CDataExchange* pDX)
{
CRecordView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CKAOCHAVIEW)
DDX_Control(pDX, IDC_DATETIMEPICKER1, m_ctrCQRQ);
DDX_Control(pDX, IDC_LISTBD, m_LISTBD);
DDX_Control(pDX, IDC_LISTCQ, m_LISTCQ);
DDX_Control(pDX, IDC_LISTJC, m_LISTJC);
DDX_Control(pDX, IDC_TREE, m_TREE_GROUP);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CKAOCHAVIEW, CRecordView)
//{{AFX_MSG_MAP(CKAOCHAVIEW)
ON_WM_CTLCOLOR()
ON_NOTIFY(TVN_SELCHANGED, IDC_TREE, OnSelchangedTree)
ON_NOTIFY(NM_RCLICK, IDC_LISTCQ, OnRclickListcq)
ON_NOTIFY(NM_RCLICK, IDC_LISTBD, OnRclickListbd)
ON_NOTIFY(NM_RCLICK, IDC_LISTJC, OnRclickListjc)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CKAOCHAVIEW diagnostics
#ifdef _DEBUG
void CKAOCHAVIEW::AssertValid() const
{
CRecordView::AssertValid();
}
void CKAOCHAVIEW::Dump(CDumpContext& dc) const
{
CRecordView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CKAOCHAVIEW message handlers
CRecordset* CKAOCHAVIEW::OnGetRecordset()
{
if (m_pSet != NULL)
return m_pSet;
m_pSet = new CKAOCHASET(NULL);
m_pSet->Open();
return m_pSet;
}
CKAOCHASET* CKAOCHAVIEW::GetRecordset()
{
CKAOCHASET* pData = (CKAOCHASET*) OnGetRecordset();
ASSERT(pData == NULL || pData->IsKindOf(RUNTIME_CLASS(CKAOCHASET)));
return pData;
}
void CKAOCHAVIEW::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();
}
rstmp0.Close();
dbtmp0.Close();
dbtmp1.Close();
DWORD dwStyle;
dwStyle = m_LISTCQ.GetStyle();
dwStyle |= LVS_EX_GRIDLINES |LVS_SHOWSELALWAYS|LVS_EX_FULLROWSELECT ;
m_LISTCQ.SetExtendedStyle(dwStyle);
m_LISTCQ.SetBkColor(RGB(0,0,0));
m_LISTCQ.SetTextBkColor(RGB(0,0,0));
m_LISTCQ.SetTextColor(RGB(0,255,255));
m_LISTBD.SetExtendedStyle(dwStyle);
m_LISTBD.SetBkColor(RGB(0,0,0));
m_LISTBD.SetTextBkColor(RGB(0,0,0));
m_LISTBD.SetTextColor(RGB(0,255,255));
m_LISTJC.SetExtendedStyle(dwStyle);
m_LISTJC.SetBkColor(RGB(0,0,0));
m_LISTJC.SetTextBkColor(RGB(0,0,0));
m_LISTJC.SetTextColor(RGB(0,255,255));
}
HBRUSH CKAOCHAVIEW::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 ;
}
return hbr ;
}
int CQflag=0;
void CKAOCHAVIEW::InitListCQ(int iflag,CString strNAMEID)
{
if(iflag==0)
{
m_LISTCQ.DeleteAllItems();
CString strID,strTMP;
strTMP=strNAMEID;
int i=strTMP.Find('|');
strID=strTMP.Mid(i+1);
CDatabase db;
db.Open("sam人事管理");
CRecordset rs(&db);
rs.Open(CRecordset::forwardOnly,"select * from 考勤 where ID='"+strID+"' ");
if(CQflag==0)
{
m_LISTCQ.InsertColumn(0,"姓名|ID",LVCFMT_LEFT,200,4);
m_LISTCQ.InsertColumn(1,"出勤日期",LVCFMT_LEFT,200,4);
m_LISTCQ.InsertColumn(2,"出勤情况",LVCFMT_LEFT,200,4);
CQflag=1;
}
if(rs.IsEOF())
{
m_LISTCQ.InsertItem(0,"无记录");
}
while(!rs.IsEOF())
{
m_LISTCQ.InsertItem(0,strNAMEID);
rs.GetFieldValue("KQRQ",strTMP);
m_LISTCQ.SetItemText(0,1,strTMP);
rs.GetFieldValue("KQLB",strTMP);
m_LISTCQ.SetItemText(0,2,strTMP);
rs.MoveNext();
}
rs.Close();
db.Close();
}
else
{
if(CQflag==0)
{
m_LISTCQ.InsertColumn(0,"姓名|ID",LVCFMT_LEFT,200,4);
m_LISTCQ.InsertColumn(1,"出勤日期",LVCFMT_LEFT,200,4);
m_LISTCQ.InsertColumn(2,"出勤情况",LVCFMT_LEFT,200,4);
CQflag=1;
}
m_LISTCQ.DeleteAllItems();
CString strIDtmp,strTMP;
CDatabase dbBM,dbKQ;
dbBM.Open("sam人事管理");
dbKQ.Open("sam人事管理");
CRecordset rsBM(&dbBM);
CRecordset rsKQ(&dbKQ);
rsBM.Open(CRecordset::forwardOnly,"select ID from 员工 where DEPARTMENT='"+strNAMEID+"' ");
while(!rsBM.IsEOF())
{
rsBM.GetFieldValue("ID",strIDtmp);
rsKQ.Open(CRecordset::forwardOnly,"select * from 考勤 where ID='"+strIDtmp+"' ");
while(!rsKQ.IsEOF())
{
m_LISTCQ.InsertItem(0,strIDtmp);
rsKQ.GetFieldValue("KQRQ",strTMP);
m_LISTCQ.SetItemText(0,1,strTMP);
rsKQ.GetFieldValue("KQLB",strTMP);
m_LISTCQ.SetItemText(0,2,strTMP);
rsKQ.MoveNext();
}
rsKQ.Close();
rsBM.MoveNext();
}
rsBM.Close();
}
}
void CKAOCHAVIEW::OnSelchangedTree(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
HTREEITEM hsel=m_TREE_GROUP.GetSelectedItem();//得到当前鼠标选择的项目
strNAMEID=m_TREE_GROUP.GetItemText(hsel);//得到鼠标选中项的字符串
int iflag=m_TREE_GROUP.ItemHasChildren(hsel);//判断hsel项是否有子项
InitListCQ(iflag,strNAMEID);
InitListBD(iflag,strNAMEID);
InitListJC(iflag,strNAMEID);
*pResult = 0;
}
int BDflag=0;
void CKAOCHAVIEW::InitListBD(int iflag, CString strNAMEID)
{
if(iflag==0)
{
m_LISTBD.DeleteAllItems();
CString strID,strTMP;
strTMP=strNAMEID;
int i=strTMP.Find('|');
strID=strTMP.Mid(i+1);
CDatabase db;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -