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

📄 cbsystem.cpp

📁 基于WIN CE 的抄表系统,环境wince .net
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	//strName = pPropName->GetString();
	strBh		= pPropBh->GetString();//m_CePropVal.val.lpwstr;
	strNameID	= pPropNameID->GetString();
	strName		= pPropName->GetString();
	strID		= pPropID->GetString();
	strPower	= pPropPower->GetString();
	////***********************************************
	CString s0((LPCTSTR)strBh);
	CString s1((LPCTSTR)strNameID);
	CString s2((LPCTSTR)strID);
	CString s3((LPCTSTR)strPower);
	CString s4((LPCTSTR)strName);
	CString s=s0 + TEXT('|') + s1 + TEXT('|') + s2 + TEXT('|') + s3 + TEXT('|') + TEXT('#');
	return (LPTSTR)(LPCTSTR)s;
	
}

//****FUNCTION****//
//Return Record from table and made of string with where Sentence.
LPTSTR WhPrintMessage(CCeDBRecord* prec)
{
	LPTSTR		strName, strNameID,strPower;
	strName		= NULL;
	strNameID	= NULL;
	strPower	= NULL;
	CCeDBProp	*pPropName, *pPropNameID, *pPropPower;
	
	pPropName	= prec->GetPropFromIdent(PROP_NAME);
	pPropNameID	= prec->GetPropFromIdent(PROP_NAMEID);
	pPropPower	= prec->GetPropFromIdent(PROP_POWER);
	//strName = pPropName->GetString();
	
	strName		= pPropName->GetString();//m_CePropVal.val.lpwstr;
	strNameID	= pPropNameID->GetString();
	strPower	= pPropPower->GetString();
	////***********************************************
	
	CString s1((LPCTSTR)strName);
	CString s2((LPCTSTR)strNameID);
	CString s3((LPCTSTR)strPower);
	CString s = s1 + TEXT('|') + s2 + TEXT('|') + s3 + TEXT('|') + TEXT('#');
	return (LPTSTR)(LPCTSTR)s;
	
}

//****FUNCTION****//
//Delete db.
void Deletedb()
{
	if(db.Open(TEXT("NEWPOWER")))
		db.Delete(); 
}

//****FUNCTION****//
//Empty db.
void Emptydb()
{
	CCeDBDatabase db;
	BOOL bPrev;
	if(db.Open(TEXT("NEWPOWER")))
	{
		CCeDBDatabase *pdb = new CCeDBDatabase;
		pdb = &db;
		bPrev = pdb->m_bAutoSeekNext;
		pdb->m_bAutoSeekNext = TRUE;
		pdb->SeekFirst();
		while(!pdb->m_bEOF)
		{
			db.DeleteCurrRecord();
			pdb->SeekNext();
		}AfxMessageBox(TEXT("数据库已清空!!!"));
	}
	db.Close();
}
//****FUNCTION****//
//Search Record from db.
void SearchRecord(CCeDBDatabase * pdb)
{
	CCeDBRecord rec;
	BOOL bPrev;

	bPrev = pdb->m_bAutoSeekNext;
	pdb->m_bAutoSeekNext = TRUE;
	pdb->SeekFirst();
	while(pdb->ReadCurrRecord(&rec))
		PrintMessage(&rec);
	pdb->m_bAutoSeekNext = bPrev ;
}

//****FUNCTION****//
//Search Record total number from db.
void SearchRecordNum()
{
	CCeDBDatabase db;
	AfxGetApp()->BeginWaitCursor();
	if(db.Open(TEXT("NEWPOWER")))
	{
		//DWORD wNum;
		LPWSTR lpowerold,lpower;
		long  SumPower=0;
		CCeDBRecord rec;
		int k=0;
		CCeDBDatabase * pdb= new CCeDBDatabase;
		pdb = &db;
		//wNum = db.GetNumRecords();
		int j = db.GetNumRecords();
		for(int i =0;i<j;i++)
		{
			pdb->SeekToIndex(i);
			pdb->ReadCurrRecord(&rec);
			CCeDBProp* pPowerOld = rec.GetPropFromIdent(PROP_POWEROLD);
			CCeDBProp* pPower = rec.GetPropFromIdent(PROP_POWER);
			
			lpowerold = pPowerOld->m_CePropVal.val.lpwstr;
			lpower	  = pPower->m_CePropVal.val.lpwstr;
			CString s1 = lpowerold;
			CString s2 = lpower;
			SumPower += _wtol(s2) - _wtol(s1);
			if((0 == _wtol(s2) - _wtol(s1)) || (0 == _wtol(s2)))
			{
				k++;
			}
		}
		AfxGetApp()->EndWaitCursor();
		wsprintf(szError,TEXT("记录总数为: %d条\n总用电量:%d度(取整)\n没有抄表户数:%d户"),j,SumPower,k);
		MessageBox(NULL,szError,TEXT("查询结果 : "),MB_OK);
		
	}
	else
	{
		AfxMessageBox(TEXT("open db error"));
	}
	AfxGetApp()->EndWaitCursor();
	db.Close();
	
}

//****FUNCTION****//
//Search Record with Where Sentence from db.
LPTSTR WhSearchRecord(LPWSTR lpsz)
{
	CCeDBDatabase db;
	CCeDBProp tProp(CCeDBProp::Type_String,PROP_ID);

	db.Open(TEXT("NEWPOWER"),&tProp);
	CCeDBRecord rec;
	db.SeekFirst();
	CCeDBProp pProp((LPWSTR)lpsz,PROP_ID);

	if(db.SeekFirstEqual(pProp)) 
	{
		db.ReadCurrRecord(&rec);
		return WhPrintMessage(&rec);
	}
	else
	{
		wsprintf(szError,TEXT("ERROR NO : %d (拼写不正确注意大小写)"),GetLastError());
		MessageBox(NULL,szError,TEXT("Error"),MB_OK);
		return 0;
	}
	db.Close();
	
}

//****FUNCTION****//
//Update db with where sentence.
BOOL WhUpdateDB(LPWSTR lpsz,LPWSTR lpsz1) 
{
	CCeDBDatabase db;

	CCeDBProp tProp(CCeDBProp::Type_String,PROP_ID);
	db.Open(TEXT("NEWPOWER"),&tProp);
	
	CCeDBRecord rec;

	db.SeekFirst();
	CCeDBProp pProp((LPWSTR)lpsz,PROP_ID);
	if(db.SeekFirstEqual(pProp)) 
	{
		db.ReadCurrRecord(&rec);
	}
	CCeDBProp* pPower = rec.GetPropFromIdent(PROP_POWER);
	pPower->SetString(lpsz1);
	CCeDBProp powerFilter(CCeDBProp::Type_String,PROP_POWER);
	if(db.WriteCurrRecord(&rec,0,&powerFilter))
	{
		return 1;
	}
	else
	{
		return 0;
	}
}

//*********function*****//
//insert record into listview
void LvInsertData(LVITEM lvitem,CListCtrl *pList)
{
	CCeDBDatabase db;
	CCeDBDatabase *pdb;
	CCeDBRecord rec;
	CCeDBRecord* prec;
	
	LPTSTR		strName, strNameID, strID,	strPower, strPowerOld;
	CCeDBProp	*pPropName, *pPropNameID, *pPropID, *pPropPower, *pPropPowerOld;

	if(db.Open(TEXT("NEWPOWER"),NULL,NULL))
		pdb = &db;
		pdb->m_bAutoSeekNext;
		pdb->m_bAutoSeekNext = TRUE;
		if(!pdb->SeekFirst())
		{
			AfxGetApp()->EndWaitCursor();
			return;
		}
		else
		{
			while(!pdb->m_bEOF)
			{
				pdb->ReadCurrRecord(&rec);
				prec = &rec;
				//*********************//
				strName		= NULL;
				strNameID	= NULL;
				strID		= NULL;
				strPower	= NULL;
				strPowerOld	= NULL;

				//pPropName		= prec->GetPropFromIdent(PROP_BH);
				pPropName		= prec->GetPropFromIdent(PROP_NAME);
				pPropNameID		= prec->GetPropFromIdent(PROP_NAMEID);
				pPropID			= prec->GetPropFromIdent(PROP_ID);
				pPropPower		= prec->GetPropFromIdent(PROP_POWER);
				pPropPowerOld	= prec->GetPropFromIdent(PROP_POWEROLD);
				//strName = pPropName->GetString();
				strName		= pPropName->GetString();//->m_CePropVal.val.lpwstr;
				strNameID	= pPropNameID->GetString();//->m_CePropVal.val.lpwstr;
				strID		= pPropID->GetString();//->m_CePropVal.val.lpwstr;
				strPower	= pPropPower->GetString();//->m_CePropVal.val.lpwstr;
				strPowerOld	= pPropPowerOld->GetString();//->m_CePropVal.val.lpwstr;
				////***********************************************
				
				lvitem.mask = LVIF_TEXT | LVIF_PARAM;
				lvitem.iItem = pList->GetItemCount();
				lvitem.iSubItem = 0;
				lvitem.pszText = strID;
				pList->InsertItem(&lvitem);
			
				lvitem.mask = LVIF_TEXT;
				lvitem.iSubItem = 1;
				lvitem.pszText = strName;
				lvitem.lParam = 0;
				pList->SetItem(&lvitem);
				////////
    
				lvitem.mask = LVIF_TEXT;
				lvitem.iSubItem = 2;
				lvitem.pszText = strNameID;
				lvitem.lParam = 0;
				pList->SetItem(&lvitem);
				///////
				lvitem.mask = LVIF_TEXT;
				lvitem.iSubItem = 3;
				lvitem.pszText = strPowerOld;
				lvitem.lParam = 0;
				pList->SetItem(&lvitem);
				///////
				lvitem.mask = LVIF_TEXT;
				lvitem.iSubItem = 4;
				lvitem.pszText = strPower;
				lvitem.lParam = 0;
				pList->SetItem(&lvitem);
			}
		}
		
		
}

//*******************FUNCTION************************//
//**********with where sentence multi-printmessage***//
CString WhMultiPrintMessage(CCeDBRecord* prec)
{
	LPTSTR		strID,strName, strNameID,strPower,strPowerOld;
	strID		= NULL;
	strName		= NULL;
	strNameID	= NULL;
	strPower	= NULL;
	strPowerOld = NULL;
	CCeDBProp	*pPropID, *pPropName, *pPropNameID, *pPropPower,*pPropPowerOld;
	
	pPropID		 = prec->GetPropFromIdent(PROP_ID);
	pPropName	 = prec->GetPropFromIdent(PROP_NAME);
	pPropNameID	 = prec->GetPropFromIdent(PROP_NAMEID);
	pPropPower	 = prec->GetPropFromIdent(PROP_POWER);
	pPropPowerOld= prec->GetPropFromIdent(PROP_POWEROLD);
	//strName = pPropName->GetString();
	
	strID		= pPropID->GetString();//->m_CePropVal.val.lpwstr;
	strName		= pPropName->GetString();//->m_CePropVal.val.lpwstr;
	strNameID	= pPropNameID->GetString();//->m_CePropVal.val.lpwstr;
	strPower	= pPropPower->GetString();//->m_CePropVal.val.lpwstr;
	strPowerOld = pPropPowerOld->GetString();//->m_CePropVal.val.lpwstr;
	////***********************************************
	
	CString s1((LPCTSTR)strID);
	CString s2((LPCTSTR)strName);
	CString s3((LPCTSTR)strNameID);
	CString s4((LPCTSTR)strPower);
	CString s5((LPCTSTR)strPowerOld);
	CString s = s1 + TEXT('|') + s2 + TEXT('|') + s3 + TEXT('|') + s4 + TEXT('|') + s5 + TEXT('|');
	return s;
	
}

//**********************FUNCTION*********************//
//********with where sentence(PROP_NAME) multi-record search****//
LPTSTR WhSearchMultiRecord(LPWSTR lpsz)
{
	CCeDBDatabase db;
	CCeDBProp tProp(CCeDBProp::Type_String,PROP_NAME,CCeDBProp::Sort_Ascending);

	db.Open(TEXT("NEWPOWER"),&tProp);
	CCeDBRecord rec;
	db.SeekFirst();
	CCeDBProp pProp((LPWSTR)lpsz,PROP_NAME);

	if(db.SeekFirstEqual(pProp)) 
	{
		CString szrtn,szrtn1,szrtn2;
		int i=0;
		
		db.ReadCurrRecord(&rec);
		szrtn = WhMultiPrintMessage(&rec);
		szrtn2 = szrtn;
		while (db.SeekNextEqual(pProp) != 0)
		{
			i++;
			db.ReadCurrRecord(&rec);
			szrtn1 = WhMultiPrintMessage(&rec);
			szrtn2 += TEXT('@');
			szrtn2 += szrtn1;
		}
		szrtn2 += TEXT('@');
		return (LPTSTR)(LPCTSTR)szrtn2;
		
	}
	else
	{
		wsprintf(szError,TEXT("输入有误错误号 : %d "),GetLastError());
		MessageBox(NULL,szError,TEXT("Error"),MB_OK);
		return 0;
	}
	db.Close();
	
}

//**********************FUNCTION*********************//
//********with where sentence(PROP_ID) multi-record search****//
LPTSTR WhSearchMultiRecordID(LPWSTR lpsz)
{
	CCeDBDatabase db;
	CCeDBProp tProp(CCeDBProp::Type_String,PROP_ID,CCeDBProp::Sort_Ascending);

	db.Open(TEXT("NEWPOWER"),&tProp);
	CCeDBRecord rec;
	db.SeekFirst();
	CCeDBProp pProp((LPWSTR)lpsz,PROP_ID);

	if(db.SeekFirstEqual(pProp)) 
	{
		db.ReadCurrRecord(&rec);
		return (LPTSTR)(LPCTSTR)WhMultiPrintMessage(&rec);
			
	}
	else
	{
		wsprintf(szError,TEXT("输入有误错误号 : %d "),GetLastError());
		MessageBox(NULL,szError,TEXT("Error"),MB_OK);
		return 0;
	}
	db.Close();
	
}

//**********************FUNCTION*********************//
//********with where sentence(PROP_NAMEID) multi-record search****//
LPTSTR WhSearchMultiRecordNAMEID(LPWSTR lpsz)
{
	CCeDBDatabase db;
	CCeDBProp tProp(CCeDBProp::Type_String,PROP_NAMEID,CCeDBProp::Sort_Ascending);

	db.Open(TEXT("NEWPOWER"),&tProp);
	CCeDBRecord rec;
	db.SeekFirst();
	CCeDBProp pProp((LPWSTR)lpsz,PROP_NAMEID);

	if(db.SeekFirstEqual(pProp)) 
	{
		db.ReadCurrRecord(&rec);
		return (LPTSTR)(LPCTSTR)WhMultiPrintMessage(&rec);
			
	}
	else
	{
		wsprintf(szError,TEXT("ERROR NO : %d (拼写不正确注意大小写)"),GetLastError());
		MessageBox(NULL,szError,TEXT("Error"),MB_OK);
		return 0;
	}
	db.Close();
	
}

//**********************FUNCTION*********************//
//********with where sentence(PROP_NAME) multi-record search****//
LPTSTR WhSearchMultiRecordJCH(LPWSTR lpsz)
{
	CCeDBDatabase db;
	CCeDBProp tProp(CCeDBProp::Type_String,PROP_BH,CCeDBProp::Sort_Ascending);

	db.Open(TEXT("NEWPOWER"),&tProp);
	CCeDBRecord rec;
	db.SeekFirst();
	CCeDBProp pProp((LPWSTR)lpsz,PROP_BH);

	if(db.SeekFirstEqual(pProp)) 
	{
		CString szrtn,szrtn1,szrtn2;
		int i=0;
		
		db.ReadCurrRecord(&rec);
		szrtn = WhMultiPrintMessage(&rec);
		szrtn2 = szrtn;
		while (db.SeekNextEqual(pProp) != 0)
		{
			i++;
			db.ReadCurrRecord(&rec);
			szrtn1 = WhMultiPrintMessage(&rec);
			szrtn2 += TEXT('@');
			szrtn2 += szrtn1;
		}
		szrtn2 += TEXT('@');

⌨️ 快捷键说明

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