ExportDlg.cpp
上传用户:jsxglz
上传日期:2007-01-03
资源大小:117k
文件大小:3k
源码类别:

SQL Server

开发平台:

Visual C++

  1. // ExportDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "interactivesql.h"
  5. #include "ExportDlg.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. const char* g_szExportOptions = "ExportOptions";
  12. const char* g_szFormat = "Format";
  13. const char* g_szCoumnNames = "ColumnNames";
  14. /////////////////////////////////////////////////////////////////////////////
  15. // CExportDlg
  16. IMPLEMENT_DYNAMIC(CExportDlg, CFileDialog)
  17. CExportDlg::CExportDlg(BOOL bOpenFileDialog, LPCTSTR lpszDefExt, LPCTSTR lpszFileName,
  18. DWORD dwFlags, LPCTSTR lpszFilter, CWnd* pParentWnd) :
  19. CFileDialog(bOpenFileDialog, lpszDefExt, lpszFileName, dwFlags, lpszFilter, pParentWnd)
  20. {
  21. m_ofn.Flags |= OFN_ENABLETEMPLATE;
  22. m_ofn.lpTemplateName = MAKEINTRESOURCE(IDD_EXPORT_DIALOG);
  23. m_bColumnNames = TRUE;
  24. m_strDelimiter = "Comma Seperated";
  25. m_bSaveSelection = false;
  26. }
  27. BEGIN_MESSAGE_MAP(CExportDlg, CFileDialog)
  28. //{{AFX_MSG_MAP(CExportDlg)
  29. //}}AFX_MSG_MAP
  30. END_MESSAGE_MAP()
  31. BOOL CExportDlg::OnInitDialog() 
  32. {
  33. BOOL bRet = CFileDialog::OnInitDialog();
  34. if(bRet)
  35. {
  36. CComboBox* pCB = (CComboBox*)GetDlgItem(IDC_DELIMITER);
  37. pCB->AddString("Comma Seperated");
  38. pCB->AddString("Tab Delimited");
  39. pCB->AddString("Pipe Seperated");
  40. pCB->AddString("<None>");
  41. CWinApp* pApp = AfxGetApp();
  42. m_strDelimiter = pApp->GetProfileString(g_szExportOptions, g_szFormat);
  43. m_strDelimiter.TrimRight(); 
  44. m_strDelimiter.TrimLeft();
  45. if(m_strDelimiter.IsEmpty())
  46. m_strDelimiter = "Comma Seperated";
  47. pCB->SelectString(-1, m_strDelimiter);
  48. CButton* pB = (CButton*)GetDlgItem(IDC_COLUMNS);
  49. pB->SetCheck(pApp->GetProfileInt(g_szExportOptions, g_szCoumnNames, 1));
  50. pB->EnableWindow(m_bSaveSelection ? FALSE : TRUE);
  51. }
  52. return bRet;  // return TRUE unless you set the focus to a control
  53.               // EXCEPTION: OCX Property Pages should return FALSE
  54. }
  55. BOOL CExportDlg::OnFileNameOK()
  56. {
  57. BOOL bRet = CFileDialog::OnFileNameOK();
  58. if(!bRet)
  59. {
  60. CString sBuff;
  61. GetDlgItem(IDC_DELIMITER)->GetWindowText(sBuff);
  62. if(sBuff.Find("Comma") != -1)
  63. m_strDelimiter = _T(",");
  64. if(sBuff.Find("Tab") != -1)
  65. m_strDelimiter = _T("t");
  66. if(sBuff.Find("Pipe") != -1)
  67. m_strDelimiter = _T("|");
  68. if(sBuff.Find("<None>") != -1)
  69. m_strDelimiter = _T("");
  70. CWinApp* pApp = AfxGetApp();
  71. pApp->WriteProfileString(g_szExportOptions, g_szFormat, sBuff);
  72. CButton* pB = (CButton*)GetDlgItem(IDC_COLUMNS);
  73. m_bColumnNames = pB->GetCheck();
  74. pApp->WriteProfileInt(g_szExportOptions, g_szCoumnNames, m_bColumnNames);
  75. }
  76. return bRet;
  77. }