📄 selectmdbview.cpp
字号:
// SelectmdbView.cpp : 实现文件
//
#include "stdafx.h"
#include "ReadAdress.h"
#include "SelectmdbView.h"
#include ".\selectmdbview.h"
#include "macro.h"
// CSelectmdbView
IMPLEMENT_DYNCREATE(CSelectmdbView, CFormView)
CSelectmdbView::CSelectmdbView()
: CFormView(CSelectmdbView::IDD)
{
}
CSelectmdbView::~CSelectmdbView()
{
}
void CSelectmdbView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
DDX_Control(pDX, IDC_LIST_Field, lstbxField);
DDX_Control(pDX, IDC_COMBO_Table, cmbTable);
}
BEGIN_MESSAGE_MAP(CSelectmdbView, CFormView)
//ON_BN_CLICKED(IDC_BUTTON1, OnBnClickedButton1)
ON_BN_CLICKED(IDC_SelectMdb, OnBnClickedSelectmdb)
ON_EN_CHANGE(IDC_EDIT_mdb, OnEnChangeEditmdb)
ON_STN_CLICKED(IDC_STATIC_Note, OnStnClickedStaticNote)
ON_LBN_SELCHANGE(IDC_LIST_Field, OnLbnSelchangeListField)
ON_CBN_SELCHANGE(IDC_COMBO_Table, OnCbnSelchangeComboTable)
END_MESSAGE_MAP()
// CSelectmdbView 诊断
#ifdef _DEBUG
void CSelectmdbView::AssertValid() const
{
CFormView::AssertValid();
}
void CSelectmdbView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
#endif //_DEBUG
// CSelectmdbView 消息处理程序
/*
void CSelectmdbView::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
}
*/
void CSelectmdbView::OnBnClickedSelectmdb()
{
// TODO: Add your control notification handler code here
CString str = "Txt File(*.mdb)|*.mdb|All Files(*.*)|*.*||" ;
CFileDialog FileDlg ( TRUE , NULL , NULL , OFN_HIDEREADONLY , str ) ;
if ( FileDlg.DoModal () != IDOK )
return ;
m_editPath = FileDlg.GetPathName () ;
GetDlgItem ( IDC_EDIT_mdb ) -> SetWindowText ( m_editPath ) ;
//Open Ado Coonet
GETAPP ( app ) ;
if ( !app->Ado.Open_Connect ( m_editPath ) )
{
Show_Msg ( "无法打开数据库:%s!" ,m_editPath ) ;
return ;
}
app->Ado.Set_OpenMode ( adOpenStatic ) ;
//delete org combo.
int n = cmbTable.GetCount() ;
for ( int i = 0 ; i < n ; i ++ )
cmbTable.DeleteString ( 0 ) ;
//add all table to combo
CStringArray ay ;
app->Ado.Get_Table_Name_Array ( ay ) ;
n = ay.GetCount () ;
for ( int i = 0 ; i < n ; i ++ )
{
cmbTable.AddString ( ay[ i ] ) ;
}
cmbTable.SetCurSel ( 0 ) ;
//fill listbox.
OnCbnSelchangeComboTable() ;
}
void CSelectmdbView::OnEnChangeEditmdb()
{
// TODO: 如果该控件是 RICHEDIT 控件,则它将不会
// 发送该通知,除非重写 CFormView::OnInitDialog()
// 函数并调用 CRichEditCtrl().SetEventMask(),
// 同时将 ENM_CHANGE 标志“或”运算到掩码中。
// TODO: 在此添加控件通知处理程序代码
//AfxMessageBox ("") ;
}
void CSelectmdbView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
// TODO: 在此添加专用代码和/或调用基类
}
void CSelectmdbView::OnStnClickedStaticNote()
{
// TODO: 在此添加控件通知处理程序代码
}
void CSelectmdbView::OnLbnSelchangeListField()
{
GETAPP ( app ) ;
// TODO: 在此添加控件通知处理程序代码
int sel = lstbxField.GetCurSel() ;
CString strField ;
lstbxField.GetText ( sel , strField ) ;
//AfxMessageBox ( strField ) ;
//read table
CString strLine , strOut ;
_variant_t va ;
app->Ado.To_First () ;
CStringArray ayString ;
do
{
va = app->Ado.Get_Item ( strField ) ;
strLine = ( ( LPCSTR )( _bstr_t ) va ) ;
if ( ! Compare ( ayString , strLine ) )
{
ayString.Add ( strLine ) ;
strOut += strLine ;
strOut += "\r\n" ;
//strOut += "\n" ;
}
} while ( app->Ado.To_Next () ) ;
CEdit& theEdit = app->gEditView->GetEditCtrl();
theEdit.SetWindowText ( strOut ) ;
}
BOOL CSelectmdbView :: Compare ( CStringArray & ary , CString & str )
{
int count = ary.GetCount() ;
for ( int i = 0 ; i < count ; i ++ )
{
if ( ary [ i ].Compare ( str ) == 0 )
return TRUE ;
}
return FALSE ;
}
void CSelectmdbView::OnCbnSelchangeComboTable()
{
GETAPP ( app ) ;
int n = cmbTable.GetCurSel () ;
CString strTable ;
cmbTable.GetLBText ( n , strTable ) ;
if ( strTable.IsEmpty() )
return ;
if ( ! app->Ado.Open_Table ( strTable ) )
{
Show_Msg ( "无法打开表:%s" , strTable ) ;
return ;
}
m_Field_Num = app->Ado.Get_Field_Count () ;
//delete all org listbox.
n = lstbxField.GetCount () ;
for ( int i = 0 ; i < n ; i ++ )
lstbxField.DeleteString ( 0 ) ;
//add new in listbox.
CString strName ;
for ( int i = 0 ; i < m_Field_Num ; i ++ )
{
app->Ado.Get_Field_Name ( i , strName ) ;
lstbxField.AddString( strName ) ;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -