📄 writetb.cpp
字号:
// 该类登记抄表数据,存放在抄表记录中
// 创建时间2004.03.01
//创建人:苟艳
#include "stdafx.h"
#include "抄表系统.h"
#include "WriteTB.h"
#include "rapi.h"
#include "LogDlg.h"
#include "CreateDB.h"
#include "ControlTxt.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
extern CControlTxt convertor;
extern CCreateDB database;
extern CString LogName; //记录登陆用户名字
/////////////////////////////////////////////////////////////////////////////
//抄表记录的各个字段
#define prop_01 L"水表账号"
#define prop_03 L"用户地址"
#define prop_02 L"用户名称"
#define prop_04 L"字轮读数"
#define prop_05 L"抄表人员名称"
#define prop_06 L"抄表日期"
#define prop_07 L"备注"
///////////////////////////////////////////////////////////////////////////////
// CWriteTB dialog
CWriteTB::CWriteTB(CWnd* pParent /*=NULL*/)
: CDialog(CWriteTB::IDD, pParent)
{
//
memset(SBZH,0,50);
memset(YHMC,0,50);
memset(YHDZ,0,50);
//{{AFX_DATA_INIT(CWriteTB)
m_edit1 = _T("");
m_edit2 = _T("");
m_edit3 = _T("");
m_edit4 = _T("");
//}}AFX_DATA_INIT
}
void CWriteTB::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CWriteTB)
DDX_Control(pDX, IDC_EDIT4, m_code4);
DDX_Control(pDX, IDC_EDIT3, m_code3);
DDX_Control(pDX, IDC_EDIT2, m_code2);
DDX_Control(pDX, IDC_EDIT1, m_code1);
DDX_Control(pDX, IDC_COMBO3, m_combox3);
DDX_Control(pDX, IDC_COMBO2, m_combox2);
DDX_Control(pDX, IDC_COMBO1, m_combox1);
DDX_Text(pDX, IDC_EDIT1, m_edit1);
DDV_MaxChars(pDX, m_edit1, 6);
DDX_Text(pDX, IDC_EDIT2, m_edit2);
DDX_Text(pDX, IDC_EDIT3, m_edit3);
DDX_Text(pDX, IDC_EDIT4, m_edit4);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CWriteTB, CDialog)
//{{AFX_MSG_MAP(CWriteTB)
ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
ON_CBN_SELCHANGE(IDC_COMBO1, OnSelchangeCombo1)
ON_CBN_SELCHANGE(IDC_COMBO2, OnSelchangeCombo2)
ON_CBN_SELCHANGE(IDC_COMBO3, OnSelchangeCombo3)
ON_EN_CHANGE(IDC_EDIT1, OnChangeEdit1)
ON_EN_CHANGE(IDC_EDIT2, OnChangeEdit2)
ON_EN_CHANGE(IDC_EDIT3, OnChangeEdit3)
ON_EN_CHANGE(IDC_EDIT4, OnChangeEdit4)
ON_WM_CLOSE()
ON_WM_DESTROY()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CWriteTB message handlers
void CWriteTB::OnButton2()
{
if(!Judge())
{
::MessageBox (this->m_hWnd ,L"请输入合法的字符!!",L"ERROR",MB_OK);
m_code1.SetWindowText (L"");
return;
}
AddRecord();
m_code1.SetWindowText (L"");
m_code4.SetWindowText (L"");
}
void CWriteTB::OnSelchangeCombo1() //选择水表账号
{
int i=m_combox1.GetCurSel();
m_combox1.GetLBText (i,SBZH);
//SelSeekRec(SBZH,1);
}
void CWriteTB::OnSelchangeCombo2() //选择用户名称
{
int i=m_combox1.GetCurSel();
m_combox2.GetLBText (i,YHMC);
//SelSeekRec(YHMC,2);
}
void CWriteTB::OnSelchangeCombo3() //选择用户地址
{
int i=m_combox1.GetCurSel();
m_combox3.GetLBText (i,YHDZ);
//SelSeekRec(YHDZ,3);
}
void CWriteTB::OnChangeEdit1() //字轮计数
{
UpdateData(TRUE);
wcscpy(ZLJS,m_edit1);
}
void CWriteTB::OnChangeEdit2() //抄表人员
{
UpdateData(TRUE);
wcscpy(name,m_edit2);
}
void CWriteTB::OnChangeEdit3() //抄表时间
{
UpdateData(TRUE);
}
void CWriteTB::OnChangeEdit4() //备注
{
UpdateData(TRUE);
wcscpy(BZ,m_edit4);
}
BOOL CWriteTB::OnInitDialog()
{
CDialog::OnInitDialog();
//
COleDateTime daytime;
daytime = COleDateTime::GetCurrentTime();
int year,month,day,hour,minute;
year=daytime.GetYear();
month=daytime.GetMonth ();
day=daytime.GetDay();
minute=daytime.GetMinute ();
hour=daytime.GetHour();
CString str;
str.Format(L"%d-%d-%d %d:%d",year,month,day,hour,minute);
m_edit3=str;
wcscpy(days,m_edit3);
m_edit2=LogName; //抄表人员即是登陆人员
//::AfxMessageBox(m_edit2);
m_code2.SetWindowText (LogName);
m_code3.SetWindowText (str);
//
ReadFromRec();
m_combox1.SetCurSel (0);
m_combox1.GetLBText (0,SBZH);
m_combox2.SetCurSel(0);
m_combox2.GetLBText(0,YHMC);
m_combox3.SetCurSel(0);
m_combox3.GetLBText(0,YHDZ);
//
m_code1.SetWindowText (L"");
m_code4.SetWindowText (L"");
return TRUE;
}
//
void CWriteTB::AddRecord()
{
CEOID oid;
CEPROPVAL propval[7];
propval[0].propid=MAKELONG(CEVT_LPWSTR,prop_01);
propval[0].wFlags=0;
propval[0].val.lpwstr=SBZH;
propval[1].propid=MAKELONG(CEVT_LPWSTR,prop_02);
propval[1].wFlags=0;
propval[1].val.lpwstr=YHMC;
propval[2].propid=MAKELONG(CEVT_LPWSTR,prop_03);
propval[2].wFlags=0;
propval[2].val.lpwstr=YHDZ;
propval[3].propid =MAKELONG(CEVT_LPWSTR,prop_04);
propval[3].wFlags =0;
propval[3].val .lpwstr =ZLJS;
propval[4].propid =MAKELONG(CEVT_LPWSTR,prop_05);
propval[4].wFlags =0;
propval[4].val .lpwstr =name;
propval[5].propid =MAKELONG(CEVT_LPWSTR,prop_06);
propval[5].wFlags =0;
propval[5].val .lpwstr =days;
propval[6].propid =MAKELONG(CEVT_LPWSTR,prop_07);
propval[6].wFlags =0;
propval[6].val .lpwstr =BZ;
oid=CeWriteRecordProps(WriteDBhandle,0,7,propval);
if(oid==0)
::MessageBox (this->m_hWnd ,L"抄表记录添加失败!!",L"ERROR",MB_OK);
else
::MessageBox (this->m_hWnd ,L"抄表记录添加成功!!",L"SUCCESS",MB_OK);
//
}
//
/*void CWriteTB::SelSeekRec(LPWSTR param,int flag)
{
WORD propnumber;
PCEPROPVAL pRecord=0;
DWORD cbBuff;
DWORD index;
CEPROPVAL Property;
CEOID findrecord;
LPWSTR temp;
//
switch(flag)
{
case 2:
CloseHandle(WriteDBhandle);
if(database.openWriteDB1())
WriteDBhandle=database.writetbhandle ;
Property.propid =MAKELONG(CEVT_LPWSTR,prop_02);
break;
case 3:
CloseHandle(WriteDBhandle);
if(database.openWriteDB2())
WriteDBhandle=database.writetbhandle ;
Property.propid =MAKELONG(CEVT_LPWSTR,prop_03);
break;
default:
Property.propid =MAKELONG(CEVT_LPWSTR,prop_01);
break;
}
Property.wFlags =0;
Property.val.lpwstr =param;
findrecord=CeSeekDatabase(WriteDBhandle,CEDB_SEEK_BEGINNING,0,&index);
findrecord=CeSeekDatabase(WriteDBhandle,CEDB_SEEK_VALUEFIRSTEQUAL,(DWORD)&Property ,&index);
if(findrecord==0)
return;
findrecord=CeReadRecordProps(WriteDBhandle,CEDB_ALLOWREALLOC,&propnumber,NULL,(LPBYTE*)&pRecord,&cbBuff);
if(findrecord==0)
return;
for(int i=0;i<propnumber;i++)
{
::AfxMessageBox(L"here");
int sel;
if((pRecord->propid==MAKELONG(CEVT_LPWSTR,prop_01)) && (flag!=1))
{
lstrcpy(temp,pRecord->val .lpwstr );
sel=m_combox1.SelectString(0,temp);
m_combox1.SetCurSel(sel);
m_combox1.GetLBText(sel,SBZH);
}
if((pRecord->propid==MAKELONG(CEVT_LPWSTR,prop_02)) && (flag!=2))
{
lstrcpy(temp,pRecord->val .lpwstr );
sel=m_combox1.SelectString(0,temp);
m_combox2.SetCurSel(sel);
m_combox2.GetLBText(sel,YHMC);
}
if((pRecord->propid==MAKELONG(CEVT_LPWSTR,prop_03)) && (flag!=3))
{
lstrcpy(temp,pRecord->val .lpwstr );
sel=m_combox1.SelectString(0,temp);
m_combox3.SetCurSel(sel);
m_combox3.GetLBText(sel,YHDZ);
}
pRecord++;
}
}*/
void CWriteTB::OnClose()
{
CloseHandle(WriteDBhandle);
//数据库转换为文本文件
convertor.Writetxtfile();
CDialog::OnClose();
}
void CWriteTB::OnDestroy()
{
CDialog::OnDestroy();
CloseHandle(WriteDBhandle);
}
//
void CWriteTB::ReadFromRec()
{
// 打开数据库
if(database.CreateWtableDB ())
{
WriteDBhandle=database.writetbhandle ;
}
TCHAR * data=convertor.Readtxtfile();
//::AfxMessageBox(data);
TCHAR *cstmpString,tmpdata[50];
int strlen,slag=1;
int k=0,l=0,j=0;
//CString str;
while(cstmpString=wcschr(data,';'))
{
memset(tmpdata,0,50);
if(slag>3)
{
slag=1;
}
strlen=wcslen(data)-wcslen(cstmpString);
wcsncpy(tmpdata, data, strlen);
wcscpy(data,cstmpString+1);
//
switch(slag)
{
case 1: m_combox1.InsertString(k++,tmpdata);
break;
case 2:m_combox2.InsertString(l++,tmpdata);
break;
case 3: m_combox3.InsertString(j++,tmpdata);
break;
}
slag++;
}
}
//
BOOL CWriteTB::Judge()
{
int len=m_edit1.GetLength();
BYTE c;
for(int i=0;i<len;i++)
{
c=(BYTE)m_edit1.GetAt(i);
if(!((c>=0x30) && (c<=0x39)))
return FALSE;
}
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -