📄 crtt_ceview.cpp
字号:
//Crtt_CEView.cpp:implementationoftheCCrtt_CEViewclass
//
#include "stdafx.h"
#include "Crtt_CE.h"
#include "dbfengine.h"
#include "Crtt_CEDoc.h"
#include "Crtt_CEView.h"
#include "initData.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#endif
CWordArray g_wStationsArray;
int m_nIsListAll;
int m_nStepNum;
int g_nTotalRecordNum=0;
int g_nTotalFieldNum;
PBYTE g_pFieldBuf=new BYTE[255+1];
PBYTE g_pMemoFieldBuf=new BYTE[2409];
CDbFile g_dbf;
//PBYTE pm=new BYTE[900000];
/////////////////////////////////////////////////////////////////////////////
//CCrtt_CEView
IMPLEMENT_DYNCREATE(CCrtt_CEView,CFormView)
BEGIN_MESSAGE_MAP(CCrtt_CEView,CFormView)
//{{AFX_MSG_MAP(CCrtt_CEView)
ON_BN_CLICKED(IDC_BUTTON_Prev,OnBUTTONPrev)
ON_BN_CLICKED(IDC_BUTTON_Next,OnBUTTONNext)
ON_BN_CLICKED(IDC_BUTTON_Endstop,OnBUTTONEndstop)
ON_BN_CLICKED(IDC_BUTTON_ListAll,OnBUTTONListAll)
ON_BN_CLICKED(IDC_BUTTON_Middle,OnBUTTONMiddle)
ON_BN_CLICKED(IDC_BUTTON_SearchAll,OnBUTTONSearchAll)
ON_BN_CLICKED(IDC_BUTTON_Start,OnBUTTONStart)
ON_BN_CLICKED(IDC_BUTTON_Trainno,OnBUTTONTrainno)
ON_BN_CLICKED(IDC_BUTTON_Type,OnBUTTONType)
ON_CBN_EDITCHANGE(IDC_COMBO_Trainno, OnEditchangeCOMBOTrainno)
ON_CBN_SELENDOK(IDC_COMBO_Endstop, OnSelendokCOMBOEndstop)
ON_CBN_SELENDOK(IDC_COMBO_Middle1, OnSelendokCOMBOMiddle1)
ON_CBN_SELENDOK(IDC_COMBO_Middle2, OnSelendokCOMBOMiddle2)
ON_CBN_SELENDOK(IDC_COMBO_Start, OnSelendokCOMBOStart)
ON_CBN_SELENDOK(IDC_COMBO_Trainno, OnSelendokCOMBOTrainno)
ON_CBN_SELENDOK(IDC_COMBO_Type, OnSelendokCOMBOType)
ON_COMMAND(IDM_FILE_ENABLEQUIKSEARCH, OnFileEnablequiksearch)
ON_UPDATE_COMMAND_UI(IDM_FILE_ENABLEQUIKSEARCH, OnUpdateFileEnablequiksearch)
ON_WM_LBUTTONDOWN()
ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
ON_WM_TIMER()
ON_WM_SIZE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//CCrtt_CEViewconstruction/destruction
CCrtt_CEView::CCrtt_CEView()
:CFormView(CCrtt_CEView::IDD)
{
//{{AFX_DATA_INIT(CCrtt_CEView)
//}}AFX_DATA_INIT
//TODO:addconstructioncodehere
m_nStepNum=0;
m_nIsListAll=1;
m_nEnableQuikSearch=0;
}
CCrtt_CEView::~CCrtt_CEView()
{
}
void CCrtt_CEView::DoDataExchange(CDataExchange*pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCrtt_CEView)
DDX_Control(pDX,IDC_LIST1,m_listctrl);
DDX_Text(pDX,IDC_EDIT_TotalFieldNum,m_s2);
DDX_Text(pDX,IDC_EDIT_CurrNum,m_s1);
//}}AFX_DATA_MAP
}
BOOL CCrtt_CEView::PreCreateWindow(CREATESTRUCT&cs)
{
//TODO:ModifytheWindowclassorstylesherebymodifying
//theCREATESTRUCTcs
cs.style&=~WS_HSCROLL;
//cs.style&=~(WS_HSCROLL|ES_AUTOHSCROLL);
return CFormView::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
//CCrtt_CEViewdiagnostics
#ifdef _DEBUG
void CCrtt_CEView::AssertValid()const
{
CFormView::AssertValid();
}
void CCrtt_CEView::Dump(CDumpContext&dc)const
{
CFormView::Dump(dc);
}
CCrtt_CEDoc* CCrtt_CEView::GetDocument()//non-debugversionisinline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CCrtt_CEDoc)));
return(CCrtt_CEDoc*)m_pDocument;
}
#endif//_DEBUG
/////////////////////////////////////////////////////////////////////////////
//CCrtt_CEViewmessagehandlers
void CCrtt_CEView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
GetDlgItem(IDC_BUTTON_Prev)->EnableWindow(FALSE);
GetDlgItem(IDC_BUTTON_Trainno)->SetWindowText(arrButtonName[0]);
GetDlgItem(IDC_BUTTON_Start)->SetWindowText(arrButtonName[1]);
GetDlgItem(IDC_BUTTON_Endstop)->SetWindowText(arrButtonName[2]);
GetDlgItem(IDC_BUTTON_Middle)->SetWindowText(arrButtonName[3]);
GetDlgItem(IDC_BUTTON_Type)->SetWindowText(arrButtonName[4]);
GetDlgItem(IDC_BUTTON_SearchAll)->SetWindowText(arrButtonName[6]);
GetDlgItem(IDC_BUTTON_ListAll)->SetWindowText(arrButtonName[7]);
GetDlgItem(IDC_BUTTON_Prev)->SetWindowText(arrButtonName[8]);
GetDlgItem(IDC_BUTTON_Next)->SetWindowText(arrButtonName[9]);
m_listctrl.SetColumnWidth(-1,-3);
m_listctrl.AddColumn(arrColName[0],0);
m_listctrl.SetColumnWidth(0,60);
m_listctrl.AddColumn(arrColName[1],1);
m_listctrl.AddColumn(arrColName[2],2);
m_listctrl.SetColumnWidth(2,65);
m_listctrl.AddColumn(arrColName[3],3);
m_listctrl.SetColumnWidth(3,65);
TCHAR cc[200];
CString sInstallDir;
sInstallDir=g_dbf.GetExeDir();
wsprintf(cc,_T("%s"),sInstallDir+_T("\\Crtt.tdf\0"));
if(!g_dbf.OpenDbf(cc))
{
AfxMessageBox(_T("Cannot open Crtt.tdf file!"));
SendMessage(WM_CLOSE);
return;
};
if(!g_dbf.InitHeadStructure())
{
AfxMessageBox(_T("Cannot read Crtt.tdf fileheader!"));
SendMessage(WM_CLOSE);
return;
};
g_nTotalFieldNum=g_dbf.GetFieldCount();
wsprintf(cc,_T("%s"),sInstallDir+_T("\\Crtt.dft\0"));
g_dbf.OpenFpt(cc);
ShowAll();
//////////////////////////////////////////////
int i;
CComboBox* pCombo=(CComboBox*)GetDlgItem(IDC_COMBO_Trainno);
pCombo->ResetContent();
for(i=0;i<MaxTrainnoCount;i++)
pCombo->AddString(arrTrainno[i]);
pCombo=(CComboBox*)GetDlgItem(IDC_COMBO_Type);
pCombo->ResetContent();
for(i=0;i<MaxTypeCount;i++)
pCombo->AddString(arrType[i]);
pCombo=(CComboBox*)GetDlgItem(IDC_COMBO_Start);
pCombo->ResetContent();
for(i=0;i<MaxStationCount;i++)
pCombo->AddString(arrStation[i]);
pCombo=(CComboBox*)GetDlgItem(IDC_COMBO_Endstop);
pCombo->ResetContent();
for(i=0;i<MaxStationCount;i++)
pCombo->AddString(arrStation[i]);
pCombo=(CComboBox*)GetDlgItem(IDC_COMBO_Middle1);
pCombo->ResetContent();
for(i=0;i<MaxStationCount;i++)
pCombo->AddString(arrStation[i]);
pCombo=(CComboBox*)GetDlgItem(IDC_COMBO_Middle2);
pCombo->ResetContent();
for(i=0;i<MaxStationCount;i++)
pCombo->AddString(arrStation[i]);
}
void CCrtt_CEView::OnBUTTONEndstop()
{
CString s;
CComboBox* pCombo=(CComboBox*)GetDlgItem(IDC_COMBO_Endstop);
int nCurSel=pCombo->GetCurSel();
if(nCurSel==CB_ERR)
{
pCombo->GetWindowText(s);
if(s==_T(""))return;
}
else
{
pCombo->GetLBText(nCurSel,s);
}
if(s==_T(""))return;
UpdateList(4,s);
}
void CCrtt_CEView::OnBUTTONTrainno()
{
CString s;
CComboBox* pCombo=(CComboBox*)GetDlgItem(IDC_COMBO_Trainno);
int nCurSel=pCombo->GetCurSel();
if(nCurSel==CB_ERR)
{
pCombo->GetWindowText(s);
if(s==_T(""))return;
}
else
{
pCombo->GetLBText(nCurSel,s);
}
if(s==_T(""))return;
s=MyMakeUpperAndRemoveSpaces(s);
//UpdateList2(1,s);
UpdateList(1,s);
}
void CCrtt_CEView::OnBUTTONType()
{
CString s;
CComboBox* pCombo=(CComboBox*)GetDlgItem(IDC_COMBO_Type);
int nCurSel=pCombo->GetCurSel();
if(nCurSel==CB_ERR)
{
pCombo->GetWindowText(s);
if(s==_T(""))return;
}
else
{
pCombo->GetLBText(nCurSel,s);
}
if(s==_T(""))return;
UpdateList(2,s);
}
BOOL CCrtt_CEView::DestroyWindow()
{
// TODO: Add your specialized code here and/or call the base class
delete[] g_pFieldBuf;
delete[] g_pMemoFieldBuf;
g_dbf.CloseDbf();
g_dbf.CloseDbf();
return CFormView::DestroyWindow();
}
CString CCrtt_CEView::MyMakeUpperAndRemoveSpaces(CString str)
{
CString sCSpace=" ";
CString temp="";
CString strRtn="";
int i=0;
while(i<str.GetLength())
{
temp=str[i];
if(((unsigned char)str[i]>0xA0)&&((i+1)<str.GetLength()))
{
temp+=str[i+1];
if(temp!=sCSpace)
strRtn+=temp;
i++;
i++;
}
else
{
if(temp!=" "&&temp!="\n")
{
temp.MakeUpper();
strRtn+=temp;
}
i++;
}
}
return strRtn;
}
int CCrtt_CEView::StationIn4(const char* cc,WCHAR* c)
{
//char* ptr=strstr(cc,c);char* Field4memo::strTianMultiByte(unsigned short* c)
WCHAR ccc[200];
wsprintf(ccc,_T("%S"),cc);//char* to WCHAR*
WCHAR* ptr=_tcsstr(ccc,c);
if(ptr==NULL)return 0;
return 1;
}
int CCrtt_CEView::StationIn5(const char* cc,char* c)
{
return 1;
}
int CCrtt_CEView::StationIn3(const char* cc,const char* c)
{
char* ptr=strstr(cc,c);
if(ptr==NULL)return 0;
return 1;
}
void CCrtt_CEView::OnEditchangeCOMBOTrainno()
{
// TODO: Add your control notification handler code here
// OnBUTTONTrainno();
}
void CCrtt_CEView::OnSelendokCOMBOEndstop()
{
// TODO: Add your control notification handler code here
if(m_nEnableQuikSearch)OnBUTTONEndstop();
}
void CCrtt_CEView::OnSelendokCOMBOMiddle1()
{
// TODO: Add your control notification handler code here
if(m_nEnableQuikSearch)OnBUTTONMiddle();
}
void CCrtt_CEView::OnSelendokCOMBOMiddle2()
{
// TODO: Add your control notification handler code here
if(m_nEnableQuikSearch)OnBUTTONMiddle();
}
void CCrtt_CEView::OnSelendokCOMBOStart()
{
// TODO: Add your control notification handler code here
if(m_nEnableQuikSearch)OnBUTTONStart();
}
void CCrtt_CEView::OnSelendokCOMBOTrainno()
{
// TODO: Add your control notification handler code here
if(m_nEnableQuikSearch)OnBUTTONTrainno();
}
void CCrtt_CEView::OnSelendokCOMBOType()
{
if(m_nEnableQuikSearch)OnBUTTONType();
}
void CCrtt_CEView::OnFileEnablequiksearch()
{
// TODO: Add your command handler code here
if(m_nEnableQuikSearch)
m_nEnableQuikSearch=0;
else
m_nEnableQuikSearch=1;
}
void CCrtt_CEView::OnUpdateFileEnablequiksearch(CCmdUI* pCmdUI)
{
//TODO:Add your command update UI handler code here
pCmdUI->SetCheck(m_nEnableQuikSearch);
}
void CCrtt_CEView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CFormView::OnLButtonDown(nFlags, point);
}
void CCrtt_CEView::OnBUTTONStart()
{
CString s;
CComboBox* pCombo=(CComboBox*)GetDlgItem(IDC_COMBO_Start);
int nCurSel=pCombo->GetCurSel();
if(nCurSel==CB_ERR)
{
pCombo->GetWindowText(s);
if(s==_T(""))return;
}
else
{
pCombo->GetLBText(nCurSel,s);
}
if(s==_T(""))return;
UpdateList(3,s);
}
int CCrtt_CEView::StationIn(PBYTE cc,CString s)
{
int nRtn=0;
CString ss=cc;
int pos=ss.Find(s);
if(pos>-1)nRtn=1;
if(s=="")nRtn=1;
return nRtn;
}
int CCrtt_CEView::StationIn2(const char* cc,const char* c)
{
char* ptr=strstr(cc,c);
if(ptr==NULL)return 0;
return 1;
}
void CCrtt_CEView::RefreshCtrl()
{
TCHAR cc[20];
int i,j,len;
CString s;
g_nTotalRecordNum=g_wStationsArray.GetSize();
wsprintf(cc,_T("%d"),g_nTotalRecordNum);
m_s2=cc;
int total=min(10,g_nTotalRecordNum);
if(total<1)
{
::MessageBox(GetSafeHwnd(),_T("没有找到要查找的记录!"),
_T(" 提示 !"),MB_OK);
m_s1=_T("0");
GetDlgItem(IDC_BUTTON_ListAll)->EnableWindow(TRUE);
GetDlgItem(IDC_BUTTON_Start)->EnableWindow(TRUE);
GetDlgItem(IDC_BUTTON_Endstop)->EnableWindow(TRUE);
GetDlgItem(IDC_BUTTON_Trainno)->EnableWindow(1);
GetDlgItem(IDC_BUTTON_Middle)->EnableWindow(1);
GetDlgItem(IDC_BUTTON_Type)->EnableWindow(1);
GetDlgItem(IDC_BUTTON_SearchAll)->EnableWindow(TRUE);
UpdateData(FALSE);
return ;
}
for(i=0;i<total;i++)
{
for(j=0;j<g_nTotalFieldNum;j++)
{
len=g_dbf.ReadFieldStr(g_wStationsArray[i]+1,j,g_pFieldBuf);
s=g_dbf.CharToWideChar(g_pFieldBuf,len);
s=MyMakeUpperAndRemoveSpaces(s);
m_listctrl.AddItem(i,j,s);
}
}
if(total>=10)
{
m_s1=_T("1~");
GetDlgItem(IDC_BUTTON_Next)->EnableWindow(TRUE);
}
else
{
m_s1=_T("1~");//+m_s2;
}
GetDlgItem(IDC_BUTTON_Start)->EnableWindow(TRUE);
GetDlgItem(IDC_BUTTON_Endstop)->EnableWindow(TRUE);
GetDlgItem(IDC_BUTTON_Trainno)->EnableWindow(1);
GetDlgItem(IDC_BUTTON_Middle)->EnableWindow(1);
GetDlgItem(IDC_BUTTON_Type)->EnableWindow(1);
GetDlgItem(IDC_BUTTON_SearchAll)->EnableWindow(TRUE);
GetDlgItem(IDC_BUTTON_ListAll)->EnableWindow(TRUE);
UpdateData(FALSE);
}
void CCrtt_CEView::InitCtrl()
{
m_listctrl.DeleteAllItems();
UpdateData();
GetDlgItem(IDC_BUTTON_Prev)->EnableWindow(FALSE);
GetDlgItem(IDC_BUTTON_Next)->EnableWindow(FALSE);
GetDlgItem(IDC_BUTTON_Start)->EnableWindow(FALSE);
GetDlgItem(IDC_BUTTON_Endstop)->EnableWindow(FALSE);
GetDlgItem(IDC_BUTTON_SearchAll)->EnableWindow(FALSE);
GetDlgItem(IDC_BUTTON_ListAll)->EnableWindow(FALSE);
GetDlgItem(IDC_BUTTON_Trainno)->EnableWindow(0);
GetDlgItem(IDC_BUTTON_Middle)->EnableWindow(0);
GetDlgItem(IDC_BUTTON_Type)->EnableWindow(0);
m_nStepNum=0;
g_nTotalRecordNum=0;
m_s2=_T("0");
m_s1=_T("0");
//m_listctrl.DeleteAllItems();
UpdateData(FALSE);
}
void CCrtt_CEView::ShowAll()
{
GetDlgItem(IDC_BUTTON_Prev)->EnableWindow(0);
GetDlgItem(IDC_BUTTON_Next)->EnableWindow(0);
GetDlgItem(IDC_BUTTON_Start)->EnableWindow(0);
GetDlgItem(IDC_BUTTON_Endstop)->EnableWindow(0);
GetDlgItem(IDC_BUTTON_SearchAll)->EnableWindow(0);
GetDlgItem(IDC_BUTTON_ListAll)->EnableWindow(0);
GetDlgItem(IDC_BUTTON_Trainno)->EnableWindow(0);
GetDlgItem(IDC_BUTTON_Middle)->EnableWindow(0);
GetDlgItem(IDC_BUTTON_Type)->EnableWindow(0);
m_listctrl.DeleteAllItems();//99.7.8.Add
int i ,j ,len;
CString s;
TCHAR cc3[30];
g_nTotalRecordNum=g_dbf.GetRecordCount();
m_s1=_T("1~");
m_nStepNum=0;
wsprintf(cc3,_T("%d"),g_nTotalRecordNum);
m_s2=cc3;
for(i=0;i<10;i++)
{
for(j=0;j<g_nTotalFieldNum;j++)
{
len=g_dbf.ReadFieldStr(i+1,j,g_pFieldBuf);
s=g_dbf.CharToWideChar(g_pFieldBuf,len);
s=MyMakeUpperAndRemoveSpaces(s);
m_listctrl.AddItem(i,j,s);
}
}
GetDlgItem(IDC_BUTTON_Prev)->EnableWindow(FALSE);
GetDlgItem(IDC_BUTTON_Next)->EnableWindow(TRUE);
GetDlgItem(IDC_BUTTON_Start)->EnableWindow(1);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -