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

    //Download by http://www.NewXing.com
// dsACDObject.cpp: implementation of the dsACDObject class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "dsACD_IVR.h"
#include "dsACDStruct.h"
#include "dsACDObject.h"

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

//////////////////////////////////////////////////////////////////////
/********************************************************************************
*						以下为链表结构中的操作          
/********************************************************************************/
void dsMapHTreeToObj::AddMapItem(HTREEITEM h, dsACDObjectBase *pObj)
{
	if (pListHead == NULL)
	{
		pListHead = pListTail = new ListMapItem;
		pListHead->hTree = h;
		pListHead->pACDObj = pObj;
		pListHead->pListNext =NULL;
	}
	else
	{
		ListMapItem *pTemp = new ListMapItem;
		pTemp->hTree = h;
		pTemp->pACDObj = pObj;
		pTemp->pListNext = NULL;

		pListTail->pListNext = pTemp;
		pListTail = pTemp;
	}
}

dsMapHTreeToObj::ListMapItem * dsMapHTreeToObj::Find(HTREEITEM h)
{
	ListMapItem * pTemp = pListHead;
	for (; pTemp != NULL; pTemp = pTemp->pListNext)
	{
		if (pTemp->hTree == h)
		{
			return pTemp;
		}
	}
	return NULL;
}

dsMapHTreeToObj::ListMapItem * dsMapHTreeToObj::GetPreItem(ListMapItem * pItem)
{
	ListMapItem * pTemp = pListHead;
	if (pItem == pListHead)
		return NULL;
	for (; pTemp!= NULL && (pTemp->pListNext)!= pItem; pTemp = pTemp->pListNext);
	return pTemp;
}

void dsMapHTreeToObj::RemoveMapItem(HTREEITEM h)
{
	ListMapItem * pTemp = Find(h);
	if (pTemp != NULL)
	{
		if (pTemp == pListHead)
		{
			if (pListTail == pListHead)
			{	
				delete pTemp->pACDObj; 
				delete pTemp;
				pListTail = pListHead = NULL;
			}
			else
			{
				pListHead = pListHead->pListNext;
				delete pTemp->pACDObj; 
				delete pTemp;
			}
		}
		else if (pTemp == pListTail)
		{
			ListMapItem * pPreTemp = GetPreItem(pTemp);
			pListTail = pPreTemp;
			pListTail->pListNext = NULL;
			delete pTemp->pACDObj; 
			delete pTemp;
		}
		else 
		{
			ListMapItem * pPreTemp = GetPreItem(pTemp);
			pPreTemp->pListNext = pTemp->pListNext;
			delete pTemp->pACDObj; 
			delete pTemp;
		}
	}
}

void  dsMapHTreeToObj::RemoveAllListItem()
{
	while (pListHead != NULL)
	{
		ListMapItem *pTemp = pListHead;
		pListHead = pListHead->pListNext;
		delete pTemp->pACDObj; 
		delete pTemp;		
	}
}

void dsMapHTreeToObj::SetAt(HTREEITEM h, dsACDObjectBase * pObj)
{
	ListMapItem * pTemp = Find(h);
	if (pTemp != NULL)
	{
		delete pTemp->pACDObj;
		pTemp->pACDObj = pObj;
	}
}

void dsMapHTreeToObj::SetTreeItem(HTREEITEM hOldTree, HTREEITEM hNewTree)
{
	ListMapItem * pTemp = Find(hOldTree);
	if (pTemp != NULL)
		pTemp->hTree = hNewTree;
}

dsACDObjectBase * dsMapHTreeToObj::FindObj(HTREEITEM h)
{
	ListMapItem * pTemp = Find(h);
	if (pTemp != NULL)
		return pTemp->pACDObj;
	return NULL;
}

/********************************************************************************
*						以下为具体语句中的文件操作          
/********************************************************************************/

//	四条框架语句中的写文件
void dsACDDataDefine::WritetoFile (CStdioFile& m_IOFile, int flag)
{
	m_IOFile.WriteString( "[DataDefine]\n");

	CString str;
	str.Format("%x",nID);
	m_IOFile.WriteString(str + ":");

	str.Format("%d",flag);
	m_IOFile.WriteString( "Flag=" + str + ";\n");
}

void dsACDReturnValue::WritetoFile (CStdioFile& m_IOFile, int flag)
{
	CString str;
	str.Format("%x",nID);
	m_IOFile.WriteString(str + ":");

	str.Format("%d",flag);
	m_IOFile.WriteString( "Flag=" + str + ";\n");
}

void dsACDFlowBegin::WritetoFile (CStdioFile& m_IOFile, int flag)
{
	m_IOFile.WriteString( "[FlowBegin]\n");

	CString str;
	str.Format("%x",nID);
	m_IOFile.WriteString(str + ":");

	str.Format("%d",flag);
	m_IOFile.WriteString( "Flag=" + str + ";\n");
}

void dsACDFlowEnd::WritetoFile (CStdioFile& m_IOFile, int flag)
{
	m_IOFile.WriteString( "[FlowEnd]\n");

	CString str;
	str.Format("%x",nID);
	m_IOFile.WriteString(str + ":");

	str.Format("%d",flag);	
	m_IOFile.WriteString( "Flag=" + str + ";\n");
}

//	变量定义语句中的文件读写
void dsACDObjVariable::WritetoFile (CStdioFile& m_IOFile, int flag)
{
	CString str;
	str.Format("%x",nID);
	m_IOFile.WriteString( str + ":" );

	str.Format("%d",flag);		
	m_IOFile.WriteString( "Flag=" + str + ";");

	m_IOFile.WriteString( "Name=" + pInfo->Name + ";");
	m_IOFile.WriteString( "Value=" + pInfo->Value + ";");
	m_IOFile.WriteString( "Comment=" + pInfo->Comment + "\n");
}
void dsACDObjVariable::ReadformFile(const CString &buf, dsVD_INFO *pInfo, CString &csItemText)
{
	pInfo->Name = buf.Mid(buf.Find("Name")+5, buf.Find("Value")-buf.Find("Name")-6);
	pInfo->Value = buf.Mid(buf.Find("Value")+6, buf.Find("Comment")-buf.Find("Value")-7);
	pInfo->Comment = buf.Right(buf.GetLength()-buf.Find("Comment")-8);

	if ((pInfo->Value == "")&&(pInfo->Comment == ""))
		csItemText = "变量定义:" + pInfo->Name ;
	else if (pInfo->Value == "")
		csItemText = "变量定义:" + pInfo->Name  + " {" + pInfo->Comment + "}";
	else if (pInfo->Comment == "")
		csItemText = "变量定义:" + pInfo->Name  + " 初值 " +pInfo->Value;
	else
		csItemText = "变量定义:" + pInfo->Name  + " 初值 " +pInfo->Value + " {" + pInfo->Comment + "}";
}

//	数据分类语句中的文件读写
void dsACDObjDataSort::WritetoFile (CStdioFile& m_IOFile, int flag)
{
	CString str;
	str.Format("%x",nID);
	m_IOFile.WriteString( str + ":" );

	str.Format("%d",flag);		
	m_IOFile.WriteString( "Flag=" + str + ";");

	m_IOFile.WriteString( "Comment=" + pInfo->Comment + "\n");
}
void dsACDObjDataSort::ReadformFile(const CString &buf, dsDS_INFO *pInfo, CString &csItemText)
{
	pInfo->Comment = buf.Right(buf.GetLength()-buf.Find("Comment")-8);

	if (pInfo->Comment == "")
		csItemText = "数据分类";
	else
		csItemText = "数据分类 {" + pInfo->Comment + "}";
}

//	数据库连接语句中的文件读写
void dsACDDBConnect::WritetoFile (CStdioFile& m_IOFile, int flag)
{
	CString str;
	str.Format("%x",nID);
	m_IOFile.WriteString( str + ":" );

	str.Format("%d",flag);		
	m_IOFile.WriteString( "Flag=" + str + ";");

	m_IOFile.WriteString( "DB_NAME=" + pInfo->Name + ";");
	m_IOFile.WriteString( "DB_LINK=" + pInfo->Link + ";");
	m_IOFile.WriteString( "CMD_TYPE=" + pInfo->Type + ";");
	m_IOFile.WriteString( "CMD_CONTENT=" + pInfo->Content + ";");
	m_IOFile.WriteString( "DB_COMMENT=" + pInfo->Comment + "\n");
}
void dsACDDBConnect::ReadformFile(const CString &buf, dsDBConn_INFO *pInfo, CString &csItemText)
{
	pInfo->Name = buf.Mid(buf.Find("DB_NAME")+8, buf.Find("DB_LINK")-buf.Find("DB_NAME")-9);
	pInfo->Link = buf.Mid(buf.Find("DB_LINK")+8, buf.Find("CMD_TYPE")-buf.Find("DB_LINK")-9);
	pInfo->Type = buf.Mid(buf.Find("CMD_TYPE")+9, buf.Find("CMD_CONTENT")-buf.Find("CMD_TYPE")-10);
	pInfo->Content = buf.Mid(buf.Find("CMD_CONTENT")+12, buf.Find("DB_COMMENT")-buf.Find("CMD_CONTENT")-13);
	pInfo->Comment = buf.Right(buf.GetLength()-buf.Find("DB_COMMENT")-11);

	if (pInfo->Comment != "")
		csItemText = "数据库连接:" + pInfo->Name + " " + pInfo->Type + " " + pInfo->Content + " {" + pInfo->Comment + "}";
	else 
		csItemText = "数据库连接:" + pInfo->Name + " " + pInfo->Type + " " + pInfo->Content;
}

//	条件控制语句中的文件读写
void dsACDConControl::WritetoFile (CStdioFile& m_IOFile, int flag)
{
	CString str;
	str.Format("%x",nID);
	m_IOFile.WriteString( str + ":" );

	str.Format("%d",flag);		
	m_IOFile.WriteString( "Flag=" + str + ";");

	m_IOFile.WriteString( "Condition=" + pInfo->Condition + ";");
	m_IOFile.WriteString( "Comment=" + pInfo->Comment + "\n");
}
void dsACDConControl::ReadformFile(const CString &buf, dsCC_INFO *pInfo, CString &csItemText)
{
	pInfo->Condition = buf.Mid(buf.Find("Condition")+10, buf.Find("Comment")-buf.Find("Condition")-11);
	pInfo->Comment = buf.Right(buf.GetLength()-buf.Find("Comment")-8);

	if ((pInfo->Condition == "")&&(pInfo->Comment == ""))
		csItemText = "条件控制: 空" ;
	else if (pInfo->Condition == "")
		csItemText = "条件控制: 空 {" + pInfo->Comment + "}";
	else if (pInfo->Comment == "")
		csItemText = "条件控制: " + pInfo->Condition;
	else
		csItemText = "条件控制: " + pInfo->Condition + " {" + pInfo->Comment + "}";
}
void dsACDConTrue::WritetoFile (CStdioFile& m_IOFile, int flag)
{
	CString str;
	str.Format("%x",nID);
	m_IOFile.WriteString(str + ":");

	str.Format("%d",flag);
	m_IOFile.WriteString( "Flag=" + str + ";\n");
}
void dsACDConFalse::WritetoFile (CStdioFile& m_IOFile, int flag)
{
	CString str;
	str.Format("%x",nID);
	m_IOFile.WriteString(str + ":");

	str.Format("%d",flag);
	m_IOFile.WriteString( "Flag=" + str + ";\n");
}

//	多路分支语句中的文件读写
void dsACDSwitch::WritetoFile (CStdioFile& m_IOFile, int flag)
{
	CString str;
	str.Format("%x",nID);
	m_IOFile.WriteString( str + ":" );

	str.Format("%d",flag);		
	m_IOFile.WriteString( "Flag=" + str + ";");

	m_IOFile.WriteString( "Condition=" + pInfo->Condition + ";");
	m_IOFile.WriteString( "Comment=" + pInfo->Comment + "\n");
}
void dsACDSwitch::ReadformFile(const CString &buf, dsSM_INFO *pInfo, CString &csItemText)
{
	pInfo->Condition = buf.Mid(buf.Find("Condition")+10, buf.Find("Comment")-buf.Find("Condition")-11);
	pInfo->Comment = buf.Right(buf.GetLength()-buf.Find("Comment")-8);

	if ((pInfo->Condition == "")&&(pInfo->Comment == ""))
		csItemText = "多路分支: 空" ;
	else if (pInfo->Condition == "")
		csItemText = "多路分支: 空 {" + pInfo->Comment + "}";
	else if (pInfo->Comment == "")
		csItemText = "多路分支: " + pInfo->Condition;
	else
		csItemText = "多路分支: " + pInfo->Condition + " {" + pInfo->Comment + "}";
}
void dsACDDefaultMatch::WritetoFile (CStdioFile& m_IOFile, int flag)
{
	CString str;
	str.Format("%x",nID);
	m_IOFile.WriteString(str + ":");

	str.Format("%d",flag);
	m_IOFile.WriteString( "Flag=" + str + ";\n");
}

//	分支匹配语句中的文件读写
void dsACDMatch::WritetoFile (CStdioFile& m_IOFile, int flag)
{
	CString str;
	str.Format("%x",nID);
	m_IOFile.WriteString( str + ":" );

	str.Format("%d",flag);		
	m_IOFile.WriteString( "Flag=" + str + ";");

	m_IOFile.WriteString( "Condition=" + pInfo->Condition + ";");
	m_IOFile.WriteString( "Comment=" + pInfo->Comment + "\n");
}
void dsACDMatch::ReadformFile(const CString &buf, dsMM_INFO *pInfo, CString &csItemText)
{
	pInfo->Condition = buf.Mid(buf.Find("Condition")+10, buf.Find("Comment")-buf.Find("Condition")-11);
	pInfo->Comment = buf.Right(buf.GetLength()-buf.Find("Comment")-8);

	if ((pInfo->Condition == "")&&(pInfo->Comment == ""))
		csItemText = "分支匹配: 空" ;
	else if (pInfo->Condition == "")
		csItemText = "分支匹配: 空 {" + pInfo->Comment + "}";
	else if (pInfo->Comment == "")
		csItemText = "分支匹配: " + pInfo->Condition;
	else
		csItemText = "分支匹配: " + pInfo->Condition + " {" + pInfo->Comment + "}";
}

//	循环控制语句中的文件读写
void dsACDCirculate::WritetoFile (CStdioFile& m_IOFile, int flag)
{
	CString str;
	str.Format("%x",nID);
	m_IOFile.WriteString( str + ":" );

	str.Format("%d",flag);		
	m_IOFile.WriteString( "Flag=" + str + ";");

	m_IOFile.WriteString( "Condition=" + pInfo->Condition + ";");
	m_IOFile.WriteString( "Comment=" + pInfo->Comment + "\n");
}
void dsACDCirculate::ReadformFile(const CString &buf, dsCir_INFO *pInfo, CString &csItemText)
{
	pInfo->Condition = buf.Mid(buf.Find("Condition")+10, buf.Find("Comment")-buf.Find("Condition")-11);
	pInfo->Comment = buf.Right(buf.GetLength()-buf.Find("Comment")-8);

	if ((pInfo->Condition == "")&&(pInfo->Comment == ""))
		csItemText = "循环控制: 空" ;
	else if (pInfo->Condition == "")
		csItemText = "循环控制: 空 {" + pInfo->Comment + "}";
	else if (pInfo->Comment == "")
		csItemText = "循环控制: " + pInfo->Condition;
	else
		csItemText = "循环控制: " + pInfo->Condition + " {" + pInfo->Comment + "}";
}

//	程序块语句中的文件读写
void dsACDFunction::WritetoFile (CStdioFile& m_IOFile, int flag)
{
	CString str;
	str.Format("%x",nID);
	m_IOFile.WriteString( str + ":" );

	str.Format("%d",flag);		
	m_IOFile.WriteString( "Flag=" + str + ";");

	m_IOFile.WriteString( "Comment=" + pInfo->Comment + "\n");
}
void dsACDFunction::ReadformFile(const CString &buf, dsFun_INFO *pInfo, CString &csItemText)
{
	pInfo->Comment = buf.Right(buf.GetLength()-buf.Find("Comment")-8);

	if (pInfo->Comment == "")
		csItemText = "程序块";
	else
		csItemText = "程序块 {" + pInfo->Comment + "}";
}

//	标号位置语句中的文件读写
void dsACDSign::WritetoFile (CStdioFile& m_IOFile, int flag)
{
	CString str;
	str.Format("%x",nID);
	m_IOFile.WriteString( str + ":" );

	str.Format("%d",flag);		
	m_IOFile.WriteString( "Flag=" + str + ";");

	m_IOFile.WriteString( "Name=" + pInfo->Name + ";");
	m_IOFile.WriteString( "Comment=" + pInfo->Comment + "\n");
}
void dsACDSign::ReadformFile(const CString &buf, dsSig_INFO *pInfo, CString &csItemText)
{
	pInfo->Name = buf.Mid(buf.Find("Name")+5, buf.Find("Comment")-buf.Find("Name")-6);
	pInfo->Comment = buf.Right(buf.GetLength()-buf.Find("Comment")-8);

	if (pInfo->Comment == "")
		csItemText = "标号位置:" + pInfo->Name ;
	else
		csItemText = "标号位置:" + pInfo->Name + " {" + pInfo->Comment + "}";
}

//	跳转语句中的文件读写
void dsACDJump::WritetoFile (CStdioFile& m_IOFile, int flag)
{
	CString str;
	str.Format("%x",nID);
	m_IOFile.WriteString( str + ":" );

	str.Format("%d",flag);		
	m_IOFile.WriteString( "Flag=" + str + ";");

	m_IOFile.WriteString( "SignPos=" + pInfo->SignPos + ";");
	m_IOFile.WriteString( "Comment=" + pInfo->Comment + "\n");
}
void dsACDJump::ReadformFile(const CString &buf, dsJmp_INFO *pInfo, CString &csItemText)
{
	pInfo->SignPos = buf.Mid(buf.Find("SignPos")+8, buf.Find("Comment")-buf.Find("SignPos")-9);
	pInfo->Comment = buf.Right(buf.GetLength()-buf.Find("Comment")-8);

	if (pInfo->Comment == "")
		csItemText = "跳转语句:" + pInfo->SignPos ;
	else
		csItemText = "跳转语句:" + pInfo->SignPos + " {" + pInfo->Comment + "}";
}

//	结束流程语句中的写文件操作
void dsACDEndFlow::WritetoFile (CStdioFile& m_IOFile, int flag)
{
	CString str;
	str.Format("%x",nID);
	m_IOFile.WriteString(str + ":");

	str.Format("%d",flag);
	m_IOFile.WriteString( "Flag=" + str + ";\n");
}

//	重新开始语句中的写文件操作
void dsACDRestart::WritetoFile (CStdioFile& m_IOFile, int flag)
{
	CString str;
	str.Format("%x",nID);
	m_IOFile.WriteString(str + ":");

	str.Format("%d",flag);
	m_IOFile.WriteString( "Flag=" + str + ";\n");
}

//	变量运算语句中的文件读写
void dsACDOperate::WritetoFile (CStdioFile& m_IOFile, int flag)
{
	CString str;
	str.Format("%x",nID);
	m_IOFile.WriteString( str + ":" );

	str.Format("%d",flag);		
	m_IOFile.WriteString( "Flag=" + str + ";");

	m_IOFile.WriteString( "Result=" + pInfo->Result + ";");
	m_IOFile.WriteString( "OpeType=" + pInfo->OpeType + ";");
	m_IOFile.WriteString( "DestVar=" + pInfo->DestVar + ";");
	m_IOFile.WriteString( "SrcVar=" + pInfo->SrcVar + ";");
	m_IOFile.WriteString( "Comment=" + pInfo->Comment + "\n");
}
void dsACDOperate::ReadformFile(const CString &buf, dsVO_INFO *pInfo, CString &csItemText)
{
	pInfo->Result = buf.Mid(buf.Find("Result")+7, buf.Find("OpeType")-buf.Find("Result")-8);
	pInfo->OpeType = buf.Mid(buf.Find("OpeType")+8, buf.Find("DestVar")-buf.Find("OpeType")-9);
	pInfo->DestVar = buf.Mid(buf.Find("DestVar")+8, buf.Find("SrcVar")-buf.Find("DestVar")-9);
	pInfo->SrcVar = buf.Mid(buf.Find("SrcVar")+7, buf.Find("Comment")-buf.Find("SrcVar")-8);
	pInfo->Comment = buf.Right(buf.GetLength()-buf.Find("Comment")-8);

	if (pInfo->Comment != "")
		csItemText = "变量运算:" + pInfo->Result + " = " + pInfo->DestVar + " " + pInfo->OpeType + " " + pInfo->SrcVar + " {" + pInfo->Comment + "}";
	else 
		csItemText = "变量运算:" + pInfo->Result + " = " + pInfo->DestVar + " " + pInfo->OpeType + " " + pInfo->SrcVar;
}

//	文字转换语句中的文件读写
void dsACDConvert::WritetoFile (CStdioFile& m_IOFile, int flag)
{
	CString str;
	str.Format("%x",nID);
	m_IOFile.WriteString( str + ":" );

	str.Format("%d",flag);		
	m_IOFile.WriteString( "Flag=" + str + ";");

	m_IOFile.WriteString( "Variable=" + pInfo->Variable + ";");
	m_IOFile.WriteString( "Type=" + pInfo->Type + ";");

	str.Format("%d",pInfo->SubstrPlace);
	m_IOFile.WriteString( "SubstrPlace=" + str + ";");

	str.Format("%d",pInfo->SubstrLength);
	m_IOFile.WriteString( "SubstrLength=" + str + ";");

	m_IOFile.WriteString( "Comment=" + pInfo->Comment + "\n");
}
void dsACDConvert::ReadformFile(const CString &buf, dsChar_INFO *pInfo, CString &csItemText)
{
	pInfo->Variable = buf.Mid(buf.Find("Variable")+9, buf.Find("Type")-buf.Find("Variable")-10);
	pInfo->Type = buf.Mid(buf.Find("Type")+5, buf.Find("SubstrPlace")-buf.Find("Type")-6);
	pInfo->SubstrPlace = atoi(buf.Mid(buf.Find("SubstrPlace")+12, buf.Find("SubstrLength")-buf.Find("SubstrPlace")-13));
	pInfo->SubstrLength = atoi(buf.Mid(buf.Find("SubstrLength")+13, buf.Find("Comment")-buf.Find("SubstrLength")-14));
	pInfo->Comment = buf.Right(buf.GetLength()-buf.Find("Comment")-8);

	CString str1, str2;
	if (pInfo->Type != "取子串(部分文字)")
	{
		str1 = "";	str2 = "";
	}
	else
	{
		str1.Format("%d",pInfo->SubstrPlace);
		str2.Format("%d",pInfo->SubstrLength);
	}

	if (pInfo->Comment != "")
		csItemText = "文字转换:" + pInfo->Variable + " " + pInfo->Type + " " + str1 + " " + str2 + " {" + pInfo->Comment + "}";
	else 
		csItemText = "文字转换:" + pInfo->Variable + " " + pInfo->Type + " " + str1 + " " + str2;
}

//	日期时间语句中的文件读写
void dsACDDateTime::WritetoFile (CStdioFile& m_IOFile, int flag)
{
	CString str;
	str.Format("%x",nID);
	m_IOFile.WriteString( str + ":" );

	str.Format("%d",flag);		
	m_IOFile.WriteString( "Flag=" + str + ";");

	m_IOFile.WriteString( "Variable=" + pInfo->Variable + ";");
	m_IOFile.WriteString( "Style=" + pInfo->Style + ";");
	m_IOFile.WriteString( "Type=" + pInfo->Type + ";");
	m_IOFile.WriteString( "Comment=" + pInfo->Comment + "\n");
}
void dsACDDateTime::ReadformFile(const CString &buf, dsDT_INFO *pInfo, CString &csItemText)
{
	pInfo->Variable = buf.Mid(buf.Find("Variable")+9, buf.Find("Style")-buf.Find("Variable")-10);
	pInfo->Style = buf.Mid(buf.Find("Style")+6, buf.Find("Type")-buf.Find("Style")-7);
	pInfo->Type = buf.Mid(buf.Find("Type")+5, buf.Find("Comment")-buf.Find("Type")-6);
	pInfo->Comment = buf.Right(buf.GetLength()-buf.Find("Comment")-8);

	if (pInfo->Comment != "")
		csItemText = "日期时间:" + pInfo->Variable + " " + pInfo->Style + " " + pInfo->Type + " {" + pInfo->Comment + "}";
	else 
		csItemText = "日期时间:" + pInfo->Variable + " " + pInfo->Style + " " + pInfo->Type ;
}

//	数据库操作语句中的文件读写
void dsACDDBOperate::WritetoFile (CStdioFile& m_IOFile, int flag)
{
	CString str;
	str.Format("%x",nID);
	m_IOFile.WriteString( str + ":" );

	str.Format("%d",flag);		
	m_IOFile.WriteString( "Flag=" + str + ";");

	m_IOFile.WriteString( "DB_CONNECT=" + pInfo->Name + ";");
	m_IOFile.WriteString( "OPE_TYPE=" + pInfo->Type + ";");
	m_IOFile.WriteString( "PLACE_VAR=" + pInfo->Variable + ";");
	m_IOFile.WriteString( "DB_COMMENT=" + pInfo->Comment + "\n");
}
void dsACDDBOperate::ReadformFile(const CString &buf, dsDBOpe_INFO *pInfo, CString &csItemText)
{
	pInfo->Name = buf.Mid(buf.Find("DB_CONNECT")+11, buf.Find("OPE_TYPE")-buf.Find("DB_CONNECT")-12);
	pInfo->Type = buf.Mid(buf.Find("OPE_TYPE")+9, buf.Find("PLACE_VAR")-buf.Find("OPE_TYPE")-10);
	pInfo->Variable = buf.Mid(buf.Find("PLACE_VAR")+10, buf.Find("DB_COMMENT")-buf.Find("PLACE_VAR")-11);
	pInfo->Comment = buf.Right(buf.GetLength()-buf.Find("DB_COMMENT")-11);

	if (pInfo->Comment != "")
		csItemText = "数据库操作:" + pInfo->Name + " " + pInfo->Type + " " + pInfo->Variable + " {" + pInfo->Comment + "}";
	else 
		csItemText = "数据库操作:" + pInfo->Name + " " + pInfo->Type + " " + pInfo->Variable ;
}

//	取字段值语句中的文件读写
void dsACDGetField::WritetoFile (CStdioFile& m_IOFile, int flag)
{
	CString str;
	str.Format("%x",nID);
	m_IOFile.WriteString( str + ":" );

	str.Format("%d",flag);		
	m_IOFile.WriteString( "Flag=" + str + ";");

	m_IOFile.WriteString( "DB_CONNECT=" + pInfo->Name + ";");
	m_IOFile.WriteString( "DB_FIELD=" + pInfo->Field + ";");
	m_IOFile.WriteString( "SAVE_VAR=" + pInfo->Variable + ";");
	m_IOFile.WriteString( "DB_COMMENT=" + pInfo->Comment + "\n");
}
void dsACDGetField::ReadformFile(const CString &buf, dsField_INFO *pInfo, CString &csItemText)
{
	pInfo->Name = buf.Mid(buf.Find("DB_CONNECT")+11, buf.Find("DB_FIELD")-buf.Find("DB_CONNECT")-12);
	pInfo->Field = buf.Mid(buf.Find("DB_FIELD")+9, buf.Find("SAVE_VAR")-buf.Find("DB_FIELD")-10);
	pInfo->Variable = buf.Mid(buf.Find("SAVE_VAR")+9, buf.Find("DB_COMMENT")-buf.Find("SAVE_VAR")-10);
	pInfo->Comment = buf.Right(buf.GetLength()-buf.Find("DB_COMMENT")-11);

	if (pInfo->Comment != "")
		csItemText = "取字段值:" + pInfo->Name + " " + pInfo->Field + " " + pInfo->Variable + " {" + pInfo->Comment + "}";
	else 
		csItemText = "取字段值:" + pInfo->Name + " " + pInfo->Field + " " + pInfo->Variable ;
}

//	设置查询命令语句中的文件读写
void dsACDQueryCommand::WritetoFile (CStdioFile& m_IOFile, int flag)
{
	CString str;
	str.Format("%x",nID);
	m_IOFile.WriteString( str + ":" );

	str.Format("%d",flag);		
	m_IOFile.WriteString( "Flag=" + str + ";");

	m_IOFile.WriteString( "DB_CONNECT=" + pInfo->Name + ";");
	m_IOFile.WriteString( "CMD_TYPE=" + pInfo->Type + ";");
	m_IOFile.WriteString( "CMD_CONTENT=" + pInfo->Content + ";");
	m_IOFile.WriteString( "DB_COMMENT=" + pInfo->Comment + "\n");
}
void dsACDQueryCommand::ReadformFile(const CString &buf, dsQC_INFO *pInfo, CString &csItemText)
{
	pInfo->Name = buf.Mid(buf.Find("DB_CONNECT")+11, buf.Find("CMD_TYPE")-buf.Find("DB_CONNECT")-12);
	pInfo->Type = buf.Mid(buf.Find("CMD_TYPE")+9, buf.Find("CMD_CONTENT")-buf.Find("CMD_TYPE")-10);
	pInfo->Content = buf.Mid(buf.Find("CMD_CONTENT")+12, buf.Find("DB_COMMENT")-buf.Find("CMD_CONTENT")-13);
	pInfo->Comment = buf.Right(buf.GetLength()-buf.Find("DB_COMMENT")-11);

	if (pInfo->Comment != "")
		csItemText = "设置查询命令:" + pInfo->Name + " " + pInfo->Type + " " + pInfo->Content + " {" + pInfo->Comment + "}";
	else 
		csItemText = "设置查询命令:" + pInfo->Name + " " + pInfo->Type + " " + pInfo->Content ;
}

//	设置查询参数语句中的文件读写
void dsACDQueryParameter::WritetoFile (CStdioFile& m_IOFile, int flag)
{
	CString str;
	str.Format("%x",nID);
	m_IOFile.WriteString( str + ":" );

	str.Format("%d",flag);		
	m_IOFile.WriteString( "Flag=" + str + ";");

	m_IOFile.WriteString( "DB_CONNECT=" + pInfo->Name + ";");
	m_IOFile.WriteString( "DB_PARAMETER=" + pInfo->Parameter + ";");
	m_IOFile.WriteString( "PAR_VALUE=" + pInfo->Value + ";");
	m_IOFile.WriteString( "DB_COMMENT=" + pInfo->Comment + "\n");
}
void dsACDQueryParameter::ReadformFile(const CString &buf, dsQP_INFO *pInfo, CString &csItemText)
{
	pInfo->Name = buf.Mid(buf.Find("DB_CONNECT")+11, buf.Find("DB_PARAMETER")-buf.Find("DB_CONNECT")-12);
	pInfo->Parameter = buf.Mid(buf.Find("DB_PARAMETER")+13, buf.Find("PAR_VALUE")-buf.Find("DB_PARAMETER")-14);
	pInfo->Value = buf.Mid(buf.Find("PAR_VALUE")+10, buf.Find("DB_COMMENT")-buf.Find("PAR_VALUE")-11);
	pInfo->Comment = buf.Right(buf.GetLength()-buf.Find("DB_COMMENT")-11);

	if (pInfo->Comment != "")
		csItemText = "设置查询参数:" + pInfo->Name + " " + pInfo->Parameter + " " + pInfo->Value + " {" + pInfo->Comment + "}";
	else 
		csItemText = "设置查询参数:" + pInfo->Name + " " + pInfo->Parameter + " " + pInfo->Value ;
}