📄 taxmandlg.cpp
字号:
// TaxManDlg.cpp : implementation file
//
#include "stdafx.h"
#include "HrSys.h"
#include "TaxManDlg.h"
#include "TaxEditDlg.h"
#include "TaxRate.h"
#include "COMDEF.H"
#include "Columns.h"
#include "Column.h"
#include "_recordset.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CTaxManDlg dialog
CTaxManDlg::CTaxManDlg(CWnd* pParent /*=NULL*/)
: CDialog(CTaxManDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CTaxManDlg)
m_BasicNumber = 0;
//}}AFX_DATA_INIT
}
void CTaxManDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CTaxManDlg)
DDX_Control(pDX, IDC_ADODC1, m_adodc);
DDX_Control(pDX, IDC_DATAGRID1, m_datagrid);
DDX_Text(pDX, IDC_BASICNUMBER_EDIT, m_BasicNumber);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CTaxManDlg, CDialog)
//{{AFX_MSG_MAP(CTaxManDlg)
ON_BN_CLICKED(IDC_SET_BUTTON, OnSetButton)
ON_BN_CLICKED(IDC_ADD_BUTTON, OnAddButton)
ON_BN_CLICKED(IDC_MODI_BUTTON, OnModiButton)
ON_BN_CLICKED(IDC_DEL_BUTTON, OnDelButton)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTaxManDlg message handlers
void CTaxManDlg::Refresh_Data()
{
//设置记录源
CString cSource;
// 因为Id等于1的记录用于保存工资纳税基数,所以只显示Id<>1的记录
cSource = "SELECT Id, LowerLimit AS 应纳税金额下限, UpperLimit AS 应纳税金额上限,"
"(CONVERT(varchar,Rate)+'%') AS 税率, Deduct AS 速算扣除数, Rate"
" FROM TaxRate WHERE Id<>1";
m_adodc.SetRecordSource(cSource);
m_adodc.Refresh();
//设置表格列宽度
_variant_t vIndex;
vIndex = long(0);
m_datagrid.GetColumns().GetItem(vIndex).SetWidth(0);
vIndex = long(1);
m_datagrid.GetColumns().GetItem(vIndex).SetWidth(140);
vIndex = long(2);
m_datagrid.GetColumns().GetItem(vIndex).SetWidth(140);
vIndex = long(3);
m_datagrid.GetColumns().GetItem(vIndex).SetWidth(100);
vIndex = long(4);
m_datagrid.GetColumns().GetItem(vIndex).SetWidth(140);
vIndex = long(5);
m_datagrid.GetColumns().GetItem(vIndex).SetWidth(0);
}
void CTaxManDlg::OnSetButton()
{
UpdateData(TRUE);
// 判断数据有效性
if(m_BasicNumber <= 0)
{
MessageBox("请输入工资纳税基数");
return;
}
CTaxRate tax;
tax.LowerLimit = m_BasicNumber;
tax.UpdateBasicNumber();
MessageBox("成功保存工资纳税基数");
}
void CTaxManDlg::OnAddButton()
{
CTaxEditDlg dlg;
dlg.cId = "";
if (dlg.DoModal() == IDOK)
Refresh_Data();
}
void CTaxManDlg::OnModiButton()
{
if (m_adodc.GetRecordset().GetEof())
{
MessageBox("请选择要修改的记录");
return;
}
CTaxEditDlg dlg;
dlg.cId = m_datagrid.GetItem(0); //记录编号
dlg.m_lower = atoi(m_datagrid.GetItem(1)); //应纳税金额下限
dlg.m_upper = atoi(m_datagrid.GetItem(2)); //应纳税金额上限
dlg.m_rate = atoi(m_datagrid.GetItem(5)); //税率
dlg.m_deduct = atoi(m_datagrid.GetItem(4)); //速算扣除数
// 打开对话框,编辑纳税记录
if (dlg.DoModal() == IDOK)
Refresh_Data();
}
void CTaxManDlg::OnDelButton()
{
if (m_adodc.GetRecordset().GetEof())
{
MessageBox("请选择要删除的记录");
return;
}
if (MessageBox("是否删除当前记录","请确定", MB_YESNO) == IDYES)
{
CTaxRate tax;
tax.sql_delete(m_datagrid.GetItem(0));
Refresh_Data();
}
}
BOOL CTaxManDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// 读取工资纳税基数
CTaxRate tax;
tax.GetData("1");
m_BasicNumber = tax.LowerLimit;
UpdateData(FALSE);
// 查询工资税率记录
Refresh_Data();
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 + -