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

📄 add.cpp

📁 出差管理系统,是利用VC开发一个简单的,管理出差记录及出差发票报销记录的程序,目的是避免人工烦琐的管理工作.
💻 CPP
字号:
// Add.cpp : implementation file
//
//		CCcApp *pApp=(CCcApp *)AfxGetApp();
//		CCcDlg *pDlg=(CCcDlg *)pApp->m_pMainWnd;
#include "stdafx.h"
#include "cc.h"
#include "ccDlg.h"
#include "Add.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif


extern CCcApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CAdd dialog


CAdd::CAdd(CWnd* pParent /*=NULL*/)
	: CDialog(CAdd::IDD, pParent)
{
	//{{AFX_DATA_INIT(CAdd)
	m_name = _T("");
	m_adrr = _T("");
	m_ks = _T("");
	m_whatdo = _T("");
	m_dome = _T("");
	m_date1 = _T("");
	m_date2 = _T("");
	//}}AFX_DATA_INIT
}


void CAdd::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAdd)
	DDX_Text(pDX, IDC_EDIT1, m_name);
	DDX_Text(pDX, IDC_EDIT2, m_adrr);
	DDX_Text(pDX, IDC_EDIT3, m_ks);
	DDX_Text(pDX, IDC_EDIT4, m_whatdo);
	DDX_Text(pDX, IDC_EDIT5, m_dome);
	DDX_Text(pDX, IDC_DATETIMEPICKER1, m_date1);
	DDX_Text(pDX, IDC_DATETIMEPICKER2, m_date2);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CAdd, CDialog)
	//{{AFX_MSG_MAP(CAdd)
	ON_BN_CLICKED(IDC_BUTTON_BX, OnButtonBx)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

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

void CAdd::OnOK() 
{
	// TODO: Add extra validation here
	UpdateData();
	//检查数据完整性
	if(m_name.IsEmpty()||m_adrr.IsEmpty()||m_ks.IsEmpty()||m_date1.IsEmpty()||m_date2.IsEmpty()||m_whatdo.IsEmpty()||m_dome.IsEmpty())
	{
		AfxMessageBox("请输入完整信息!");
		return;
	}
	//得到此步做什么工作,根据按钮的内容决定
	CString sql,nowtime,temp;
	GetDlgItemText(IDOK,temp);
	//添加记录
	if(temp=="添加记录")
	{
		//生成系统时间
		CTime now=CTime::GetCurrentTime();
		nowtime=now.Format(_T("%Y年%m月%d日%H时%M分%S秒"));
		sql="insert into cc (staus,name,adrr,ks,date1,date2,whatdo,dome,insertdate) values('--','"+m_name+"','"+m_adrr+"','"+m_ks+"','"+m_date1+"','"+m_date2+"','"+m_whatdo+"','"+m_dome+"','"+nowtime+"')";
		//执行语句
		_variant_t RecordsAffected;
		theApp.m_pConnection->Execute((_bstr_t)sql,&RecordsAffected,adCmdText);
		AfxMessageBox("成功插入1条数据!");
		//刷新list列表的内容
		CCcApp *pApp=(CCcApp *)AfxGetApp();
		CCcDlg *pDlg=(CCcDlg *)pApp->m_pMainWnd;
		sql="SELECT * FROM cc where name='"+theApp.name+"'";
		pDlg->ReadtoList(sql);
		//清空添加对话框的内容
		m_adrr="";
		m_ks="";
		m_whatdo="";
		m_dome="";
		UpdateData(false);
	}
	//修改记录
	else if(temp=="修改记录")
	{
		//生成动态sql语句
		sql="update cc set adrr='"+m_adrr+
			"',ks='"+m_ks+
			"',whatdo='"+m_whatdo+
			"',date1='"+m_date1+
			"',date2='"+m_date2+
			"',dome='"+m_dome+
			"' where insertdate='"+editflag+"' and name='"+theApp.name+"'";
		//执行语句
		_variant_t RecordsAffected;
		theApp.m_pConnection->Execute((_bstr_t)sql,&RecordsAffected,adCmdText);
		AfxMessageBox("成功修改此条数据!");
		//返回主界面
		OnCancel();
	}
	return;
}

BOOL CAdd::OnInitDialog() 
{
	CDialog::OnInitDialog();
	// TODO: Add extra initialization here

	UpdateData(false);
	UpdateData();
	//生成语句。
	CString	sql="select * from cc where adrr='"
		+m_adrr+"' and ks='"
		+m_ks+"' and whatdo='"
		+m_whatdo+"' and date1='"
		+m_date1+"' and date2='"
		+m_date2+"' and dome='"
		+m_dome+"' and name='"+m_name+"'";
	_RecordsetPtr m_pRecordset;
	CString temp;
	//根据主窗口转来的数据判断是否是添加记录还是修改。
	switch(dowhat)
	{
	case 1:
		SetWindowText("添加出差记录");
		break;
	case 2:
		SetWindowText("修改出差记录");
		SetDlgItemText(IDOK,"修改记录");
		//GetDlgItem(IDC_EDIT2)->EnableWindow(false);
		//GetDlgItem(IDC_EDIT3)->EnableWindow(false);
		//GetDlgItem(IDC_DATETIMEPICKER1)->EnableWindow(false);
		//GetDlgItem(IDC_DATETIMEPICKER2)->EnableWindow(false);
		if(bx)
		{
			GetDlgItem(IDC_BUTTON_BX)->ShowWindow(true);
			SetDlgItemText(IDC_BUTTON_BX,"设为已报销");
			SetWindowText("修改出差记录  [未报销的记录]");
		}
		else
		{
			GetDlgItem(IDC_BUTTON_BX)->ShowWindow(true);
			SetWindowText("修改出差记录  [已报销的记录]");
			SetDlgItemText(IDC_BUTTON_BX,"设为未报销");
		}

		//如果是修改,查询是否有此条记录,如果有就修改。
		try
		{
			m_pRecordset.CreateInstance("ADODB.Recordset");
			m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
			if(m_pRecordset->adoEOF)
			{
				AfxMessageBox("你的数据库中还没有出差记录信息!");
			}
			else
			{
				if(!m_pRecordset->adoEOF)
				{
					editflag=(LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("insertdate");
				}
				else
				{
					AfxMessageBox("数据库中没有此记录!");
					OnCancel();
				}
			}
			m_pRecordset->Close();
		}
		catch(_com_error e)///捕捉异常
		{
			temp.Format("连接数据库错误信息:%s",e.ErrorMessage());
			AfxMessageBox(temp);
			OnCancel();			
		}
		break;
	case 3:
		break;
	}
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

//设置报销标记
void CAdd::OnButtonBx() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
	CString temp,sql;
	GetDlgItemText(IDC_BUTTON_BX,temp);
	_variant_t RecordsAffected;
	if(temp=="设为已报销")
	{
		sql="update cc set staus='√' where name='"+m_name+"' and insertdate='"+editflag+"'";
		theApp.m_pConnection->Execute((_bstr_t)sql,&RecordsAffected,adCmdText);
		AfxMessageBox("成功写入已报销标志到此条数据!");
	}
	else if(temp=="设为未报销")
	{
		sql="update cc set staus='--' where name='"+m_name+"' and insertdate='"+editflag+"'";
		theApp.m_pConnection->Execute((_bstr_t)sql,&RecordsAffected,adCmdText);
		AfxMessageBox("成功还原未报销标志到此条数据!");
	}
	OnCancel();
}

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

⌨️ 快捷键说明

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