BaseIndexDlg.cpp
上传用户:zhanglf88
上传日期:2013-11-19
资源大小:6036k
文件大小:3k
源码类别:

金融证券系统

开发平台:

Visual C++

  1. // BaseIndexDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "BaseIndexDlg.h"
  5. #ifdef _DEBUG
  6. #define new DEBUG_NEW
  7. #undef THIS_FILE
  8. static char THIS_FILE[] = __FILE__;
  9. #endif
  10. /////////////////////////////////////////////////////////////////////////////
  11. // CBaseIndexDlg dialog
  12. CBaseIndexDlg::CBaseIndexDlg(CWnd* pParent /*=NULL*/)
  13. : CDialog(CBaseIndexDlg::IDD, pParent)
  14. {
  15. //{{AFX_DATA_INIT(CBaseIndexDlg)
  16. m_strIndexName = _T("");
  17. m_strIndexExpress = _T("");
  18. m_bAddToList = TRUE;
  19. //}}AFX_DATA_INIT
  20. }
  21. void CBaseIndexDlg::SetIndexInfo( UINT nID )
  22. {
  23. CIndexContainer & acol = AfxGetProfile().GetSListColumnsUser( );
  24. m_index = acol.GetIndex( nID );
  25. }
  26. CIndex CBaseIndexDlg::GetIndexInfo( )
  27. {
  28. return m_index;
  29. }
  30. void CBaseIndexDlg::DoDataExchange(CDataExchange* pDX)
  31. {
  32. CDialog::DoDataExchange(pDX);
  33. //{{AFX_DATA_MAP(CBaseIndexDlg)
  34. DDX_Control(pDX, IDOK, m_btnOK);
  35. DDX_Control(pDX, IDCANCEL, m_btnCancel);
  36. DDX_Control(pDX, IDC_INDEXEXPRESS, m_editIndexExpress);
  37. DDX_Text(pDX, IDC_INDEXNAME, m_strIndexName);
  38. DDV_MaxChars(pDX, m_strIndexName, SLMAX_SLHTEXTLEN);
  39. DDX_Text(pDX, IDC_INDEXEXPRESS, m_strIndexExpress);
  40. DDX_Check(pDX, IDC_ADDTOLIST, m_bAddToList);
  41. //}}AFX_DATA_MAP
  42. }
  43. BEGIN_MESSAGE_MAP(CBaseIndexDlg, CDialog)
  44. //{{AFX_MSG_MAP(CBaseIndexDlg)
  45. //}}AFX_MSG_MAP
  46. END_MESSAGE_MAP()
  47. /////////////////////////////////////////////////////////////////////////////
  48. // CBaseIndexDlg message handlers
  49. BOOL CBaseIndexDlg::OnInitDialog() 
  50. {
  51. CDialog::OnInitDialog();
  52. // TODO: Add extra initialization here
  53. m_strIndexName.LoadString( IDS_BASEINDEX_NAMEDEFAULT );
  54. m_strIndexExpress.LoadString( IDS_BASEINDEX_EXPRESSEXAMPLE );
  55. if( !m_index.IsInvalidID() )
  56. {
  57. m_strIndexName = m_index.m_strName;
  58. m_strIndexExpress = m_index.GetExpressString( );
  59. }
  60. UpdateData( FALSE );
  61. CSPStringArray aspstr;
  62. AfxGetVariantNameArray( aspstr, FALSE );
  63. CStringArray astr;
  64. astr.SetSize( 0, aspstr.GetSize() );
  65. for( int i=0; i<aspstr.GetSize(); i++ )
  66. {
  67. if( aspstr.ElementAt(i).GetLength() > 0 )
  68. astr.Add( CString(aspstr.ElementAt(i)) );
  69. }
  70. m_editIndexExpress.SetListStrings( astr );
  71. return TRUE;  // return TRUE unless you set the focus to a control
  72.               // EXCEPTION: OCX Property Pages should return FALSE
  73. }
  74. void CBaseIndexDlg::OnOK() 
  75. {
  76. UpdateData( );
  77. // if( !AfxAssertFunclimitProf( ) )
  78. // return;
  79. if( m_strIndexName.IsEmpty() )
  80. {
  81. AfxMessageBox( IDS_BASEINDEX_NONAME, MB_OK | MB_ICONINFORMATION );
  82. return;
  83. }
  84. if( m_strIndexName.GetLength() > SLMAX_SLHTEXTLEN )
  85. {
  86. AfxMessageBox( IDS_BASEINDEX_NAMETOOLONG, MB_OK | MB_ICONINFORMATION );
  87. return;
  88. }
  89. m_index.m_strName = m_strIndexName;
  90. m_index.SetExpressString( (LPCTSTR)m_strIndexExpress );
  91. if( !m_index.CheckExpressValid() )
  92. {
  93. AfxMessageBox( m_index.GetLastErrorMsg(), MB_OK | MB_ICONINFORMATION );
  94. return;
  95. }
  96. CIndexContainer & aindex = AfxGetProfile().GetSListColumnsUser( );
  97. CSPDWordArray & anOrder = AfxGetProfile().GetSListColumnsOrder( );
  98. CSPDWordArray & anShow = AfxGetProfile().GetSListColumnsShow( );
  99. if( m_index.IsInvalidID() )
  100. {
  101. m_index.SetNextID( );
  102. aindex.Add( m_index );
  103. anOrder.Add( m_index.m_nID );
  104. }
  105. else
  106. {
  107. aindex.EditIndex( m_index );
  108. }
  109. if( m_bAddToList )
  110. {
  111. for( int k=0; k<anShow.GetSize(); k++ )
  112. {
  113. if( m_index.m_nID == anShow[k] )
  114. break;
  115. }
  116. if( k == anShow.GetSize() )
  117. anShow.Add( m_index.m_nID );
  118. }
  119. CDialog::OnOK();
  120. }