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

📄 addpersondlg.cpp

📁 access dao 数据库
💻 CPP
字号:
// addpersondlg.cpp : 实现文件
//

#include "stdafx.h"
#include "kaoqing.h"
#include "addpersondlg.h"
#include "afxdao.h"
#include ".\addpersondlg.h"

// addpersondlg 对话框

IMPLEMENT_DYNAMIC(addpersondlg, CDialog)
addpersondlg::addpersondlg(CWnd* pParent )
	: CDialog(addpersondlg::IDD, pParent)
	, addpersonname(_T(""))
	, addpersoncode(_T(""))
	//, added(false)
	, focus(0)
{
}

addpersondlg::~addpersondlg()
{
}

void addpersondlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Text(pDX, IDC_EDIT1, addpersonname);
	DDX_Text(pDX, IDC_EDIT4, addpersoncode);
	DDX_Control(pDX, IDC_BUTTON1, addpersonokbt);
	DDX_Control(pDX, IDC_BUTTON13, addpersoncancelbt);
	DDX_Control(pDX, IDC_EDIT1, addpersonnameet);
	DDX_Control(pDX, IDC_EDIT4, addpersoncodeet);
	DDX_Control(pDX, IDC_BUTTON2, modinamebt);
	DDX_Control(pDX, IDC_BUTTON15, nomodinamebt);
	DDX_Control(pDX, IDC_LIST2, list);
}


BEGIN_MESSAGE_MAP(addpersondlg, CDialog)
	
	ON_BN_CLICKED(IDC_BUTTON1, OnBnClickedButton1)
	//ON_BN_CLICKED(IDCANCEL, OnBnClickedCancel)
	ON_BN_CLICKED(IDC_BUTTON13, OnBnClickedButton13)
	ON_BN_SETFOCUS(IDC_BUTTON1, OnBnSetfocusButton1)
	ON_BN_KILLFOCUS(IDC_BUTTON1, OnBnKillfocusButton1)
	ON_BN_SETFOCUS(IDC_BUTTON13, OnBnSetfocusButton13)
	ON_BN_KILLFOCUS(IDC_BUTTON13, OnBnKillfocusButton13)
	ON_BN_CLICKED(IDC_BUTTON2, OnBnClickedButton2)
	ON_NOTIFY(NM_DBLCLK, IDC_LIST2, OnNMDblclkList2)
	ON_BN_CLICKED(IDC_BUTTON15, OnBnClickedButton15)
	ON_EN_CHANGE(IDC_EDIT1, OnEnChangeEdit1)
END_MESSAGE_MAP()


// addpersondlg 消息处理程序

BOOL addpersondlg::OnInitDialog()
{
	CDialog::OnInitDialog();
kaoqingbu.Open (".\\kqbook.mdb",0,0,";PWD=caolinjie1226loveyou");
	// TODO:  在此添加额外的初始化
//added=false;

//list.SetTextColor(RGB(0,0,0));
     list.SetExtendedStyle (LVS_EX_GRIDLINES|LVS_REPORT|LVS_EX_FULLROWSELECT|LVS_EX_FLATSB);
	
	 list.InsertColumn (0,_T("编号"));
	 list.InsertColumn (1,_T("姓名"));
list.SetColumnWidth (0,110); 
list.SetColumnWidth (1,110); 
this->UpdateData (false);
refreshlist ();
	return TRUE;  // return TRUE unless you set the focus to a control
	// 异常: OCX 属性页应返回 FALSE
}



void addpersondlg::OnBnClickedButton1()
{UpdateData (true);
addpersoncode.Remove (' ');
addpersonname.Remove (' ');
if(addpersoncode=="") {AfxMessageBox("请填写完整信息");addpersoncodeet.SetFocus ();return;}
if(addpersonname=="") {AfxMessageBox("请填写完整信息");addpersonnameet.SetFocus ();return;}
if(addpersoncode.GetLength ()!=4) {AfxMessageBox("编码规定为4个数字");addpersoncodeet.SetFocus ();return;}

CDaoRecordset addpersonrec;
addpersonrec.m_pDatabase =&kaoqingbu;
addpersonrec.Open (dbOpenDynaset, _T("select * from [人员编码表]"));
try
{addpersonrec.AddNew ();
 addpersonrec.SetFieldValue(0,CString(addpersoncode));
 addpersonrec.SetFieldValue(1,CString(addpersonname));
 

addpersonrec.Update ();
}

catch( CDaoException* e )
{
    AfxMessageBox("编码或姓名不可以重复");
	e->Delete( );
	//added=false;
    addpersonrec.Close ();
	//kaoqingbu.Close ();
	addpersoncodeet.SetFocus ();
	return;
 }

list.InsertItem (0,CString(addpersoncode));
 list.SetItemText (0,1,CString(addpersonname));
    this->GetParent ()->GetDlgItem (IDC_EDIT1)->SetWindowText (addpersoncode);
    //this->GetParent ()->UpdateData (true);
    //this->GetParent ()->GetDlgItem (IDC_EDIT2)->SetFocus ();
	//added=true;
    addpersonrec.Close ();
	
	//if(kaoqingbu.IsOpen ()) kaoqingbu.Close ();
	//addpersoncodeet.SetFocus ();
   
	

	
}



//void addpersondlg::OnOK()
//{
//	// TODO: 在此添加专用代码和/或调用基类
//
//	//CDialog::OnOK();
//}

void addpersondlg::OnBnClickedButton13()
{kaoqingbu.Close ();
	OnCancel ();
	// TODO: 在此添加控件通知处理程序代码
}

void addpersondlg::OnBnSetfocusButton1()
{focus=1;
	// TODO: 在此添加控件通知处理程序代码
}

void addpersondlg::OnBnKillfocusButton1()
{focus=0;
	// TODO: 在此添加控件通知处理程序代码
}

void addpersondlg::OnBnSetfocusButton13()
{focus=2;
	// TODO: 在此添加控件通知处理程序代码
}

void addpersondlg::OnBnKillfocusButton13()
{focus=0;
	// TODO: 在此添加控件通知处理程序代码
}

BOOL addpersondlg::PreTranslateMessage(MSG* pMsg)
{
	if(pMsg->message ==WM_KEYDOWN)
		switch(pMsg->wParam)
              {case VK_RETURN: switch(focus)
                             
	                          {case 1: OnBnClickedButton1(); break;
		                       case 2: OnBnClickedButton13();break;
							  
							   default:{NextDlgCtrl();return TRUE;}
							  }
                 //return TRUE;//对应case VK_RETURN:    	 
				case VK_LEFT:{PrevDlgCtrl();return TRUE;}
				case VK_RIGHT:{NextDlgCtrl();return TRUE;}
               
				case VK_ESCAPE:   return TRUE; 
		      }

	return CDialog::PreTranslateMessage(pMsg);
}

int addpersondlg::refreshlist(void)
{CDaoRecordset rec;
CString str;
int count=0;
rec.m_pDatabase=&kaoqingbu;
 rec.Open (dbOpenDynaset, _T("select * from [人员编码表]"));




list.DeleteAllItems ();
if(rec.IsBOF ()) {rec.Close (); return count;}

while (!rec.IsEOF ())
	{list.InsertItem (count,CString(V_BSTRT(&rec.GetFieldValue( 0 ))));
	list.SetItemText (count,1,CString(V_BSTRT(&rec.GetFieldValue( 1 ))));
    rec.MoveNext ();
	 count++;
	}
rec.Close ();


return count;
	
}

void addpersondlg::OnCancel()
{
	// TODO: 在此添加专用代码和/或调用基类
kaoqingbu.Close ();
	CDialog::OnCancel();
}

void addpersondlg::OnBnClickedButton2()
{CString conditionstr;
	UpdateData (true);
//addpersoncode.Remove (' ');
addpersonname.Remove (' ');
//if(addpersoncode=="") {AfxMessageBox("请填写完整信息");addpersoncodeet.SetFocus ();return;}
if(addpersonname=="") {AfxMessageBox("请填写完整信息");addpersonnameet.SetFocus ();return;}
//if(addpersoncode.GetLength ()!=4) {AfxMessageBox("编码规定为4个数字");addpersoncodeet.SetFocus ();return;}

CDaoRecordset modipersonrec;
modipersonrec.m_pDatabase =&kaoqingbu;
modipersonrec.Open (dbOpenDynaset, _T("select * from [人员编码表]"));
conditionstr.Format (_T("[编号]='%s'"),addpersoncode);
if(!modipersonrec.FindFirst (conditionstr))
{modipersonrec.Close ();
AfxMessageBox("数据库错误,请关闭");
return;
}



try
{modipersonrec.Edit ();
 //modipersonrec.SetFieldValue(0,CString(addpersoncode));
 modipersonrec.SetFieldValue(1,CString(addpersonname));
 

modipersonrec.Update ();
}

catch( CDaoException* e )
{
    AfxMessageBox("姓名不可以重复");
	e->Delete( );
	//added=false;
    modipersonrec.Close ();
	//kaoqingbu.Close ();
	addpersonnameet.SetFocus ();
	return;
 }
modipersonrec.Close ();
list.DeleteItem (index9);
list.InsertItem (index9,addpersoncode);
list.SetItemText (index9,1,addpersonname);

this->GetParent ()->GetDlgItem (IDC_EDIT1)->SetWindowText (addpersoncode);
  
  addpersoncode=addpersonname="";UpdateData (false);
 addpersoncodeet.EnableWindow (true);
addpersonokbt.EnableWindow (true);
modinamebt.EnableWindow (false);
nomodinamebt.EnableWindow (false);
index9=-1;
addpersonnameet.SetFocus ();
 


}

void addpersondlg::OnNMDblclkList2(NMHDR *pNMHDR, LRESULT *pResult)
{
index9=list.GetSelectionMark();
	if(index9<0){return;}
	{
	addpersoncodeet .SetWindowText (CString(list.GetItemText (index9,0)));// TODO: 在此添加控件通知处理程序代码
	addpersonnameet .SetWindowText (CString(list.GetItemText (index9,1)));// TODO: 在此添加控件通知处理程序代码
	addpersoncodeet.EnableWindow (false);
	addpersonokbt.EnableWindow (false);
	modinamebt.EnableWindow (true);
	nomodinamebt.EnableWindow (true);
	addpersonnameet.SetFocus ();
	}
	
	
	//*pResult = 0;
}

void addpersondlg::OnBnClickedButton15()
{   addpersoncodeet.EnableWindow (true);
	addpersonokbt.EnableWindow (true);
	modinamebt.EnableWindow (false);
	nomodinamebt.EnableWindow (false);
index9=-1;
	addpersonnameet.SetFocus ();
	// TODO: 在此添加控件通知处理程序代码
}

void addpersondlg::OnEnChangeEdit1()
{
	// TODO:  如果该控件是 RICHEDIT 控件,则它将不会
	// 发送该通知,除非重写 CDialog::OnInitDialog()
	// 函数并调用 CRichEditCtrl().SetEventMask(),
	// 同时将 ENM_CHANGE 标志“或”运算到掩码中。

	// TODO:  在此添加控件通知处理程序代码
}

⌨️ 快捷键说明

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