?? 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); //將用戶輸入的數(shù)據(jù)讀取到成員變量中
//檢查用戶輸入數(shù)據(jù)的有效性
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;
}
}
//將用戶輸入數(shù)據(jù)賦值到類CSalaryItem變量中,然后保存到數(shù)據(jù)庫
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 == "") //插入數(shù)據(jù)
{
//判斷是否存在此項目名稱
if(Item.HaveRecord(m_ItemName))
{
MessageBox("已經(jīng)存在此項目名稱");
return;
}
else
Item.sql_insert();
}
else
{
//判斷項目名稱是否更改,如果更改則驗證新的項目名稱是否已經(jīng)存在
if(cOldName!=m_ItemName)
if(Item.HaveRecord(m_ItemName))
{
MessageBox("已經(jīng)存在此項目名稱");
return;
}
Item.sql_update(cId);
}
CDialog::OnOK();
}
// 彈出計算器窗體
void CItemEditDlg::OnCalButton()
{
UpdateData(TRUE);
CCalculatorDlg dlg;
dlg.DoModal();
//根據(jù)用戶選擇設(shè)置計算公式
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();
// 設(shè)置項目類型
if(cType == "固定值")
m_ItemType.SetCurSel(0);
else
m_ItemType.SetCurSel(1);
// 設(shè)置是否可見
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
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -