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