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

📄 addmember.cpp

📁 此程序为EVC编写的MIS系统
💻 CPP
字号:
// 该类是增加抄表员界面
//创建时间:2004.02.27
//创建人:苟艳

#include "stdafx.h"
#include "抄表系统.h"
#include "AddMember.h"
#include "rapi.h"
#include "LogDlg.h"
#include "CreateDB.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////
extern CCreateDB  database;
//////////////////////////////////////////////////////////////////////////
//抄表人员记录的字段
#define prop_10  L"抄表员编号"
#define prop_11  L"抄表员名称"
#define prop_12  L"抄表员密码"

/////////////////////////////////////////////////////////////////////////////
// CAddMember dialog


CAddMember::CAddMember(CWnd* pParent /*=NULL*/)
	: CDialog(CAddMember::IDD, pParent)
{
	if(database.CreateOperDB())
		operhandle=database.operhandle;

	//{{AFX_DATA_INIT(CAddMember)
	m_edit1 = _T("");
	m_edit2 = _T("");
	m_edit3 = _T("");
	//}}AFX_DATA_INIT
}


void CAddMember::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAddMember)
	DDX_Control(pDX, IDC_EDIT3, m_code3);
	DDX_Control(pDX, IDC_EDIT2, m_code2);
	DDX_Control(pDX, IDC_EDIT1, m_code1);
	DDX_Text(pDX, IDC_EDIT1, m_edit1);
	DDX_Text(pDX, IDC_EDIT2, m_edit2);
	DDX_Text(pDX, IDC_EDIT3, m_edit3);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CAddMember, CDialog)
	//{{AFX_MSG_MAP(CAddMember)
	ON_EN_CHANGE(IDC_EDIT1, OnChangeEdit1)
	ON_EN_CHANGE(IDC_EDIT2, OnChangeEdit2)
	ON_EN_CHANGE(IDC_EDIT3, OnChangeEdit3)
	ON_WM_CLOSE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CAddMember message handlers

void CAddMember::CreateCode()      //创建新增抄表员的编号
{
	CEOID findceoid;
	WORD propnumber;
	PCEPROPVAL pRecord=0;
	DWORD cbBuff;
	DWORD index;
	CEPROPVAL Property;
	CString str="";
	//
	int k=0,l;
	char ch;

	findceoid=CeSeekDatabase(operhandle,CEDB_SEEK_BEGINNING,0,&index);
	if(findceoid==0)    //表示该抄表员表中无记录,则新增抄表员的编号就应该为0001
	{
		k=1;
		str.Format(L"000%d",k);
		wcscpy(code,str);
	}
	else            //找出最后一条记录的抄表员编号
	{
		findceoid=CeSeekDatabase(operhandle,CEDB_SEEK_END,0,&index);
		findceoid=CeReadRecordProps(operhandle,CEDB_ALLOWREALLOC,&propnumber,NULL,(LPBYTE*)&pRecord,&cbBuff);//读出记录的内容
		for(int i=0;i<propnumber;i++)//
			{
				if(pRecord->propid==MAKELONG(CEVT_LPWSTR,prop_10))
				lstrcpy(code,pRecord->val .lpwstr );
				pRecord++;
			}
		for(i=0;i<wcslen(code);i++)
			str+=code[i];
		for(i=0;i<4;i++)
		{
			ch=str.GetAt (i);
			l=atoi(&ch);
			if(l>=0 && l<=9)
			{
				switch(i)
				{
					case 0:  k+=l*1000;break;
					case 1:	 k+=l*100; break;
					case 2:	 k+=l*10;  break;
					case 3:  k+=l;	   break;
				}
			}
		}
		//
		k++;
		//
		if(k>=1000 && k<=9999)
			_itow(k,code,10);
		if(k>=100 && k<=999)
		{
			code[0]='0';
			_itow(k,code+1,10);
		}
		if(k>=10 && k<=99)
		{
			code[0]=code[1]='0';
			_itow(k,code+2,10);
		}
		else
		{
			code[0]=code[1]=code[2]='0';
			_itow(k,code+3,10);
		}

	}
}

BOOL CAddMember::OnInitDialog() 
{
	CDialog::OnInitDialog();
	//
	CreateCode() ;
	//
	return TRUE;  
}

void CAddMember::OnChangeEdit1() //新增抄表员的名称
{
	UpdateData(TRUE);
	wcscpy(name,m_edit1);
	
}

void CAddMember::OnChangeEdit2() //新增抄表员密码
{
	UpdateData(TRUE);
	wcscpy(password,m_edit2);
	
}

void CAddMember::OnOK()  //增加抄表员
{
	if(ComparePassword())
	{
		AddRecord();
		CreateCode();
	}
	else
		return;
	//CloseHandle(operDBhandle);
}
//////////

void CAddMember::OnChangeEdit3() 
{
	UpdateData(TRUE);
	
}
//
BOOL CAddMember::ComparePassword()
{
	if(m_edit2.Compare(m_edit3)!=0)
	{
		::MessageBox (this->m_hWnd ,L"两次密码输入不符!请重新输入确认密码!",L"ERROR",MB_OK);
		m_code3.SetWindowText (L"");
		m_code3.SetFocus();
		return FALSE;
	}
	return TRUE;
}
//
void CAddMember::AddRecord()
{
	CEOID oid;  
	CEPROPVAL propval[3];
		propval[0].propid =MAKELONG(CEVT_LPWSTR,prop_10);//添加操作员名字
		propval[0].wFlags =0;
		propval[0].val .lpwstr =code;
		propval[1].propid =MAKELONG(CEVT_LPWSTR,prop_11);//添加操作员名称
		propval[1].wFlags=0;
		propval[1].val .lpwstr =name;
		propval[2].propid =MAKELONG(CEVT_LPWSTR,prop_12);//添加操作员密码
		propval[2].wFlags=0;
		propval[2].val .lpwstr =password;
		oid=CeWriteRecordProps(operhandle,0,3,propval);
		if(oid==0)
		{
			int error;
			TCHAR text[64];
			error=GetLastError();
			wsprintf(text,L"Db CEOID.error=%d(%x)",error,error);
			::AfxMessageBox(text);
				::MessageBox (this->m_hWnd ,L"操作员记录添加失败!!",L"ERROR",MB_OK);
		}
		else
				::MessageBox (this->m_hWnd ,L"操作员记录添加成功!!",L"SUCCESS",MB_OK);
			m_code1.SetWindowText(L"");
			m_code2.SetWindowText(L"");
			m_code3.SetWindowText(L"");
}

void CAddMember::OnCancel() 
{
	CloseHandle(operhandle);
	
	CDialog::OnCancel();
}

void CAddMember::OnClose() 
{
	CloseHandle(operhandle);
	
	CDialog::OnClose();
}

⌨️ 快捷键说明

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