⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 itemeditdlg.cpp

📁 VC + SQL数据库编程 人事、工资、部门管理 包含SQL备份文件及部分源码注释
💻 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 + -