📄 itemeditdlg.cpp
字号:
// ItemEditDlg.cpp : implementation file
//
#include "stdafx.h"
#include "HrSys.h"
#include "ItemEditDlg.h"
#include "CalculatorDlg.h"
#include "SalaryItem.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CItemEditDlg dialog
CItemEditDlg::CItemEditDlg(CWnd* pParent /*=NULL*/)
: CDialog(CItemEditDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CItemEditDlg)
m_Formula = _T("");
m_ItemName = _T("");
m_Sum = 0;
//}}AFX_DATA_INIT
}
void CItemEditDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CItemEditDlg)
DDX_Control(pDX, IDC_OPER_COMBO, m_Oper);
DDX_Control(pDX, IDC_ITEMTYPE_COMBO, m_ItemType);
DDX_Control(pDX, IDC_ISVS_COMBO, m_IsVS);
DDX_Text(pDX, IDC_FORMULA_EDIT, m_Formula);
DDX_Text(pDX, IDC_ITEMNAME_EDIT, m_ItemName);
DDX_Text(pDX, IDC_SUM_EDIT, m_Sum);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CItemEditDlg, CDialog)
//{{AFX_MSG_MAP(CItemEditDlg)
ON_BN_CLICKED(IDC_CAL_BUTTON, OnCalButton)
ON_CBN_SELCHANGE(IDC_ITEMTYPE_COMBO, OnSelchangeItemtypeCombo)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CItemEditDlg message handlers
void CItemEditDlg::OnOK()
{
UpdateData(TRUE); //将用户输入的数据读取到成员变量中
//检查用户输入数据的有效性
if (m_ItemName == "")
{
MessageBox("请输入工资项目名称");
return;
}
if (m_ItemType.GetCurSel() < 0)
{
MessageBox("请选择项目类型");
return;
}
//如果是固定值则必须输入项目金额
if (m_ItemType.GetCurSel()==0)
{
char strNum[10];
if(_itoa(m_Sum,strNum,10)=="")
{
MessageBox("请输入项目的固定金额");
return;
}
}
else // 如果是计算值则需要指定计算公式
{
if(m_Formula=="")
{
MessageBox("请输入项目的计算公式");
return;
}
}
//将用户输入数据赋值到类CSalaryItem变量中,然后保存到数据库
CSalaryItem Item; //声明CSalaryItem对象
Item.ItemName=m_ItemName; //项目名称
Item.ItemType=m_ItemType.GetCurSel() + 1; // 项目类型
//类型为固定值时,公式字段为空;为计算值时,项目金额字段为0
if (m_ItemType.GetCurSel()==0)
{
Item.ItemSum=m_Sum;
Item.Formula="";
}
else
{
Item.ItemSum=0;
Item.Formula=m_Formula;
}
Item.IsVisible=m_IsVS.GetCurSel(); //是否显示
Item.Operation=m_Oper.GetCurSel(); //计算方式
if (cId == "") //插入数据
{
//判断是否存在此项目名称
if(Item.HaveRecord(m_ItemName))
{
MessageBox("已经存在此项目名称");
return;
}
else
Item.sql_insert();
}
else
{
//判断项目名称是否更改,如果更改则验证新的项目名称是否已经存在
if(cOldName!=m_ItemName)
if(Item.HaveRecord(m_ItemName))
{
MessageBox("已经存在此项目名称");
return;
}
Item.sql_update(cId);
}
CDialog::OnOK();
}
// 弹出计算器窗体
void CItemEditDlg::OnCalButton()
{
UpdateData(TRUE);
CCalculatorDlg dlg;
dlg.DoModal();
//根据用户选择设置计算公式
m_Formula = dlg.cFormula;
UpdateData(FALSE);
}
//更改项目类型:如果为固定值,则计算器按钮不可用;
//如果为计算值,则项目金额编辑框不可用
void CItemEditDlg::OnSelchangeItemtypeCombo()
{
if (m_ItemType.GetCurSel()==0)
{
m_Sum = 0;
m_Formula = "";
GetDlgItem(IDC_SUM_EDIT)->EnableWindow(TRUE);
GetDlgItem(IDC_CAL_BUTTON)->EnableWindow(FALSE);
}
else
{
m_Sum = 0;
m_Formula = "";
GetDlgItem(IDC_SUM_EDIT)->EnableWindow(FALSE);
GetDlgItem(IDC_CAL_BUTTON)->EnableWindow(TRUE);
}
}
BOOL CItemEditDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// 设置项目类型
if(cType == "固定值")
m_ItemType.SetCurSel(0);
else
m_ItemType.SetCurSel(1);
// 设置是否可见
if(cIsVS == "是")
m_IsVS.SetCurSel(1);
else
m_IsVS.SetCurSel(0);
// 运算方式
if(cOper == "税前加")
m_Oper.SetCurSel(0);
else if(cOper == "税前减")
m_Oper.SetCurSel(1);
else if(cOper == "税后加")
m_Oper.SetCurSel(2);
else
m_Oper.SetCurSel(3);
OnSelchangeItemtypeCombo();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -