#ifndef TRACKRESULTOBJ_H #define TRACKRESULTOBJ_H #pragma once ////////////////////////////////////////////////////////////////////////////// //主要功能: // 解释结果道类 ///////////////////////////////////////////////////////////////////////////// class AFX_EXT_CLASS CTrackResult : public CInclinedTrack { protected: //DECLARE_SERIAL(CTrackResult); public: CTrackResult(); CTrackResult(const CRect8& position); virtual ~CTrackResult(); CLONE_WELLOBJECT(CTrackResult) virtual void operator=(CTrackResult& object); int m_nKind; // 符号画法 int m_nType; // 符号类型 protected: DWORD m_nTrackResultFlags; // 解释道开关状态 // 解释道Flags enum TrackResultFlags { TrackResultFlagMark = 0x0001, // 显示标注 TrackResultFlagArrange = 0x0002, // 竖直标注 TrackResultFlagLeftAlign = 0x0004, // 符号左边界对齐 TrackResultFlagChildTrans = 0x0008, // 子对象透明 }; // Implementation public: virtual void AddObjChild(); //创建解释结果对象 virtual void ResetChildProperties(); //重设解释结果子对象属性 virtual void Serialize(CArchive& ar, const short &ver); virtual void CalcBorders(); //开关变量值 virtual void SetTrackResultFlags(DWORD flags); virtual void SetShowMark(BOOL bFlag); virtual void SetLeftAlign(BOOL bFlag); virtual void SetMarkArrange(BOOL bFlag); virtual void SetChildTrans(BOOL bFlag); virtual DWORD GetTrackResultFlags(); virtual BOOL IsShowMark(); virtual BOOL IsLeftAlign(); virtual BOOL IsMarkArrange(); virtual BOOL IsChildTrans(); ////从工区导入数据时创建道内子对象 void BuidChildObject(vector &fields, StringVectorSet &datas, BOOL bInit=FALSE); ////获取道内对象的具体内容 virtual void GetChildDatas(StringVectorSet &dataContent ,BOOL bHaveWellName = TRUE); virtual void GetChildDatas(CString& jsonStr); virtual BOOL SetChildDatas(CString& jsonStr); public: //读解释结论道属性 virtual int ReadPCG_Self(CFile &fr,CXmlParse& xp,const short& ver ); //读pcg格式的数据 virtual int ReadPCG_Data(CFile &fr,const short& ver); //读解释结论道属性多井对比模块下 virtual int ReadPCG_SelfTraceSection(CFile &fr,CXmlParse& xp,const short& ver); //读多井对比pcg格式的数据 virtual int ReadPCG_DataSection(CFile &fr,const short& ver); //写pcg格式的道 virtual void WritePCG_Trace(CFile &fw,int nBaseTabNum); //写pcg格式的道内数据 virtual void WritePCG_Data(CFile &fw,int nBaseTabNum); virtual void WritePCG_Ext(CFile &fw,int nBaseTabNum); //写pcg格式的道 virtual void WritePCG_TraceSection(CFile &fw,int nBaseTabNum); //写pcg格式的道内数据 virtual void WritePCG_DataSection(CFile &fw,int nBaseTabNum); public: virtual int ReadPCG_Self( CKXmlParse& xp, const short& ver); //读pcg格式的数据 virtual int ReadPCG_Data(CKXmlParse& xp, const short& ver); //读解释结论道属性多井对比模块下 virtual int ReadPCG_SelfTraceSection(CKXmlParse& xp, const short& ver); //读多井对比pcg格式的数据 virtual int ReadPCG_DataSection(CKXmlParse& xp, const short& ver); virtual void ReadWellTableData(BOOL bDelOldDataObj = TRUE); virtual void SetDataRefID(CString tableId, CString colId); virtual void InTrackObjBindDataRow(BOOL bSerialize); //virtual void NotfiyDeleteInTrackObj(CString tableId, CString ChangColId, CWellBaseObj* pDelObj); //virtual void RemoveChild(CWellBaseObj*); //virtual void AddChild(CWellBaseObj* pNewObj); virtual void NotifyInTrackObjChangeTopBottom(CString ChangColId,VARINTARR *RowData, double top, double bottom); }; #endif