📄 pingjiaview.cpp
字号:
// PingjiaView.cpp : implementation file
//
#include "stdafx.h"
#include "renshi.h"
#include "PingjiaView.h"
#include "control\Columns.h"
#include "control\Column.h"
#include "control\_recordset.h"
#include "class\admin.h"
#include "PingjiaEditDlg.h"
#include "BumenSelDlg.h"
#include "MainFrm.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CPingjiaView
extern CAdmin g_curAdmin;
extern CRenshiApp theApp;
IMPLEMENT_DYNCREATE(CPingjiaView, CFormView)
CPingjiaView::CPingjiaView()
: CFormView(CPingjiaView::IDD)
{
//{{AFX_DATA_INIT(CPingjiaView)
m_BumenName = _T("");
//}}AFX_DATA_INIT
}
CPingjiaView::~CPingjiaView()
{
}
void CPingjiaView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CPingjiaView)
DDX_Control(pDX, IDC_YEAR_COMBO, m_year);
DDX_Control(pDX, IDC_MONTH_COMBO, m_month);
DDX_Control(pDX, IDC_ADODC1, m_adodc);
DDX_Control(pDX, IDC_DATAGRID1, m_datagrid);
DDX_Text(pDX, IDC_DEPNAME_STATIC, m_BumenName);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CPingjiaView, CFormView)
//{{AFX_MSG_MAP(CPingjiaView)
ON_BN_CLICKED(IDC_SET_BUTTON, OnSetButton)
ON_BN_CLICKED(IDC_SETDEP_BUTTON, OnSetBumenButton)
ON_CBN_SELCHANGE(IDC_YEAR_COMBO, OnSelchangeYearCombo)
ON_CBN_SELCHANGE(IDC_MONTH_COMBO, OnSelchangeMonthCombo)
ON_WM_DESTROY()
ON_WM_SIZE()
ON_BN_CLICKED(IDC_BUTTON_XML, OnButtonXml)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPingjiaView diagnostics
#ifdef _DEBUG
void CPingjiaView::AssertValid() const
{
CFormView::AssertValid();
}
void CPingjiaView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CPingjiaView message handlers
void CPingjiaView::Refresh_Data()
{
CString cSource;
CString cBumenID;
cBumenID.Format("%d", iBumenID);
CString cYear, cMonth;
m_year.GetLBText(m_year.GetCurSel(), cYear); //读取月份信息
m_month.GetLBText(m_month.GetCurSel(), cMonth);
cSource = "SELECT e.yg_ID, e.yg_Name AS 员工姓名, ISNULL(v.ZtEva,'') AS 总体评价, ISNULL(v.jlReason,'') AS 奖励事由,";
cSource += " ISNULL(v.jlAmount,0) AS 奖励金额, ISNULL(v.cfReason,'') AS 处罚事由, ISNULL(v.cfAmount,0) AS 处罚金额,";
cSource += " ISNULL(v.Memo,'') AS 备注信息 FROM Yuangong e, Pingjia v WHERE e.yg_ID*=v.yg_ID";
cSource += " AND v.EvaMonth='" + cYear + "-" + cMonth + "' AND BumenID=" + cBumenID;
m_adodc.SetRecordSource(cSource);
m_adodc.Refresh();
m_datagrid.GetColumns().GetItem((_variant_t)long(0)).SetWidth(0);
m_datagrid.GetColumns().GetItem((_variant_t)long(1)).SetWidth(70);
m_datagrid.GetColumns().GetItem((_variant_t)long(2)).SetWidth(70);
m_datagrid.GetColumns().GetItem((_variant_t)long(3)).SetWidth(70);
m_datagrid.GetColumns().GetItem((_variant_t)long(4)).SetWidth(70);
m_datagrid.GetColumns().GetItem((_variant_t)long(5)).SetWidth(70);
m_datagrid.GetColumns().GetItem((_variant_t)long(6)).SetWidth(70);
}
void CPingjiaView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
m_cp.SetParent(this);
m_cp.AddControl(IDC_DATAGRID1,CP_RESIZE_H|CP_RESIZE_V);
//权限控制,如果不是系统管理员则设置置灰
if (g_curAdmin.GetUserType() != 1)
GetDlgItem(IDC_SET_BUTTON)->EnableWindow(FALSE);
CTime t = CTime::GetCurrentTime();
m_year.SetCurSel(t.GetYear() - 2006);
m_month.SetCurSel(t.GetMonth() - 1);
UpdateData(FALSE);
Refresh_Data();
}
void CPingjiaView::OnSetButton()
{
if (m_adodc.GetRecordset().GetEof())
{
MessageBox("请选择员工记录");
return;
}
//读取月份信息
CString cYear, cMonth;
int index;
index = m_year.GetCurSel();
m_year.GetLBText(index, cYear);
index = m_month.GetCurSel();
m_month.GetLBText(index, cMonth);
CPingjiaEditDlg dlg;
dlg.m_Month = cYear + "-" + cMonth; //考评月份
dlg.iYgID = atoi(m_datagrid.GetItem(0)); //考评员工编号
dlg.m_YgName = m_datagrid.GetItem(1); //考评员工姓名
dlg.m_Zt = m_datagrid.GetItem(2); //总体评价
dlg.m_jlReason = m_datagrid.GetItem(3); //奖励事由
dlg.m_jlAmount = atoi(m_datagrid.GetItem(4)); //奖励金额
dlg.m_cfReason = m_datagrid.GetItem(5); //处罚事由
dlg.m_cfAmount = atoi(m_datagrid.GetItem(6)); //处罚金额
dlg.m_Memo = m_datagrid.GetItem(7); //备注
if (dlg.DoModal() == IDOK)
Refresh_Data();
}
void CPingjiaView::OnSetBumenButton()
{
UpdateData(TRUE);
//打开选择部门对话框
CBumenSelDlg dlg;
dlg.DoModal();
//从对话框中读取选择部门的信息
iBumenID = dlg.BumenID;
m_BumenName = dlg.BumenName;
UpdateData(FALSE);
//根据选择的部门信息,刷新表格数据
Refresh_Data();
}
void CPingjiaView::OnSelchangeYearCombo()
{
Refresh_Data();
}
void CPingjiaView::OnSelchangeMonthCombo()
{
Refresh_Data();
}
void CPingjiaView::OnDestroy()
{
CFormView::OnDestroy();
((CMainFrame*)AfxGetMainWnd())->m_pPingjiaView=NULL;
delete ((CMainFrame*)AfxGetMainWnd())->m_pPingjiaView;
}
void CPingjiaView::OnSize(UINT nType, int cx, int cy)
{
CFormView::OnSize(nType, cx, cy);
m_cp.MoveControls();
}
void CPingjiaView::OnButtonXml()
{
UpdateData();
CString cSource;
CString cBumenID;
cBumenID.Format("%d", iBumenID);
CString cYear, cMonth;
m_year.GetLBText(m_year.GetCurSel(), cYear); //读取月份信息
m_month.GetLBText(m_month.GetCurSel(), cMonth);
cSource = "SELECT e.yg_ID, e.yg_Name AS 员工姓名, ISNULL(v.ZtEva,'') AS 总体评价, ISNULL(v.jlReason,'') AS 奖励事由,";
cSource += " ISNULL(v.jlAmount,0) AS 奖励金额, ISNULL(v.cfReason,'') AS 处罚事由, ISNULL(v.cfAmount,0) AS 处罚金额,";
cSource += " ISNULL(v.Memo,'') AS 备注信息 FROM Yuangong e, Pingjia v WHERE e.yg_ID*=v.yg_ID";
cSource += " AND v.EvaMonth='" + cYear + "-" + cMonth + "' ";
CString strFileName;
if(m_BumenName.IsEmpty())
{
strFileName="所有部门 " +cYear+"年"+cMonth+"月的考评信息";
}
else
{
strFileName=m_BumenName+" " +cYear+"年"+cMonth+"月的考评信息";
cSource=cSource+"AND BumenID=" + cBumenID;
}
_RecordsetPtr pRS =theApp.m_ado.GetRS(cSource); //执行SQL语句获取记录集
char BASED_CODE szFilter[] = "XML Files (*.xml)|*.xml|All Files (*.*)|*.*||";
CFileDialog dlg(FALSE,"XML",strFileName, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter);
if (dlg.DoModal() == IDOK)
{
try
{
pRS->Save(_bstr_t(dlg.GetPathName()), adPersistXML);
}
catch (_com_error e)
{
TRACE(_T("Warning: Save 发生异常. 错误信息: %s; 文件: %s; 行: %d\n"), e.ErrorMessage(), __FILE__, __LINE__);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -