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