REPORTBAR.CPP
上传用户:shgx688
上传日期:2009-12-27
资源大小:855k
文件大小:3k
源码类别:

SNMP编程

开发平台:

MultiPlatform

  1. // ReportBar.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "OAM.h"
  5. #include "ReportBar.h"
  6. #include "MainFrm.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CReportBar
  14. static char *_gReportType[] = { "操作报告" ,"上报陷阱","错误指示"};
  15. static char *_gReportType1[] = { "操作报告","系统告警(已屏蔽)", "部件告警(已屏蔽)","接续告警(已屏蔽)" };
  16. CReportBar::CReportBar()
  17. {
  18. }
  19. CReportBar::~CReportBar()
  20. {
  21. }
  22. BEGIN_MESSAGE_MAP(CReportBar, COAMControlBar)
  23. //{{AFX_MSG_MAP(CReportBar)
  24. ON_WM_CREATE()
  25. //}}AFX_MSG_MAP
  26. END_MESSAGE_MAP()
  27. /////////////////////////////////////////////////////////////////////////////
  28. // CReportBar message handlers
  29. int CReportBar::OnCreate(LPCREATESTRUCT lpCreateStruct) 
  30. {
  31.   if (COAMControlBar::OnCreate(lpCreateStruct) == -1)
  32. return -1;
  33. // TODO: Add your specialized creation code here
  34. if (!m_Report.Create(NULL,"Report",WS_CHILD|WS_VISIBLE,
  35. CRect(0,0,1024,800), this, 102))
  36. {
  37. TRACE0("Failed to create view for m_listExn");
  38. return -1;
  39. }
  40. m_Report.ModifyStyleEx(0,WS_EX_CLIENTEDGE);
  41. SetChild(&m_Report);
  42. for(int i = 0; i<sizeof(_gReportType)/sizeof(char *); i++)
  43. m_Report.GetSheetControl().AddPage(_gReportType[i]);
  44. COutputReport * pFirstView = (COutputReport *)m_Report.GetSheetControl().GetFirstView();
  45. if(pFirstView)
  46. m_Report.GetSheetControl().SetActiveView(pFirstView);
  47. return 0;
  48. }
  49. void CReportBar::WriteReportLine(LPCSTR lpBlock, int Type)
  50. {
  51. if(!m_Report.GetSheetControl().GetSafeHwnd())
  52. return;
  53. int nPage = LOWORD(Type);
  54. if(nPage>3)
  55. nPage = 0;
  56. COutputReport * pEdit = m_Report.GetSheetControl().GetPageAt(nPage);
  57. if(pEdit)
  58. {
  59. CString strLine = CONTROL_BYTE;
  60. BYTE fClr = min(LOBYTE(HIWORD(Type)),15);
  61. CString str;
  62. str.Format("%02d,15%s",fClr,lpBlock);
  63. strLine += str;
  64. pEdit->AddLine(strLine);//,HIWORD(Type),TRUE);
  65. //pEdit->AddLine(strLine);//,HIWORD(Type),TRUE);
  66. // pEdit->WriteReportLine(lpBlock,0,FALSE);
  67. if(/*nPage != 0 &&*/ m_Report.GetSheetControl().GetActiveView()!=pEdit)
  68. {
  69. pEdit->m_nHasAlert = TRUE;
  70. m_Report.GetSheetControl().Splash(pEdit);
  71. }
  72. else
  73. {
  74. m_Report.SendMessage(SM_PAGECHANGED,(WPARAM)pEdit,0);
  75. }
  76. }
  77. }
  78. void CReportBar::EnableAlert(int nType, BOOL bEnable)
  79. {
  80. if(nType<0 || nType>=sizeof(_gReportType)/sizeof(char *))
  81. return;
  82. COutputReport * pEdit = m_Report.GetSheetControl().GetPageAt(nType);
  83. if(pEdit)
  84. {
  85. if(bEnable)
  86. {
  87. pEdit->SetWindowText(_gReportType[nType]);
  88. pEdit->m_strName = _gReportType[nType];
  89. }
  90. else
  91. {
  92. pEdit->SetWindowText(_gReportType1[nType]);
  93. pEdit->m_strName = _gReportType1[nType];
  94. }
  95. m_Report.m_wndSheet.Invalidate();
  96. }
  97. }