📄 add.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 + -