📄 listexportdlg.cpp.svn-base
字号:
m_strCsvDest = AfxGetApp()->GetProfileString( "listexportdlg", "csvdest", m_strCsvDest );
m_strODBCDest = AfxGetApp()->GetProfileString( "listexportdlg", "odbcdest", m_strODBCDest );
m_bExeOnFinish = AfxGetApp()->GetProfileInt( "listexportdlg", "exeonfinish", m_bExeOnFinish );
m_bOverwrite = AfxGetApp()->GetProfileInt( "listexportdlg", "overwrite", m_bOverwrite );
}
CListExportDlg::CListExportDlg(CWnd* pParent /*=NULL*/)
: CXFDialog(CListExportDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CListExportDlg)
m_nItemBegin = 1;
m_nItemEnd = 1;
m_strTxtDest = _T("");
m_strMdbDest = _T("");
m_strCsvDest = _T("");
m_bTxtCheck = FALSE;
m_bMdbCheck = FALSE;
m_bCsvCheck = FALSE;
m_bExeOnFinish = FALSE;
m_bODBCCheck = FALSE;
m_strODBCDest = _T("");
//}}AFX_DATA_INIT
m_nItemMax = 1;
m_bItemAll = FALSE;
m_bItemSelected = FALSE;
m_bItemDefine = FALSE;
}
CListExportDlg::~CListExportDlg( )
{
}
BOOL CListExportDlg::ExportBegin(CStringArray &astrColumnName, CUIntArray &anWidth,
BOOL bReportError )
{
CString strTxt, strMdb, strCsv, strODBC;
if( m_bTxtCheck ) strTxt = m_strTxtDest;
if( m_bMdbCheck ) strMdb = m_strMdbDest;
if( m_bCsvCheck ) strCsv = m_strCsvDest;
if( m_bODBCCheck ) strODBC = m_strODBCDest;
if( !m_exportdb.OpenAllDB(strTxt, FALSE, strMdb, strCsv, FALSE, strODBC,
bReportError ) )
return FALSE;
if( ! m_exportdb.SetTableColumn( astrColumnName, anWidth ) )
return FALSE;
return TRUE;
}
BOOL CListExportDlg::ExportOpenTable(CSPTime &time, BOOL bReportError )
{
CString strTableName;
strTableName.LoadString( IDS_LISTEXPORT_TABLENAME );
strTableName += AfxGetTimeString( time.GetTime(), "%Y-%m-%d-", TRUE );
if( !m_exportdb.OpenAllTable( strTableName, m_bOverwrite, bReportError ) )
return FALSE;
return TRUE;
}
BOOL CListExportDlg::ExportAddItem( CStringArray &astrItemText )
{
return m_exportdb.AddItem( astrItemText );
}
void CListExportDlg::ExportCloseTable( )
{
m_exportdb.CloseAllTable( );
}
BOOL CListExportDlg::ExportFinish( )
{
m_exportdb.CloseAllDB( );
if( m_bExeOnFinish )
{
if( m_bTxtCheck && m_strTxtDest.GetLength() > 0 )
ShellExecute( NULL, "open", m_strTxtDest, NULL, NULL, SW_SHOW );
if( m_bMdbCheck && m_strMdbDest.GetLength() > 0 )
ShellExecute( NULL, "open", m_strMdbDest, NULL, NULL, SW_SHOW );
if( m_bCsvCheck && m_strCsvDest.GetLength() > 0 )
ShellExecute( NULL, "open", m_strCsvDest, NULL, NULL, SW_SHOW );
if( m_bODBCCheck && m_strODBCDest.GetLength() > 0 )
CExportDB::ExecuteODBCFile( m_strODBCDest );
}
// Set Progress
m_ctrlProgress.SetWindowPos( NULL, 0, 0, 0, 0, SWP_SHOWWINDOW | SWP_NOSIZE | SWP_NOMOVE );
int nLower = 0, nUpper = 100;
m_ctrlProgress.GetRange( nLower, nUpper );
if( nUpper > nLower )
{
m_ctrlProgress.SetPos( nUpper );
CString strInfo;
strInfo.LoadString( IDS_EXPORTDB_FINISHED );
m_staticProgress.SetWindowText( strInfo );
}
return TRUE;
}
void CListExportDlg::SetProgressRange( int nLower, int nUpper )
{
if( nUpper > nLower )
{
m_ctrlProgress.SetWindowPos( NULL, 0, 0, 0, 0, SWP_SHOWWINDOW | SWP_NOSIZE | SWP_NOMOVE );
m_ctrlProgress.SetRange32( nLower, nUpper );
}
}
void CListExportDlg::SetProgress( int nPos )
{
int nLower = 0, nUpper = 100;
m_ctrlProgress.GetRange( nLower, nUpper );
if( nUpper > nLower )
{
m_ctrlProgress.SetPos( nPos );
CString strProgressNew;
strProgressNew.Format( "%d%%", 100*nPos/(nUpper-nLower) );
CString strProgressOld;
m_staticProgress.GetWindowText( strProgressOld );
if( 0 != strProgressNew.Compare( strProgressOld ) )
m_staticProgress.SetWindowText( strProgressNew );
}
}
void CListExportDlg::DoDataExchange(CDataExchange* pDX)
{
CXFDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CListExportDlg)
DDX_Control(pDX, IDCANCEL, m_btnCancel);
DDX_Control(pDX, IDOK, m_btnOK);
DDX_Control(pDX, IDC_ODBC_SOURCE, m_btnODBCSource);
DDX_Control(pDX, IDC_ODBC_DEST, m_editODBCDest);
DDX_Control(pDX, IDC_ODBC_CHECK, m_btnODBCCheck);
DDX_Control(pDX, IDC_STATIC_PROGRESS, m_staticProgress);
DDX_Control(pDX, IDC_PROGRESS, m_ctrlProgress);
DDX_Control(pDX, IDC_CSV_EXPLORER, m_btnCsvExplorer);
DDX_Control(pDX, IDC_CSV_DEST, m_editCsvDest);
DDX_Control(pDX, IDC_CSV_CHECK, m_btnCsvCheck);
DDX_Control(pDX, IDC_MDB_EXPLORER, m_btnMdbExplorer);
DDX_Control(pDX, IDC_MDB_DEST, m_editMdbDest);
DDX_Control(pDX, IDC_MDB_CHECK, m_btnMdbCheck);
DDX_Control(pDX, IDC_TXT_EXPLORER, m_btnTxtExplorer);
DDX_Control(pDX, IDC_TXT_DEST, m_editTxtDest);
DDX_Control(pDX, IDC_TXT_CHECK, m_btnTxtCheck);
DDX_Control(pDX, IDC_ITEM_END, m_editItemEnd);
DDX_Control(pDX, IDC_ITEM_BEGIN, m_editItemBegin);
DDX_Text(pDX, IDC_ITEM_BEGIN, m_nItemBegin);
DDV_MinMaxInt(pDX, m_nItemBegin, 1, m_nItemMax);
DDX_Text(pDX, IDC_ITEM_END, m_nItemEnd);
DDV_MinMaxInt(pDX, m_nItemEnd, 1, m_nItemMax);
DDX_Text(pDX, IDC_TXT_DEST, m_strTxtDest);
DDX_Text(pDX, IDC_MDB_DEST, m_strMdbDest);
DDX_Text(pDX, IDC_CSV_DEST, m_strCsvDest);
DDX_Check(pDX, IDC_TXT_CHECK, m_bTxtCheck);
DDX_Check(pDX, IDC_MDB_CHECK, m_bMdbCheck);
DDX_Check(pDX, IDC_CSV_CHECK, m_bCsvCheck);
DDX_Check(pDX, IDC_EXEONFINISH, m_bExeOnFinish);
DDX_Check(pDX, IDC_ODBC_CHECK, m_bODBCCheck);
DDX_Text(pDX, IDC_ODBC_DEST, m_strODBCDest);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CListExportDlg, CXFDialog)
//{{AFX_MSG_MAP(CListExportDlg)
ON_BN_CLICKED(IDC_ITEM_ALL, OnItemAll)
ON_BN_CLICKED(IDC_ITEM_SELECTED, OnItemSelected)
ON_BN_CLICKED(IDC_ITEM_DEFINE, OnItemDefine)
ON_BN_CLICKED(IDC_TXT_CHECK, OnTxtCheck)
ON_BN_CLICKED(IDC_TXT_EXPLORER, OnTxtExplorer)
ON_BN_CLICKED(IDC_MDB_CHECK, OnMdbCheck)
ON_BN_CLICKED(IDC_MDB_EXPLORER, OnMdbExplorer)
ON_BN_CLICKED(IDC_CSV_CHECK, OnCsvCheck)
ON_BN_CLICKED(IDC_CSV_EXPLORER, OnCsvExplorer)
ON_BN_CLICKED(IDC_ODBC_CHECK, OnODBCCheck)
ON_BN_CLICKED(IDC_ODBC_SOURCE, OnOdbcSource)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CListExportDlg message handlers
BOOL CListExportDlg::OnInitDialog()
{
CXFDialog::OnInitDialog();
// TODO: Add extra initialization here
LoadProfile( );
UpdateData( FALSE );
// select item
int nCheckID = IDC_ITEM_ALL;
if( m_bItemSelected )
nCheckID = IDC_ITEM_SELECTED;
else if( m_bItemDefine )
nCheckID = IDC_ITEM_DEFINE;
CheckRadioButton( IDC_ITEM_ALL, IDC_ITEM_DEFINE, nCheckID );
m_editItemBegin.EnableWindow( IDC_ITEM_DEFINE == nCheckID );
m_editItemEnd.EnableWindow( IDC_ITEM_DEFINE == nCheckID );
// txt
m_btnTxtCheck.SetCheck( m_bTxtCheck );
m_editTxtDest.EnableWindow( m_bTxtCheck );
m_btnTxtExplorer.EnableWindow( m_bTxtCheck );
nCheckID = IDC_EXPORT_OVERWRITE;
if( !m_bOverwrite )
nCheckID = IDC_EXPORT_APPEND;
CheckRadioButton( IDC_EXPORT_OVERWRITE, IDC_EXPORT_APPEND, nCheckID );
// mdb
m_btnMdbCheck.SetCheck( m_bMdbCheck );
m_editMdbDest.EnableWindow( m_bMdbCheck );
m_btnMdbExplorer.EnableWindow( m_bMdbCheck );
// Csv
m_btnCsvCheck.SetCheck( m_bCsvCheck );
m_editCsvDest.EnableWindow( m_bCsvCheck );
m_btnCsvExplorer.EnableWindow( m_bCsvCheck );
// ODBC
m_btnODBCCheck.SetCheck( m_bODBCCheck );
m_editODBCDest.EnableWindow( m_bODBCCheck );
m_btnODBCSource.EnableWindow( m_bODBCCheck );
// progress ctrl
m_ctrlProgress.SetWindowPos( NULL, 0, 0, 0, 0, SWP_HIDEWINDOW | SWP_NOSIZE | SWP_NOMOVE );
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CListExportDlg::OnItemAll()
{
// TODO: Add your control notification handler code here
m_editItemBegin.EnableWindow( FALSE );
m_editItemEnd.EnableWindow( FALSE );
}
void CListExportDlg::OnItemSelected()
{
// TODO: Add your control notification handler code here
m_editItemBegin.EnableWindow( FALSE );
m_editItemEnd.EnableWindow( FALSE );
}
void CListExportDlg::OnItemDefine()
{
// TODO: Add your control notification handler code here
m_editItemBegin.EnableWindow( TRUE );
m_editItemEnd.EnableWindow( TRUE );
}
void CListExportDlg::OnTxtCheck()
{
// TODO: Add your control notification handler code here
int nCheck = m_btnTxtCheck.GetCheck();
m_editTxtDest.EnableWindow( nCheck );
m_btnTxtExplorer.EnableWindow( nCheck );
}
void CListExportDlg::OnTxtExplorer()
{
// TODO: Add your control notification handler code here
UpdateData( );
CKSFileDialog dlg (FALSE, NULL, NULL, OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_ENABLESIZING,
"Txt files (*.txt)|*.txt|All files (*.*)|*.*||", NULL);
if( IDOK == dlg.DoModal() )
{
m_strTxtDest = dlg.GetPathName();
UpdateData( FALSE );
}
}
void CListExportDlg::OnMdbCheck()
{
// TODO: Add your control notification handler code here
int nCheck = m_btnMdbCheck.GetCheck();
m_editMdbDest.EnableWindow( nCheck );
m_btnMdbExplorer.EnableWindow( nCheck );
}
void CListExportDlg::OnMdbExplorer()
{
// TODO: Add your control notification handler code here
UpdateData( );
CKSFileDialog dlg (FALSE, NULL, NULL, OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_ENABLESIZING,
"Microsoft Access Database files (*.mdb)|*.mdb|All files (*.*)|*.*||", NULL);
if( IDOK == dlg.DoModal() )
{
m_strMdbDest = dlg.GetPathName();
UpdateData( FALSE );
}
}
void CListExportDlg::OnCsvCheck()
{
// TODO: Add your control notification handler code here
int nCheck = m_btnCsvCheck.GetCheck();
m_editCsvDest.EnableWindow( nCheck );
m_btnCsvExplorer.EnableWindow( nCheck );
}
void CListExportDlg::OnODBCCheck()
{
// TODO: Add your control notification handler code here
int nCheck = m_btnODBCCheck.GetCheck();
m_editODBCDest.EnableWindow( nCheck );
m_btnODBCSource.EnableWindow( nCheck );
}
void CListExportDlg::OnCsvExplorer()
{
// TODO: Add your control notification handler code here
UpdateData( );
CKSFileDialog dlg (FALSE, NULL, NULL, OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_ENABLESIZING,
"CSV files (*.csv)|*.csv|All files (*.*)|*.*||", NULL);
if( IDOK == dlg.DoModal() )
{
m_strCsvDest = dlg.GetPathName();
UpdateData( FALSE );
}
}
void CListExportDlg::OnOdbcSource()
{
// TODO: Add your control notification handler code here
UpdateData( TRUE );
if( m_exportdb.OpenODBCDB( NULL ) )
{
m_strODBCDest = m_exportdb.GetODBCConnect();
UpdateData( FALSE );
}
}
void CListExportDlg::OnOK()
{
// TODO: Add extra validation here
UpdateData( );
// if( !AfxAssertFunclimitProf( ) )
// return;
CButton * pbtnAll = (CButton *)GetDlgItem( IDC_ITEM_ALL );
if( pbtnAll ) m_bItemAll = pbtnAll->GetCheck();
CButton * pbtnSelected = (CButton *)GetDlgItem( IDC_ITEM_SELECTED );
if( pbtnSelected ) m_bItemSelected = pbtnSelected->GetCheck();
CButton * pbtnDefine = (CButton *)GetDlgItem( IDC_ITEM_DEFINE );
if( pbtnDefine ) m_bItemDefine = pbtnDefine->GetCheck();
if( !m_bItemAll && !m_bItemSelected && !m_bItemDefine )
m_bItemAll = TRUE;
CButton * pbtn = (CButton *)GetDlgItem( IDC_EXPORT_OVERWRITE );
if( pbtn ) m_bOverwrite = pbtn->GetCheck();
if( !m_bTxtCheck && !m_bMdbCheck && !m_bCsvCheck && !m_bODBCCheck )
{
AfxMessageBox( IDS_EXPORTDB_NODEST, MB_OK | MB_ICONINFORMATION );
return;
}
if( m_bTxtCheck && m_strTxtDest.GetLength() == 0 )
{
AfxMessageBox( IDS_EXPORTDB_NOTXTDEST, MB_OK | MB_ICONINFORMATION );
return;
}
if( m_bMdbCheck && m_strMdbDest.GetLength() == 0 )
{
AfxMessageBox( IDS_EXPORTDB_NOMDBDEST, MB_OK | MB_ICONINFORMATION );
return;
}
if( m_bCsvCheck && m_strCsvDest.GetLength() == 0 )
{
AfxMessageBox( IDS_EXPORTDB_NOCSVDEST, MB_OK | MB_ICONINFORMATION );
return;
}
if( m_bODBCCheck && m_strODBCDest.GetLength() == 0 )
{
AfxMessageBox( IDS_EXPORTDB_NOODBCDEST, MB_OK | MB_ICONINFORMATION );
return;
}
if( m_bMdbCheck )
{
int nIndex = m_strMdbDest.Find( "." );
if( -1 == nIndex )
m_strMdbDest += ".mdb";
else if( m_strMdbDest.GetLength()-1 == nIndex )
m_strMdbDest += "mdb";
}
if( m_bCsvCheck )
{
int nIndex = m_strCsvDest.Find( "." );
if( -1 == nIndex )
m_strCsvDest += ".csv";
else if( m_strCsvDest.GetLength()-1 == nIndex )
m_strCsvDest += "csv";
}
UpdateData( FALSE );
// Store profile
StoreProfile( );
// Export
CSListView * pView = AfxGetSListView( );
if( pView )
pView->ExportList( this );
else
ExportFinish( );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -