⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dsacd_ivrview.cpp

📁 dsacd_ivr 的实现
💻 CPP
📖 第 1 页 / 共 4 页
字号:
	pInfo->Content = "空";

	dsACDObjectBase * pObj = new dsACDDBConnect;
	pObj->Write(pInfo);
	g_MapObj.AddMapItem(hItem,pObj);
	m_bModified=TRUE;
}


void CDsACD_IVRView::OnOpeCharconvert() 
{
	HTREEITEM hItem = AddGeneralOperate(8) ;

	dsChar_INFO * pCharInfo = new dsChar_INFO;

	pCharInfo->Variable = "无变量";
	pCharInfo->Type = "无操作";
	pCharInfo->SubstrLength = 0;
	pCharInfo->SubstrPlace = 0;
	dsACDObjectBase * pObj = new dsACDConvert;
	pObj->Write(pCharInfo);
	g_MapObj.AddMapItem(hItem, pObj);
}

void CDsACD_IVRView::OnOpeDatatime() 
{
	HTREEITEM hItem = AddGeneralOperate(9) ;

	dsDT_INFO * pDTInfo = new dsDT_INFO;
	pDTInfo->Variable = "无变量";
	pDTInfo->Style = "系统日期";
	pDTInfo->Type = "无操作";

	dsACDObjectBase * pObj = new dsACDDateTime;
	pObj->Write(pDTInfo);
	g_MapObj.AddMapItem(hItem, pObj);
}

void CDsACD_IVRView::OnOpeDboperate() 
{
	HTREEITEM hItem = AddGeneralOperate(10) ;	

	dsDBOpe_INFO * pInfo = new dsDBOpe_INFO;
	pInfo->Name = "无数据库";
	pInfo->Type = "无操作";

	dsACDObjectBase * pObj = new dsACDDBOperate;
	pObj->Write(pInfo);
	g_MapObj.AddMapItem(hItem, pObj);
}

void CDsACD_IVRView::OnOpeFieldoperate() 
{
	HTREEITEM hItem = AddGeneralOperate(11) ;
	dsField_INFO * pInfo = new dsField_INFO;
	pInfo->Name = "无数据库";
	pInfo->Field = "空";
	pInfo->Variable = "无变量";

	dsACDObjectBase * pObj = new dsACDGetField;
	pObj->Write(pInfo);
	g_MapObj.AddMapItem(hItem, pObj);
}

void CDsACD_IVRView::OnOpeQuerycommand() 
{
	HTREEITEM hItem = AddGeneralOperate(12) ;	

	dsQC_INFO * pInfo = new dsQC_INFO;
	pInfo->Name = "无数据库";
	pInfo->Type = "自动匹配";
	pInfo->Content = "空";

	dsACDObjectBase * pObj = new dsACDQueryCommand;
	pObj->Write(pInfo);
	g_MapObj.AddMapItem(hItem, pObj);
}

void CDsACD_IVRView::OnOpeQueryparameter() 
{
	HTREEITEM hItem = AddGeneralOperate(13) ;	

	dsQP_INFO * pInfo = new dsQP_INFO;
	pInfo->Name = "无数据库";
	pInfo->Parameter = "空";
	pInfo->Value = "空";

	dsACDObjectBase * pObj = new dsACDQueryParameter;
	pObj->Write(pInfo);
	g_MapObj.AddMapItem(hItem, pObj);
}

void CDsACD_IVRView::OnOpeVaroperate() 
{
	HTREEITEM hItem = AddGeneralOperate(7) ;
	
	dsVO_INFO * pVOInfo = new dsVO_INFO;
	pVOInfo->Result = "无变量";
	pVOInfo->OpeType = "无操作";
	pVOInfo->DestVar = "空";
	pVOInfo->SrcVar = "空";

	dsACDObjectBase * pObj = new dsACDOperate;
	pObj->Write(pVOInfo);
	g_MapObj.AddMapItem(hItem, pObj);
}


void CDsACD_IVRView::OnFlowSwitch() 
{
	HTREEITEM hSelectedItem = m_TreeCtrl->GetSelectedItem();
	HTREEITEM hSelectedItemBackup = hSelectedItem;
	HTREEITEM hParentItem = m_TreeCtrl->GetParentItem(hSelectedItem);
	HTREEITEM hItem;

	if (NULL != hParentItem)
		hSelectedItem = hParentItem;

	if(m_hParent1 == hSelectedItem)
	{
		hItem = AddFlowSwitch(m_hParent2, TVI_LAST);
	}
	else if(m_hParent2 == hSelectedItem)
	{
		hItem = AddFlowSwitch(m_hParent2, m_TreeCtrl->GetSelectedItem());
	}
	else if(m_hParent3 == hSelectedItem)
	{
		hItem = AddFlowSwitch(m_hParent3, m_TreeCtrl->GetSelectedItem());
	}
	else
	{
		CString csItemName = m_TreeCtrl->GetItemText(hParentItem);
		if (csItemName.Left(8) == _T("条件控制") || csItemName.Left(8) == _T("多路分支"))
		{
			hItem = AddFlowSwitch(hSelectedItemBackup, TVI_FIRST);
		}
		else
		{
			hItem = AddFlowSwitch(hParentItem, m_TreeCtrl->GetSelectedItem());
		}
	}
	m_TreeCtrl->SelectItem(hItem);
}

void CDsACD_IVRView::OnFlowSign() 
{
	static int k= 0;
	k++;
	CString	csTemp;
	csTemp.Format("%s%d", "新标号位置", k);	

	CString csNewVariable = csTreeItems[20] + csTemp;

	HTREEITEM hItem = AddGeneralOperate(20);
	m_TreeCtrl->SetItemText(hItem, csNewVariable);

	dsSig_INFO * pSigInfo = new dsSig_INFO;
	pSigInfo->Name = csTemp;	
	dsACDObjectBase * pObj = new dsACDSign;
	pObj->Write(pSigInfo);
	g_MapObj.AddMapItem(hItem,pObj);
}

void CDsACD_IVRView::OnFlowRestart() 
{
	HTREEITEM hItem = AddGeneralOperate(23);	
	dsACDObjectBase * pObj = new dsACDRestart;
	g_MapObj.AddMapItem(hItem, pObj);
}

void CDsACD_IVRView::OnFlowMatch() 
{
	HTREEITEM hSelectedItem = m_TreeCtrl->GetSelectedItem();
	HTREEITEM hParentItem = m_TreeCtrl->GetParentItem(hSelectedItem);
	HTREEITEM hItem;

	CString csItemName = m_TreeCtrl->GetItemText(hParentItem);
	CString csItemName1 = m_TreeCtrl->GetItemText(hSelectedItem);

	if (csItemName.Left(8) == _T("多路分支"))
	{		
		if (csItemName1.Left(8) == _T("缺省匹配"))
		{
			HTREEITEM hPrevSiblingItem = m_TreeCtrl->GetPrevSiblingItem(hSelectedItem);
			if (hPrevSiblingItem == NULL)
				hItem = m_TreeCtrl->InsertItem (csTreeItems[17], 17, 17, hParentItem, TVI_FIRST);
			else
				hItem = m_TreeCtrl->InsertItem (csTreeItems[17], 17, 17, hParentItem, hPrevSiblingItem);
			m_TreeCtrl->Expand(hParentItem, TVE_EXPAND);
		}
		else
		{
			hItem = m_TreeCtrl->InsertItem (csTreeItems[17], 17, 17, hParentItem, hSelectedItem);
			m_TreeCtrl->Expand(hParentItem, TVE_EXPAND);
		}
	}
	else if (csItemName1.Left(8) == _T("多路分支"))		
	{
		hItem = m_TreeCtrl->InsertItem (csTreeItems[17], 17, 17, hSelectedItem, TVI_FIRST);
		m_TreeCtrl->Expand(hSelectedItem, TVE_EXPAND);
	}

	dsMM_INFO * pMMInfo = new dsMM_INFO;
	dsACDObjectBase * pObj = new dsACDMatch;
	pObj->Write(pMMInfo);
	g_MapObj.AddMapItem(hItem, pObj);

	m_TreeCtrl->SelectItem(hItem);
	m_bModified=TRUE;
}

void CDsACD_IVRView::OnFlowJump() 
{
	HTREEITEM hItem = AddGeneralOperate(21);
	dsJmp_INFO * pJmpInfo = new dsJmp_INFO;
	pJmpInfo->SignPos = "无标号位置";
	dsACDObjectBase * pObj = new dsACDJump;
	pObj->Write(pJmpInfo);
	g_MapObj.AddMapItem(hItem, pObj);
}

void CDsACD_IVRView::OnFlowFunction() 
{
	HTREEITEM hItem = AddGeneralOperate(19);
	dsFun_INFO * pFunInfo = new dsFun_INFO;
	dsACDObjectBase * pObj = new dsACDFunction;
	pObj->Write(pFunInfo);
	g_MapObj.AddMapItem(hItem, pObj);
}

void CDsACD_IVRView::OnFlowEnd() 
{
	HTREEITEM hItem = AddGeneralOperate(22);	
	dsACDObjectBase * pObj = new dsACDEndFlow;
	g_MapObj.AddMapItem(hItem, pObj);
}

void CDsACD_IVRView::OnFlowCondition() 
{
	HTREEITEM hSelectedItem = m_TreeCtrl->GetSelectedItem();
	HTREEITEM hSelectedItemBackup = hSelectedItem;
	HTREEITEM hParentItem = m_TreeCtrl->GetParentItem(hSelectedItem);
	HTREEITEM hItem;

	if (NULL != hParentItem)
		hSelectedItem = hParentItem;

	if(m_hParent1 == hSelectedItem)
	{
		hItem = AddFlowCondition(m_hParent2, TVI_LAST);
	}
	else if(m_hParent2 == hSelectedItem)
	{
		hItem = AddFlowCondition(m_hParent2, m_TreeCtrl->GetSelectedItem());
	}
	else if(m_hParent3 == hSelectedItem)
	{
		hItem = AddFlowCondition(m_hParent3, m_TreeCtrl->GetSelectedItem());
	}
	else
	{
		CString csItemName = m_TreeCtrl->GetItemText(hParentItem);
		if (csItemName.Left(8) == _T("条件控制") || csItemName.Left(8) == _T("多路分支"))
		{
			hItem = AddFlowCondition(hSelectedItemBackup, TVI_FIRST);
		}
		else
		{
			hItem = AddFlowCondition(hParentItem, m_TreeCtrl->GetSelectedItem());
		}
	}
	m_TreeCtrl->SelectItem(hItem);
}

void CDsACD_IVRView::OnFlowCirculate() 
{
	HTREEITEM hItem = AddGeneralOperate(18);
	dsCir_INFO * pCirInfo = new dsCir_INFO;
	dsACDObjectBase * pObj = new dsACDCirculate;
	pObj->Write(pCirInfo);
	g_MapObj.AddMapItem(hItem, pObj);
}


void CDsACD_IVRView::OnACDAssigntoACDgroup() 
{
	AddGeneralOperate(32);
}

void CDsACD_IVRView::OnACDAssigntoAgent() 
{
	AddGeneralOperate(31);
}

void CDsACD_IVRView::OnACDFindEmptyAgent() 
{
	AddGeneralOperate(29);
}

void CDsACD_IVRView::OnACDFindRecentAgent() 
{
	AddGeneralOperate(30);
}

void CDsACD_IVRView::OnACDGetCalledInfo() 
{
	AddGeneralOperate(27);
}

void CDsACD_IVRView::OnACDGetCallerID() 
{
	AddGeneralOperate(25);
}

void CDsACD_IVRView::OnACDGetCallerInfo() 
{
	AddGeneralOperate(26);
}

void CDsACD_IVRView::OnACDQueueCall() 
{
	AddGeneralOperate(24);
}

void CDsACD_IVRView::OnACDSetPriority() 
{
	AddGeneralOperate(28);
}


void CDsACD_IVRView::OnIVRCall() 
{
	AddGeneralOperate(35);
}

void CDsACD_IVRView::OnIVRPlay() 
{
	AddGeneralOperate(36);
}

void CDsACD_IVRView::OnIVRReceiveCode() 
{
	AddGeneralOperate(38);
}

void CDsACD_IVRView::OnIVRRecord() 
{
	AddGeneralOperate(37);
}

void CDsACD_IVRView::OnIVRResponse() 
{
	AddGeneralOperate(34);	
}

void CDsACD_IVRView::OnIVRRing() 
{
	AddGeneralOperate(33);	
}

void CDsACD_IVRView::OnIVRSendCode() 
{
	AddGeneralOperate(39);
}

void CDsACD_IVRView::OnIVRSuspend() 
{
	AddGeneralOperate(40);
}

/*******************************************************************
AddItem()
	Helper Function for adding an item to the tree control
********************************************************************/

HTREEITEM CDsACD_IVRView::AddItem( 
	HTREEITEM hParent, 
	CString csItemName, 
	HTREEITEM hInsAfter, 
	int iSelImage , 
	int iNonSelImage, 
	long lParam
)
{
	HTREEITEM hItem;
	TV_ITEM tvItem;
	TV_INSERTSTRUCT tvIns;

	tvItem.mask = TVIF_TEXT | TVIF_PARAM | TVIF_IMAGE|TVIF_SELECTEDIMAGE;
	int nLength = csItemName.GetLength() ;
	tvItem.pszText = csItemName.GetBuffer(nLength);
	tvItem.cchTextMax = nLength;
	tvItem.lParam = lParam;

	tvItem.iImage = iNonSelImage;
	tvItem.iSelectedImage = iSelImage;
	
	tvIns.item = tvItem;
	tvIns.hInsertAfter = hInsAfter;
	tvIns.hParent = hParent;
	
	hItem = m_TreeCtrl->InsertItem(&tvIns);
	m_bModified=TRUE;
	
	return (hItem);
}

/*******************************************************************
OnBegindrag()
	Called when drag operation begins
********************************************************************/
void CDsACD_IVRView::OnBegindrag(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;

	HTREEITEM hTSelItem = pNMTreeView->itemNew.hItem;
	// Highlight selected item
	m_TreeCtrl->SelectItem(hTSelItem);
	m_TreeCtrl->Select(hTSelItem, TVGN_DROPHILITE);
	
	COleDataSource *poleSourceObj = new COleDataSource ;
	CTreeDropTarget::m_shWndTreeCtrl = m_hWnd;
	// Begin Drag operation
	DROPEFFECT dropeffect = poleSourceObj->DoDragDrop();
	// Remove the highlighting
	SendMessage(TVM_SELECTITEM, TVGN_DROPHILITE,0);
	// If user is moving item by pressing Shift, delete selected item
	if ( dropeffect == DROPEFFECT_MOVE )		//by 郭建国
	{		
		m_TreeCtrl->DeleteItem(hTSelItem); 
		m_bModified=TRUE;
	}
	delete poleSourceObj;
	
	*pResult = 0;
}

void CDsACD_IVRView::OnRButtonDown(UINT nFlags, CPoint point) 
{
	CMenu popMenu;
	CMenu *pMenu;
	POINT pt;

	::GetCursorPos((LPPOINT)&pt);
	ScreenToClient(&pt);
	ClientToScreen (&pt);

	popMenu.LoadMenu(IDR_POP_MENU);

	HTREEITEM hSelectedItem = m_TreeCtrl->GetSelectedItem();
	CString csItemName = m_TreeCtrl->GetItemText(hSelectedItem);
	if (csItemName.Left(8) == _T("数据定义") || csItemName.Left(6) == _T("返回值")
		|| csItemName.Left(8) == _T("流程开始") || csItemName.Left(8) == _T("流程结束")
		|| csItemName.Left(8) == _T("条件为真") || csItemName.Left(8) == _T("条件为假")

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -