?? 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 + -