| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244 |
- // ChannelList.cpp : 实现文件
- //
- #include "stdafx.h"
- #include "AgentList.h"
- #include "../AcdCore.h"
- #include "../Agent.h"
- #include "../AgentOffice.h"
- // CChannelList
- IMPLEMENT_DYNAMIC(CAgentlList, CListCtrl)
- CAgentlList::CAgentlList()
- {
- }
- CAgentlList::~CAgentlList()
- {
- }
- BEGIN_MESSAGE_MAP(CAgentlList, CListCtrl)
- END_MESSAGE_MAP()
- /*****************************************************************
- **【函数名称】 __indexItem
- **【函数功能】 索引通道
- **【参数】
- **【返回值】
- *****************************************************************/
- int CAgentlList::__indexItem( UINT _itemNum )
- {
- for (int i=0; i < GetItemCount(); i++)
- {
- if (GetItemData(i) == _itemNum)
- return i;
- }
- return -1;
- }
- /*****************************************************************
- **【函数名称】 __transStateAgentState
- **【函数功能】 翻译状态
- **【参数】
- **【返回值】
- *****************************************************************/
- void CAgentlList::__transStateAgentState(AGENT_STATE _state, CString& Data)
- {
- switch(_state)
- {
- case AGENT_STATE_LOGING:
- Data = _T("登录中");
- break;
- case AGENT_STATE_FREE:
- Data = _T("空闲");
- break;
- case AGENT_STATE_BUSY:
- Data = _T("通话中");
- break;
- case AGENT_STATE_POST_PROCESSING:
- Data = _T("话后处理");
- break;
- case AGENT_STATE_REPOSE:
- Data = _T("小休");
- break;
- case AGENT_STATE_REQUESTED:
- Data = _T("被请求");
- break;
- case AGENT_STATE_LOGOUT:
- Data = _T("被请求");
- break;
- case AGENT_STATE_UNKNOWN:
- default:
- Data = _T("未知");
- break;
- }
- }
- /*****************************************************************
- **【函数名称】 __transStateAgentType
- **【函数功能】 翻译座席类型
- **【参数】
- **【返回值】
- *****************************************************************/
- void CAgentlList::__transStateAgentType(AGENT_TYPE _type, CString& Data)
- {
- switch(_type)
- {
- case AGENT_TYPE_NORMAL:
- Data = _T("普通");
- break;
- case AGENT_TYPE_MONITOR:
- Data = _T("普通班长");
- break;
- case AGENT_TYPE_NOQUEUE:
- Data = _T("非排队");
- break;
- case AGENT_TYPE_NORMAL_TEL:
- Data = _T("纯电话");
- break;
- case AGENT_TYPE_MONITOR_TEL:
- Data = _T("纯电话班长");
- break;
- default:
- ASSERT(FALSE);
- Data = _T("普通");
- break;
- }
- }
- /*****************************************************************
- **【函数名称】 __showTask
- **【函数功能】 显示任务
- **【参数】
- **【返回值】
- *****************************************************************/
- void CAgentlList::__showAgent(Agent2Show& Info)
- {
- CString Data;
- Data.Format(_T("%d"), Info.AgentId);
- InsertItem(0, Data);
- Data.Format(_T("%d"), Info.ExtId);
- SetItemText(0, 1, Data);
- SetItemText(0, 2, Info.GroupNo);
- Data = _T("");
- __transStateAgentType((AGENT_TYPE)Info.AgentType, Data);
- SetItemText(0, 3, Data);
- Data = _T("");
- __transStateAgentState((AGENT_STATE)Info.State, Data);
- SetItemText(0, 4, Data);
- SetItemData(0, Info.AgentId);
- }
- /*****************************************************************
- **【函数名称】 __updateTaskState
- **【函数功能】 更新任务
- **【参数】
- **【返回值】
- *****************************************************************/
- void CAgentlList::__updateAgentlState(int Item, Agent2Show& Info)
- {
- CString Data = _T("");
- /*Data.Format(_T("%d"), Info->ExtId);
- SetItemText(Item, 1, Data);
- Data = _T("");
- Data.Format(_T("%d"), Info.GroupNo);
- SetItemText(Item, 2, Data);
- __transStateAgentType((AGENT_TYPE)Info.AgentType, Data);
- SetItemText(Item, 3, Data);*/
- __transStateAgentState((AGENT_STATE)Info.State, Data);
- SetItemText(Item, 4, Data);
- }
- /*****************************************************************
- **【函数名称】 format
- **【函数功能】 格式化控件
- **【参数】
- **【返回值】
- *****************************************************************/
- void CAgentlList::format( void )
- {
- CRect mRect;
-
- GetClientRect(&mRect);
- int length = mRect.right - mRect.left;
- int perLength = length / 5;
-
- //加载日志列表
- SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
- InsertColumn(0, (LPCTSTR)_T("座席工号"), LVCFMT_LEFT, perLength, -1);
- InsertColumn(1, (LPCTSTR)_T("关联分机号"), LVCFMT_LEFT, perLength, -1);
- InsertColumn(2, (LPCTSTR)_T("座席组号"), LVCFMT_LEFT, perLength, -1);
- InsertColumn(3, (LPCTSTR)_T("座席类型"), LVCFMT_LEFT, perLength, -1);
- InsertColumn(4, (LPCTSTR)_T("座席状态"), LVCFMT_LEFT, perLength, -1);
- }
- /*****************************************************************
- **【函数名称】 onTaskStateUpdated
- **【函数功能】 任务状态变化处理函数
- **【参数】
- **【返回值】
- *****************************************************************/
- void CAgentlList::onAgentStateUpdated(UINT AgentNo)
- {
- Agent2Show Info;
- Info.AgentId = AgentNo;
- int Item = __indexItem(AgentNo);
- if(CAcdCore::GetInstance().getAgentOffice().getAgentInfo(Info))
- {
- if(Item != -1)
- __updateAgentlState(Item, Info);
- else
- __showAgent(Info);
- }
- else
- {
- if(Item != -1)
- DeleteItem(Item);
- }
- }
- /*****************************************************************
- **【函数名称】 onAgentLogout
- **【函数功能】 座席签出界面处理
- **【参数】
- **【返回值】
- *****************************************************************/
- void CAgentlList::onAgentLogout( UINT AgentNo )
- {
- int Item = __indexItem(AgentNo);
- if(Item != -1)
- DeleteItem(Item);
- }
- // CChannelList 消息处理程序
|