升龙物业 老版本 ocx IPO, 加密狗 转值班电话

InfoList.cpp 3.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. // TaskList.cpp : 实现文件
  2. //
  3. #include "stdafx.h"
  4. #include "IVR.h"
  5. #include "InfoList.h"
  6. #include "IvrCore.h"
  7. #include "IvrFlowMgr.h"
  8. // CTaskList
  9. IMPLEMENT_DYNAMIC(CInfoList, CListCtrl)
  10. CInfoList::CInfoList()
  11. {
  12. }
  13. CInfoList::~CInfoList()
  14. {
  15. }
  16. BEGIN_MESSAGE_MAP(CInfoList, CListCtrl)
  17. END_MESSAGE_MAP()
  18. /*****************************************************************
  19. **【函数名称】 __indexItem
  20. **【函数功能】 索引任务
  21. **【参数】
  22. **【返回值】
  23. *****************************************************************/
  24. int CInfoList::__indexItem( int id )
  25. {
  26. for (int i=0; i < GetItemCount(); i++)
  27. {
  28. if (GetItemData(i) == id)
  29. return i;
  30. }
  31. return -1;
  32. }
  33. /*****************************************************************
  34. **【函数名称】 __transState
  35. **【函数功能】 翻译状态
  36. **【参数】
  37. **【返回值】
  38. *****************************************************************/
  39. void CInfoList::__transState( IVR_FLOW_STATE State, CString& Data )
  40. {
  41. switch(State)
  42. {
  43. case IVR_FLOW_STATE_FREE:
  44. Data = _T("空闲");
  45. break;
  46. case IVR_FLOW_STATE_RUN:
  47. Data = _T("正在运行");
  48. break;
  49. default:
  50. ASSERT(FALSE);
  51. Data = _T("未知状态");
  52. break;
  53. }
  54. }
  55. /*****************************************************************
  56. **【函数名称】 __showTask
  57. **【函数功能】 显示任务
  58. **【参数】
  59. **【返回值】
  60. *****************************************************************/
  61. void CInfoList::__showInfo( Flow2Show& Info )
  62. {
  63. int Item = GetItemCount();
  64. CString Data;
  65. Data.Format(_T("%d"), Info.Id);
  66. InsertItem(Item, Data);
  67. __transState(Info.State, Data);
  68. SetItemText(Item, 1, Data);
  69. SetItemText(Item, 2, Info.NodeNote);
  70. SetItemData(Item, Info.Id);
  71. }
  72. /*****************************************************************
  73. **【函数名称】 __updateTaskState
  74. **【函数功能】 更新任务
  75. **【参数】
  76. **【返回值】
  77. *****************************************************************/
  78. void CInfoList::__updateState( int Item, Flow2Show& Info )
  79. {
  80. CString Data;
  81. __transState(Info.State, Data);
  82. SetItemText(Item, 1, Data);
  83. SetItemText(Item, 2, Info.NodeNote);
  84. /*if(State == IVR_FLOW_STATE_FREE)
  85. DeleteItem(Item);*/
  86. }
  87. /*****************************************************************
  88. **【函数名称】 format
  89. **【函数功能】 格式化控件
  90. **【参数】
  91. **【返回值】
  92. *****************************************************************/
  93. void CInfoList::format( void )
  94. {
  95. CRect mRect;
  96. GetClientRect(&mRect);
  97. int length = mRect.right - mRect.left - 150;
  98. //加载日志列表
  99. SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
  100. InsertColumn(1, (LPCTSTR)_T("流程ID"), LVCFMT_CENTER, 50, -1);
  101. InsertColumn(1, (LPCTSTR)_T("流程状态"), LVCFMT_CENTER, 100, -1);
  102. InsertColumn(2, (LPCTSTR)_T("节点名称"), LVCFMT_CENTER, length, -1);
  103. }
  104. /*****************************************************************
  105. **【函数名称】 onTaskStateUpdated
  106. **【函数功能】 任务状态变化处理函数
  107. **【参数】
  108. **【返回值】
  109. *****************************************************************/
  110. void CInfoList::onStateUpdated(int id)
  111. {
  112. Flow2Show Info;
  113. Info.Id = id;
  114. int Item = __indexItem(id);
  115. if(CIvrCore::GetInstance().ivrFLowMgr().getFlowInfo(Info))
  116. {
  117. if(Item != -1)
  118. __updateState(Item, Info);
  119. else
  120. __showInfo(Info);
  121. }
  122. else
  123. {
  124. if(Item != -1)
  125. DeleteItem(Item);
  126. }
  127. }
  128. // CTaskList 消息处理程序