📄 kaoqindlg.cpp
字号:
// KaoqinDlg.cpp : implementation file
//
#include "stdafx.h"
#include "salarymanagement.h"
#include "KaoqinDlg.h"
#include "MyTab.h"
#include "USkin.h"
#include "ADOConn.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CKaoqinDlg dialog
//静态变量初始化
CString CKaoqinDlg::m_nIDSelect="";
CString CKaoqinDlg::s_SQL="";
BOOL CKaoqinDlg::s_bRefresh=FALSE;
CKaoqinDlg::CKaoqinDlg(CWnd* pParent /*=NULL*/)
: CDialog(CKaoqinDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CKaoqinDlg)
m_nID = _T("");
m_bUpdate = FALSE;
m_bDelete = FALSE;
m_bAddNew = FALSE;
//}}AFX_DATA_INIT
m_isAll=TRUE;
m_ado.OnInitADOConn();
}
CKaoqinDlg::~CKaoqinDlg()
{
m_ado.ExitConnect();
}
void CKaoqinDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CKaoqinDlg)
DDX_Control(pDX, IDC_LIST, m_list);
DDX_Control(pDX, IDC_TAB1, m_tab);
DDX_Text(pDX, IDC_ID, m_nID);
DDX_Check(pDX, IDC_CHECK1, m_bUpdate);
DDX_Check(pDX, IDC_CHECK2, m_bDelete);
DDX_Check(pDX, IDC_CHECK3, m_bAddNew);
DDX_Control(pDX, IDC_DATAGRID1, m_dataGrid);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CKaoqinDlg, CDialog)
//{{AFX_MSG_MAP(CKaoqinDlg)
ON_WM_DESTROY()
ON_NOTIFY(TCN_SELCHANGE, IDC_TAB1, OnSelchangeTab1)
ON_BN_CLICKED(IDC_SEARCH, OnSearch)
ON_NOTIFY(NM_CLICK, IDC_LIST, OnClickList)
ON_BN_CLICKED(IDC_CHECK1, OnUpdate)
ON_BN_CLICKED(IDC_CHECK2, OnDelete)
ON_BN_CLICKED(IDC_CHECK3, OnAddNew)
ON_WM_TIMER()
ON_BN_CLICKED(IDC_REFRESH, OnRefresh)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CKaoqinDlg message handlers
extern CSalaryManagementApp theApp;
BOOL CKaoqinDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CString str=theApp.m_CurrentDirectory+"\\Skin\\2.u3";
USkinLoadSkin(str);
CenterWindow(CWnd::GetDesktopWindow());
m_tab.SetIndex(1);
m_tab.InsertItem(0,"考勤统计");
m_tab.InsertItem(1,"出差");
m_tab.InsertItem(2,"出勤");
m_tab.InsertItem(3,"加班");
m_tab.InsertItem(4,"请假");
m_tab.InsertItem(5,"休假");
//初始化列表控件
m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT |LVS_EX_GRIDLINES);
m_list.InsertColumn(0,"员工ID",LVCFMT_LEFT,50,100);
m_list.InsertColumn(1,"员工姓名",LVCFMT_LEFT,70,100);
m_list.InsertColumn(2,"所在部门",LVCFMT_LEFT,90,100);
m_recordset=m_ado.GetRecordSet("Select * From BasicInfomation");
int CurrentRow=0;
while(!m_recordset->adoEOF)
{
m_list.InsertItem(CurrentRow,(_bstr_t)m_recordset->GetCollect("员工ID"));
m_list.SetItem(CurrentRow,1,1,(_bstr_t)m_recordset->GetCollect("员工姓名"),NULL,0,0,0);
m_list.SetItem(CurrentRow,2,1,(_bstr_t)m_recordset->GetCollect("部门名称"),NULL,0,0,0);
m_recordset->MoveNext();
CurrentRow++;
}
//载入数据库中所有考勤信息至DataGrid控件中
LoadData(0,m_isAll);
m_tab.InitTabCtrl();
//定时选择是否更新DataGrid控件中的数据
SetTimer(0,2000,NULL);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CKaoqinDlg::OnDestroy()
{
CDialog::OnDestroy();
USkinRemoveSkin();
theApp.m_pMainWnd->SetWindowPos(&wndTop,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE|SWP_SHOWWINDOW);
}
void CKaoqinDlg::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
int page=m_tab.GetCurSel( );
LoadData(page,m_isAll);
*pResult = 0;
}
void CKaoqinDlg::LoadData(int index,BOOL isAll)
{
CString str[]={"KEvection","KBeOnDuty","KOvertime","KLeave","KVacation"};
UpdateData();
if(index==0)
sql.Format("Select * From KaoQin");
else
sql.Format("Select * From %s",str[index-1]);
//显示所有,或者只显示对应员工ID的数据
CString temp="";
if(!isAll)
temp.Format(" Where 员工ID='%s'",m_nIDSelect);
sql+=temp;
try{
_RecordsetPtr recordset=m_ado.GetRecordSet(sql);
m_dataGrid.SetRefDataSource((LPUNKNOWN)recordset);
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
UpdateData(FALSE);
}
void CKaoqinDlg::OnSearch()
{
UpdateData();
try{
sql.Format("Select * From BasicInfomation Where 员工ID='%s'",m_nID);
m_recordset=m_ado.GetRecordSet(sql);
if(m_recordset->adoEOF)
{
AfxMessageBox("员工ID不存在");
return;
}
//将执行结果在列表控件中显示
m_list.DeleteAllItems();
int CurrentRow=0;
while(!m_recordset->adoEOF)
{
m_list.InsertItem(CurrentRow,(_bstr_t)m_recordset->GetCollect("员工ID"));
m_list.SetItem(CurrentRow,1,1,(_bstr_t)m_recordset->GetCollect("员工姓名"),NULL,0,0,0);
m_list.SetItem(CurrentRow,2,1,(_bstr_t)m_recordset->GetCollect("部门名称"),NULL,0,0,0);
m_recordset->MoveNext();
CurrentRow++;
}
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
UpdateData(FALSE);
return;
}
void CKaoqinDlg::OnClickList(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
int nItem=pNMListView->iItem;
if(nItem!=-1)
{
m_nIDSelect=m_list.GetItemText(nItem,0);
m_isAll=FALSE;
}
else
{
m_nIDSelect="";
m_isAll=TRUE;;
}
int page=m_tab.GetCurSel();
LoadData(page,m_isAll);
*pResult = 0;
}
BEGIN_EVENTSINK_MAP(CKaoqinDlg, CDialog)
//{{AFX_EVENTSINK_MAP(CKaoqinDlg)
//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()
void CKaoqinDlg::OnUpdate()
{
m_bUpdate=!m_bUpdate;
if(m_bUpdate)
m_dataGrid.SetAllowUpdate(TRUE);
else
m_dataGrid.SetAllowUpdate(FALSE);
}
void CKaoqinDlg::OnDelete()
{
m_bDelete=!m_bDelete;
if(m_bDelete)
m_dataGrid.SetAllowDelete(TRUE);
else
m_dataGrid.SetAllowDelete(FALSE);
}
void CKaoqinDlg::OnAddNew()
{
m_bAddNew=!m_bAddNew;
if(m_bAddNew)
m_dataGrid.SetAllowAddNew(TRUE);
else
m_dataGrid.SetAllowAddNew(FALSE);
}
void CKaoqinDlg::OnTimer(UINT nIDEvent)
{
if(s_bRefresh)
{
m_dataGrid.SetRefDataSource((LPUNKNOWN)m_ado.GetRecordSet(s_SQL));
m_dataGrid.Refresh();
s_bRefresh=FALSE;
}
CDialog::OnTimer(nIDEvent);
}
void CKaoqinDlg::OnRefresh()
{
m_dataGrid.SetRefDataSource((LPUNKNOWN)m_ado.GetRecordSet(s_SQL));
m_dataGrid.Refresh();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -