📄 dsacdobject.h
字号:
// dsACDObject.h: interface for the dsACDObject class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_DSACDOBJECT_H__86EF7403_D4ED_4C15_B024_FB094E8E76F6__INCLUDED_)
#define AFX_DSACDOBJECT_H__86EF7403_D4ED_4C15_B024_FB094E8E76F6__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "dsACDStruct.h"
/***********************************************************************
所有策略语句类的基类
***********************************************************************/
class dsACDObjectBase
{
public:
dsACDObjectBase(int id) : nID(id) { }
virtual ~dsACDObjectBase() {}
virtual PVOID Read() const = 0;
virtual void Write(PVOID p) = 0;
virtual void WritetoFile (CStdioFile& m_IOFile, int flag) = 0;
public:
int nID;
};
/***********************************************************************
处理链表结构中结点信息的类
***********************************************************************/
class dsMapHTreeToObj
{
public:
dsMapHTreeToObj() {pListHead = pListTail = NULL;}
~dsMapHTreeToObj() {
while (pListHead!=NULL)
{
ListMapItem *pTemp = pListHead;
pListHead = pListHead->pListNext;
delete pTemp->pACDObj;
delete pTemp;
}
}
struct ListMapItem {
HTREEITEM hTree;
dsACDObjectBase * pACDObj;
ListMapItem * pListNext;
} * pListHead, * pListTail;
// 在界面上增加一条语句时,在ListMapItem链表中添加一条对应的结点信息
void AddMapItem(HTREEITEM h, dsACDObjectBase *pObj);
// 在界面上删除一条语句时,在ListMapItem链表中去掉对应的结点信息
void RemoveMapItem(HTREEITEM h);
// 删除ListMapItem链表中所有结点的信息
void RemoveAllListItem();
void SetAt(HTREEITEM h, dsACDObjectBase *pObj);
// 在ListMapItem链表中把HTREEITEM hOldTree改成hNewTree
void SetTreeItem(HTREEITEM hOldTree, HTREEITEM hNewTree);
// 在ListMapItem链表中寻找对应于HTREEITEM h的结点
ListMapItem * Find(HTREEITEM h);
// 在ListMapItem链表中寻找pItem结点的前一个结点
ListMapItem * GetPreItem(ListMapItem *pItem);
// 在ListMapItem链表中获取对应于HTREEITEM h的结点的具体信息(即:该结点是什么类型的对象)
dsACDObjectBase * FindObj(HTREEITEM h);
};
extern dsMapHTreeToObj g_MapObj;
/***********************************************************************
数据定义语句
***********************************************************************/
class dsACDDataDefine : public dsACDObjectBase
{
public:
dsACDDataDefine() : dsACDObjectBase(0X101) {}
~dsACDDataDefine() {}
virtual PVOID Read() const {return NULL;}
virtual void Write(PVOID p) {}
virtual void WritetoFile (CStdioFile& m_IOFile, int flag);
};
/***********************************************************************
返回值语句
***********************************************************************/
class dsACDReturnValue : public dsACDObjectBase
{
public:
dsACDReturnValue() : dsACDObjectBase(0X102) {}
~dsACDReturnValue() {}
virtual PVOID Read() const {return NULL;}
virtual void Write(PVOID p) {}
virtual void WritetoFile (CStdioFile& m_IOFile, int flag);
};
/***********************************************************************
流程开始语句
***********************************************************************/
class dsACDFlowBegin : public dsACDObjectBase
{
public:
dsACDFlowBegin() : dsACDObjectBase(0X301) {}
~dsACDFlowBegin() {}
virtual PVOID Read() const {return NULL;}
virtual void Write(PVOID p) {}
virtual void WritetoFile (CStdioFile& m_IOFile, int flag);
};
/***********************************************************************
流程结束语句
***********************************************************************/
class dsACDFlowEnd : public dsACDObjectBase
{
public:
dsACDFlowEnd() : dsACDObjectBase(0X302) {}
~dsACDFlowEnd() {}
virtual PVOID Read() const {return NULL;}
virtual void Write(PVOID p) {}
virtual void WritetoFile (CStdioFile& m_IOFile, int flag);
};
/***********************************************************************
变量定义语句
***********************************************************************/
class dsACDObjVariable : public dsACDObjectBase
{
public:
dsACDObjVariable() : dsACDObjectBase(0X103) { pInfo = NULL;}
~dsACDObjVariable() {if (pInfo != NULL) delete pInfo;}
virtual PVOID Read() const {return pInfo;}
virtual void Write(PVOID p) {pInfo = (dsVD_INFO *)p;}
virtual void WritetoFile (CStdioFile& m_IOFile, int flag);
void ReadformFile (const CString & buf, dsVD_INFO *pInfo, CString &csItemText);
private:
dsVD_INFO * pInfo;
};
/***********************************************************************
数据分类语句
***********************************************************************/
class dsACDObjDataSort : public dsACDObjectBase
{
public:
dsACDObjDataSort() : dsACDObjectBase(0X104) { pInfo = NULL;}
~dsACDObjDataSort() {if (pInfo != NULL) delete pInfo;}
virtual PVOID Read() const {return pInfo;}
virtual void Write(PVOID p) {pInfo = (dsDS_INFO *)p;}
virtual void WritetoFile (CStdioFile& m_IOFile, int flag);
void ReadformFile (const CString & buf, dsDS_INFO *pInfo, CString &csItemText);
private:
dsDS_INFO * pInfo;
};
/***********************************************************************
数据库连接语句
***********************************************************************/
class dsACDDBConnect : public dsACDObjectBase
{
public:
dsACDDBConnect() : dsACDObjectBase(0X105) { pInfo = NULL;}
~dsACDDBConnect() {if (pInfo != NULL) delete pInfo;}
virtual PVOID Read() const {return pInfo;}
virtual void Write(PVOID p) {pInfo = (dsDBConn_INFO *)p;}
virtual void WritetoFile (CStdioFile& m_IOFile, int flag);
void ReadformFile (const CString & buf, dsDBConn_INFO *pInfo, CString &csItemText);
private:
dsDBConn_INFO * pInfo;
};
/***********************************************************************
条件控制语句
***********************************************************************/
class dsACDConControl : public dsACDObjectBase
{
public:
dsACDConControl() : dsACDObjectBase(0X303) { pInfo = NULL;}
~dsACDConControl() {if (pInfo != NULL) delete pInfo;}
virtual PVOID Read() const {return pInfo;}
virtual void Write(PVOID p) {pInfo = (dsCC_INFO *)p;}
virtual void WritetoFile (CStdioFile& m_IOFile, int flag);
void ReadformFile (const CString & buf, dsCC_INFO *pInfo, CString &csItemText);
private:
dsCC_INFO * pInfo;
};
/***********************************************************************
条件为真语句
***********************************************************************/
class dsACDConTrue : public dsACDObjectBase
{
public:
dsACDConTrue() : dsACDObjectBase(0X304) {}
~dsACDConTrue() {}
virtual PVOID Read() const {return NULL;}
virtual void Write(PVOID p) {}
virtual void WritetoFile (CStdioFile& m_IOFile, int flag);
};
/***********************************************************************
条件为假语句
***********************************************************************/
class dsACDConFalse : public dsACDObjectBase
{
public:
dsACDConFalse() : dsACDObjectBase(0X305) {}
~dsACDConFalse() {}
virtual PVOID Read() const {return NULL;}
virtual void Write(PVOID p) {}
virtual void WritetoFile (CStdioFile& m_IOFile, int flag);
};
/***********************************************************************
多路分支语句
***********************************************************************/
class dsACDSwitch : public dsACDObjectBase
{
public:
dsACDSwitch() : dsACDObjectBase(0X306) { pInfo = NULL;}
~dsACDSwitch() {if (pInfo != NULL) delete pInfo;}
virtual PVOID Read() const {return pInfo;}
virtual void Write(PVOID p) {pInfo = (dsSM_INFO *)p;}
virtual void WritetoFile (CStdioFile& m_IOFile, int flag);
void ReadformFile (const CString & buf, dsSM_INFO *pInfo, CString &csItemText);
private:
dsSM_INFO * pInfo;
};
/***********************************************************************
缺省匹配语句
***********************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -