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

📄 add.cpp

📁 通过Access数据库实现对个人开支的管理
💻 CPP
字号:
// Add.cpp : implementation file
//

#include "stdafx.h"
#include "TotalPay.h"
#include "Add.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern CTotalPayApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CAdd dialog


CAdd::CAdd(CWnd* pParent /*=NULL*/)
	: CDialog(CAdd::IDD, pParent)
{
	//{{AFX_DATA_INIT(CAdd)
	m_name = _T("");
	m_reason = _T("");
	m_beizhu = _T("");
	m_type1 = _T("");
	m_money = _T("");
	m_time = COleDateTime::GetCurrentTime();
	//}}AFX_DATA_INIT
}


void CAdd::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAdd)
	DDX_Control(pDX, IDOK, m_ok);
	DDX_Control(pDX, IDCANCEL, m_cancel);
	DDX_Control(pDX, IDC_COMBO4, m_type);
	DDX_Text(pDX, IDC_EDIT1, m_name);
	DDX_Text(pDX, IDC_EDIT3, m_reason);
	DDX_Text(pDX, IDC_EDIT4, m_beizhu);
	DDX_CBString(pDX, IDC_COMBO4, m_type1);
	DDX_Text(pDX, IDC_EDIT2, m_money);
	DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER1, m_time);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CAdd, CDialog)
	//{{AFX_MSG_MAP(CAdd)
	ON_WM_CANCELMODE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CAdd message handlers

BOOL CAdd::OnInitDialog() 
{
	CDialog::OnInitDialog();
	UpdateData();
	// TODO: Add extra initialization here
	m_type.AddString("学习开支");
	m_type.AddString("生活开支");
	m_type.AddString("其它开支");
	m_type.SetCurSel(1);
	CString temp1;
	m_ok.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);
	m_ok.SetBkColor(RGB(162,189,252));
	m_ok.SetRounded(TRUE);

	m_cancel.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);
	m_cancel.SetBkColor(RGB(162,189,252));
	m_cancel.SetRounded(TRUE);
	
	//GetDlgItemText(IDOK,temp);




	//根据主窗口转来的数据判断是否是添加记录还是修改。
	switch(dowhat)
	{
	case 0:
		SetWindowText("添加出差记录");
		break;
	case 1:
		SetWindowText("修改出差记录");
		SetDlgItemText(IDOK,"修改记录");
	}
	UpdateData(FALSE);
	GetDlgItemText(IDOK,temp1);
	if(temp1=="修改记录")
	{
		GetDlgItem(IDC_DATETIMEPICKER1)->EnableWindow(false);
		GetDlgItem(IDC_EDIT3)->EnableWindow(false);
		
	}
		
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CAdd::OnCancelMode() 
{
	CDialog::OnCancelMode();
	
	// TODO: Add your message handler code here
}

void CAdd::OnCancel() 
{
	// TODO: Add extra cleanup here
	
	CDialog::OnCancel();
}

void CAdd::OnOK() 
{

	// TODO: Add extra validation here
		UpdateData();
	//检查数据完整性
	if(m_name.IsEmpty()||m_money.IsEmpty()||m_reason.IsEmpty()||m_beizhu.IsEmpty())
	{
		AfxMessageBox("请输入完整信息!");
		return;
	}
	//得到此步做什么工作,根据按钮的内容决定
	CString sql,temp,m_time;
	GetDlgItemText(IDC_DATETIMEPICKER1,m_time);
	GetDlgItemText(IDOK,temp);
	//添加记录
	if(temp=="添加记录")
	{
		//生成系统时间

		sql.Format("insert into total ([name],paytype,[money],[time],reason,explain) values('%s','%s','%s','%s','%s','%s')",m_name.GetBuffer(0),
		m_type1.GetBuffer(0),m_money.GetBuffer(0),m_time.GetBuffer(0),m_reason.GetBuffer(0),m_beizhu.GetBuffer(0));		
		
		//执行语句
		_variant_t RecordsAffected;
		theApp.m_pConnection->Execute((_bstr_t)sql,&RecordsAffected,adCmdText);
		AfxMessageBox("成功插入1条数据!");
		//刷新list列表的内容
		CTotalPayApp *pApp=(CTotalPayApp *)AfxGetApp();
		CTotalPayDlg *pDlg=(CTotalPayDlg *)pApp->m_pMainWnd;
		sql="SELECT * FROM total where name='"+theApp.name+"'";
		pDlg->ReadtoList(sql);
		//清空添加对话框的内容
		m_name="";
		m_money="";
		m_time="";
		m_beizhu="";
		m_reason="";
		UpdateData(false);
		CDialog::OnOK();
	}
	else if(temp=="修改记录")
	{
		sql = "update total set paytype='"
			+m_type1+"',"+"[money]='"
			+m_money+"',"+" [time]='"
			+m_time+"',"+"reason='"+m_reason+"',"
			+"explain ='"+m_beizhu+"'"
			+"where [name]='"+m_name+"'" 
			+ "and  reason='"+m_reason+"'";

			
		_variant_t RecordsAffected;
		theApp.m_pConnection->Execute((_bstr_t)sql,&RecordsAffected,adCmdText);
		AfxMessageBox("成功修改此条数据!");
		CTotalPayApp *pApp=(CTotalPayApp *)AfxGetApp();
		CTotalPayDlg *pDlg=(CTotalPayDlg *)pApp->m_pMainWnd;
		sql="SELECT * FROM total where name='"+theApp.name+"'";
		pDlg->ReadtoList(sql);

		//返回主界面
		OnCancel();
	}
	return;

	CDialog::OnOK();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -