www.gusucode.com > VC++开发的ACD树形策略编辑器-源码程序 > VC++开发的ACD树形策略编辑器-源码程序/code/VarOperate.cpp

    //Download by http://www.NewXing.com
// VarOperate.cpp : implementation file
//

#include "stdafx.h"
#include "dsACD_IVR.h"
#include "VarOperate.h"
#include "ReturnValue.h"

#include "dsACD_IVRDoc.h"
#include "dsACD_IVRView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CVarOperate dialog


CVarOperate::CVarOperate(CWnd* pParent /*=NULL*/)
	: CDialog(CVarOperate::IDD, pParent)
{
	//{{AFX_DATA_INIT(CVarOperate)
	m_csDestVar = _T("");
	m_csOpeType = _T("");
	m_csResult = _T("");
	m_csSrcVar = _T("");
	m_csComment = _T("");
	//}}AFX_DATA_INIT
}


void CVarOperate::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CVarOperate)
	DDX_CBString(pDX, IDC_DESTVAR, m_csDestVar);
	DDX_CBString(pDX, IDC_OPETYPE, m_csOpeType);
	DDX_CBString(pDX, IDC_RESULTVAR, m_csResult);
	DDX_CBString(pDX, IDC_SRCVAR, m_csSrcVar);
	DDX_Text(pDX, IDC_VARCOMMENT, m_csComment);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CVarOperate, CDialog)
	//{{AFX_MSG_MAP(CVarOperate)
	ON_BN_CLICKED(IDC_VAR_RETURN, OnVarReturn)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CVarOperate message handlers

BOOL CVarOperate::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	CComboBox *pResult=(CComboBox *)GetDlgItem(IDC_RESULTVAR);
	CComboBox *pOpeType=(CComboBox *)GetDlgItem(IDC_OPETYPE);
	CComboBox *pDestVar=(CComboBox *)GetDlgItem(IDC_DESTVAR);
	CComboBox *pSrcVar=(CComboBox *)GetDlgItem(IDC_SRCVAR);

	CString buf, csNameString;
	m_pDsACD_IVRView->ReadVariable(buf);
	while (!buf.IsEmpty())
	{
		csNameString = buf.Left(buf.Find(";" ));
		pResult->AddString(csNameString);
		pDestVar->AddString(csNameString);
		pSrcVar->AddString(csNameString);
		buf.Delete(0, buf.Find(";" )+1);
	}

	int nIndex;

	nIndex = pResult->SelectString(-1, m_csResult);
	pResult->SetCurSel(nIndex);

	nIndex = pOpeType->SelectString(-1, m_csOpeType);
	pOpeType->SetCurSel(nIndex);

//	nIndex = pDestVar->SelectString(-1, m_csDestVar);
//	pDestVar->SetCurSel(nIndex);

	nIndex = pSrcVar->SelectString(-1, m_csSrcVar);
	pSrcVar->SetCurSel(nIndex);

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CVarOperate::DisplayDlg(dsACDObjectBase *pObj)
{
	dsVO_INFO * pVOInfo = (dsVO_INFO*) pObj->Read();

	m_csResult = pVOInfo->Result;
	m_csOpeType = pVOInfo->OpeType;
	m_csDestVar = pVOInfo->DestVar;
	m_csSrcVar = pVOInfo->SrcVar;
	m_csComment = pVOInfo->Comment;

	if(DoModal()==IDOK)
	{
		if (m_csResult == "")
			m_csResult = "无变量";
		if (m_csOpeType == "")
			m_csOpeType = "无操作";
		if (m_csDestVar == "")
			m_csDestVar = "空";
		if (m_csSrcVar == "")
			m_csSrcVar = "空";

		pVOInfo->Result = m_csResult;
		pVOInfo->OpeType = m_csOpeType;
		pVOInfo->DestVar = m_csDestVar;
		pVOInfo->SrcVar = m_csSrcVar;
		pVOInfo->Comment = m_csComment;
	}
	else 
		return;
}

void CVarOperate::OnVarReturn() 
{
	CReturnValue returnvalue;
	if(returnvalue.DoModal()!=IDOK) return ;
	m_csDestVar = "“" + returnvalue.m_csReturn + "”";
	UpdateData(FALSE);	
}