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

📄 listexportdlg.cpp.svn-base

📁 股票软件源码
💻 SVN-BASE
📖 第 1 页 / 共 3 页
字号:
	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 + -