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

📄 writetb.cpp

📁 此程序为EVC编写的MIS系统
💻 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 + -