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

📄 opendatabase.cpp

📁 很优秀的公交查询软件
💻 CPP
字号:
#include "Common.h"
#include "OpenDatabase.h"
#include "BusAllApp.h"

COpenDatabaseForm::COpenDatabaseForm()
{
	
}


void COpenDatabaseForm::LoadDatabaseList()
{
	CDatabase db;
	DmSearchStateType rStateInfo;
	UInt16 wCardNo;
	LocalID rLiDbID;
	Boolean bError;
	
	m_DatabaseList.DeleteAll();
	bError = CDatabase::GetNextDatabaseByTypeCreator(true,
											rStateInfo,
											wCardNo,
											rLiDbID,
											appFileCreator, 
											appDatabaseType,
											false);
	while (!bError) {										
		db.Open(wCardNo, rLiDbID, dmModeReadOnly);
		CDatabaseList& dbl = m_DatabaseList.Add();
		dbl.wCardNo = wCardNo;
		dbl.liDbID = rLiDbID;
		db.GetDbName(dbl.DatabaseName.GetBuffer(50));
		UInt16 i;
		CRecordStream rs(&db);
		rs.Open(0);
//这里把数据库的信息读取出来,注意跟Delphi的BaseRecordType一样	
		rs >> dbl.CityName
			>> dbl.ProviderID
			>> dbl.ProviderUpdateTime
			>> dbl.CreatorID
			>> dbl.CreatorUpdateTime
			>> dbl.CreatorMemo
			>> i >> i;
		rs.Close();
		db.Close();
		
		
		bError = CDatabase::GetNextDatabaseByTypeCreator(false,
												rStateInfo,
												wCardNo,
												rLiDbID,
												appFileCreator, 
												appDatabaseType,
												false);
	}
	
}

Boolean COpenDatabaseForm::OnOpen(EventType* pEvent, Boolean& bHandled)
{
//build database list
	m_gridList.Attach(OpenDatabaseDatabaseListTable, OpenDatabaseDatabaseListVScrollBar);
	m_gridList.SetGridMode(CGrid::GM_FULLROWSELECT);
	m_gridList.SetDrawStyle(CGrid::DS_ALL | CGrid::DS_GRAYLINES);
	m_gridList.SetIgnoreFocus(true);
	m_gridList.DeleteAllRows();
	
	LoadDatabaseList();
	
	CString s;
	for (int i = 0; i < m_DatabaseList.GetCount(); i++) {
		s.Format("%s(%s)", (const Char*)m_DatabaseList[i].CityName, (const Char*)m_DatabaseList[i].DatabaseName);
		m_gridList.AddRowE(-1,
					(const Char*)(s)
					);
	}	
	bHandled = false;

	return true;
}

Boolean COpenDatabaseForm::OnOpenButton(EventType* pEvent, Boolean& bHandled)
{
	Int8 iSel = m_gridList.GetSelection();
	if (-1 != iSel) {
		CAppPrefStream pref(appFileCreator, appPrefID);
		CBusAllApp::CBusAllPref bap;
		bap.wCardNo = m_DatabaseList[iSel].wCardNo;
		bap.liDbID = m_DatabaseList[iSel].liDbID;
		pref << bap.wCardNo << bap.liDbID;

		CBusAllApp* pApp = CBusAllApp::GetInstance();
		CBusDB* pBusDB = pApp->GetDatabase();
		pBusDB->Open(bap.wCardNo, bap.liDbID);
		
		CForm::GotoForm(StationForm);
	}
	return true;
}

Boolean COpenDatabaseForm::OnInfo(EventType* pEvent, Boolean& bHandled)
{
	Int8 iSel = m_gridList.GetSelection();
	if (-1 != iSel) {
		CString s;
		s.Format("城市: %s\n"
				"原始提供者: %s\n"
				"最后更新: %s\n"
				"转换者: %s\n"
				"最后更新: %s\n"
				"备注: %s\n",
				(const Char*)m_DatabaseList[iSel].CityName,
				(const Char*)m_DatabaseList[iSel].ProviderID,
				(const Char*)m_DatabaseList[iSel].ProviderUpdateTime,
				(const Char*)m_DatabaseList[iSel].CreatorID,
				(const Char*)m_DatabaseList[iSel].CreatorUpdateTime,
				(const Char*)m_DatabaseList[iSel].CreatorMemo);
		FrmCustomAlert(InfoAlert, s, "", "");
		
	}
	return true;
}

Boolean COpenDatabaseForm::OnCancel(EventType* pEvent, Boolean& bHandled)
{
	CBusAllApp* pApp = CBusAllApp::GetInstance();
	CBusDB* pBusDB = pApp->GetDatabase();
	if (!pBusDB->Opened()) {
		pApp->Stop();
	} else {	
		CForm::GotoForm(StationForm);
	}
	return true;
}

⌨️ 快捷键说明

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