📄 rewardpunish.cpp
字号:
// RewardPunish.cpp : implementation file
//
#include "stdafx.h"
#include "salarymanagement.h"
#include "RewardPunish.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#include "BasicInfo.h"
#ifndef _BASICINFO_H_
#define _BASICINFO_H_
#endif
/////////////////////////////////////////////////////////////////////////////
// CRewardPunish dialog
CRewardPunish::CRewardPunish(CWnd* pParent /*=NULL*/)
: CDialog(CRewardPunish::IDD, pParent)
{
//{{AFX_DATA_INIT(CRewardPunish)
m_nID = _T("");
m_department = _T("");
m_jiangchengyuanyin = _T("");
m_chexiaoyuanyin = _T("");
m_remark = _T("");
m_qianfa = COleDateTime::GetCurrentTime();
m_chexiao = COleDateTime::GetCurrentTime();
m_shengxiao = COleDateTime::GetCurrentTime();
m_name = _T("");
//}}AFX_DATA_INIT
m_ado.OnInitADOConn();
}
CRewardPunish::~CRewardPunish()
{
m_ado.ExitConnect();
}
void CRewardPunish::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CRewardPunish)
DDX_Control(pDX, IDC_COMBO1, m_cboType);
DDX_Control(pDX, IDC_LIST1, m_rewardPunish);
DDX_Text(pDX, IDC_NID, m_nID);
DDX_Text(pDX, IDC_DEPARTMENT, m_department);
DDX_Text(pDX, IDC_REWARDPUNISHYUANYIN, m_jiangchengyuanyin);
DDX_Text(pDX, IDC_CHEXIAOYUANYIN, m_chexiaoyuanyin);
DDX_Text(pDX, IDC_REMARK, m_remark);
DDX_DateTimeCtrl(pDX, IDC_DATETIMEQIANFA, m_qianfa);
DDX_DateTimeCtrl(pDX, IDC_DATETIMECHEXIAO, m_chexiao);
DDX_DateTimeCtrl(pDX, IDC_DATETIMESHENGXIAO, m_shengxiao);
DDX_Text(pDX, IDC_NAME, m_name);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CRewardPunish, CDialog)
//{{AFX_MSG_MAP(CRewardPunish)
ON_NOTIFY(LVN_ITEMCHANGED, IDC_LISTREWARD, OnItemchangedListreward)
ON_BN_CLICKED(IDC_SAVE, OnSave)
ON_BN_CLICKED(IDC_DELETE, OnDelete)
ON_NOTIFY(NM_CLICK, IDC_LISTREWARD, OnClickListreward)
ON_WM_SHOWWINDOW()
ON_EN_KILLFOCUS(IDC_NID, OnKillfocusNid)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CRewardPunish message handlers
BOOL CRewardPunish::OnInitDialog()
{
CDialog::OnInitDialog();
//设置列表控件的风格并初始化各列
m_cboType.AddString("奖励");
m_cboType.AddString("惩罚");
m_cboType.SetCurSel(0);
CString str[]={"员工ID","奖惩类别","奖惩原因","批准部门","签发时间","生效时间","撤消时间","撤消原因","备注"};
UINT width[]={100,100,200,100,100,100,100,200,200};
m_personInfo.InitListCtrl(m_rewardPunish,str,width,9);
//加载数据库中数据
LoadData();
m_CurrentRow=0;
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CRewardPunish::OnCancel()
{
((CDialog*)this->GetParent()->GetOwner())->EndDialog(IDCANCEL);
CDialog::OnCancel();
}
void CRewardPunish::OnItemchangedListreward(NMHDR* pNMHDR, LRESULT* pResult)
{
UpdateData();
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
//获得鼠标点击的行号
int nItem=pNMListView->iItem;
m_CurrentSelect=nItem;
//将对应行中各列的数据反馈到编辑框和时间控件上
CString type,shengxiao,qianfa,chexiao;
m_nID=m_rewardPunish.GetItemText(nItem,0);
type=m_rewardPunish.GetItemText(nItem,1);
m_jiangchengyuanyin=m_rewardPunish.GetItemText(nItem,2);
m_department=m_rewardPunish.GetItemText(nItem,3);
qianfa=m_rewardPunish.GetItemText(nItem,4);
shengxiao=m_rewardPunish.GetItemText(nItem,5);
chexiao=m_rewardPunish.GetItemText(nItem,6);
m_chexiaoyuanyin=m_rewardPunish.GetItemText(nItem,7);
m_remark=m_rewardPunish.GetItemText(nItem,8);
m_cboType.SetCurSel(m_cboType.FindString(0,type));
m_qianfa.ParseDateTime(qianfa);
m_shengxiao.ParseDateTime(shengxiao);
m_chexiao.ParseDateTime(chexiao);
UpdateData(FALSE);
*pResult = 0;
}
void CRewardPunish::OnSave()
{
// TODO: Add your control notification handler code here
UpdateData();
if(m_nID=="")
{
AfxMessageBox("员工ID不能为空");
return;
}
CString type;
int index=m_cboType.GetCurSel();
m_cboType.GetLBText(index,type);
//主键属性
Prop main[2];
main[0].name="员工ID";
main[0].value=m_nID;
main[1].name="签发时间";
main[1].value=m_qianfa.Format("%Y-%#m-%#d");
//非主键属性
Prop simple[7];
char* str[]={"奖惩类别","奖惩原因","批准部门","生效时间","撤消时间","撤消原因","备注"};
for(int i=0;i<7;i++)
simple[i].name=str[i];
simple[0].value=type;
simple[1].value=m_jiangchengyuanyin;
simple[2].value=m_department;
simple[3].value=m_shengxiao.Format("%Y-%#m-%#d");
simple[4].value=m_chexiao.Format("%Y-%#m-%#d");
simple[5].value=m_chexiaoyuanyin;
simple[6].value=m_remark;
//保存数据
m_personInfo.SavePersonData("RewardPunish",main,2,simple,7);
//将更新后的数据显示到列表控件中
LoadData();
//清空各编辑框中的内容
m_nID="";
m_jiangchengyuanyin="";
m_department="";
m_chexiaoyuanyin="";
m_remark="";
UpdateData(FALSE);
}
void CRewardPunish::OnDelete()
{
// TODO: Add your control notification handler code here
if(0==m_rewardPunish.GetSelectedCount()||m_CurrentSelect>=m_rewardPunish.GetItemCount())
{
AfxMessageBox("请选择您要删除的记录!");
return;
}
if(IDNO==AfxMessageBox("您确定要删除该记录吗?",MB_YESNO))
return;
UpdateData();
//按主键删除,其中数据库中的主键为员工ID和签发时间
CString sql="";
sql.Format("Delete From RewardPunish Where 员工ID='%s' and 签发时间='%s'",
m_nID,m_qianfa.Format("%Y-%#m-%#d"));
m_ado.ExecuteSQL(sql);
m_rewardPunish.DeleteItem(m_CurrentSelect);
}
void CRewardPunish::LoadData()
{
CString str[]={"员工ID","奖惩类别","奖惩原因","批准部门","签发时间","生效时间","撤消时间","撤消原因","备注"};
m_personInfo.LoadData(m_rewardPunish,str,9,"RewardPunish");
}
void CRewardPunish::OnClickListreward(NMHDR* pNMHDR, LRESULT* pResult)
{
// 单击列表控件时空白行时,清空各输入编辑框中的已有数据
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
//获得鼠标点击的行号
int nItem=pNMListView->iItem;
if (nItem==-1)
{
m_nID="";
m_jiangchengyuanyin="";
m_department="";
m_chexiaoyuanyin="";
m_remark="";
UpdateData(false);
}
*pResult = 0;
}
void CRewardPunish::OnShowWindow(BOOL bShow, UINT nStatus)
{
CDialog::OnShowWindow(bShow, nStatus);
if(bShow)
{
m_nID=CBasicInfo::s_nID;
UpdateData(FALSE);
}
}
void CRewardPunish::OnKillfocusNid()
{
UpdateData();
m_personInfo.OnKillfocusEdit(m_nID,m_name);
UpdateData(FALSE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -